Вот думала что писала уже про это, а нет, заметки не оказалось. Между тем, для непосвященных няшек это может стать небольшой проблемой, так как стандартные мануалы не подразумевают наличия SELinux и других ништяков.

 

Итак, для того чтобы изменить стандартный порт доступа надо сделать 3 вещи:

1. открываем /etc/ssh/sshd_config и раскомментируем строку

Port 22

меняем 22 на выбранный вами порт. Если вы хотите чтобы ssh слушал только на IPv4, то раскомментируйте строку

ListenAddress 0.0.0.0

остальные настройки по вкусу (:

 

2. добавляем правило для iptables (вы можете изменить стандартное правило для 22-го порта)

iptables-save > /path/to/rules.list

добавляем строку

-A INPUT -p tcp -m state —state NEW -m tcp —dport 1234 -j ACCEPT

и сохранив файлик обновляем правила

iptables-restore < /path/to/rules.list

НО, данный вариант будет работать только до первой перезагрузки! Если вы хотите добавить постоянное правило, изменения следует вносить в /etc/sysconfig/iptables

 

И вот казалось бы всё, но в этом случае перезапустив sshd вы рискуете потерять доступ к серверу, так как включенный по-умолчанию SELinux будет считать что негоже использовать иной порт. Так что переходим к пункту…

3. для того чтобы selinux не возникал, необходимо добавить ваш порт как порт для ssh

semanage port -a -t ssh_port_t -p tcp 1234

проверяем

semanage -l | grep ssh

 

Так же, вы можете столкнуться с проблемой когда центось вам скажет что знать не знает такой команды, тогда выполняем

yum whatprovides /usr/sbin/semanage

и получив ответ, устанавливаем нужный пакет. в моём случае это

yum install policycoreutils-python

 

Вот теперь можно смело (перепроверив не забыли ли вы чего!) перезапускать sshd и ломиться на новый порт

service sshd restart