IPtables防火墙使用技巧:
最近架设了一台LINUX的小型服务器,因为需要把LINUX的机子作为软路由器来使用,所以把使用的IPtables防火墙使用的经验谈一下。iptables的功能十分的强大。例如IP转发和伪装防御DoS,扫描和嗅探试的攻击等等。在这里就不阐述了我的系统环境,简易配置如下
redhat 7.2
adsl 2m
8139fast 网卡
1、linux如何使用软路由功能:
说到这里,大家可能会想,只要在/etc/rc.d/rc.local加上cat 1 > /proc/sys/net/ipv4/ip_forward就可以了,让linux具有ip_forward的功能。但你会发现,就算这样设置你局域网内的其他计算机还是不能共享上网。这是为什么?因为当你只有一个公网的ip时,你就必须用到iptables的IP伪装功能,把IP的伪装成你公网的IP。那怎么IPtables防火墙实现呢?你可以这样:
- iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
这样就可以把你所以出去的IP地址伪装成ppp0的IP地址(因为我的ADSL如有不同可以修改)。
2、不开放端口下,启用http服务、对外服务
不想开放我的端口,但我要在我的计算机上启用http服务,并对外服务。因为你不想开放除了80以外的端口,你可以这样:
- iptables –P INPUT –j DROP
我们用-P来拦截全部的通信,然后在来允许哪些端口可以被使用你可以这样写:
- iptables –A INPUT –p tcp –dport 80 –j ACCEPT
你可以适当的依照这样的格式来添加自己想开放的端口 当然要是你感觉这样不是很好的管理你也可以新建一个iptables表 你可以这样做:
- iptables –N test (新建一个test表)
- iptables –A test DROP
- iptables –A test –p tcp –dport 80 –j ACCEPT(允许80端口被访问)
- iptables –A INPUT –j test
- iptables –A OUTPUT –j test
- iptables –A FORWARD –j test
(这3条的意思指让INPUT OUTPUT FORWARD都依照test的设置)
3、在内网的计算机上架设ftp服务
如果是在内网的计算机上架设ftp服务该怎么做呢?这就又要用到iptables 的又一个强大的功能——端口映射了你可以这样:
- iptables -t nat -A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination
- 192.168.0.6:21
- iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.6 -p tcp -m tcp --
- dport 25-j SNAT --to-source 192.168.0.1
上面2句话的意思是把服务器的25端口映射到192.168.0.6这台计算机上。
4、不想让别人可以PING到我
这大约是做iptables防火墙用到最多的一种了 你可以在iptables写这句话:
- iptables -A INPUT -p icmp --icmp-type echo-request -i ppp0 -j DROP
要是你前面是新建了一个新的test表,那也可以这样写。
- iptables -A test -p icmp --icmp-type echo-request -i ppp0 -j
- DROP
这句话就是不允许人家PING我,因为ping用到的是icmp协议。因为icmp没有端口可言,所以也不需要指定端口了。
好了!这就是IPtables防火墙使用的几种比较基本的用法。这里再介绍几iptbales常用的一些指令。
iptables –F 清空所有的iptables的规则设置。
- /sbin/iptables-save > iptables – save
这样,把你的规则保存下来。因为你所有设置的规则再重新启动后都不会被保存,所以你必须写一个脚原本让他开机运行。这样,你就可以用这指令来保存你的规则, 然后让他开机自动运行就可以了iptables的基础知识-iptables中的状态检测