Optimización de la estrategia de firewall en Linux (iptables y firewall)

Optimización de la estrategia de firewall en Linux

1. Introducción a Fire Wall:

1.netfilter: el nombre de la tabla que registra la política del firewall 2.iptables:
la forma de escribir netfilter
3.iptables | firewalld: las herramientas de administración utilizadas son iptables y firewalld

2. Interruptor de la herramienta de administración de firewall:

在rhel8中默认使用的是firewalld

firewalld----->iptables

dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld 
systemctl mask firewalld            锁定firewalld不被其他服务篡改状态;使用unmask解锁;
systemctl enable --now iptables

iptales -------> fiewalld 
dnf install firewalld -y
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables       
systemctl enable --now firewalld

3. Uso de iptables:

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

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


4.Estrategia predeterminada del firewall de iptables:

Nota: La estrategia de firewall de iptables se empareja de arriba a abajo. Cuando lea la estrategia 1 que coincide con el servicio, no continuará leyendo la estrategia posterior relacionada con el servicio.
Como se muestra en la figura: el servicio ssh se ha cambiado en la primera estrategia de entrada El acceso está denegado, por lo que la segunda política no es válida. Si desea que el servicio ssh pase a través del firewall pero otros servicios no pueden, debe cambiar las posiciones de la política 1, 2

Inserte la descripción de la imagen aquí

El uso básico de iptables:

默认策略中的5条链
input			输入
output			输出
forward			转发
postrouting		路由之后
prerouting		路由之前


默认的3张表

filter		经过本机内核的数据(input output forward)
nat		    不经过内核的数据(postrouting,prerouting,input,output)
mangle		当filter和nat表不够用时使用(input output forward postrouting,prerouting,)

iptables命令
iptables
	-t		##指定表名称
	-n		##不做地址解析
	-L		##查看
	-A		##添加策略
	-p		##协议
	--dport		##目的地端口
	-s		##来源
	-m state --state  ##指定数据包状态	
	-j		##动作
	ACCEPT	##允许
	DROP	##丢弃
	REJECT	##拒绝
	SNAT	##源地址转换
	DNAT	##目的地地址转换
	-N		##新建链
	-E		##更改链名称
	-X		##删除链
	-D		##删除规则
	-I		##插入规则
	-R		##更改规则
	-P		##更改默认规则
	-F      ##刷新表的信息(清空,重启服务后会恢复)

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

(1)设定建立过连接和正在建立连接的数据包的火墙策略为允许:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(2)设定本机的回环接口允许新的数据包:
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT    ##lo 回环接口 表示只有自身主机
(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
(5)对于剩余其他新的数据包添加火墙策略设定为拒绝:
ptables -A INPUT -m state --state NEW -j REJECT

iptables的策略保存:
service iptables  save   保存iptables中现存的策略(更改/etc/sysconfig/iptables 文件)
iptales-save > /etc/sysconfig/iptables  读取火墙策略信息并导入iptables策略记录文件


nat表中的dnat snat

snat (源地址转换-->postrouting)
iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 172.25.254.54 
将传入数据的ip地址(任意,如 1.1.1.1)伪装成地址 172.25.254.54  输出

dnat (目的地址转换-->prerouting)
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 1.1.1.200
将原本的目的地地址(任意,如 172.25.254.54)伪装成1.1.1.200 

Función de enrutamiento del kernel:

内核路由功能:sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1  表示内核路由功能开启;
功能未开启时编辑:/etc/sysctl.conf 在最后添上net.ipv4.ip_forward = 1 ;

5.firewalld:
método de gestión de firewalld: paquete de datos xml: / lib / firewalld / services

5-1: Firewalld abierto:

systemctl stop iptables 
systemctl disable iptables
systemctl mask iptables 

systemctl unmask firewalld
systemctl enable --now firewalld 

5-2: Acerca del dominio de 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

5-3: Acerca de los principios de configuración de Firewall y el almacenamiento de datos:

Si desea agregar un servicio que no está en el firewall, debe escribir un nuevo paquete de datos del paquete de servicios en / lib / firewalld / services (puede copiar otros servicios):

Inserte la descripción de la imagen aquí

/etc/firewalld	        	火墙配置目录
/lib/firewalld/services	    火墙模块目录
--permanent     只更改/etc/firewalld/zones文件,表示永久设定,需要重启服务后生效

5-4: comandos de administración de 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-5: Reglas avanzadas de Firewalld (directo):

firewall-cmd --direct --get-all-rules	##查看高级规则 
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.250 -p tcp --dport 22  -j REJECT 

5-6: NAT en firewalld:

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

Supongo que te gusta

Origin blog.csdn.net/lb1331/article/details/110948985
Recomendado
Clasificación