Когда я пытаюсь установить для своего порта SSH значение, отличное от 22 (редактирование /etc/sysconfig/iptables
и /etc/ssh/sshd_config
) Я оказался заблокирован на моем сервере и мне пришлось загружаться в режиме восстановления, чтобы исправить проблему.
Я прошел через этот цикл уже несколько раз, каждый раз стараясь делать правильные вещи.
Возможно ли, что мой новый порт (в данном случае 33933) каким-то образом заблокирован где-то еще - или есть другой файл, ссылающийся на 22, который мне нужно изменить?
Это на CentOS 6 на совершенно новом специальном устройстве, которое я только что установил на сайте oneprovider.com (реселлер online.net).
Вы можете установить ssh на несколько портов. Просто было несколько линий порта, например
Port 22
Port 1500
Таким образом, вы можете порт 22 по-прежнему работать, пока вы устраняете проблемы с портом 33933.
Затем, после того как вы изменили конфигурацию и перезапустите ssh (вы можете перезапустить ssh с активным соединением), нужно будет проверить, что сервер прослушивает этот порт.
netstat -ltnp
Опубликуйте результат этого.
Я бы предположил, что с CentOS это SELinux блокирует ваше соединение. Пытаться
selinux port -l | grep ssh
и видите, что, вероятно, разрешен только порт 22.
semanage port -a -t ssh_port_t -p tcp 39333
добавит порт 39333 к разрешенным портам для ssh. Проверить с
semanage port -l | grep ssh
и все должно быть готово.
Первый вопрос: действительно ли вы загружали новые конфигурации после редактирования файлов?
Я бы рекомендовал настроить iptables, чтобы разрешить входящие соединения на обоих портах в качестве первого шага. Во-вторых, вы можете протестировать обновление sshd, не разрывая текущее соединение ssh. Если вы напечатаете service sshd reload
, вы должны иметь возможность убедиться, что можете запустить новое соединение ssh, сохранив при этом старое, чтобы вы все еще могли отменить свои изменения, если они не работают.
Если у вас есть inetd
или xinetd
установленный на сервере, вы можете использовать его для настройки вторичного порта sshd, который работает независимо от первичного. Вот пример того, как это может выглядеть в xinetd:
service second-ssh
{
type = UNLISTED
flags = REUSE
socket_type = stream
protocol = tcp
port = 64739
wait = no
user = root
disable = no
server = /usr/sbin/sshd
server_args = -i
}
Чтобы узнать, заблокирован ли другой порт где-то в сети, вы можете использовать tcpdump на каждом конце соединения, чтобы увидеть, отправлен ли SYN-пакет одним концом и получен ли он другим концом. Если окажется, что он заблокирован, вы можете использовать traceroute, чтобы узнать, где он заблокирован: traceroute -n -T -p 33933 example.com
После редактирования этих файлов вам необходимо перезапустить обе службы, чтобы применить новую конфигурацию.
Просто беги service sshd restart && service iptables restart
и у вас должен быть доступ.