Linux系统工程师3--7.Linux的火墙优化策略

目录

1.火墙介绍

2.火墙管理工具切换

3.火墙默认策略

4.firewalld

4.1firewalld的开启

 4.2关于firewalld的域

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

4.4firewalld的管理命令

4.5firewalld的高级规则

4.6 firewalld中的NAT

5. iptables 的使用

5.1火墙策略的永久保存

5.2 iptables命令

5.3iptables的优化策略

 5.4iptables里的NAT


1.火墙介绍

1.netfilter
2.iptables
3.iptables | firewalld        #iptables        firewalld        同时只能用一个

2.火墙管理工具切换

在rhel8中默认使用的是firewalld

firewalld----->iptables                               #firewalld切换为iptables   

dnf install iptables-services -y                     #安装iptables
systemctl disable --now firewalld                 #停用firewalld
systemctl mask firewalld                            #屏蔽服务,让它不能启动

systemctl unmask iptables                           #解除iptables的屏蔽

systemctl enable --now iptables                  #开启iptables

 iptales -------> fiewalld                           #firewalld切换为iptables
dnf install firewalld -y                               #安装firewalld
systemctl disable --now  iptables               #停用iptables                 
systemctl mask iptables                           #屏蔽服务,让它不能启动

systemctl unmask firewalld                         #解除i火墙的屏蔽

systemctl enable --now firewalld               ##开启firewalld

 

3.火墙默认策略

默认策略中的5条链


input                  #输入
output                #输出
forward              #转发
postrouting         #路由之后
prerouting          #路由之前

默认的3张表

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

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

4.firewalld


4.1firewalld的开启

dnf install firewall-config-0.8.0-4.e18.noarch -y          #防火墙图形控制安装
firewall-config                                                             #图形防火墙的开启


systemctl disable --now iptables                               #关闭iptables
systemctl mask iptables                                           #屏蔽iptables,不能启动


systemctl unmask firewalld                                       #显示服务
systemctl enable --now firewalld                               #启用firewalld

 4.2关于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

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

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

4.4firewalld的管理命令

firewall-cmd --state                                    #查看火墙状态
firewall-cmd --get-active-zones                  #查看当前火墙中生效的域
firewall-cmd --get-default-zone                  #查看默认域
firewall-cmd --list-all                                   #查看默认域中的火墙策略
firewall-cmd --list-all --zone=block             #查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted     #设定默认域,设定后就算http服务没有添加到防火墙中也可以使用

 

 

firewall-cmd --get-services                       #查看所有可以设定的服务
firewall-cmd --permanent --remove-service=http                #移除服务
firewall-cmd --reload

 

 

firewall-cmd --permanent --add-source=172.25.254.21 --zone=block         #指定21的数据来源访问指定域block,拒绝来自21的所有数据
firewall-cmd --reload
firewall-cmd  --remove-source=172.25.254.21 --zone=block    #删除

firewall-cmd  --remove-interface=ens3 --zone=public               #删除指定域public的网络接口ens3
firewall-cmd  --add-interface=ens3 --zone=block                    #添加指定域block的网络接口ens3
firewall-cmd  --change-interface=ens3 --zone=trusted            #更改网络接口ens3到指定域trusted

 

 

4.5firewalld的高级规则

firewall-cmd --direct --get-all-rules                #查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.21 -p tcp --dport 80  -j REJECT        #设置filter表INPUT链中的第一条规则,拒绝指定IP21的80端口的网络数据
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 ! -s 172.25.254.21 -p tcp --dport 80  -j REJECT        #删除指定规则
 

filter    表格
dport    目的端口  
s    指定ip
1    第一条规则
p    协议
!    除了
REJECT    拒绝

 

测试:
21主机 curl http://172.25.254.121    ,连不通

4.6 firewalld中的NAT

单网卡设置双网卡服务器的1网段的网关后,可以ping通服务器172网段的IP,但是不能ping通172网段的其他主机

 

 

 

SNAT
firewall-cmd --permanent --add-masquerade          #双网卡服务器设置地址伪装
firewall-cmd --reload
双网卡服务器设置地址伪装,单网卡可以ping和ssh远程连接到别的主机,被连接的主机w -i会显示是服务器连接,而是不是单网卡主机连接

 

 

DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=1.1.1.221
firewall-cmd --reload
别的主机连接服务器,服务器会将22端口的网络数据转发至设定的ip221

 

5. iptables 的使用

5.1火墙策略的永久保存


/etc/sysconfig/iptables                                #iptables 策略记录文件

两种保存方法:

iptales-save > /etc/sysconfig/iptables          

service iptables save                                        

5.2 iptables命令

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

                        -F                #清空,重启服务会出现

iptables -t filter -A INPUT -j ACCEPT                  #filter接收所有设备输入

iptables -I INPUT -s 172.25.254.21 -j REJECT     #拒绝21输入,策略位置会影响结果,命令的读取是由上往下,例如设置filter允许INPUT所有输入为第一位就不会读取这条命。

可以控制插入命令的顺序,默认第一位,如果要改变INPUT 后面加上数字INPUT 2

iptables -D IN PUT 1                                         #删除NPUT表里的第一个策略

 

 

 

 

 

 

5.3iptables的优化策略

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #只接收建立过连接的和正在连接的数据和请求

iptables -A INPUT -m state --state NEW -i lo -j ACCEPT                              #接收来自新的lo回环接口的数据和请求

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT          #接收来自新的22端口的数据和请求

ptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT          #接收来自新的53(dns)端口的数据和请求

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT          #接收来自新的80端口的数据和请求

less /etc/services   #查看所有服务的端口号

iptables -A INPUT -m state --state NEW -j REJECT                                 #拒绝所有新的数据的请求

iptales-save > /etc/sysconfig/iptables   

 5.4iptables里的NAT

iptables -t nat -nL        #查看nat表及策略

SNAT

iptables -t nat -A POSTROUTING -o ens3 -j SNAT --to-source 172.25.254.121  #设置地址伪装,将ens3接口的流出数据的IP修改为121
sysctl -a | grep ip_forward       #查看服务ip_forward是否启动
vim /etc/sysctl.conf                #1是启动,如果是0则是未启动需手动输入
net.ipv4.ip_forward = 1
sysctl -p

 

DNAT
iptables -t nat -A PREROUTING -i ens3 -j DNAT --to-dest 1.1.1.221    #设置DNAT,服务器把对ens3的访问转发到1.1.1.221

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值