Назад | Перейти на главную страницу

Невозможно установить порт SSH на значение, отличное от 22

Когда я пытаюсь установить для своего порта 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 и у вас должен быть доступ.