Linux火墙策略的管理以及火墙的介绍

本文介绍了Linux火墙的基本概念,详细阐述了firewalld的管理方式,包括基础命令、三张表和五条链的设置,以及firewalld的高级策略。同时,探讨了iptables的使用,包括基础命令、优化技巧和nat模式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言


一、火墙介绍以及实验环境设定

1.火墙介绍

位于内部网络以及外部网络之间的防御屏障,主要保护服务器的安全
1. netfilter
2. iptables
3. iptables|firewalld

2.实验环境设定

双网卡主机
vim /etc/sysconfig/network-scripts/ifcfg-enp1s0
NAME=enp1s0
DEVICE=enp1s0
IPADDR=172.25.0.190
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
GATEWAY=172.25.0.90
vim /etc/sysconfig/network-scripts/ifcfg-enp7s0
NAME=enp7s0
IPADDR=172.25.254.190
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
DEVICE=enp7s0
单网卡主机
vim /etc/sysconfig/network-scripts/ifcfg-enp1s0
NAME=enp1s0
DEVICE=enp1s0
IPADDR=172.25.254.191
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
GATEWAY=172.25.0.90

3.火墙管理工具的切换

systemctl disabled --now firewalld.server
systemctl mask firewalld.server
systemctl umask iptables
systemctl enable --now iptables
##不同的火墙管理工具必须进行服务的锁定否则会互相进行影响

二、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

火墙中默认的域都在配置文件中进行修改,重启后可以使得其生效

vim /etc/firewalld/firewalld.conf
6 DefaultZone=public
vim /lib/firewalld/zones/public.xml			#.xml即超文本标记语言
  1 <?xml version="1.0" encoding="utf-8"?>
  2 <zone>
  3   <short>Public</short>
  4   <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  5   <service name="ssh"/>
  6   <service name="dhcpv6-client"/>
  7   <service name="cockpit"/>
  8   <service name="dns"/>
  9   <service name="http"/>		#允许的服务内容在其中进行添加即可
 10 </zone>

在这里插入图片描述在这里插入图片描述添加服务后重启火墙即可生效

vim /lib/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Work</short>
  <description>For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="cockpit"/>
  <service name="http"/>
</zone>

在这里插入图片描述
在这里插入图片描述

firewall-cmd --get-default-zone								#查看默认域
firewall-cmd --set-default-zone=block						#更改默认域为block
firewall-cmd --list-all										#查看默认域的火墙策略
firewall-cmd --list-all --zone=work							#查看指定域的火墙规则
firewall-cmd --get-services									#查看所有可允许的服务
firewall-cmd --permanent --remove-service=http --zone=work 	#永久移除指定域中的服务
firewall-cmd --permanent --remove-service=http 				#永久移除当前域中的服务
firewall-cmd --reload										#加载火墙策略使其生效
firewall-cmd --permanent --add-source=172.25.0.91/24 --zone=block
															#添加指定的数据来源到某个域
firewall-cmd --permanent --remove-source=172.25.0.91/24 --zone=block
															#删除指定来源
firewall-cmd --permanent --change-source=172.25.0.91/24 --zone=work
															#更改指定来源到另外一个域中
firewall-cmd --permanent --list-sources						#查看已经写入的指定数据来源
firewall-cmd --permanent --add-interface=enp1s0 --zone=block
															#添加网络接口到block
firewall-cmd --permanent --remove-interface=enp1s0 --zone=block
															#删除网络接口
firewall-cmd --permanent --change-interface=enp1s0 --zone=work
															#更改网络接口到指定的域上

2.火墙中的三张表和五条链

默认的五条链
input				#输入
output				#输出
forward				#转发的请求需要转发的
postrouting			#路由之前的数据
prerouting			#路由之后的数据
系统默认的三张表
filter				#经过内核的数据表
nat					#不经过内核的数据表
mangle				#当filter和nat表不够时可以进行补充策略
filter表
input									#记录所有访问内核的输入
output									#记录经过内核的输出
forward									#记录所有需要本机转发的数据,数据在不会经过内核处理但是NAT的时候会使用内核
nat表
input									#不访问内核的输入策略
output									#不妨问内核的输出策略
postrouting								#路由之前的数据
perouting								#路由之后的数据

3.firewalld高级策略

filter表

firewall-cmd --direct --get-all-rules				#查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.0.91 -p tcp -j REJECT											#-s指定IP-p指定协议-j指定状态
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 '!' -s 172.25.0.91 -p tcp -j REJECT										#删除规则

nat表

firewall-cmd --permanent --add-masquerade			#开启地址转换
firewall-cmd --permanent --add-forward-port=port=22:poroto=tcp:toaddr=172.25.0.190			#开启源地址转换

三、iptable对火墙的管理

1.iptables基础命令

iptables参数解释
-A添加规则
-L查看规则
-n不做解析
-t指定表
-p指定协议
–dport指定目的地端口
-s指定数据来源为那个IP
-j指定动作其中,REJECT拒绝,SNAT源地址转换,DNAT目的地地址转换,ACCEPT允许
-N新建表
-E更新连接名称
-X删除连接名称
-D删除规则
-I插入规则
-R更改规则
-P更改默认规则
-F刷新火墙数据
数据包类型解释
RELATED建立过连接的
ESTABLISHED正在建立连接的
NEW新的为建立过连接的
iptables -A INPUT -t filter -j REJECT -s 1.1.1.91 -p tcp --dport 22
iptables -D INPUT 6
iptables -I INPUT 1 -t filter -p tcp -s 1.1.1.91 --dport 22 -j DROP
iptables -R INPUT 1 -t filter -p tcp --dport 80 -s 172.25.254.90 -j REJECT
iptables -N westos								#新建链
iptables -E westos westosa						#更改链的名称
iptables -X westosa								#删除链
iptables-save > /etc/sysconfig/iptables			#永久保存用户的火墙设定
service iptables save							#也可保存设定

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2.iptable中的优化

iptables -I INPUT 2 -m state --state RELATED,ESTABLISHED -j ACCEPT			#连接过的或是正在连接的可直接通过火墙
iptables -I INPUT 3 -m state --state NEW -i lo -j ACCEPT					#本地回环接口可以直接通过火墙
service iptables save														#保存火墙策略

3.iptables中的nat模式

iptables -t nat -A POSTROUTING -o enp7s0 -j SNAT --to-source 172.25.254.190		#开启地址转换功能使得其可以进行地址转换
iptables -t nat -A PREROUTING -i enp7s0 -j DNAT --to-dest 172.25.254.90		#源地址转换使得其可以进行源地址的转换

在这里插入图片描述

在这里插入图片描述


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值