系统相关
首页 > 系统相关> > iptables+firewalld火墙策略优化

iptables+firewalld火墙策略优化

作者:互联网

iptables+firewalld火墙策略优化

1.火墙介绍

2.火墙管理工具切换

在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

3. iptables 的使用

#火墙策略的永久保存#
/etc/sysconfig/iptables ##iptables 策略记录文件

永久保存策略
iptales-save > /etc/sysconfig/iptables
service iptables save

4.火墙默认策略

iptables命令
iptables
	-t		##指定表名称
	-n		##不做解析
	-L		##查看
	-A		##添加策略
	-p		##协议
	--dport		##目的地端口
	-s		##来源
	-j		##动作
		ACCEPT	##允许
		DROP	##丢弃
		REJECT	##拒绝
		SNAT	##源地址转换
		DNAT	##目的地地址转换
	-N		##新建链
	-E		##更改链名称
	-X		##删除链
	-D		##删除规则
	-I		##插入规则
	-R		##更改规则
	-P		##更改默认规则

数据包状态
RELATED ##建立过连接的
ESTABLISHED ##正在连接的
NEW ##新的

[root@node1 named]# iptables  -nL  ##默认是filter表 n表示不做解析
[root@node1 named]# iptables -t nat -nL
[root@node1 named]# iptables -t mangle -nL
[root@node1 named]# iptables -t filter -L
[root@node1 named]# vim /etc/sysconfig/iptables
[root@node1 named]# service iptables save
[root@node1 named]# iptables -F    ##清理 
[root@node1 named]# service iptables save  ##永久清理
[root@node1 named]# systemctl restart iptables.service 
[root@node1 named]# iptables -nL

[root@node1 network-scripts]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
[root@node1 network-scripts]# iptables -A INPUT -j REJECT
[root@node1 network-scripts]# iptables -nL
[root@node1 network-scripts]# iptables -D  INPUT 2 ##删除第2条
[root@node1 network-scripts]# iptables -I  INPUT 2 -p tcp --dport 22 -j ACCEPT  ##ping不通 但是ssh能连接

[root@node1 network-scripts]# iptables -R INPUT 2 ! -s 172.25.254.250 -p  tcp --dport 22 -j ACCEPT  ##不允许250访问
[root@node1 network-scripts]# iptables -N westos  ##新建一个链
[root@node1 network-scripts]# iptables -E westos REDHAT  ##更改链名称
[root@node1 network-scripts]# iptables -E REDHAT westos
[root@node1 network-scripts]# iptables -X westos   ##删除
[root@node1 network-scripts]# iptables -P INPUT  DROP
[root@node1 network-scripts]# iptables -P INPUT ACCEPT  ##更改默认规则
[root@node1 named]# iptables -nL
[root@node1 named]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@node1 named]# iptables -A INPUT -i lo -m state --state NEW  -j ACCEPT
[root@node1 named]# iptables -A INPUT -p tcp --dport 22 -m state --state NEW  -j ACCEPT  ##dns53  httpd 80 sshd 22 
[root@node1 named]# iptables -A INPUT -p tcp --dport 80 -m state --state NEW  -j ACCEPT  ##
[root@node1 named]# iptables -A INPUT -m state --state NEW  -j ACCEPT
[root@node1 named]# iptables -nL
[root@node1 named]# iptables -D INPUT 5
[root@node1 named]# iptables -A INPUT -m state --state NEW  -j REJECT
[root@node1 named]# iptables -nL
1.设定建立和正在连接的数据包的火墙策略为允许
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
2.设定本机的回环接口允许新的数据包
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
3.对于新的指定服务的数据包添加火墙策略:设定为允许
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
4.添加火墙策略。设定除指定ip的所有主机都可以进行的服务
iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -j REJECT
service iptables  save  %火墙策略永久保存
注意:iptables命令添加策略时优先级是从上至下

nat表中的dnat snat

snat
iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20 ##外网

dnat
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30 ## 内网

firewalld

1 firewalld的开启

systemctl stop iptables 
systemctl disable iptables
systemctl mask iptables 

systemctl unmask firewalld
systemctl enable --now firewalld 

2.关于firewalld的域

[root@node1 ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1

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

3.关于firewalld的设定原理及数据存储

/etc/firewalld ##火墙配置目录
/lib/firewalld ##火墙模块目录

4. 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 ##更改网络接口到指定域

5. firewalld的高级规则

firewall-cmd --direct --get-all-rules	##查看高级规则 
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.250 -p tcp --dport 22  -j REJECT 
##设定只有172.25.254.250主机可以连接本机。

6.firewalld中的NAT

SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload 

DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.30
firewall-cmd --reload
[root@node1 firewalld]# firewall-cmd --permanent  --direct  --get-all-rules 
[root@node1 firewalld]# firewall-cmd --permanent  --direct  --add-rule ipv4 filter INPUT 1 -s 172.25.254.250 -p tcp --dport 22 -j REJECT   ##250 ssh no  
[root@node1 firewalld]# firewall-cmd --reload
[root@node1 firewalld]# firewall-cmd --direct  --get-all-rules
[root@node1 firewalld]# firewall-cmd --list-all
[root@node1 firewalld]# firewall-cmd --permanent  --direct  --remove-rule ipv4 filter INPUT 1 -s 172.25.254.250 -p tcp --dport 22 -j REJECT
[root@node1 firewalld]# firewall-cmd --reload
[root@node1 firewalld]# firewall-cmd  --direct  --get-all-rules

[root@node1 firewalld]# firewall-cmd --permanent  --add-forward-port=port=22:proto=tcp:toaddr=1.1.1.212:toport=22 ##目的地址转换   
[root@node1 firewalld]# firewall-cmd --reload
[root@node1 firewalld]# firewall-cmd  --list-all
[root@node1 firewalld]# firewall-cmd --permanent --add-masquerade  ##原地址转换 
[root@node1 firewalld]# firewall-cmd --reload
[root@node1 firewalld]# firewall-cmd  --list-all

补充

Cockpit 是红帽开发的网页版图像化服务管理工具,优点是无需中间层,且可以管理多种服务。

根据其项目主站描述,Cockpit 有如下特点:
    从易用性考虑设计,方便管理人员使用,而不是仅仅的终端命令按钮化。
    不会打乱已有终端或脚本服务配置,通过 Cockpit 启用的服务可以在终端停止,脚本运行的错误亦会被 Cockpit 捕获。
    支持一次性管理多个服务,实现自动化和批处理。



标签:iptables,--,firewalld,##,node1,火墙,root
来源: https://blog.csdn.net/qq_45090453/article/details/110739466