iptables防火墙

表的概念

       我们把相同功能的规则的集合叫做“表”,所以说,不同功能的规则,我们可以放在不同的表中进行管理。比如,A类表规则都是对应的IP的过滤,B类都是修改报文。

       而iptables已经为我们定义了4种表,每种表对应不同的功能,而我们定义的规则也逃脱不了这4种功能的范围

filter表:负责过滤功能,防火墙;  内核模块:iptable_filter

net表:network address translation,网络地址转换功能;    内核模块:iptable_nat

mangle表:拆解报文,作出修改,并重新封装的功能;     内核模块:iptable_mangle

raw表:关闭nat表上启动的连接追踪机制; 内核模块:iptable_raw

 

 

PREROUTING 的规则可以存在于:raw表、mangle表、nat表。

INPUT    的规则可以存在于:mangle表、filter表、(centos7中有nat表,centos6中没有)

FORWARD    的规则可以存在于:mangle表、filter表。

OUTPUT        的规则可以存在于:raw表、mangle表、nat表、filter表。

POSTROUTING     的规则可以存在于:mangle表、nat表

 

iptables为我们定义了4张表,当他们处于同一条链时,执行的优先级如下:

       raw-->mangle-->nat-->filter

 

规则的概念:条件+动作 组成规则

       动作

              ACCEPT:允许数据包通过

              DROP:直接丢弃数据包。客户端过了超时时间才会有反应

              REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息

              SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题

              MASQUERAED:是SNAT的一种特殊形式,适用于动态的、临时会变的IP上

              DNAT:目标地址转换

              REDIRECT:在本机做端口映射

              LOG:在/var/log/messages文件中记录日志信息,然后讲数据包传递给下一条规则。也就是说除了记录以外不对数据包做任何操作,仍然让下一条规则去匹配

 

pkts:对应规则匹配的报文的个数

bytes:对应匹配到报文包的大小总和

target:规则对应target,往往表示规则对应的“动作”,即规则匹配成功后需要采取的措施

prot:表示规则对应的协议,是否只针对某些协议应用此规则

opt:表示规则对应的选项

in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则

out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则

source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段

destination:表示规则对应的目标地址。可以是一个IP,也可以是一个网段

 

 

 

查看filter表中的规则

       iptables -t filter -L(省略-t 表名时,默认表示操作filter表) -L表示列出规则

iptables -t 表名-L 链名

       查看指定表的指定链的规则

iptables -t 表名-L -v

       查看指定表的所有规则,并且显示更详细的信息,-v表示详细的,冗长的,当使用-v时,会显示出’计数器‘的信息,

iptables -t 表名 -n -L

       表示查看表的所有规则,并且在显示规则时,不对规则的ip或端口进行名称反解,-n表示不解析IP地址

iptables --line -t 表名 -L

       表示查看表中的所有规则,并且显示规则的序号

iptables -t 表名 -v -x -L

       表示查看表中的所有规则,并且显示更详细的信息,计数器中的信息显示为精确的计数值。-x表示显示计数器的精确值

iptables --line -t filter -nvxL

       也可以查看某张表中的某条链,此处以filter表中INPUT链为例

iptable --line -t filter -nvxL INPUT

 

 

在指定链的尾部添加一条规则,-A选项表示在对应链的末尾添加规则

       命令语法:iptables -t 表名 -A 链名 匹配条件 -j 动作

       例:iptables -t filter -A INPUT -s 192.168.10.10 -j DROP

-I 在指定链的指定位置添加一条规则

       命令语法:iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作

       例:iptables -t filter -I INPUT 5 -s 192.168.10.10 -j REJECT

设置指定表的指定链的默认策略(默认动作),并非添加规则

       命令语法:iptables -t 表名 -P 链名 动作

       例:iptables -t filter -P FORWARD ACCEPT(将filter表中FORWARD链的默认策略设置为ACCEPT)

-D表示删除对应链中的规则

       命令语法:iptables -t 表名 -D 链名 规则序号

       例:iptables -t filter -D INPUT 3

按照具体的匹配条件与动作删除规则,删除指定表的指定链的指定规则

       命令语法:iptables -t 表名 -D 链名 匹配条件 -j 动作

       例:iptables -t filter -D INPUT -s 192.168.10.10 -j DROP

              删除filter表中INPUT 链中源地址为192.168.10.10并且动作为DROP的规则

删除指定表的指定链的所有规则,-F选项表示清空对应链中的规则,三思而行

       命令语法:iptables -t 表名 -F 链名

       例:iptables -t filter -F INPUT

 

删除指定表中的所有规则,三思而行

命令语法:iptables -t 表名 -F

示例:iptables -t filter -F

修改规则,-R选项表示修改对应链中的规则

       命令语法:iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作

示例:iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

       表示修改filter表中INPUT链中的第三条规则,将这条规则的动作修改为ACCEPT,-s 192.168.1.146为这条规则中原本的匹配条件,如果省略匹配条件,修改后的规则中的源地址可能变为0.0.0.0/0

修改指定表的指定链的默认策略(默认动作),并非修改规则

       命令语法:iptables -t 表名 -P 链名 动作

示例:iptables -t filter -P FORWARD ACCEPT

保存规则,将iptables规则保存至/etc/sysconfig/iptables文件中,如果对应的操作没有保存,那么当重启iptables服务以后

       Service iptables save

或者使用如下方法保存规则

       Iptables-save > /etc/sysconfig/iptables

可以使用如下命令从指定的文件载入规则,注意:重载规则时,文件中的规则将会覆盖现在规则

       Iptables-restore < /etc/sysconfig/iptables

 

 

 

-s用于匹配报文的源地址,可以同时指定多个源地址,每个IP之间用逗号隔开,也可以指定一个网段

#示例如下

iptables -t filter -I INPUT -s 192.168.1.111,192.168.1.118 -j DROP

iptables -t filter -I INPUT -s 192.168.1.0/24 -j ACCEPT

iptables -t filter -I INPUT ! -s 192.168.1.0/24 -j ACCEPT

-d用于匹配报文的目标地址,可以同时指定多个源地址,每个IP之间用逗号隔开,也可以指定一个网段

#示例如下

iptables -t filter -I OUTPUT -d 192.168.1.111,192.168.1.118 -j DROP

iptables -t filter -I INPUT -d 192.168.1.0/24 -j ACCEPT

iptables -t filter -I INPUT ! -d 192.168.1.0/24 -j ACCEPT

-p用于匹配报文的协议类型,可以匹配的协议类型 tcp udp udplite esp ah sctp等

#示例如下

iptables -t filter -I INPUT -p tcp -s 192.168.1.146 -j ACCEPT

iptables -t filter -I INPUT ! -p udp -s 192.168.1.146 -j ACCEPT

-i用于匹配报文是从哪个网卡接口流入本机的,由于匹配条件只用于匹配报文流入的网卡,所以在OUTPUT链与POSTROUTING链中不能使用

#示例如下

iptables -t filter -I INPUT -p icmp -i eth4 -j DROP

iptables -t filter -I INPUT -p icmp ! -i eth4 -j DROP

-o用于匹配报文是从哪个网卡接口流入本机的,由于匹配条件只用于匹配报文流入的网卡,所以在INPUT链与POSTROUTING链中不能使用

#示例如下

iptables -t filter -I OUTPUT -p icmp -o eth4 -j DROP

iptables -t filter -I OUTPUT -p icmp ! -o eth4 -j DROP

 

 

下面只打开22端口,就是下面2个语句

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

最后别忘记了保存 对防火墙的设置
通过命令:service iptables save 进行保存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值