> 文章列表 > 8_Linux 系统中的防火墙策略优化

8_Linux 系统中的防火墙策略优化

8_Linux 系统中的防火墙策略优化

8_Linux 系统中的防火墙策略优化

  • 1、火墙介绍
  • 2、火墙管理工具切换
  • 3、 iptables 的使用
  • 4、火墙默认策略
  • 5、firewalld
    • 1. firewalld的开启
    • 2. 关于firewalld的域
    • 3. 关于firewalld的设定原理及数据存储
    • 4. firewalld的管理命令
    • 5. firewalld的高级规则
    • 6. firewalld中的NAT

1、火墙介绍

  • 1.netfilter
  • 2.iptables
  • 3.iptables|firewalld

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、火墙默认策略

  • 默认策略中的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		##来源-j		##动作ACCEPT	##允许DROP	##丢弃REJECT	##拒绝SNAT	##源地址转换DNAT	##目的地地址转换-N		##新建链-E		##更改链名称-X		##删除链-D		##删除规则-I		##插入规则-R		##更改规则-P		##更改默认规则
    
  • 数据包状态

    数据包状态 含义
    RELATED 建立过连接的
    ESTABLISHED 正在连接的
    NEW 新的
    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 443 -j ACCEPT
    iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
    iptables -A INPUT -m state --state NEW ! -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT
    ptables -A INPUT -m state --state NEW -j REJECT
    service iptables  save
    
  • nat表中的dnat snat

    snat:源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。

    dnat:目的地址转换的作用是将一组本地内部的地址映射到一组全球地址。通常来说,合法地址的数量比起本地内部的地址数量来要少得多。RFC1918中的地址保留可以用地址重叠的方式来达到。当一个内部主机第一次放出的数据包通过防火墙时,动态NAT的实现方式与静态NAT相同,然后这次NAT就以表的形式保留在防火墙中。除非由于某种个原因会引起这次NAT的结束,否则这次NAT就一直保留在防火墙中。引起NAT结束最常见的原因就是发出连接的主机在预定的时间内一直没有响应,这时空闲计时器就会从表中删除该主机的NAT。

    • snat
    snat
    iptable -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.0.20
    
    • dnat
    dnat
    iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30
    

5、firewalld

1. firewalld的开启

    1. firewalld 的开启
    systemctl stop iptables 
    systemctl disable iptables
    systemctl mask iptables systemctl unmask firewalld
    systemctl enable --now firewalld 
    

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

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

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

    路径 含义
    /etc/firewalld 火墙配置目录
    /lib/firewalld 火墙模块目录

4. firewalld的管理命令

  • 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的高级规则

  • 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 
    

6. firewalld中的NAT

  • SANT

    ## SNAT
    firewall-cmd --permanent --add-masquerade
    firewall-cmd --reload
    
  • DNAT

    ## DNAT
    firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.30
    firewall-cmd --reload