2.83333333333331111111111Rating 2.83 (6 Votes)

Иногда бывает нужно посадить ssh на несколько портов, это можно сделать путем простых манипуляций с файлом конфига /etc/ssh/sshd_config, для этого достаточно в конфиг добавить новую директиву Port:

Port 33

Перезапустить сервис:

systemctl restart sshd

Посмотреть статус:

netstat -tulpn | grep 33
tcp        0      0 0.0.0.0:33              0.0.0.0:*               LISTEN      1868/sshd           
tcp6       0      0 :::33                   :::*                    LISTEN      1868/sshd  

Разрешить новый порт в firewalld:

firewall-cmd --permanent --add-port=33/tcp && firewall-cmd --reload

Попробовать подключиться:

ssh-i -p 33 Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..x

Разрешить для отдельного порта только SFTP

Изменить параметр Subsystem в /etc/ssh/sshd_config на:

Subsystem sftp internal-sftp

Добавить в конец конфига параметры:

Match LocalPort 33
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

Перезапустить sshd, попробовать подключиться, как результат:

ssh -p 33 Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..x
...
This service allows sftp connections only.
Connection to xxx.xxx.xx.x closed.

Несколько инстансов SSH

Можно запустить несколько сервисов ssh на одной машине, как пример для другого сервиса можно указать свои настройки sshd_config, настройки pam... Можно организовать все это хозяйство так:

  • Скопировать конфиг:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_2
  • В новом конфиге /etc/ssh/sshd_config_2 изменить порт, например на 3322
  • Создать симлинк:
ln -s /usr/sbin/sshd /usr/sbin/sshd_2
  • Скопировать сервис:
cp /etc/systemd/system/multi-user.target.wants/sshd.service /etc/systemd/system/sshd_2.service
  • Изменить параметры sshd_2 сервиса:
EnvironmentFile=/etc/sysconfig/sshd_2
ExecStart=/usr/sbin/sshd_2 -D $OPTIONS
  • Создать файл /etc/sysconfig/sshd_2 с параметрами:
SSH_USE_STRONG_RNG=0
OPTIONS="-f /etc/ssh/sshd_config_2"
  • Скопировать pam:
cp /etc/pam.d/sshd /etc/pam.d/sshd_2
  • Включить и запустить sshd_2 сервис:
systemctl enable sshd_2.service
systemctl start sshd_2.service

Проверяем:

netstat -tulpn | grep 33
tcp        0      0 0.0.0.0:3322            0.0.0.0:*               LISTEN      9998/sshd_2         
tcp        0      0 0.0.0.0:33              0.0.0.0:*               LISTEN      9843/sshd           
tcp6       0      0 :::3322                 :::*                    LISTEN      9998/sshd_2         
tcp6       0      0 :::33                   :::*                    LISTEN      9843/sshd   

Видно, что работают два инстанса и 33 и 3322 :)

Разрешаем порт:

firewall-cmd --permanent --add-port=3322/tcp && firewall-cmd --reload

Коннектимся...

SELinux для SSH

Если включен SELinux, то нужно разрешить порты 33:

semanage port -a -t ssh_port_t -p tcp 33

и 3322:

semanage port -a -t ssh_port_t -p tcp 3322

Для работы с SELInux нужно установить policycoreutils - yum install policycoreutils-python
 

Добавить комментарий


Защитный код
Обновить

Сейчас 298 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз