淺談 iptables - 3個應用

  iptables 這個指令, 如同以下用 man 查詢所見, 它用來過濾封包和做NAT Network Address Translation(網路位址轉譯), 這個指令的應用很多, 可以做到很多網路上的應用.

iptables - administration tool for IPv4 packet filtering and NAT

 

應用1:讓區域網路內的電腦以一個真實IP來共享頻寬(實作NAT)

架構圖:

所需設備: 一台 Linux server , 2張網路卡

網卡1 : eth0 , 使用真實IP , 網卡2 : eth1 , 使用 192.168.1.254

設定: 在 /etc/rc.d/rc.local 寫入以下幾行

echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# 如果只有一張網卡則需要加入以下這一行
ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

 

應用2:讓區域網路內的電腦以一個ADSL來共享頻寬(實作NAT)

這個例子和上個例子很像, 只是某一個設定要做修改

架構圖:

所需設備: 一台 Linux server , 2張網路卡

網卡1 : eth0 , 使用真實IP , 網卡2 : eth1 , 使用 192.168.1.254

設定: 在 /etc/rc.d/rc.local 寫入以下幾行

echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE

 

應用3:讓外界的電腦可以存取區域網路內的某部server(實作轉址,轉port)

此種做法有保護內部 server 的效果

架構圖:

所需設備: 一台 Linux server , 2張網路卡

網卡1 : eth0 , 使用真實IP , 網卡2 : eth1 , 使用 192.168.1.254

設定: 在 /etc/rc.d/rc.local 寫入以下幾行

echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 真實IP --dport 80 -j DNAT --to-destination 192.168.1.13:80