Iptables防火墙配置详解

运维 系统运维
Iptables防火墙配置详解:iptables是基于Linux内核的防火墙,iptables的功能比较强大。本文详细介绍了iptables防火墙、iptables下的参数、iptables配置实例。

  iptables防火墙配置详解

  iptables简介

  iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表。

  filter负责过滤数据包,包括的规则链有,input,output和forward;

  nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output;

  mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING;

  input匹配目的IP是本机的数据包,forward匹配流经本机的数据包,prerouting用来修改目的地址用来做DNAT,postrouting用来修改源地址用来做SNAT。

  iptables主要参数

  -A 向规则链中添加一条规则,默认被添加到末尾

  -T指定要操作的表,默认是filter

  -D从规则链中删除规则,可以指定序号或者匹配的规则来删除

  -R进行规则替换

  -I插入一条规则,默认被插入到首部

  -F清空所选的链,重启后恢复

  -N新建用户自定义的规则链

  -X删除用户自定义的规则链

  -p用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号,

  -s指定源地址

  -d指定目的地址

  -i进入接口

  -o流出接口

  -j采取的动作,accept,drop,snat,dnat,masquerade

  --sport源端口

  --dport目的端口,端口必须和协议一起来配合使用

  注意:所有链名必须大写,表明必须小写,动作必须大写,匹配必须小写。

#p#

  iptable配置实例

  iptable基本操作

  iptables -L 列出iptables规则

  iptables -F 清除iptables内置规则

  iptables -X 清除iptables自定义规则

  设定默认规则

  在iptables规则中没有匹配到规则则使用默认规则进行处理

  iptables -P INPUT DROP

  iptables -P OUTPUT ACCEPT

  iptables -P FORWARD DROP

  配置SSH规则

  iptables -A INPUT -p tcp --dport 22 -j ACCEPT

  iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT 如果你把OUTPUT 设置成DROP,就需要加上这个规则,否则SSH还是不能登录,因为SSH服务职能进不能出。

  只允许192.168.0.3的机器进行SSH连接

  iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

  如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.

  允许loopback回环通信

  1.   IPTABLES -A INPUT -i lo -p all -j ACCEPT  
  2.  
  3.   IPTABLES -A OUTPUT -o lo -p all -j ACCEPT  
  4.  

  目的地址转换,映射内部地址

  1.   iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT --to 192.168.0.2:80  
  2.  
  3.   iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT --to 192.168.0.1-192.168.0.10  
  4.  

  源地址转换,隐藏内部地址

  1.   iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1  
  2.  
  3.   iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1-1.1.1.10  
  4.  

  地址伪装,动态ip的NAT

  1.   iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE  
  2.  

  masquerade和snat的主要区别在于,snat是把源地址转换为固定的IP地址或者是地址池,而masquerade在adsl等方式拨号上网时候非常有用,因为是拨号上网所以网卡的外网IP经常变化,这样在进行地址转换的时候就要在每次都要修改转换策略里面的ip,使用masquerade就很好的解决了这个问题,他会自己去探测外网卡获得的ip地址然后自动进行地址转换,这样就算外网获得的ip经常变化也不用人工干预了。

  开启转发功能

  1.   iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT 只允许已建连接及相关链接对内转发  
  2.  
  3.   ptables -A FORWARD -i eth1 -o eh0 -j ACCEPT 允许对外转发  
  4.  

  过滤某个MAC

  1.   iptables -A FORWARD -m mac --mac -source MAC地址 -j DROP  
  2.  

  报文经过路由后,数据包中原有的MAC信息会被替换,所以在路由后的iptables中使用mac匹配没有意义。

  数据包整流

  1.   iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT  
  2.  
  3.   iptables -A FORWARD -d 192.168.0.1 -j DROP  
  4.  

  多端口匹配

  用以一次匹配多个端口

  1.   iptables -A INPUT -p tcp -m muliport --dport s 21,22,25,80,110 -j ACCEPT  
  2.  

  丢弃非法连接

  1.   iptables -A INPUT -m state --state INVALID -j DROP  
  2.  
  3.   iptables -A OUTPUT -m state --state INVALID -j DROP  
  4.  
  5.   iptables-A FORWARD -m state --state INVALID -j DROP  
  6.  

  存储于恢复iptables规则

  1.   iptables-save > somefile  
  2.  
  3.   iptables-restore < somefile 

【编辑推荐】

Iptables 配置指南

iptables常用命令及参数

Iptables 详细介绍

责任编辑:zhaolei 来源: liusuping
相关推荐

2011-03-16 12:46:29

CentOSiptables防火墙

2011-03-17 16:00:57

2011-03-15 16:35:27

2011-03-15 17:18:45

2011-03-17 10:58:55

Linux防火墙Iptables入门

2011-03-15 17:38:24

2011-03-15 09:10:43

iptables防火墙

2018-07-02 09:18:11

Linuxiptables防火墙

2011-03-16 10:12:32

2011-03-15 10:48:47

2011-03-16 10:17:06

2010-01-07 14:12:11

Linux防火墙

2011-03-15 15:47:26

LinuxIptables防火墙

2009-12-09 14:34:58

2010-09-14 14:26:50

2009-02-22 09:30:24

2011-03-15 17:12:11

2011-03-16 15:58:40

Iptables防火墙

2011-03-15 17:25:38

2011-03-16 16:23:23

保存iptables防火墙
点赞
收藏

51CTO技术栈公众号