火墙策略优化
- 一、火墙介绍
- 二、火墙管理工具切换
- 三、iptables 的使用
- 四、火墙策略
- 1.默认策略中的5条链
- 2.默认的3张表
- 3.iptables命令
- 五.nat表中的dnat snat
- 1.SNAT
- 2.DNAT:
- 六.firewalld
- 1. firewalld的开启
- 2.firewalld的参数管理
- 3.firewalld的高级规则
- 4.firewalld中的NAT
一、火墙介绍
1.netfilter
2.iptables
3.iptables | firewalld
二、火墙管理工具切换
在rhel8中默认使用的是firewalld
firewalld----->iptables
dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
systemctl enable --now iptables
iptales -------> fiewalld
dnf install firewalld -y
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld
三、iptables 的使用
火墙策略的永久保存
/etc/sysconfig/iptables ##iptables 策略记录文件
永久保存策略
iptales-save > /etc/sysconfig/iptables
service iptables save
四、火墙策略
1.默认策略中的5条链
input 输入
output 输出
forward 转发
postrouting 路由之后
prerouting 路由之前
2.默认的3张表
filter
经过本机内核的数据(input output forward)
nat
不经过内核的数据(postrouting,prerouting,input,output)
mangle
当filter和nat表不够用时使用(input output forward ,postrouting,prerouting,)
3.iptables命令
-t 指定表名称
-n 不做解析
-L 查看
-A 添加策略
-p 协议
--dport
目的地端口
-s 来源
-j 动作
ACCEPT 允许
DROP 丢弃
REJECT 拒绝
SNAT 源地址转换
DNAT 目的地地址转换
-N 新建链
-E 更改链地址
-X 删除链
-D 删除规则
-I 插入规则
-R 更改规则
-P 更改默认规则
数据包状态
RELATED 建立过连接的
ESTABLISHED 正在连接的
NEW 新的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 所有建立过连接的或者正在连接的数据包都被接受
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT 属于自身回环的新数据包都被接受
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT
ptables -A INPUT -m state --state NEW -j REJECT
service iptables save
**
五.nat表中的dnat snat
snat
iptables -t nat -A POSTROUTING -o enp1s0 -j SNAT --to-source 172.25.254.101
dnat
iptables -t nat -A PREROUTING -i enp1s0 -j DNAT --to-dest 1.1.1.201
1.SNAT
实验环境:
server:双网卡
client:单网卡172.25.0.230
2.DNAT:
实验环境:网卡配置和上步实验相同
iptables -t nat -A PREROUTING -i enp1s0 -j DNAT --to-dest 1.1.1.201
测试:
使用真机ping 1网段
六.firewalld
1. firewalld的开启
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl unmask firewalld
systemctl enable --now firewalld
关于firewalld的域
trusted 接受所有的网络连接
home 用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client
work 工作网络 ssh ipp-client dhcp-client
public 公共网络 ssh dhcp-client
dmz 军级网络 ssh
block 拒绝所有
drop 丢弃 所有数据全部丢弃无任何回复
internal 内部网络 ssh mdns ipp-client samba-client dhcp-client
external ipv4网络地址伪装转发 sshd
关于firewalld的设定原理及数据存储
/etc/firewalld 火墙配置目录
/lib/firewalld 火墙模块目录
2.firewalld的参数管理
firewall-cmd --state 查看火墙状态
firewall-cmd --get-active-zones 查看当前火墙中生效的域
firewall-cmd --get-default-zone 查看默认域
firewall-cmd --list-all 查看默认域中的火墙策略
firewall-cmd --list-all --zone=work 查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted 设定默认域
firewall-cmd --get-services 查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit 移除服务
firewall-cmd --reload
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block 指定数据来源访问指定域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block 删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public 删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block 添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public 更改网络接口到指定域
3.firewalld的高级规则
实验时要把http加到火墙服务里面
firewall-cmd --direct --get-all-rules 查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.1 -p tcp --dport 80 -j REJECT 不能直接写允许,所以拒绝所有人的形式允许172.25.254.1一个
**除了**
curl http://172.25.254.101
4.firewalld中的NAT
实现的功能和iptables一样:
SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=1.1.1.201
firewall-cmd --reload