用iptables做IP的静态映射(1)(3)
现在看看iptables服务,你可以执行iptables -V看看是否iptables已经安装在系统里了(一般来说都会安装了),还可以显示你的版本号——我的是1.3.6版本。
ok,编辑脚本吧。输入
vi FWstart.sh进入编辑界面(下面是文本正文)
#!/bin/sh
#下面两项分别是启动linux的转发功能和防syn攻击的参数。
#没有第一条就不能实现linux的数据包转发
#意思就是把文件/proc/sys/net/ipv4/ip_forward的值设定为1
#第二条我不太了解,但还是加上吧。
- echo "1" > /proc/sys/net/ipv4/ip_forward
- echo "1" > /proc/sys/net/ipv4/tcp_syncookies
#加载iptables启动所需的各种模块,据说很多版本不加也可以,因为具体的参数引用实际上已经调
#用了它们,但是考虑兼容性加上也没什么,如果你去掉了这几行,结果出现了问题,不妨再加上。
- modprobe ip_tables
- modprobe ip_nat_ftp
- modprobe ip_nat_irc
- modprobe ip_conntrack
- modprobe ip_conntrack_ftp
- modprobe ip_conntrack_irc
#清空原有的iptables的表(主要是filter表和nat表)和表中的链
- /sbin/iptables -F
- /sbin/iptables -X
- /sbin/iptables -Z
- /sbin/iptables -F -t nat
- /sbin/iptables -X -t nat
- /sbin/iptables -Z -t nat
#设置filter表中三个链的默认规则,进入(INPUT)发出(OUTPUT)都是允许ACCEPT
#转发(FORWARD)是丢弃DROP,这样才能起到防火墙的作用。
#你也可以设定更细致的INPUT规则,实际上INPUT链是针对保护防火墙自身的,我不多说了,
#我的重点放在FORWARD链,它是负责过滤转发包的。
- /sbin/iptables -P INPUT ACCEPT
- /sbin/iptables -P OUTPUT ACCEPT
- /sbin/iptables -P FORWARD DROP
#现在给网卡添加ip地址,一块网卡上可以拥有很多IP地址,只有这样,外网访问1.1.1.2的时候
#才能重新定向到内网的192.168.1.1上去。
ip address add 1.1.1.2/30 brd + dev eth0
ip address add 1.1.1.3/30 brd + dev eth0
#设置允许对服务器192.168.1.1和192.168.1.2的访问,否则的话外网
#就无法把数据发送到这两台服务器上。当然你可以设置更多的规则,这实际上就是为这两台
#服务器设置的防火墙了。比如如果你想设置只允许访问1.1上的80端口,只要把
#/sbin/iptables -A FORWARD -d 192.168.1.1 -j ACCEPT改为
#/sbin/iptables -A FORWARD -d 192.168.1.1 --dport 80 -j ACCEPT就可以了,
#其他不要改,除非你明白修改后的含义。不过我要提醒你,按照这种设置,你的两台
#服务器基本上就是和单独接入在internet中没什么两样,只是进行了地址转换,
#多了一点点保护而已。建议你还是多学学iptables防火墙的其他内容。
- /sbin/iptables -A FORWARD -s 192.168.1.1 -j ACCEPT
- /sbin/iptables -A FORWARD -d 192.168.1.1 -j ACCEPT
- /sbin/iptables -A FORWARD -s 192.168.1.2 -j ACCEPT
- /sbin/iptables -A FORWARD -d 192.168.1.2 -j ACCEPT
评论暂时关闭