iptables的基础知识-iptables中的状态检测

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防火墙实现呢?你可以这样:

  1. iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

这样就可以把你所以出去的IP地址伪装成ppp0的IP地址(因为我的ADSL如有不同可以修改)。

2、不开放端口下,启用http服务、对外服务

不想开放我的端口,但我要在我的计算机上启用http服务,并对外服务。因为你不想开放除了80以外的端口,你可以这样:

  1. iptables –P INPUT –j DROP

我们用-P来拦截全部的通信,然后在来允许哪些端口可以被使用你可以这样写:

  1. iptables –A INPUT –p tcp –dport 80 –j ACCEPT

你可以适当的依照这样的格式来添加自己想开放的端口 当然要是你感觉这样不是很好的管理你也可以新建一个iptables表 你可以这样做:

  1. iptables –N test (新建一个test表)
  2. iptables –A test DROP
  3. iptables –A test –p tcp –dport 80 –j ACCEPT(允许80端口被访问)
  4. iptables –A INPUT –j test
  5. iptables –A OUTPUT –j test
  6. iptables –A FORWARD –j test

(这3条的意思指让INPUT OUTPUT FORWARD都依照test的设置)

3、在内网的计算机上架设ftp服务

如果是在内网的计算机上架设ftp服务该怎么做呢?这就又要用到iptables 的又一个强大的功能——端口映射了你可以这样:

  1. iptables -t nat -A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination
  2. 192.168.0.6:21
  3. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 192.168.0.6 -p tcp -m tcp --
  4. dport 25-j SNAT --to-source 192.168.0.1

上面2句话的意思是把服务器的25端口映射到192.168.0.6这台计算机上。

4、不想让别人可以PING到我

这大约是做iptables防火墙用到最多的一种了 你可以在iptables写这句话:

  1. iptables -A INPUT -p icmp --icmp-type echo-request -i ppp0 -j DROP

要是你前面是新建了一个新的test表,那也可以这样写。

  1. iptables -A test -p icmp --icmp-type echo-request -i ppp0 -j
  2. DROP

这句话就是不允许人家PING我,因为ping用到的是icmp协议。因为icmp没有端口可言,所以也不需要指定端口了。

好了!这就是IPtables防火墙使用的几种比较基本的用法。这里再介绍几iptbales常用的一些指令。

iptables –F 清空所有的iptables的规则设置。

  1. /sbin/iptables-save > iptables – save

这样,把你的规则保存下来。因为你所有设置的规则再重新启动后都不会被保存,所以你必须写一个脚原本让他开机运行。这样,你就可以用这指令来保存你的规则, 然后让他开机自动运行就可以了iptables的基础知识-iptables中的状态检测

你可能感兴趣的:(iptables)