Linux中的火墙策略优化

实验环境设置

单网卡主机(内网)172.1.36.101
Linux中的火墙策略优化
双网卡主机(外网)172.1.36.201
Linux中的火墙策略优化

火墙切换方式

在rhel8中默认的火墙是firewalld

firewalld -----> iptables

dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
systemctl unmask iptables     第一次安装时不需使用此命令。若之前使用mask命令锁定过iptables,需用此命令解锁。
systemctl enable --now iptables
Linux中的火墙策略优化

iptables ------> firewalld

dnf install firewalld -y 安装firewalld(rhel8中默认已安装)
systemctl stop iptables.service
systemctl disable iptables
systemctl mask iptables
systemctl unmask firewalld
systemctl enable --now firewalld
Linux中的火墙策略优化

iptables的使用

火墙策略的永久保存·

iptables-save > /etc/sysconfig/iptables
service iptables save
Linux中的火墙策略优化
Linux中的火墙策略优化

iptables中的常用命令

iptables
-t     ##指定表名称(默认表格为filter)
Linux中的火墙策略优化
-n     ##不做解析
-L     ##查看
Linux中的火墙策略优化 -A     ##添加策略
-p     ##协议
–dport   ##目的地端口
-s     ##来源
Linux中的火墙策略优化
-j       ##动作
ACCEPT   ##允许
DROP    ##丢弃
REJECT   ##拒绝
SNAT    ##源地址转换
DNAT    ##目的地地址转换

-N     ##新建链
Linux中的火墙策略优化
-E       ##更改链名称(将上面中的zd更名为zen)
Linux中的火墙策略优化
-X       ##删除链(将上面中的zen删除)
Linux中的火墙策略优化
-D    ##删除规则(将第一行的规则删除)
Linux中的火墙策略优化
-I       ##插入规则
Linux中的火墙策略优化
Linux中的火墙策略优化
-R        ##更改规则(默认规则只能为ACCEPT或DROP,修改为其它规则会失败)

Linux中的火墙策略优化

iptables策略优化

三种数据状态:
ESTABLISHED    正在建立连接的
RELATED      之前连接过的
NEW        从未连接的
火墙优化部署:
允许ESTABLISHED与RELATED状态的数据连接:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许回环接口中NEW状态的数据连接:
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
允许状态为NEW的数据访问80端口:
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
允许172.1.36.101中状态为NEW的数据访问22端口:
iptables -A INPUT -s 172.1.36.101 -p tcp --dport 22 -m state --state NEW -j ACCEPT
其余访问一概拒绝:
iptables -A INPUT -j REJECT
Linux中的火墙策略优化

SNAT的使用

Firewalld的使用

1.关于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
Linux中的火墙策略优化
firewall-cmd --set-default-zone=trusted 将域修改为trusted
Linux中的火墙策略优化

2.firewalld的设定原理和数据存储

/etc/firewalld/   火墙配置目录
Linux中的火墙策略优化
cd zones/
Linux中的火墙策略优化
vim public.xml    火墙中允许的服务都在此文件中,可通过编辑此文件添加服务
Linux中的火墙策略优化
firewall-cmd --permanent --add-service=http
Linux中的火墙策略优化
vim trusted.xml    此文件为添加新服务后自动生成的文件
Linux中的火墙策略优化
/lib/firewalld/    火墙模块目录
Linux中的火墙策略优化

3.firewalld的管理命令

firewall-cmd --state         查看火墙状态
firewall-cmd --get-active-zones    查看当前火墙中生效的域
firewall-cmd --get-default-zone-zones 查看默认域
Linux中的火墙策略优化
firewall-cmd --list-all         查看默认域中的火墙策略
Linux中的火墙策略优化
firewall-cmd --list-all --zone=work    查看指定域中的火墙策略
Linux中的火墙策略优化
firewall-cmd --set-default-zone=trusted   将域修改为trusted
Linux中的火墙策略优化
firewall-cmd --get-services     查看所有可以设定的服务
Linux中的火墙策略优化
firewall-cmd --permanent --remove-service=cockpit   永久移除服务
Linux中的火墙策略优化
firewall-cmd --permanent --add-source=172.1.36.0/24 --zone=block   指定数据来源访问指定域(此处将来源放入block域中,使得172网段无法访问本机)
Linux中的火墙策略优化
firewall-cmd --permanent --remove-source=172.1.36.0/24 --zone=block   删除指定域中的数据来源

Linux中的火墙策略优化
firewall-cmd --remove-interface=ens160 --zone=public    删除指定域的网络接口
Linux中的火墙策略优化
firewall-cmd --add-interface=ens160 --zone=block     添加指定域的网络接口
Linux中的火墙策略优化
firewall-cmd --change-interface=ens160 --zone=public  更改网络接口到指定域
Linux中的火墙策略优化

4.firewalld的高级规则

firewall-cmd --direct --get-all-rules    查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.1.36.201 -j REJECT   添加高级规则,使得201无法访问本机
Linux中的火墙策略优化
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.1.36.201 -j REJECT 删除此高级规则
Linux中的火墙策略优化

5.firewalld中的NAT

SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
Linux中的火墙策略优化
DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.1.36.101
firewall-cmd --reload
Linux中的火墙策略优化