公司內部linux網關搭建


最近對公司網絡作了一次小小的調整,啓用linux作網關替換原有的路由器,主要緣由有3:linux

1.對實時流量的監控bash

2.性能需求,發現用路由器的話若是公司內部人員開啓BT等p2p軟件,鏈接數巨多,路由器性能 會降低很多服務器

3.***的需求,公司內部有OA,同時管理人員要經過***鏈接管理服務器。因此創建了pptp的***網絡

條件:網關服務器裝兩塊網卡 eth0:外網卡 eth1:內網卡dom

相關服務及軟件:tcp

1.dhcp服務:dhcpd包,系統自帶rpmide

2.流量監控工具:iptraf, 系統自帶rpm工具

3.***:pptpd包,網上下載的rpm包性能

4.包轉發,地址映射,防火牆規則:用iptables來實現ui

 

dhcp配置:
#cat /etc/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
default-lease-time 86400;
max-lease-time 259200;
subnet 192.168.1.0 netmask 255.255.255.0 { 
                                           option routers 192.168.1.1; 
                                           option ntp-servers 192.168.1.1; 
                                           option subnet-mask 255.255.255.0; 
                                           option domain-name-servers 202.106.0.20,202.106.196.115; 
                                           range 192.168.1.100 192.168.1.200;
                                           next-server 192.168.1.2; 
                                           filename "pxelinux.0";
}

#cat /etc/sysconfig/dhcpd

DHCPDARGS=eth1

 =====================================================================

pptpd配置:
#cat /etc/pptpd.conf | sed -e /^#/d -e /^$/d
option /etc/ppp/options.pptpd
logwtmp
bcrelay eth0
localip 172.16.0.1
remoteip 172.16.0.134-234
#cat /etc/ppp/options.pptpd |sed -e /^#/d -e /^$/d
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 202.106.0.20
proxyarp
debug
lock
nobsdcomp
novj
novjccomp
nologfd
# cat /etc/ppp/chap-secrets |sed -e /^#/d -e /^$/d
wangxiaoming pptpd '159753xxx' *
lixiaohua pptpd '123456xxx' *
注意:這裏只加了兩個用戶,能夠自定義加載,好像pptpd最多支持100個用戶吧。我建的時候查日誌看的,沒仔細研究,不過應該夠了。還有就是pptpd.conf 中的給***的ip最好不要和內網重疊。

==========================================================================

iptraf沒啥好寫的,我主要用到了"lan station monitor",監控內網各主機流量,不過內網再有無線路由器等設備,再作二次路由的話,那就只能監控出口流量了,比較好的辦法是把網線插到無線路由的lan口上。不過有些路由器不支持這種接法,那也沒辦法了。

==========================================================================

iptables
#cat gateway.sh
#!/bin/bash
local_ip=221.xxx.xxx.110
local_eth=eth1
lan_net='192.168.1.0/24'
allow_tcp_ports="22 53"
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
add_default(){
        echo "1" > /proc/sys/net/ipv4/ip_forward
        clear_police 
        iptables -P INPUT DROP 
        iptables -A INPUT -i lo -j ACCEPT
        iptables -A INPUT -i $local_eth -j ACCEPT
        iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
        iptables -A INPUT -p gre -j ACCEPT 
        iptables -A INPUT -p udp --dport 161 -j ACCEPT #我外網有個cacti監控
}
add_nat(){
iptables -t nat -A POSTROUTING -s 192.168.1.245 -j SNAT --to-source 221.xxx.xxx.111 iptables -t nat -A PREROUTING -d 221.xxx.xxx.111 -j DNAT --to-destination 192.168.1.245 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 221.xxx.xxx.110
iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j SNAT --to 221.xxx.xxx.110 #讓***撥過來的IP能上網
iptables -t nat -A PREROUTING -d 221.xxx.xxx.110 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.200:80
iptables -t nat -A PREROUTING -d 221.xxx.xxx.110 -p tcp -m tcp --dport 22 -j DNAT --to-destination 192.168.1.200:22
iptables -t nat -A PREROUTING -d 221.xxx.xxx.110 -p tcp -m tcp --dport 20 -j DNAT --to-destination 192.168.1.254:20
iptables -t nat -A PREROUTING -d 221.xxx.xxx.110 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.1.254:21
}
add_local_ports(){
for i in $allow_tcp_ports
    do
         iptables -A INPUT -s $lan_net -p tcp --dport $i -j ACCEPT
    done
iptables -A INPUT -s $lan_net -p icmp -j ACCEPT
}
clear_police(){
iptables -X
iptables -Z
iptables -F
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
}
case $1 in
start) 
    add_default 
    add_nat
    add_local_ports ;;
stop)
    add_default
    add_local_ports ;;
restart)
    $0 stop 
    $0 start ;;
status) 
    iptables -t nat -nL ;;
*)
     echo "Usage: $0 start|stop|restart" ;;
esac
這裏有端口映射,有ip映射。夠全了吧。哈哈。注意那個「gre」的開放是爲***開的。

==========================================================================

另外禁止內部員工機器上網,用iptraf獲得mac地址後,在iptables的 FORWARD的鏈中DROP掉就能夠了。下面是個禁止和恢復的例子: iptables -A FORWARD -m mac --mac-source AA:BB:CC:DD:EE:FF -j DROP iptables -D FORWARD -m mac --mac-source AA:BB:CC:DD:EE:FF -j DROP 固然也能夠arp -a |grep $mac 取得IP地址,再用iptables禁止掉。

==========================================================================

先寫到這裏,網關的可配置性很強。還有好多功能可用哦。你們根據須要整吧!!!

相關文章
相關標籤/搜索