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


24

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


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 с обоими номерами портов.


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, и выполнить второй сценарий запуска, который ссылается на этот порт.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.