第七章 LINUX中的火墙策略

火墙管理工具切换

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

firewalld

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

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

火墙的模块:/usr/lib/firwalld
火墙的配置:/etc/lib/fiewalld

 firewalld的管理命令

 firewall-cmd --state            ##查看火墙状态
firewall-cmd --get-active-zones ##查看当前火墙中生效的域

firewall-cmd --get-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.73 --zone=block ##指定数据来源访问指定域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.254.73 --zone=block ##删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens9 --zone=public ##删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens9 --zone=block     ##添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens9 --zone=public ##更改网络接口到指定域

 

 firewalld的高级规则

firewall-cmd --get-all-rules

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.73-p tcp --dport 80 -j ACCEPT

 firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.73 -p tcp --dport 80 -j ACCEPT

 firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.73-p tcp --dport 80 -j REJECT

  firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.73 -p tcp --dport 80 -j REJECT

 

.firewalld中的NAT

 nodeb能访问172.25.254.73的方法
在nodeb中操作:
ip route add default via 192.168.0.112
route -n    将192.168.0.112设置成网关
nodeb仍然ping不通172.25.254.73

原地址转换SNAT

在nodea中:
firewall-cmd --permanent --add-masquerade   打开地址伪装功能
firewall-cmd --reload
在nodeb 中可以ping通172.25.254.73       内网访问外网

 目的地地址转换DNAT=
在nodea 中操作

firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=192.168.0.212
firewall-cmd  --reload
当真机访问172.25.254.112时,直接访问的是1.1.1.212      外网访问内网

 

 

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  ##目的地端口  iptables -t filter INPUT 2 -s 172.25.254.112 -p tcp --dport 22 -j ACCEPT
    -s    ##来源
    -j    ##动作
       ACCEPT   ##允许
        DROP    ##丢弃
       REJECT   ##拒绝
        SNAT    ##源地址转换
        DNAT    ##目的地地址转换

-N             ##新建链            iptables -N name
-E             ##更改链名称        iptables -E name NAME
-X             ##删除链            iptables -X NAME
-D             ##删除规则          iptables -D INPUT 2
-I             ##插入规则          iptables -t filter -I INPUT 2 -s 172.25.254.212 -p tcp -j ACCEPT
-R             ##更改规则          iptables -R INPUT 1 -s 172.25.254.210 -p tcp -j ACCEPT
-P             ##更改默认规则       iptables -P INPUT DROP
数据包状态
RELATED       ##正在连接的
ESTABLISHED   ##建立过连接的
NEW           ##新的

iptables -nL
iptables -F  删除
systemctl restart iptables.service  重启服务设置的规则还在
如果想要彻底删除,其操作为:
iptables -F
service iptables save=/ iptables-save > /etc/sysconfig/iptables彻底删除

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW ! -s 172.25.254.73 -p tcp --dport 22 -j ACCEPT
ptables -A INPUT -m state --state NEW -j REJECT

 

 nat表中的dnat snat
 

snat
sysctl -a | grep ip_forward
如果net.ipv4.ip_forward =0,则在/etc/sysctl.conf中编辑内容
net.ipv4.ip_forward =1
sysctl -p
iptables -t nat -A POSTROUTING -o ens3 SNAT --to-source 172.25.254.112  将内网数据传到外网
dnat
iptables -t nat -A PRETROUTING -i ens3 -j DNAT --to-dest 192.168.0.212   将外网数据传到内网

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/gk12050802/article/details/121386183