|
|
DEBIAN默认IPTABLES的确是装了,可是在默认的情况下,没有自动启动和导入IPTABLES的脚本!造成大家好像使用DEBIAN一看到IPTABLES就比较头疼!
我一开始也是一头雾水,后来想了想,就找到思路了!
IPTABLES命令有,而且也可用,内核转发没有打开,打开后,也能实现NAT上网!剩下的就是补脚本的问题了,让系统能够开机自动的重新导入策略,关机能够自动的把现在IPTABLES运行的状态保存了!(嘿嘿,我懒吧,每次修改完策略不愿意多IPTABLES-SAVE的家伙就是我)
IPTABLES的策略可以通过IPTABLES-SAVE和IPTABLES-RESTOREl来保存和恢复!(顺便说下,保存出来的文件,最好不要手工修改,里边对空行和空格的要求很高,有一次我就手工修改,导致防火墙策略上不去,我又跑去机房一次)
具体来说,看我后边的配置文件大家就清楚了!
DEBIAN使用的是SYSTEM V的方式进行开机引导!那么我们需要修改的东西就很简单了。
我们只需要在网卡启动停止的脚本中,添加相关的配置就行了。
可是脚本在哪里呢?
在网上搜索了一下,是在/etc/network/下,是网卡的配置文件。
目录结构看起来
/etc/network
├─if-down.d
├─if-post-down.d
├─if-pre-up.d
├─if-up.d
└─run
我也不知道怎么说了,反正就是应该有网卡启动停止前后的目录,还有个运行的目录,那么我们做文章就应该在这些目录里边做。
/etc/network/interfaces中,正常配置例如下边这样
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# allow-hotplug eth0
iface eth0 inet static
address 210.83.20.67
netmask 255.255.255.192
network 210.83.20.0
broadcast 210.83.203.255
gateway 210.83.20.65
auto eth0
iface eth1 inet static
address 192.168.144.1
netmask 255.255.255.0
network 192.168.144.0
broadcast 192.168.144.255
auto eth1
# pre-up /sbin/iptables-restore < /etc/iptables.up.rule
# /post-down /sbin/iptables-save > /etc/iptables.up.rule
上边两行回头解释
够仔细了吧,如果更白点,大家不要忘记了还有个/etc/resolv.conf中,写清楚你的DNS,例如
# generated by NetworkManager, do not edit!
nameserver 202.96.69.38
下边我们就需要让IPTABLES来加载和保存了!
首先,我在/etc/下,创建了个名字叫iptables.up.rule的文件,用来保存IPTABLES的规则。
在/etc/network/if.up和if-pre-up.d中都放置了一个脚本,叫做IPTABLES.UP,内容是
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables-restore < /etc/iptables.up.rule
因为我也没有搞清楚IPTABLES是应该在启动的时候加载还是在预启动的时候加载!反正我的策略能加载上去就OK啊!
同理,在/etc/network/if-down.d和if-post-down.d里边添加了个脚本叫做IPTABLES.DOWN,内容是
#!/bin/bash
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables-save > /etc/iptables.up.rule
这样,网卡的加载和停止工作需要的脚本就OK了,大家不要忘记将我们创建的文件更改权限到可运行啊!
我是chmod 755 “文件名”的。
现在缺的就是个默认的,IPTABLES中运行的配置了。
我用下边的命令来初始化出来内存中IPTABLES的状态。
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -F -t nat
iptables -X
iptables -X -t nat
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.144.0/24 -j MASQUERADE
###############################################192.168.144.245###########################################################
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 25 -j DNAT --to-destination 192.168.144.245
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 80 -j DNAT --to-destination 192.168.144.245
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 110 -j DNAT --to-destination 192.168.144.245
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 443 -j DNAT --to-destination 192.168.144.245
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 995 -j DNAT --to-destination 192.168.144.245
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 3389 -j DNAT --to-destination 192.168.144.245
###############################################192.168.144.244###########################################################
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 8080 -j DNAT --to-destination 192.168.144.244 #
#iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 5999 -j DNAT --to-destination 192.168.144.244 #tor
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 4661 -j DNAT --to-destination 192.168.144.245 #emule
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p udp --dport 4761 -j DNAT --to-destination 192.168.144.245 #emule
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 2041 -j DNAT --to-destination 192.168.144.245 #cvs
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 3680 -j DNAT --to-destination 192.168.144.245 #svn
iptables -t nat -A PREROUTING -i eth0 -d 210.83.20.67 -p tcp --dport 6969 -j DNAT --to-destination 192.168.144.245 #bt
详细的关于IPTABLES的命令的说明,大家就不要问问我了,我现在也搞不太清楚了,但这些命令大家修改修改,应该绝对够平时应用需要内网NAT上网,外网访问内网特定服务器的需要!
关于
# pre-up /sbin/iptables-restore < /etc/iptables.up.rule
# /post-down /sbin/iptables-save > /etc/iptables.up.rule
其实是我参考网上的“有奔头”的配置,尝试了很多次失败留下的,好像DEBIAN下,不识别这两个命令,有哪个高人能够指点指点的!
嘿嘿,终于写完了,小白还有个问题就是,到底网卡启动的时候还是启动前加载IPTABLES啊?要不弄俩脚本挺丢人的!停止的时候应该用哪个目录呢? |
|