Firewalld:限制特定 IP 的 ssh 访问,并允许该 IP 访问接口区域中的服务

Firewalld:限制特定 IP 的 ssh 访问,并允许该 IP 访问接口区域中的服务

目标设置如下:我想将对服务器的 ssh 访问限制为特定 IP,并允许所有人使用 http 服务。现在,为了从“头”开始,我定义了一个新区域,我将其称为“自定义”,并将其设置为默认区域。这是它的当前状态:

custom (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources: 
  services: http
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

为了仅允许 192.168.122.1 IP 访问 SSH 服务,我创建了另一个区域,称为“limited-ssh”:

limited-ssh (active)
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 192.168.122.1
  services: ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

这些接口是唯一活动的接口:

custom
  interfaces: enp1s0
limited-ssh
  sources: 192.168.122.1

虽然这有效,但从只有指定 IP 能够通过 ssh 进入机器的意义上讲,同一个 IP 无法访问 http 服务。我猜是因为“源”区域在“接口”区域之前处理。我如何限制 SSH 访问允许该 IP 访问 HTTP 服务(以及“自定义”区域中的所有其他服务)?我应该使用直接规则吗?我假设如果我将 http 服务添加到有限 ssh 区域,它会起作用,但它会重复并且很快就会变得一团糟。

相关内容