搭建基于netfilter/iptables的實(shí)驗(yàn)環(huán)境
iptables和netfilter配合使用,功能加倍,來(lái)搭建一個(gè)屬于自己的實(shí)驗(yàn)環(huán)境平臺(tái)。
實(shí)驗(yàn)步驟:
一>實(shí)現(xiàn)路由功能:
首先來(lái)配置eth0。給這個(gè)網(wǎng)絡(luò)接口分配地址218.197.93.115,運(yùn)行下列命令:
# ifconfig eth0 218.197.93.115 netmask 255.255.255.0
為了使這個(gè)地址不再計(jì)算機(jī)重新啟動(dòng)后消失,編輯/etc/sysconfig/network-scripts/ifcfg-eth0文件,
DEVICE = eth0
ONBOOT = yes
BROADCAST = 218.197.93.255
NETWORK = 218.197.93.0
NETMASK = 255.255.255.0
IPADDR = 218.197.93.115
增加一條靜態(tài)路由:
# route add -net 218.197.93.0 netmask 255.255.255.0
接下來(lái),配置eth1,eth1與192.168.1.0網(wǎng)段相連,分配給它的地址是192.168.1.1,使用ifconfig命令為它配置參數(shù):
# ifconfig eth1 192.168.1.1 netmask 255.255.255.0
編輯/etc/sysconfig/network-scripts/ifcfg-eth1文件,
DEVICE = eth1
ONBOOT = yes
BROADCAST = 192.168.1.255
NETWORK = 192.168.1.0
NETMASK = 255.255.255.0
IPADDR = 192.168.1.1
增加一條靜態(tài)路由:
# route add -net192.168.1.0 netmask 255.255.255.0
***配置eth2,它連接192.168.2.0網(wǎng)段,分配的IP地址是192.168.2.1,執(zhí)行下列命令:
# ifconfig eth2 192.168.2.1 netmask 255.255.255.0
- 5 -
編輯/etc/sysconfig/network-scripts/ifcfg-eth2文件
DEVICE = eth2
ONBOOT = yes
BROADCAST = 192.168.2.255
NETWORK = 192.168.2.0
NETMASK = 255.255.255.0
IPADDR = 192.168.2.1
增加一條靜態(tài)路由:
# route add -net 192.168.2.0 netmask 255.255.255.0
這樣網(wǎng)絡(luò)中就有三條靜態(tài)路由記錄了:
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
218,197.93.115 *255.255.255.0U 0 0 0 eth0
192.168.1.0*255.255.255.0U 0 0 0 eth1
192.168.2.0*255.255.255.0U 0 0 0 eth2
還要為系統(tǒng)增加一條缺省路由,因?yàn)槿笔〉穆酚墒前阉械臄?shù)據(jù)包都發(fā)往它的上一級(jí)網(wǎng)關(guān),因此增加如下的缺省路由記錄:
# route add default gw 218.197.93.254
這樣系統(tǒng)的靜態(tài)路由表建立完成,它的內(nèi)容是
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
218,197.93.115 *255.255.255.0U 0 0 0 eth0
192.168.1.0*255.255.255.0U 0 0 0 eth1
192.168.2.0*255.255.255.0U 0 0 0 eth2
default218.197.93.254 0.0.0.0 UG 0 0 0 eth0
二>在C上開(kāi)啟www,ftp服務(wù):
#service httpd start
#service vsftpd start
三>在防火墻上初始化設(shè)置
防火墻上初始化
- #service iptables stop
- #iptables -F
- #iptables -t nat -F
- #iptables -X
- #iptables -t nat -X
- #iptables -Z
- #iptables -t nat -Z
- #iptables -P INPUT DROP
- #iptables -P OUTPUT DROP
- #iptables -P FORWARD DROP
- #iptables -t nat -P POSTROUTING DROP
- #service iptables start
***一步,要增加系統(tǒng)的IP轉(zhuǎn)發(fā)功能,執(zhí)行如下命令打開(kāi)ip轉(zhuǎn)發(fā)功能:
echo 1 >/proc/sys/net/ipv4/ip_forward
四>在防火墻上實(shí)現(xiàn)端口地址映射:
允許A機(jī)器訪問(wèn)WAN
iptables -A FORWARD -s 192.168.2.0/24 -i eth2 -j ACCEPT
A往C的包都允許
iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.1.0/24 -i eth2 -j ACCEPT
WAN往A的包都不允許
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 192.168.2.0/24 -i eth0 -j DROP
允許WAN向內(nèi)部發(fā)送已建立連接的包和相關(guān)連接的包。
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 218.197.93.115
允許WAN發(fā)往www,ftp服務(wù)器的包并把對(duì)網(wǎng)關(guān)的www,ftp請(qǐng)求轉(zhuǎn)發(fā)到內(nèi)部的www,ftp服務(wù)器上。
- #iptables -t nat -A PREROUTING -p tcp --dport 80 -d 218.197.93.115 -s 0.0.0.0/0 -i eth0 -j DNAT --to 192.168.1.2
- #iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 192.168.1.2 -i eth0 --dport 80 -j ACCEPT
- #iptables -A FORWARD -p tcp -d 0.0.0.0/0 -s 192.168.1.2 -i eth1 --sport 80 ! --syn -j ACCEPT
- #iptables -t nat -A PREROUTING -p tcp --dport 20,21 -d 218.197.93.115 -s 0.0.0.0/0 -i eth0 -j DNAT --to 192.168.1.2
- #iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 192.168.1.2 -i eth0 --dport 20,21 -j ACCEPT
- #iptables -A FORWARD -p tcp -d 0.0.0.0/0 -s 192.168.1.2 -i eth1 --sport 20,21 ! --syn -j ACCEPT
- #iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 192.168.1.0/24 -i eth0 -j DROP
C不能訪問(wèn)A,B
iptables -A FORWARD -s 192.168.1.0/24 –d 0.0.0.0/0 -i eth1 -j DROP
通過(guò)上面的四大點(diǎn)介紹,想必大家都知道如何搭建屬于自己的netfilter/iptables的平臺(tái)。
【編輯推薦】
- 如何使用IPTables實(shí)現(xiàn)字符串模式匹配
- iptables相關(guān)腳本
- 如何使用 IPTables
- 如何用iptables實(shí)現(xiàn)NAT
- iptables配置工具
- iptables與stun
- iptables 添加模塊HOWTO
- netfilter/iptables模塊功能介紹