среда, 6 июля 2016 г.

Изменение стандартного порта SSH в CentOS 7 с включенным SELinux

Решил сменить стандартный порт для SSH. В примере указан порт 2222, но можно задать другой. В конце есть скрипт для автоматизации.

Бэкап

# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig.$(date +%F)

Смена порта в конфиге

Нужно заменить строку #Port 22 на Port 2222
# vi /etc/ssh/sshd_config
Port 2222

Разрешение порта на фаерволе

# firewall-cmd --permanent --zone=public --add-port=2222/tcp
# firewall-cmd --reload

Разрешение для SELinux

# semanage port -a -t ssh_port_t -p tcp 2222

Если semanage не установлен

# yum install policycoreutils-python

Применение настроек и перезапуск sshd

systemctl restart sshd.service

Проверка

# semanage port -l | grep ssh
ssh_port_t                     tcp      2292, 22
# ss -ntlp | grep ssh
LISTEN     0    128    *:22334      *:*     users:(("sshd",pid=29616,fd=3))
LISTEN     0    128   :::22334     :::*     users:(("sshd",pid=29616,fd=4))

Скрипт на bash

Порт 2222 следует заменить на нужный

#!/bin/bash
PORT_SSH = 2222
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig.$(date +%F)
sed "s/^[#\s]*Port .*/Port ${PORT_SSH}/"
firewall-cmd --permanent --zone=public --add-port=${PORT_SSH}/tcp
firewall-cmd --reload
yum install -y policycoreutils-python
semanage port -a -t ssh_port_t -p tcp ${PORT_SSH}
systemctl restart sshd.service

Комментариев нет:

Отправить комментарий