3

iptables和firewalld基础 - 我是大斌

 1 year ago
source link: https://www.cnblogs.com/shadabin/p/16841853.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

1、四表五链概念:

filter表  过滤数据包
Nat表    用于网络地址转换(IP、端口)
Mangle表  修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表    决定数据包是否被状态跟踪机制处理<br>
INPUT链     进来的数据包应用此规则链中的策略
OUTPUT链     外出的数据包应用此规则链中的策略
FORWARD链    转发数据包时应用此规则链中的策略
PREROUTING链  对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
POSTROUTING链  对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

2、数据报文流程

数据报文从进入服务器到出来会经过5道关卡,分别为Preouting(路由前),input(输入),outing(输出),Forward(转发),Postrouting(路由后)

 iptables服务策略

  • ACCEPT(允许流量通过)
  • REJECT(拒绝流量通过)
  • LOG(记录日志信息)
  • DROP(拒绝流量通过)
2249625-20221030181036400-969299754.png

 3、iptables 与 firewalld 区别

相同点:都是用来定义防火墙策略的防火墙管理工具
区别:
  iptables服务会把配置好的防火墙策略,交由内核层面的 netfilter 网络过滤器来处理   firewalld服务则是把配置好的防火墙策略,交由内核层面的 nftables 包过滤框架来处理

4、DROP 和 REJECT策略的区别:

防火墙策略:
  设置为REJECT拒绝动作后,流量发送方会看到端口不可达的响应   修改成DROP拒绝动作后,流量发送方会看到响应超时的提醒

5、iptables命令参数

-t<表>   指定要操纵的表 
--line-numbers  显示规则的序号
-n    以数字格式显示地址和端口号
-P   设置默认策略 -F   清空规则链 -L   查看规则链 -A    在规则链的末尾加入新规则 -I num 在规则链的头部加入新规则 -D num 删除某一条规则
-s   匹配来源地址IP/MASK,加叹号“!”表示除这个IP外 -d   区配目标地址
-i 网卡名称  匹配从这块网卡流入的数据 -o 网卡名称  匹配从这块网卡流出的数据 -p       匹配协议,如TCP、UDP、ICMP

--sport num    匹配来源端口号
--dport num   匹配目标端口号

6、iptables基本的命令使用

1.查看防火墙规则  iptables -nvL --line-numbers2.清空防火墙规则  iptables -F 清空所有的防火墙规则  iptables -X 删除用户自定义的空链  iptables -Z 清空计数   INPUTINPUTINPUT公网 210.14.67.7 让内网 192.168.188.0/24 上网  iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -j SNAT --to-source 210.14.67.7本机的 2222 端口映射到内网 虚拟机的22 端口17.防止SYN洪水攻击  iptables -A INPUT -p tcp --syn -m limit --limit 5/second -j ACCEPT18. 参考:https://blog.csdn.net/szb521/article/details/126415217

7.firewalld:基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。

firewalld中常用的区域名称及策略规则:

    trusted 允许所有的数据包
    home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
    internal 等同于home区域
    work 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
    public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
    external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
    dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
    block 拒绝流入的流量,除非与流出的流量相关
    drop 拒绝流入的流量,除非与流出的流量相关

firewall-cmdfirewalld防火墙配置管理工具的CLI
   firewall-cmd命令正常设置防火墙策略时添加--permanent参数,这样配置的防火墙策略就可以永久生效

    参数|作用
    --get-default-zone|查询默认的区域名称
    --set-default-zone=<区域名称>|设置默认的区域,使其永久生效
    --get-zones|显示可用的区域
    --get-services|显示预先定义的服务
    --get-active-zones|显示当前正在使用的区域与网卡名称
    --add-source=|将源自此IP或子网的流量导向指定的区域
    --remove-source=|不再将源自此IP或子网的流量导向某个指定区域
    --add-interface=<网卡名称>|将源自该网卡的所有流量都导向某个指定区域
    --change-interface=<网卡名称>|将某个网卡与区域进行关联
    --list-all|显示当前区域的网卡配置参数、资源、端口以及服务等信息
    --list-all-zones|显示所有区域的网卡配置参数、资源、端口以及服务等信息
    --add-service=<服务名>|设置默认区域允许该服务的流量
    --add-port=<端口号/协议>|设置默认区域允许该端口的流量
    --remove-service=<服务名>|设置默认区域不再允许该服务的流量
    --remove-port=<端口号/协议>|设置默认区域不再允许该端口的流量
    --reload|让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
    --panic-on|开启应急状况模式
    --panic-off|关闭应急状况模式

 8、firewalld命令示例:

1.查看firewalld服务当前所使用的区域:
  firewall-cmd --get-default-zone

2.查询eth0网卡在firewalld服务中的区域:
  firewall-cmd --get-zone-of-interface=eth0

3.让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
  firewall-cmd --reload

4.把firewalld服务的当前默认区域设置为public
  firewall-cmd --set-default-zone=public

5.启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用):
  firewall-cmd --panic-on/off

6.查询public区域是否允许请求SSHHTTPS协议的流量
  firewall-cmd --zone=public --query-service=ssh
  firewall-cmd --zone=public --query-service=https

7.把firewalld服务中请求HTTPS协议的流量设置为永久允许,并立即生效:
  firewall-cmd --permanent --zone=public --add-service=https
  firewall-cmd --reload
firewalld服务中请求HTTP协议的流量设置为永久拒绝,并立即生效:
  firewall-cmd --permanent --zone=public --remove-service=http

8.端口:把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效:
  firewall-cmd --zone=public --add-port=8080-8081/tcp
  firewall-cmd --zone=public --list-port //查看当前的端口

9.把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:
  firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10

10.参考:https://blog.csdn.net/herhan1/article/details/114461334

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK