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

Как я могу заблокировать доступ к IP общедоступного сервера для OpenSSH в Debian?

У меня есть сервер Debian с публичным и частным IP-адресами в DMZ. Мне нужно подключиться к нему через SSH на нашей частной стороне, а затем заблокировать весь доступ к общедоступному адресу. И /etc/hosts.deny, и sshd_config, похоже, позволяют только одному блокировать входящие IP-адреса. Я действительно хочу отключить SSH-соединения для общедоступного IP-адреса. Я пробовал iptables, но мне тоже не повезло.

Любая помощь приветствуется.

- РЕДАКТИРОВАТЬ Итак, чтобы собрать список моих попыток:

/etc/init.d/ssh и /etc/init.d/network пока перезапущены.

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

--РЕДАКТИРОВАТЬ

ОНО ЖИВОЕ! Видимо наша гостевая сеть получила доступ, что не совсем оптимально, но я попытался подключиться через SSH с телефона из нашей гостевой сети и без него. По-видимому, я не смогу добраться до него, если не буду в одной из наших сетей. Однако я вижу некоторые проблемы с брандмауэром.

Спасибо за ответ, ребята.

Вы можете сделать это с помощью iptables -I INPUT -d $public_ip -p tcp --dport 22 -j REJECT или вы можете привязать sshd для прослушивания только вашего частного IP-адреса с помощью ListenAddress $private_ip в /etc/ssh/sshd_config.

Если вы используете 2 интерфейса, вы можете настроить ssh так, чтобы он слушал только один из интерфейсов! В вашем sshd_conf вы найдете строку

ListenAddress 0.0.0.0

который привяжет каждый интерфейс к прослушиванию ssh!

теперь измените его на ip внутреннего устройства, например:

ListenAddress 192.168.0.1

перезапустите ssh, и теперь ssh будет слушать только внутренний интерфейс!

Вы можете сделать это, настроив sshd не прослушивать общедоступный адрес. По умолчанию sshd прослушивает все локальные адреса, и вы можете изменить это с помощью ListenAddress директива в /etc/ssh/sshd_config

ListenAddress private.ip.add.ress

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

Если у вас есть несколько частных адресов, которые вы хотите прослушивать, вы можете указать каждый в отдельной директиве ListenAddress.