公司內部linux網關搭建

火星人 @ 2014-03-08 , reply:0



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

1.對實時流量的監控

2.性能需求,發現用路由器的話如果公司內部人員開啟BT等p2p軟體,連接數巨多,路由器性能 會下降不少

3.vpn的需求,公司內部有OA,同時管理人員要通過vpn連接管理伺服器.所以建立了pptp的vpn

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

相關服務及軟體:

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

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

3.vpn:pptpd包,網上下載的rpm包

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

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 中的給vpn的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 #讓vpn撥過來的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”的開放是為vpn開的.

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

另外禁止內部員工機器上網,用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禁止掉.

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

先寫到這裡,網關的可配置性很強.還有好多功能可用哦.大家根據需要整吧!!!





[火星人 via ] 公司內部linux網關搭建已經有161次圍觀

http://www.coctec.com/docs/linux/show-post-46516.html