Ограничить SSH одним интерфейсом

10

Как я могу ограничить входящий SSH-запрос только одним интерфейсом? Я использую Ubuntu Server 10.04 LST.

Я хочу заблокировать доступ к SSH только к одному интерфейсу, потому что я использую сервер в качестве шлюза к моей домашней сети. Один интерфейс подключен к модему / маршрутизатору DSL, а другой - к домашней сети. Я только хочу разрешить доступ к форме SSH внутри домашней сети.

Достаточно ли в этом случае ограничение SSH одним IP? Или я должен заблокировать его на один интерфейс?

wowpatrick
источник
1
Можете ли вы быть более понятным, что вы подразумеваете под «только одним интерфейсом»? Вы имеете в виду, что у машины более одного IP-адреса, и вы хотите, чтобы SSH прослушивал только один IP-адрес? Или вы хотите, чтобы входящие пакеты на порт SSH на других интерфейсах отбрасывались? (Ваш запрос очень необычный, и, возможно, вы задаете не тот вопрос.)
David Schwartz
@DavidSchwartz Я попросил об ограничении интерфейса, потому что я не был уверен, достаточно ли ограничить доступ SSH только одним IP. Я также дополнил свой вопрос более подробно.
wowpatrick

Ответы:

12

В следующем файле:

 /etc/ssh/sshd_config 

Вы увидите строку вроде:

#ListenAddress 0.0.0.0

Это закомментировано, но по умолчанию, список всех IP-адресов для запросов SSH. Вы можете изменить это так, чтобы это был IP-адрес интерфейса, на котором вы хотите принимать соединения, и чтобы только этот IP-адрес принимал соединения ssh:

ListenAddress 111.222.111.222

Перезапустите службу sshd после изменения.

Павел
источник
4
Это не ограничивает интерфейсы, на которых может работать SSH, только IP-адрес назначения. (Это может быть тем, чего действительно хотел ОП. Но это не то, о чем просил ОП.)
Дэвид Шварц
@DavidSchwartz спасибо - можешь уточнить? Если IP-адрес привязан к интерфейсу, может ли другой интерфейс каким-либо образом принять соединение с этой настройкой (я полагаю, что если переадресация включена, это может работать).
Пол
@ Дэвид Шварц ах, я вижу твой комментарий выше.
Пол
1
Пересылка относится только к пакету, полученному по одному интерфейсу, который должен быть передан другим. Не требуется принимать пакет, полученный на интерфейсе, отличном от того, которому назначен его адрес назначения. Linux использует модель, в которой IP-адреса принадлежат системе, а не интерфейсам - все интерфейсы подключаются к одному хосту.
Дэвид Шварц
2

Попробуйте установить брандмауэр и разрешить SSH только на одном интерфейсе. Мои предпочтения - это Shorewall, который является устанавливаемым пакетом в Ubuntu. Вам нужно будет настроить его до его запуска, но он хорошо документирован и поставляется с несколькими примерами конфигураций.

Я использую в основном закрытый межсетевой экран с открытыми только необходимыми портами. Если все, что вы хотите сделать, это ограничить использование интерфейса SSH, вы можете использовать действие REJECT или DROP для ssh на других интерфейсах. Я хотел бы предложить, если вы создаете брандмауэр, вы, по крайней мере, ограничивает доступ к интерфейсам, выходящим в Интернет.

BillThor
источник