Как правильно настроить SSH на Linux сервере

08:10
2.13K

SSH (Secure Shell) — это криптографический протокол, который позволяет безопасно подключаться к удаленному серверу через небезопасную сеть. В этой статье мы рассмотрим, как правильно настроить SSH на Linux сервере.

Установка SSH

SSH уже установлен на большинстве дистрибутивов Linux, однако, если вы не уверены, можете установить его следующим образом:

Ubuntu

sudo apt-get install openssh-server

CentOS

sudo yum install openssh-server

Настройка SSH

Изменение порта SSH

По умолчанию SSH работает на порту 22, что может представлять угрозу для безопасности. Рекомендуется изменить порт SSH на более высокий номер порта, например, 2222. Для изменения порта нужно отредактировать конфигурационный файл SSH:

sudo nano /etc/ssh/sshd_config

Найдите строчку Port 22 и измените на новый номер порта:

Port 2222

Сохраните изменения и перезапустите SSH:

sudo service ssh restart

Если в вашей системе включен SELinux, изменение порта SSH может не сработать. SELinux может заблокировать доступ к новому порту.

SELinux (Security-Enhanced Linux) - это механизм безопасности для ядра Linux, который дополнительно ограничивает доступ к ресурсам системы, чтобы предотвратить несанкционированный доступ или изменение данных.

Чтобы изменения вступили в силу, нужно выполнить следующую команду:

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

Эта команда добавит порт 2222 в список разрешенных портов для SSH. После этого необходимо повторно перезапустить SSH.

Настройка фаервола

Если в вашей системе включен файервол, то важно помнить, что он может блокировать соединения на новом порту. Необходимо настроить файервол и открыть порты, чтобы избежать проблем с подключением.

Открытие порта в Iptables

Для открытия порта 2222 в iptables, выполните следующие команды:

sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save

Эти команды добавят правило в iptables, разрешающее входящие соединения на порту 2222 и сохраняют изменения, чтобы они сохранялись после перезагрузки системы.

Открытие порта в Firewalld

Для открытия порта 2222 в firewalld, выполните следующие команды:

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

Эти команды добавят в фаервол правило, разрешающее входящие соединения на порту 2222. Параметр --permanent сохраняет изменения на постоянной основе, а команда --reload перезагружает firewalld для применения изменений.

Ограничение доступа по SSH

Для повышения безопасности рекомендуется ограничить доступ к SSH только для определенных пользователей. Для этого нужно отредактировать конфигурационный файл SSH и добавить следующие строки:

AllowUsers user1 user2

Замените user1 и user2 на имена пользователей, которым нужно разрешить доступ к SSH.

Отключение входа по паролю

Для повышения безопасности рекомендуется отключить возможность входа по паролю и использовать только ключи SSH. Для этого нужно отредактировать конфигурационный файл SSH и изменить следующие строки:

PasswordAuthentication no
ChallengeResponseAuthentication no

Использование ключей SSH

Использование ключей SSH гарантирует более безопасное подключение к серверу. Для генерации ключей на локальном компьютере нужно выполнить следующую команду:

ssh-keygen

После выполнения этой команды в домашней директории пользователя будет создана папка .ssh с двумя файлами: id_rsa и id_rsa.pub. Файл id_rsa должен быть хранен в безопасном месте, а файл id_rsa.pub нужно скопировать на сервер в файл ~/.ssh/authorized_keys:

cat ~/.ssh/id_rsa.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Замените user на имя пользователя, от имени которого нужно выполнить подключение к серверу.

Создание ключей SSH без пароля

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

ssh-keygen -t rsa -b 4096 -C "comment" -N ""

Вместо comment нужно указать комментарий для ключа. После выполнения команды в домашней директории пользователя будет создана папка .ssh с двумя файлами: id_rsa и id_rsa.pub. Файл id_rsa должен быть хранен в безопасном месте, а файл id_rsa.pub нужно скопировать на сервер в файл ~/.ssh/authorized_keys.

Использование SSH-Agent

SSH-Agent - это инструмент, который облегчает подключение к серверу без необходимости ввода пароля каждый раз. Он позволяет хранить приватные ключи SSH в памяти компьютера и использовать их для автоматического подключения к серверу. Для использования SSH-Agent нужно выполнить следующие команды:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Первая команда запускает SSH-Agent, а вторая команда добавляет приватный ключ id_rsa в SSH-Agent. Это позволяет не только автоматически подключаться к серверу без ввода пароля, но и обезопасить вашу информацию, так как приватный ключ не будет передаваться по сети. Кроме того, вы можете добавить другие ключи в SSH-Agent и использовать их для подключения к нескольким серверам. В целом, использование SSH-Agent значительно упрощает и ускоряет работу с серверами.

Заключение

Это была краткая статья о том, как правильно настроить SSH на Linux сервере. Следуя указанным рекомендациям, вы можете повысить безопасность своего сервера и защитить его от несанкционированного доступа.

08:10
2.13K
Этот сайт использует cookie для хранения данных. Продолжая использовать сайт, Вы даете свое согласие на работу с этими файлами.