linux系统--iptabels管理防火墙
什么是iptables
iptables(网络过滤器)是一个工作于用户空间的防火墙应用软件。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在linux内核中。
iptables有三张表五条链:
(1)filter,这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWARD(处理通过的包)和OUTPUT(处理本地生成的包)。
(2)nat,这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。
(3)mangle 这个表用来对指定的包进行修改。它有两个内建规则:PREROUTING(修改路由之前进入的包)和OUTPUT(修改路由
之前本地的包)。
这个是用一张演示iptabels演示防火墙
1、在防火墙中firewall与iptabels两种工具不能同时存在,所以是需要关闭firewall的
- 1.关闭firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
- 2.打开iptables
systemctl start iptables.service
systemctl enable iptables.service
- 3.查看iptables的策略
iptables -nL 默认查看filter的信息
- 4.查看指定的策略
iptables -t filter -nL 查看指定filter的信息,
iptables -t nat -nL 查看指定nat的信息,不做解析
- 5.iptables的三种保存方式
iptables-save 保存
iptables-save > /etc/sysconfig/iptables 保存
service iptables save
- 6.所有信息的删除
iptables -F 删除所有的信息
二.iptables策略的增删改
1.监控策略
[[email protected] ~]# watch -n 1 iptables -nL 此读取有先后顺序的限制
2.策略的添加或删除
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT 在fliter 表里面写入输入的所有 22端口全部允许访问
iptables -t filter -A INPUT -p tcp --dport 22 -j REJECT 在 fliter表里面写入输入的所有22端口全部拒绝访问
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP 在fliter表里边写入所有的22端口全部丢弃,丢弃的状体下还是会一直访问
iptables -N loko 创建一个和INPUT同类型的名称为loko
iptables -E loko lomo 将loko改名为lomo
iptables -X lomo 删除lomo
iptables -D INPUT 3 删除指定策略
修改指定策略
iptables -R INPUT 2 -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP 修改策略为DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 输入的状态正在进行的或者已经进行的全部接受,当我是一个新的状态的时候。我这个主机第一次连接你,会传输慢点,当我第二次进入的时候,写入此条策略,我会加载的很快
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT 输入的状态为新的全部接受
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT 输入的状态为22端口的全部接受
iptables -A INPUT -m state --state NEW -i REJECT 输入的为新的全部拒绝
service iptables save 保存
iptables -nL 查看已经建立成功
iptables的地址转换
1.SNAT就是改变转发数据包的源地址
–to-source:
POSTROUTING:可以在这里定义进行源NAT的规 则,系统在决定了数据包的路由以后在执行该链中的规则。
(1).iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.110
(2).iptables -t nat -nL
2.DNAT就是改变转发数据包的目的地址
–to-dest:
PREROUTING:(外部访问内部)可以在这里定义进行 目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;
这里是引用
(1).iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j DNAT --to-dest 172.25.4.110
(2).iptables -t nat -nL