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


24

Мені потрібно прослухати SSH на двох портах: 22 для розміщення доступу адміністратора та 26 для регулярного доступу. Я хотів би заборонити кореневий вхід на 26 і заборонити всі, крім внутрішніх IP-адрес, для порту 22. Останнє можна зробити за допомогою iptables правил, але я не знаю про перший. Якісь ідеї?


3
root ніколи не повинен мати можливість увійти через ssh; період; кінець історії; долар зупиняється тут; ніколи. Якщо вам потрібен кореневий доступ, тоді ви увійдете через свого звичайного користувача, а потім підніміть suабо ще краще sudo.
Кріс С

6
Цілком нормально дозволяти кореневі входи через ssh, якщо ви обмежуєте їх автентифікацією ключа або навіть автентифікацією пароля, якщо сеанс обмежений IP-адресами, якими ви керуєте. "Ніколи" не надто сильний.
EightBitTony

3
Я заперечую, що є ситуації, коли має сенс мати кореневий логін (наприклад, пошкодження файлової системи на / home-розділі, виключаючи вхід як стандартний користувач). Одне, що може допомогти, - це встановити PermitRootLoginпараметр sshd_config на without-password. Це дозволяє лише ввійти в корінь через ssh за допомогою ключа ssh. Ідентифікація пароля не працюватиме.
ewwhite

Ця стаття може бути корисною: everythingsysadmin.com/2010/09/…
TomOnTime

Відповіді:


27

В /etc/ssh/sshd_config, зробіть наступне зміна. Шукайте рядок, який говорить, Port 22і додайте під ним подібний рядок.

Port 22
Port 26

Збережіть файл і перезапустіть демон sshd.

Я роблю це в тих ситуаціях, коли для внутрішніх користувачів на порту 22 увімкнено ssh, але потрібно зовнішнє підключення, скажімо, порт 2222. Це прив'язує демона ssh до обох номерів портів.


6
І як ви тепер обмежуєте кореневі логіни до порту 22?
факер

@faker Я бачив використання брандмауера / мережевих обмежень, щоб забезпечити лише білий список доступу ip до звичайного порту 22.
ThorSummoner

10

Ви можете скористатися -fпараметром sshd, щоб вказати альтернативний файл конфігурації. У файлі конфігурації вам потрібно буде використовувати

Port 26 

директива щодо зміни порту, який слухає sshd.

набір

PermitRootLogin no

вимкнути кореневі входи

Потім ви можете зробити щось на кшталт

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

Ви можете скопіювати стандартний скрипт запуску sshd та змінити їх, щоб ви могли запустити послугу порту 26 при запуску.

Чому ви це робите ?


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

3

Якщо припустити, що sshd запускається з файлом конфігурації, визначеним командним рядком, тоді ви можете створити другий конфігурацію, який працює на порту 26, та виконати другий сценарій запуску, який відноситься до цього порту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.