【linux】Iptables与firewalld防火墙

  • 防火墙管理命令fierwall-cmd
  • 图形化工具firewall-config
  • 数据包过滤、SNAT/SDAT技术、端口转发以及负载均衡等
  • Tcp_wrappers防火墙服务

了解防火墙管理工具

  • 依据策略对外部请求进行过滤。规则策略可以是基于来源地址、请求动作或者协议来定制的,最终仅让合法的用户请求流入到内网中,其余的均被丢弃
  • iptables和firewall只是防火墙管理工具,将定义好的规则交由内核中的netfilter(网络过滤器)来读取实现防火墙功能

用于管理防火墙的规则策略

iptables命令:iptables [-t 表名] 选项 [链名][条件][-j 控制类型]

规则链与策略

  1. 设置数据过滤或处理数据包的策略交规则,将多个规则合成一个链。控制类型如下:
    类型说明
    accept允许通过
    log记录日志,然后传给下一条规则继续匹配
    reject拒绝,必要时给提示
    drop直接丢弃,不给回应
  2. 依据处理数据包的位置不同进行分类
    分类说明
    prerouting在进行路由选择前处理数据包
    input处理入站的数据包
    output处理出站的数据包
    forward处理转发的数据包
    postrouting在进行路由选择后处理数据包
  3. 规则表用于容纳规则链,规则表默认是允许状态的,则规则连就是设置被禁止的规则,反之亦反。
    规则表说明
    raw表确定是否对该数据包进行状态跟踪
    mangle表为数据包设置标记
    nat表修改数据包中的源、目标ip地址或端口
    filter表确定是否放行该数据包(过滤)
    先后规则为:raw->mangle->nat->filter
  4. 规则链的先后顺序:
    • 入站顺序:prerouting->input
    • 出站顺序:output->postrouting
    • 转发顺序:prerouting->forward->postrouting
  5. 注意:
    • 没有指定规则表则默认指filter表
    • 不指定规则链则指表内所有的规则链
    • 在规则链匹配时一次检查,匹配即停止(log规则例外),若没匹配项则按链的默认状态处理

基本命令参数

参数说明
-P设置默认策略
-F清空规则连
-L查看规则连
-A在规则链的末尾加入新规则
-I num在规则连的头部加入新规则
-D num删除某一条规则
-s匹配来源地址,!表示除这个ip外
-d匹配目标地址
-i网卡名称 匹配从这块网卡流入的数据
-o网卡名称 匹配从这块网卡流出的数据
-p匹配协议
--dport num匹配目标端口号
--sport num匹配来源端口号

snat与dnat

  • snat:源地址转换技术:能够让多个内网用户通过一个外网地址上网
  • dnat:目地地址转换技术:能够让外网ip用户访问局域网内不同的服务器

端口转发与流量均衡

  • 端口转发功能可以将原本到某端口的数据包转发到其他端口:firewall-cmd --permanent--zone=<区域>--add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toadd=<目标ip复制>

  • 【例如】将访问192.168.10.10主机端口的请求转发至22端口:firewall-cmd --permanent--zone=public--add-forward-port=port=888:proto=tcp:toport=22:toadd=192.168.10.10 # 使用客户机的ssh命令访问192.168.10.10:ssh -p 888 192.168.10.10

  • 均衡技术:

    iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.10:80
    iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.11:80
    iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.12:80
    

firewalld防火墙

特点

拥有运行时配置与永久配置选项能够支持动态更新以及zone的区域功能概念

区域概念与作用

网络区域定义了网络连接的可信等级,区域规则如下

规则说明
trusted允许所有的数据包;
home拒绝流入的数据包,除非与输出流量数据包相关或是ssh/mdns/ipp-client/samba-clent与dhcpv6-client服务则允许;
internal等同于home区域;
work拒绝流入的数据包,除非与输出流量数据包相关或是ssh/ipp-client/与dhcpv6-client服务则允许
public拒绝流入的数据包,除非与输出流量数据包相关或是ssh/dhcpv6-client服务则允许
external拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许
block拒绝流入的数据包,除非与输出流量数据包相关
drop拒绝流入的数据包,除非与输出流量数据包相关;

默认区域为public

字符管理工具:fireall-cmd

  1. 参数如下
    参数说明
    --get-default-zone查询默认的区域名称
    --set-default-zone=<区域名称>设置默认的区域,永久有效
    --get-zone显示可用区域
    --get-services显示预先定义的服务
    --get-active-zones显示当前正在使用的区域与网卡名称
    --add-source=ip将来源于此ip或子网的流量导向指定的区域
    --remove-source=ip不再将此ip或子网的流量导向指定区域
    --add-interface=<网卡名称>将来自于该网卡的所有流量都导向某个指定区域
    --change-interface=<网卡名称>将某个网卡与区域做关联
    --list-all显示当前区域的网卡配置参数、资源、端口及服务等信息
    --list-all-zones显示所有区域的网卡配置参数、资源、端口以及服务等信息
    --add-service=<服务名>设置默认区域允许该服务的流量
    --add-port=<端口号/协议>允许默认区域允许该端口的流量
    --remove-service=<服务名>设置默认区域不再允许该服务的流量
    --remove-port=<端口号/协议>允许默认区域不再允许该端口的流量
    --reload让永久生效的配置规则立即生效,覆盖当前的
  2. firewalld服务有两份策略配置记录
    • runtime正在生效的
    • permanent永久生效的
    • 应急状况模式:
      • firewall-cmd --panoic-on
      • firewall-cmd --panoic-off;
  3. 图形管理工具:firewall-config

服务的访问控制列表

Tcp_wrappers是一款基于ip层的acl访问控制列表流量监控程序,能够根据来访主机地址与本机目标服务程序做允许或拒绝规则

  • 允许名单:/ect/hosts.allow
  • 拒绝名单:/ect/hosts.deny
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值