Назад | Перейти на главную страницу

Как настроить 2 IP-адреса на одном сетевом интерфейсе, чтобы разрешить доступ к определенным портам с определенного IP-адреса?

У меня есть 2 IP-адреса на одном сетевом интерфейсе: 192.168.1.100 и 192.168.1.101. Я хочу иметь доступ к SSH через 192.168.1.100 и HTTP через 192.168.1.101. Я использую Debian 9.8 и firewalld для управления брандмауэром.

Ниже приведены текущие конфигурации зон.

Зона: Общественная

root@server ~ # firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 192.168.1.100
  services: ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Зона: Специальная

root@server ~ # firewall-cmd --list-all --zone=special
special(active)
  target: default
  icmp-block-inversion: no
  interfaces:
  sources: 192.168.1.101
  services: http
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Перезагрузка брандмауэра

root@server ~ # firewall-cmd --reload

По какой-то причине я могу получить доступ к SSH через 92.168.1.100 и 192.168.1.101, и я не могу получить доступ к HTTP ни с 192.168.1.100, ни с 192.168.1.101.

Пожалуйста помоги.

Я не знаком с firewalld формат опции. Но мне кажется, что правила разрешают соединения с IP-адреса сервера. 192.168.1.100 в SSH и с IP-адреса сервера 192.168.1.101 в HTTP.

Вы должны использовать destination адрес, если вы действительно хотите использовать для этого брандмауэр.

Однако лучший подход здесь - привязать службы к разным портам.

Я хочу иметь доступ к SSH через 192.168.1.100 и HTTP через 192.168.1.101.

Вы также можете просто привязать SSH-сервер к 192.168.1.100, вероятно через /etc/ssh/sshd_config файл, установка ListenAddress 192.168.1.100

Вы можете привязать HTTP-сервер только к 192.168.1.101, вероятно, в файле конфигурации с именем что-то вроде /etc/httpd/conf/httpd.conf, предполагая, что HTTP-сервер Apache, где вы можете установить Listen 192.168.1.101:80 на месте Listen 80.

Это может иметь некоторые нежелательные побочные эффекты, такие как предотвращение доступа к серверу через localhost/127.0.0.1 через что-то вроде http://localhost/path/to....