1,ssh的限制
ssh監控的是22端口,可以通過端口限制來限制ssh登入
[root@mail ~]# netstat -antup|grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3796/sshd
不允許192.168.87.133主機ssh mail
[root@mail ~]# iptables -A INPUT -s 192.168.87.133 -p tcp --destination-port 22 -j DROP
隻允許192.168.87.0這個網段的ip來ssh主機
(當拒絕和允許沖突的時候,允許優先)
[root@mail ~]# iptables -A INPUT -s 192.168.87.0/24 -p tcp --dport 22 -j ACCEPT
[root@mail ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
2,禁止代理端口
#iptables -A INPUT -p tcp –dport 3128 -j REJECT
3,禁止黑客ping我的主機
隻允許192.168.87.0網段的主機ping我的主機
[root@mail ~]# iptables -A INPUT -s 192.168.87.0/24 -p icmp --icmp-type echo-request -j ACCEPT
[root@mail ~]# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
4,禁止QQ端口
#iptables -D FORWARD -p udp –dport 8000 -j REJECT
5,強制通路指定的站點
要使192.168.52.0/24網絡内的計算機(這此計算機的網關應設為192.168.52.10)強制通路指定的站點,在做為防火牆的計算機(192.168.52.10)上應添加以下規則: 1. 打開ip包轉發功能 echo 1 > /proc/sys/net/ipv4/ip_forward
在NAT/防火牆計算機上的NAT表中添加目的位址轉換規則: iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 202.96.134.130:80
iptables -t nat -I PREROUTING -i eth0 -p udp –dport 80 -j DNAT –to-destination 202.96.134.130:80
在NAT/防火牆計算機上的NAT表中添加源位址轉換規則: iptables -t nat -I POSTROUTING -o eth1 -p tcp –dport 80 -s 192.168.52.0/24 -j SNAT –to-source 202.96.134.10:20000-30000
測試:在内部網的任一台計算機上打開浏覽器,輸入任一非本網絡的IP,都将指向IP為202.96.134.130的網站.
6,釋出内部網絡伺服器
要使網際網路上的計算機通路到内部網的FTP伺服器、WEB伺服器,在做為防火牆的計算機上應添加以下規則: 1. echo 1 > /proc/sys/net/ipv4/ip_forward 2. 釋出内部網web伺服器
iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 –dport 80 -j DNAT –to-destination 192.168.52.15:80
iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.15 –sport 80 -j SNAT –to-source 202.96.134.10:20000-30000 3. 釋出内部網ftp伺服器
iptables -t nat -I PREROUTING -p tcp -i eth1 -s 202.96.134.0/24 –dport 21 -j DNAT –to-destination 192.168.52.14:21
iptables -t nat -I POSTROUTING -p tcp -i eth0 -s 192.168.52.14 –sport 21 -j SNAT –to-source 202.96.134.10:40000-50000 4. 注意:内部網的計算機網關要設定為防火牆的ip(192.168.52.1) 5. 測試: 用一台IP位址為202.96.134.0段的計算機虛拟網際網路通路,當在其浏覽器中通路http://202.96.134.10時,實際應看到的是192.168.52.15的的web服務; 當通路ftp://202.96.134.10時,實際應看到的是192.168.52.14上的的ftp服務
7,智能DNS
1. echo 1 > /proc/sys/net/ipv4/ip_forward 2. 在NAT伺服器上添加以下規則: 在PREROUTING鍊中添加目的位址轉換規則:
iptables -t nat -I PREROUTING -i eth0 -p tcp –dpor 53 -j DNAT –to-destination 202.96.134.130 iptables -t nat -I PREROUTING -i eth0 -p udp –dpor 53 -j DNAT –to-destination 202.96.134.130 在POSTROUTING鍊中添加源位址轉換規則:
iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p tcp –dpor 53 -j SNAT –to-source 202.96.134.10:40000-50000 iptables -t nat -I POSTROUTING -o eth1 -s 192.168.52.0/24 -p udp –dpor 53 -j SNAT –to-source 202.96.134.10:40000-50000 3. 測試 在内部網任一台計算機上,将DNS設定為任意的外網IP,就可以使用DNS測試工具如nslookup來解析DNS伺服器202.96.134.130上的名稱.
8,端口映射
見上節透明代理設定 #iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 –dport 80 -j REDIRECT –to-ports 3128
9,通過NAT上網
典型NAT上網
一般做為NAT的計算機同時也是區域網路的網關,假定該機有兩塊網卡eth0、eth1,eth0連接配接外網,IP為202.96.134.134;eth1連接配接區域網路,IP為192.168.62.10 1. 先在核心裡打開ip轉發功能 #echo 1 > /proc/sys/net/ipv4/ip_forward
使區域網路使用者能通路internet所要做的nat #iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT –to?202.96.134.134 如果上網的IP是動态IP,則使用以下規則: #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.62.0/24 -j MASQUERADE 如果是通過ADSL上網,且公網IP是動态IP,則使用以下規則: #iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.62.0/24 -j MASQUERADE
. 使internet使用者可以通路區域網路内web主機所要做的nat #iptables -t nat -A PREROUTING -p tcp -d 202.96.134.134 –dport 80 -j DNAT –to-destination 192.168.62.10 注:區域網路内的用戶端需将預設網關、DNS設為防火牆的IP
10,在我們的網絡機房實作NAT共享上網
工作環境:上層代理192.168.60.6(4480),隻授予教師機(192.168.62.111)使用該代理的權限 目标:不使用squid代理上網,而是使用NAT的方式上網 方法:
1) 確定停止教師機(192.168.62.111)的squid或其它代理服務
2) 用戶端網關、DNS均指向192.168.62.111,浏覽器代理設定為192.168.60.6(4480)。測試在目前情況下能否上網
3) 在教師機(192.168.62.111)上添加如下iptables規則: #iptables -t nat -A POSTROUTING -p tcp -d 192.168.60.6/32 –dport 4480 -j SNAT –to-source 192.168.62.111:10000-30000 解釋:對于目的地為192.168.60.6、目的端口為4480的TCP包,在經過防火牆路由後,将其源位址轉換為192.168.62.111,端口轉換為10000-30000間的某個端口。
4) 用戶端測試能否上網
本文轉自陳仲陽0 51CTO部落格,原文連結:http://blog.51cto.com/wolfword/1212320