У меня есть 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...
.