Конфигурация для нескольких портов SSH

24

Мне нужно слушать SSH на двух портах: 22 для хостинга доступа администратора и 26 для обычного доступа. Я хотел бы запретить вход в систему root 26 и запретить все, кроме внутренних IP-адресов для порта 22. Последнее можно сделать с помощью правил iptables, но я не знаю о первом. Любые идеи?

CKoning
источник
3
root никогда не сможет войти через ssh; период; конец истории; доллар останавливается здесь; никогда. Если вам нужен root-доступ, то вы входите через обычного пользователя, а затем suповышаете его или, что еще лучше sudo.
Крис С
6
Вполне допустимо разрешать вход с правами root через ssh, если вы ограничиваете их аутентификацией по ключу или даже аутентификацией по паролю, если сеанс ограничен IP-адресами, которые вы контролируете. «Никогда» не слишком сильно.
EightBitTony
3
Я бы сказал, что бывают ситуации, когда имеет смысл иметь учетную запись root (например, повреждение файловой системы в разделе / ​​home, исключающее вход в систему как обычного пользователя). Одна вещь, которая может помочь, - установить для PermitRootLoginпараметра sshd_config значение without-password. Это позволяет только вход в систему root через ssh с ключом ssh. Проверка подлинности пароля не будет работать.
ewwhite
Эта статья может быть полезным: everythingsysadmin.com/2010/09/...
TomOnTime

Ответы:

27

В /etc/ssh/sshd_config, сделайте следующее изменение. Найдите строку с надписью Port 22и добавьте аналогичную строку под ней.

Port 22
Port 26

Сохраните файл и перезапустите демон sshd.

Я делаю это в ситуациях, когда у меня включен ssh для внутренних пользователей на порту 22, но требуется внешнее подключение, скажем, на порту 2222. Это связывает демон ssh с обоими номерами портов.

ewwhite
источник
6
И как вы теперь ограничиваете входы root в порт 22?
Факер
@faker Я видел использование ограничений брандмауэра / сети для предоставления только белого списка доступа ip к обычному порту 22.
ThorSummoner
10

Вы можете использовать -fопцию sshd, чтобы указать альтернативный файл конфигурации. В файле конфигурации вам нужно будет использовать

Port 26 

директива для изменения порта, который слушает sshd.

поставил

PermitRootLogin no

отключить root-логины

Вы можете сделать что-то вроде

/usr/sbin/sshd -f /etc/ssh/sshd_config_port_26

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

Почему вы это делаете ?

Время пришло
источник
1
Вместо того, чтобы иметь два целых файла конфигурации, если бы вы хотели, чтобы серверы были по существу похожими, было бы проще и уместнее просто добавить-o PermitRootLogin yes -p 26
JamesTheAwesomeDude
3

Предполагая, что sshd будет работать с файлом конфигурации, специфичным для командной строки, вы можете создать вторую конфигурацию, которая работает на порту 26, и выполнить второй сценарий запуска, который ссылается на этот порт.

uSlackr
источник