1、基本概念:
iptables 安全策略:其实就是管理员预设定的的条件,规则存储在内核空间的信息过滤表中,这些规则分别指定了源地址,目的地址,传输协议及服务类型等所有待检查数据包的特征和目标。当数据包与规则不匹配时,将该数据包送往该链中下一条规则检查;当数据包与规则匹配时,iptables就根据规则所定义的方法处理数据包,如通过(ACCEPT),丢弃(DROP),拒绝(REJECT),排队(QUEUE)或者返回(RETURN)等。
链:链是数据包传播的路径,每个链其实就是设定的规则中的一个检查清单,每条链中可以有一条或者数条规则。iptables中比较常用的一共就5条链:input(filter),output(filter),forward(filter),prerouting(nat),postroution(nat)。
表:表是包含仅处理特定类型信息包的规则和链的信息包过滤表。iptables内置了三种表:filter,nat和mangle,分别用于实现包过滤,网络地址和包重构功能。
iptables的三个表:
Filter-----过滤表
-----input链:处理输入包的规则链,
-----output链:处理传出包的规则链
------forward链:处理转发包的规则链
Nat--------网络地址转换表
----------output链:处理传出包的规则链
-----------prerouting链:对到达且未经路由判断之前的包进行处理的规则链
-----------postroution链:对到达且未经路由判断之后的包进行处理的规则链
mangle-----数据包处理表
filter表是iptables的默认表,如果没有指定使用那个表,iptables默认使用filter表执行所有的命令。
主配置文件在 /etc/sysconfig/iptables中。
相关参数:
iptables :
-t指定表名称,
-n不做解析,
-L列出指定表中策略,
-A增加策略,
-p协议,
--dport端口,
-s数据来源,
-j动作,
ACCEPT允许,DROP丢弃,REJECT拒绝,
-N增加链,
-E修改链的名称,
-X删除链,
-D删除指定策略,
-I插入指定策略,
-R修改指定策略,
-P修改默认策略
2,安装和使用:
yum install iptables -y
此时为了防止firewall-cmd 软件的影响我们先将它关闭掉:
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
此时可以保证系统中没有别的管理内核防火墙的软件对iptalbes进行干扰了。
使用:
1)iptables -nL ------列出当前iptables中的所有策略并且不做解析:
2) iptables -F -------刷新当前策略;重新载入。
iptables -A INPUT -i lo -j ACCETP --------------------在默认filter表中插入回环ip使得允许访问(允许本机访问)
iptables -A INPUT -p tcp ----dport 80 -j ACCEPT ------------------在filter表中插入tcp协议的80端口允许访问。
做完策略的规划后使用 service iptables save 命令使得安全策略保存在文件中,
查看策略:
iptables -A INPUT -s 172.25.254.50 -p tcp --dport 22 -j ACCEPT ---------允许 172.25.254.50 的主机访问22端口;并且访问成功。
iptables -A INPUT -p tcp --dport 80 -j ACCEPT --------允许所有主机访问80端口。
iptables -A INPUT -j REJECT ------拒绝所有主机访问。
因为iptables 的安全策略执行顺序是从上往下的,所有说即使添加了第三条策略也不会影响172.25.254.50主机的访问。
如果将策略重新修改则172.25.254.50和172.25.50.120主机都不能成功登陆;
172.25.254.50主机和172.25.50.120主机:
目的地址与源地址转换:
iptables-t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.220 ---源地址转换为220主机地址
iptables-t nat -A PREROUTING -i eth0 -d 172.25.254.239 -j DNAT --to-dest 172.25.50.120 ---目的地址转为120
测试: