02-防火墙

nobility 发布于 2023-10-20 04-网络服务 270 次阅读


防火墙

根据一组网络流量访问的规则进行匹配策略,来判断是否能通行,规则由上到下匹配,所以通常默认策略是全部拒绝,而不是全部接受,这样更加安全

每个方向的流量都有自己的策略链,以下链在filter表中,该表也是默认表:

英文名 方向
INPUT 流入流量(一般对此策略链进行配置)
OUTPUT 流出流量
FORWARD 转发流量

以下链在nat表中:

英文名 描述
PREROUTING 在进行路由选择前处理数据包
POSTROUTING 在进行路由选择后处理数据包
OUTPUT 流出流量

iptables

此工具在之前版本中使用的,之后版本不再有了,此工具不是一个服务

查看

  • t:指定查看的是那个表,默认是filter
  • L:查看所有策略表的策略
  • n:显示端口号而不是协议名
  • v:显示更加详细

增加

  • P:设置默认策略,后跟策略表名和策略,比如iptables -P INPUT DROP将流入流量设置默认策略为全拒绝
  • I:在某策略链头部添加策略
  • A:在某策略链尾添加策略
  • p:匹配协议,如TCP、UDP、ICMP
  • --dport:目标端口号(服务端端口号),一段端口号使用的是:分隔而不是-
  • s:来源地址(客户端地址),可以加!号表示除此之外
  • --sport:来源端口号(客户端端口号)
  • j:匹配后的动作
    • ACCEPT:接受
    • DROP:丢弃
    • REJECT:拒绝
    • LOG:保存到日志文件

删除

  • F:清空所有规则
  • D:删除某表的某一条一条规则,从1开始

firewall

此工具在新版本中使用,之前的版本是没有的,此工具是一个服务对应的服务名称就是firewalld,而且此工具的命令行版本叫firewall-cmd,图形化版本叫firewall-config

该工具中引入区域的概念,说的是当前服务器所处环境(区域),而采用的防火墙默认策略,其实就是一种防火墙模板

区域 描述
trusted 全部接受
drop 全部拒绝
public 默认区域,除拉ssh、dhcpv6-client协议外,全部拒绝,可以配置接受规则条目
  • get-default-zone:获取默认区域
  • set-default-zone:设置默认区域
  • get-services:显示可设置的服务名
  • add-service:添加放行服务流量
  • remove-service:删除设置的放行服务流量
  • query-service:查看是否放行该服务
  • list-services:查看以设置的服务列表
  • add-port:添加放行端口流量,需要同时指定协议名,以/分隔,若同时指定多个端口是以-分隔
  • remove-port:删除设置的放行端口流量,需要同时指定协议名,以/分隔
  • query-port:查看该端口是否放行,需要同时指定协议名,以/分隔
  • list-port:查看以设置的放行端口和协议
  • permanent:永久生效,默认情况下在重启后设置的策略会失效,加上此参数虽然可以永久生效,但是在为重启时会是未生效状态,在重启后才会生效
  • reload:此参数正是为了解决permanent参数重启后生效的,此参数会使永久生效的在本次立即生效
  • query-masquerade:检查是否允许伪装IP
  • add-masquerade:允许防火墙伪装IP
  • remove-masquerade:禁止防火墙伪装IP
  • add-forward-port:设置端口转发,值需要以port=源端口号:proto=协议:toport=转发端口号:toaddr=转发IP形式,转发IP的前提是允许防火墙伪装IP
  • add-rich-rule:设置富规则,值需要以规则字符串命令来指定,如rule family="ipv4" source address="192.168.1.100" service name="mysql" reject,由于有空格需要用双引号引起来
    • rule family:指定IP协议,ipv4ipv6
    • source address:指定IP,一段IP就使用子网掩码即可
    • service name:指定服务
    • 执行的动作:
      • reject:拒绝
      • drop:丢包
      • accept:接受
      • log:保存到日志
    • port port:端口,多个端口使用-分隔
    • protocol:协议
  • list-rich-rules:查看设置的富规则
  • remove-rich-rule:删除富规则,不是根据编号删除的,而是怎么设置的就是怎么删除的,所以值也是规则字符串命令,通常使用list-rich-rules查询出的规则复制粘贴删除

TCP Wrappers

该工具使用到两个配置文件/etc/hosts.allow(允许)和/etc/hosts.deny(拒绝),顺序是先匹配允许文件,后匹配拒绝文件,一旦匹配成功就不会再向后匹配

配置形式是服务名:IP的形式,若指定多个服务需要使用逗号分隔,若指定一个网段需要使用子网掩码,要注意这里是服务名,而不是协议名,比如ssh,ftp:192.168.1.100

加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2023-10-20