第八章 iptables 与firewalld 防火墙 第8天 7月27日

  • iptables实际上也只是防火墙的配置工具而已。实际上,一个服务,如果可以称的上分析过滤流量,那么就可以称的上为防火墙。
    • iptables和内核的netfilter 网络过滤器来进行处理。
    • 基于的甄别信息?
      • 源目地址
      • 端口号
      • 协议
      • 应用
    • firewalld 交给内核层面的nftables包过滤框架来处理。
  • 策略以及规则链
    • 策略是由一条条规则组成的。
    • 规则链是一条条规则从上往下形成链条。防火墙识别规则从上往下识别,只匹配第一条符合的规则,其余放弃。
    • 两种基本策略。
      • 全部允许,就需要配置黑名单。
      • 全部拒绝,就需要配置白名单。
    • DROP和REJECT的区别。
      • DROP:直接抛弃,不返回相应。
      • REJECT:返回拒绝信息。
  • 防火墙根据规则链的不同处理包的方法如下
    • 在进行路由选择前处理数据包(PREROUTING);
    • 处理流入的数据包(INPUT);
    • 处理流出的数据包(OUTPUT);
    • 处理转发的数据包(FORWARD);
    • 在进行路由选择后处理数据包(POSTROUTING)。
  • Input规则链是最需要被控制的。
    • 当然在当前形式下,流出的包控制也很重要。
  • 包除了被防火墙识别外,还可以别防火墙操作。
    • Accept 接受
    • Reject 拒绝并回复
    • Drop 直接丢弃包
    • Log 记录日志信息
  • iptable的基本命令参数
    • 什么是四表五链?
    • iptables可以根据以下信息来进行匹配
      • 源地址
      • 目的地址
      • 传输协议
      • 服务类型
    • 防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。
  • 使用的基本命令
    • iptables -L 显示已有的防火墙规则链
    • iptables -F 清空已有的防火墙规则链
    • iptables -P INPUT DROP 把input的默认规则设置为丢包并拒绝。
      • 规则链的默认拒绝动作只能是DROP,而不能是REJECT。
    • iptables -I INPUT -p icmp -j ACCEPT 设置默认ping规则可以到达
    • iptables -D INPUT1 删除刚刚加入的ping规则,
      • iptables -P INPUT ACCEPT 并把默认策略改成允许
    • iptables -I INPUT -s 192.168.122.0/24 -p tcp --dport 22 -j ACCEPT 允许本机IP地址段访问本机的22端口
      • iptables -A INPUT -p tcp --dport 22 -j REJECT 并拒绝来自其他所有主机的流量
    • 一定要把允许流量放在拒绝的前面,要不然会无法访问。
    • iptables -I INPUT -p tcp --dport 12345 -j REJECT 添加拒绝所有人通过12345端口访问的规则
      • iptables -I INPUT -p udp --dport 12345 -j REJECT 潜台词,UDP和TCP是主要的两种流量
    • iptables -I INPUT -p tcp --dport 1000:1024 -j REJECT 添加拒绝地址访问某个端口段的信息
      • iptables -I INPUT -p udp --dport 1000:1024 -j REJECT 继续添加UDP
  • service iptables save
    • 永久保存,使防火墙策略生效
  • firewalld Dynamic Firewall Manager of Linux systems Linux系统动态防火墙管理器。
    • firewalld其中d有守护进程的意思。
      • 优势:
      • 动态更新
      • 区域技术 针对不同的区域,实现不同的策略
    • 针对生产环境的不同,实现不同的策略。设置好区域集合切换就可以了。
    •    

    • 管理工具
      • 终端管理工具firewall-cmd是firewalld的CLI命令行界面版本。使用长命令。可以使用代码补全。
      • 代码补全很好用。TAB
      • 防火墙工具有两种模式
        • Runtime模式:当前生效模式,重启后失效。
        • Permanent模式:永久模式,重启后有效。使用方法,增加--permanent参数。
          • 但也只是重启后生效
          • 如何立即生效?使用 firewall-cmd --reload命令
      • 查询当前防火墙使用哪个区域?firewall-cmd --get-default-zone
      • 查询当前网卡在哪个区域里?firewall-cmd --get-zone-of-interface=virbr0
      • 更改当前网卡区域为external 
        • firewall-cmd --permanent --zone=external --change-interface=virbr0
        • 注意当前和永久的区域是不同的
          • firewall-cmd --get-zone-of-interface=virbr0
          • firewall-cmd --permanent --get-zone-of-interface=virbr0
      • 把firewalld服务当前默认设置为public
        • firewall-cmd --set-default-zone=public
        • firewall-cmd --get-default-zone
      • 启动/关闭防火墙的应急模式 慎用,会阻断一切链接
        • firewall-cmd --panic-on
        • firewall-cmd --panic-off
      • 查询区域public是否支持相应的流量
        • irewall-cmd --zone=public --query-service=ssh
        • firewall-cmd --zone=public --query-service=http
      • 把firewalld 服务中请求HTTPS 协议的流量设置为永久允许,并立即生效
        • firewall-cmd --zone=public --add-service=https
        • firewall-cmd --permanent --zone=public --add-service=https
        • firewall-cmd --reload
      • 把firewall服务中的http协议流量设置为永久拒绝,并立即生效。
        • firewall-cmd --permanent --zone=public --remove-service=http
        • firewall-cmd --reload
      • 把在firewalld 服务中访问8080 和8081 端口的流量策略设置为允许,但仅限当前生效.
        • firewall-cmd --zone=public --add-port=8080-8081/tcp
        • firewall-cmd --zone=public --list-ports 查看端口段。
      • 把原本访问本机888 端口的流量转发到22 端口,要且求当前和长期均有效:
        • 格式:firewall-cmd --permanent --zone=<区域> --add-forward-port=port= < 源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
        • firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.122.1
        • firewall-cmd --reload
    • firewall的富规格编辑。
      • 好处:可以针对系统服务,源端口,源地址和目标地址等诸多信息进行更有针对性的配置。优先级在所有的防火墙策略中也是最高的。
      • 拒绝192.168.10.0/24 网段的所有用户访问本机的ssh 服务(22 端口)
        • firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
    • 图形管理工具
      • firewall-config
      •    

      • 在使用firewall-config 工具配置完防火墙策略之后,无须进行二次确认,因为只要有修改内容,它就自动进行保存。
    • SNAT Source Networt Address Translate
      • ·主要作用:地址转换,适合内网。
    • 服务访问控制列表
      • TCP Wrappers ,默认的流量监控程序,能根据来访的主机地址和目标的服务程序来作出允许或拒绝操作。

        Linux 系统中其实有两个层面的防火墙,第一种是前面讲到的基于TCP/IP 协议的流量过滤工具,而TCP Wrappers 服务则是能允许或禁止Linux 系统提供服务的防火墙,从而在更高层面保护了Linux 系统的安全运行

           

      • 两个配置文件 /etc/hosts.allow /etc/hosts.deny
        • 先匹配allow,再匹配deny,如果两个都没匹配到,则默认放行。

           

猜你喜欢

转载自www.cnblogs.com/Black-cat0987/p/12064549.html