SSH на другом порту CentOS 7 или error: bind to port on 0.0.0.0
CentOS продолжает удивлять..
Даже такое простое действие, как изменить стандартный 22 порт SSH на другой вызывает ошибку и недоумение.
Меняем порт в конфиге sshd
/etc/ssh/sshd_config |
например на
Port 555 |
Перезапускаем sshd
systemctl restart sshd.service |
Смотрим в
tail -f /var/log/messages |
Видим типа такого
Jan 2 03:58:31 client systemd: sshd.service: main process exited, code=exited, status=255/n/a Jan 2 03:58:31 client systemd: Unit sshd.service entered failed state. Jan 2 03:59:13 client systemd: sshd.service holdoff time over, scheduling restart. Jan 2 03:59:13 client systemd: Stopping OpenSSH server daemon... |
Не совсем понятно в чем проблема, смотрим так
journalctl -xn |
Уже понятнее
error: bind to port on 0.0.0.0 failed sshd cannon bind any address |
Такое чувство, что порт уже занят, проверяем nmap порт закрыт, открытие порта в фаерволле ничего не дает, указание конкретного IP в файле конфигурации тоже не помогает.
Внимательно вчитываемся в файл sshd_config, оказывает нужен semanage
# If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # |
Устанавливаем пакет policycoreutils-python, в который входит semanage
yum install policycoreutils-python |
(у меня подключены репозитарии EPEL, поэтому если у вас вдруг не получится, то подключите их)
пакет с зависимостями установлен, можно выполнять
semanage port -a -t ssh_port_t -p tcp 555 |
Рестартуем демона sshd
systemctl restart sshd.service |
пробуем сканером порт на доступность
nmap -p 555 localhost |
Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-03 15:27 EET Nmap scan report for localhost (127.0.0.1) Host is up (0.000071s latency). Other addresses for localhost (not scanned): 127.0.0.1 PORT STATE SERVICE 555/tcp open dsf Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds |
Получилось, SSH демон поднялся и готов принимать подключения, остается открыть нужный порт для доступа из вне.
Для проверки сбрасываем правила iptables
iptables -F |
и пробуем подключиться по SSH к нашему серверу на нестандартном порту
Работает.
Фразы: CentOS 7 sshd не запускается на другом порту, ошибка при старте sshd, CentOS где взять semanage?