• Linux防火墙入门:学会使用firewalld和iptables


    1 防火墙

    1.1 防火墙介绍

    防火墙就是过滤的表格,被记录在表格中的信息,才允许通过访问。
    在这里插入图片描述

    1.2 两种火墙策略

    iptables

    dnf install iptables-services -y
    systemctl disable --now firewalld 
    systemctl mask firewalld 
    systemctl enable --now iptables
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    firewalld

    dnf install firewalld -y
    systemctl disable --now iptables
    systemctl mask iptables
    systemctl enable --now firewalld
    
    • 1
    • 2
    • 3
    • 4

    需要注意的是在对一个策略加锁后,重新启用的时候要进行解锁

    systemctl unmask iptables 
    
    • 1

    2 iptables

    2.1 iptables策略的保存

    临时清空

    iptables -F # 该方法重启服务后会重新加载策略
    
    • 1

    在这里插入图片描述

    永久清空

    /etc/sysconfig/iptables # 火墙策略文件永久保存在这里
    
    • 1
    iptables -F
    service iptables save
    
    • 1
    • 2

    在这里插入图片描述

    2.2 iptables的使用

    2.2.1 查看-L

    iptables -nL
    iptables -t nat -nL # -t指定表的名称
    iptables -t mangle -nL # -n不做解析
    
    • 1
    • 2
    • 3

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

    2.2.2 添加-A

    在这里插入图片描述

    2.2.3 插入-I

    在这里插入图片描述

    2.2.4 修改-R

    2.2.5 删除-D

    在这里插入图片描述

    2.2.6 新建链-N、更改链名称-E、删除链-X

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

    2.2.7 更改默认规则-P

    在这里插入图片描述

    -p ##协议
    --dport ##目的地端口
    -s ##来源
    -j ##动作
    ACCEPT ##允许
    DROP ##丢弃
    REJECT ##拒绝
    SNAT ##源地址转换
    DNAT ##目的地地址转换
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.3 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 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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    2.4 iptables中NAT表的使用

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

    在这里插入图片描述

    3 firewalld

    3.1 开启firewalld

    systemctl disable --now iptables
    systemctl mask iptables 
    systemctl unmask firewalld
    systemctl enable --now firewalld
    
    • 1
    • 2
    • 3
    • 4

    3.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

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

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

    3.4 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 ##设定默认域
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3.4.1 基本规则

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

    3.4.2 高级规则

    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
    
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3.4.3 SNAT

    firewall-cmd --permanent --add-masquerade
    firewall-cmd --reload
    
    • 1
    • 2

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

    3.4.4 DNAT

    firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.30
    firewall-cmd --reloa
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    同样是Java程序员,年薪10W和35W的差别在哪?
    【零基础学QT】第九章 窗口美化QSS的使用
    秋招面/笔试题目集合——02
    java程序国际化[38]
    java计算机毕业设计bs架构实习管理系统源码+mysql数据库+系统+lw文档+部署
    节约软件开发成本,关键在这儿。
    uniapp 开发H5中适配底部安全区域不生效的解决方法
    Django Swagger文档库drf-spectacular
    平头哥造芯模式,正式跑通!
    React Context源码是怎么实现的呢
  • 原文地址:https://blog.csdn.net/weixin_43945111/article/details/134228896