Linux iptables防火墙
1、Linux防火墙
- iptables防火墙,centos7版本之前是系统的默认防火墙
- firewalld防火墙,centos7版本之后的默认防火墙
- 都是基于Linux内核子系统netfilter
2、安装iptables服务端
yum -y install iptables-servicessystemctl start iptables
3、4表5链
-
每一张表作用不一样,表中存储链,链中存储规则
#表rawmanglenat #对数据包的源地址、目的地址、端口进行转换filter #是否放行对应数据包#链INPUT #入站OUTPUT #出站FORWARD #转发PREROUTING #路由前处理POSTROUTING #路由后处理 -
数据流处理过程
4、规则编写
-
如果只是入站、出站、转发只需要调整filter表中的链
-
如果需要进行NAT转换,需要调整NAT表
-
规则语法
iptables -t 表名 -I 链名 五元组条件 动作iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT #允许所有主机访问本机的TCP/80端口入站#链名需要大写、动作需要大写#不指定表名,默认filter表 -
举例
#查看规则,filteriptables -nLiptables -t nat -nLiptables -nL --line-numbers#添加入站规则,允许tcp/80入站iptables -I INPUT -p tcp --dport 80 -j ACCEPT#删除规则iptables -D INPUT 3#设置规则链的默认规则(默认情况下,如果规则链中没有任何规则,是允许所有的)iptables -P INPUT DROP #拒绝所有入站#保存规则到文件中iptables-save > /etc/sysconfig/iptables
5、SNAT(源地址转换)
-
一般是内网访问外网,内网主机是私网地址,无法在公网上进行使用,内网主机访问外网时需要在网络边界设备上进行SNAT转换,将内网主机的私网地址转换为公网地址,再访问外网主机
-
实验环境
#开启转发echo 1 > /proc/sys/net/ipv4/ip_forward#创建iptables的SNAT规则iptables -t nat -I POSTROUTING -s 192.168.10.0/24 -o ens36 -j SNAT --to-source 202.101.122.35#在iptables中允许转发iptables -I FORWARD -j ACCEPT
6、DNAT(目的地址转换)
-
一般是外网访问内网,外网主机是无法访问内网IP的,只能访问企业边界的外网IP,所以需要提前在企业边界的设备上添加DNAT映射表,将内网服务器的某个服务映射到边界设备外网IP的某个端口上,从而外网主机访问边界设备的外网IP就会被映射到内网主机的服务
-
实验环境
#开启转发#创建iptables的nat规则iptables -t nat -I PREROUTING -p tcp --dport 80 -d 202.101.122.35 -i ens36 -j DNAT --to-destination 192.168.10.10#允许iptables转发