Linux系统Iptables防火墙

运维 系统运维
iptables 是与最新的 2.6.x 版本Linux 内核集成的 IP 信息包过滤系统。为大家讲下Linux系统Iptables防火墙的具体知识。

Linux系统Iptables防火墙

  Linux下关闭防火墙的命令,今天为了安全想把LInux服务器的ssh远程连接的端口休息一下,我就把sshd_config文件里的添加了一行port 8081可是配置好重新启动ssh服务后就是连接不上,想了好久才感觉是不是防火墙的问题啊,于是我就关闭了防火墙就可以了

  1、即时生效,重启后复原开启: service iptables start关闭: service iptables stop

  2、永久性生效,重启后不会复原开启: chkconfig iptables on关闭: chkconfig iptables off

  如果你想为了安全而开启防火墙,但是开启了SSH就连接不上了,没事儿有办法,你知道在防火墙的iptables设置文件里,设置不阻止SSH的端口就可以了,办法很简单,编辑/etc/sysconfig/iptables文件,在里面插入-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT 一行就可以了,我这里用的是8081端口,添加时改成你设置的SSH端口。然后service iptables restart 重新启动防火墙。

  一、Netfilter规则表—filter nat mangle

 

  1.配置Iptables

  当数据包进入服务器时,Linux Kernel会查找对应的链,直到找到一条规则与数据包匹配。如果该规则的target是ACCEPT,就会跳过剩下的规则,数据包会被继续发送。如果该规则的target是DROP,该数据包会被拦截掉,kernel不会再参考其他规则。

  Note:如果从始至终都没有一条规则与数据包匹配,而且表末尾又没有drop all的规则,那末该数据包会被accept。Cisco则相反,在表末尾会因含deny all的规则

       1.) Iptables的命令选项

  iptables [-t tables] command option parameter target

  -A 在链尾添加一条规则

  -C 将规则添加到用户定义链之前对其进行检查

  -D 从链中删除一条规则

  -E 重命名用户定义的链,不改变链本身

  -F 清空链,删除链上的所有规则

  -I 在链中插入一条规则

  -L 列出某个链上的规则,如iptables –L INPUT 列出INPUT链的规则

  -N 创建一个新链

  -P 定义某个链的默认策略

  -R 替换链上的某条规则

  -X 删除某个用户相关的链

  -Z 将所有表的所有链的字节和数据包计数器清零

  2.) Iptables的命令参数

       应用于数据包的协议类型,可以是TCP UDP ICMP或ALL。!也可使用。

  当使用-p tcp时,还可使用其他可以选项,以便允许进一步定义规则。选项包括:

  ——sport 允许指定匹配数据包源端口.port1:port ,表示port1和port2之间的所有端口

  ——dport 目的端口,和——sport雷同。

  当使用-p !udp时,也有特殊的选项供使包括:

  ——sport,——dport,与-p tcp 相同,只不过用以用于UDP包。

  使用-p icmp参数时,只有一个选项可用。

  ——icmp-type,允许在过滤规则中指定icmp类型。

  -s –source 指定数据包的源地址。该参数后跟一个IP地址,一个带有sub-net mask的网络地址,或一个主机名。(不建议使用主机名)

  -d,- - destination 数据包的目的地址,同-s.

  -j,——jump 用于指定一个target,告诉规则将该匹配的数据包发送到该 target。Target可以是ACCEPT,DROP,QUEUE,RETURN.如果没有-j,那么不会对数据包进行任何操作,只是将计数器加1。

  -i - - in-interface ,对于INPUT FORWARD PREROUTING链,该参数指定数据包到达服务器时所使用的端口。

  -o - - out-interface,对于OUTPUT FORWARD POSTROUTING链,该参数指定数据包离开服务器时使用的端口。

       3.) Iptables的命令target

  创建规则的最后一步是指定Iptables对数据包的操作。只要某一规则匹配该数据包,就不会再有别的规则的操作。内建的target有:ACCEPT DROP QUEUE RETURN。

  ACCEPT:允许数据包通过,到达目的地。

  DROP:拒绝数据包通过,丢弃该包。

  QUEUE:将数据包发送回到用户应用程序处理。

  RETURN:不再根据当前链的其他规则来检查数据包,而是直接返回,继续被发送到其目的地址,或下一个链。

#p#

       2.应用Iptables规则 示例

  允许WWW

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

  该规则被添加到filter表的INPUT链,允许目的端口是80的数据包。

  在内部接口上允许DHCP

  iptables –A INPUT –i eth0 –p tcp - - sport 68 - -dport 67 ACCEPT

  iptables –A INPUT –i eth0 –p ucp - -sport 68 - -dport 67 ACCEPT

  以上同时允许TCP和UDP协议。

  3.保存和恢复Iptables

  保存Iptables

  使用iptables-save可将现行的iptables规则保存,

  iptables-save > iptables保存路径,如# iptables-save > /etc/iptables.up.rule

  恢复Iptables

  使用iptables-restore 可从配置文档恢复iptables表到现行iptables表.

  iptables-restore < /etc/iptables.up.rule

  二、Ubuntu Server中的Iptables

  Ubuntu Server6.06中已经默认安装iptables,版本是1.3.3.默认状态是关闭。

  通过修改/etc/network/interfaces可将iptables打开:

  auto lo

  Iface lo inet loopback

  auto eth0

  iface eth0 inet dhcp

  #添加以下内容

  pre-up iptables-restore < /etc/iptables.up.rule

  #call the restored rule when active the eth0

  post-down iptables-save > /etc/iptables.up.rule

  #restore the iptables rule when shutdown the interface eth0

  然后重新激活eth0即可。

  另外,可随时修改/etc/iptables.up.rule配置文件,来更改iptables的规则。Iptables.up.rule格式如下:

  #Generated by iptables-save V1.3.3 on Tue Jul 31 14:18:44 2007

  *filter

  :INPUT ACCEPT [73:8213]

  :FORWARD ACCEPT [0:0]

  :OUTPUT ACCEPT [8:825]

  -A INPUT –i lo –p icmp –j DROP

  -A INPUT –i eth0 –p icmp –j DROP

  COMMIT

  #Completed on Tue Jul 31 14:10:44 2007

  行与行之间不能有空行。

  三.Summary

  iptables表链中每条规则的顺序很重要,如果首条是accept all,那末所有的数据包都会被允许通过firewall,因此应当适当的安排规则顺序。

  通常的法则是:拒绝所有 允许少数.

通过阅读文章,我们清楚的知道Linux系统Iptables防火墙,希望本文对你们有帮助!

【编辑推荐】

 

责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-03-15 16:35:27

2011-03-15 17:18:45

2011-03-17 10:58:55

Linux防火墙Iptables入门

2010-01-07 14:12:11

Linux防火墙

2011-03-15 15:47:26

LinuxIptables防火墙

2011-03-15 15:47:15

Iptables防火墙

2011-03-15 17:25:38

2011-03-15 09:10:42

Linux防火墙Iptables

2011-03-15 17:12:11

2009-02-22 09:30:24

2011-03-15 09:10:43

iptables防火墙

2011-03-15 17:38:24

2011-03-16 12:46:29

CentOSiptables防火墙

2018-07-02 09:18:11

Linuxiptables防火墙

2009-06-30 10:07:23

Linuxiptables防火墙

2009-07-01 09:17:32

Linux防火墙

2015-08-04 13:50:35

Linux防火墙iptables

2009-12-02 18:54:28

2011-03-15 10:48:47

2011-03-16 10:12:32

点赞
收藏

51CTO技术栈公众号