Как ограничить доступ SSH к локальным сетям в Linux
SSH (Secure Shell) – популярный инструмент, позволяющий пользователям безопасно подключаться к удаленным системам по сети. По умолчанию SSH доступен из любой сети, если установлены соответствующие настройки брандмауэра и сети.
Однако иногда из соображений безопасности вам может потребоваться ограничить доступ по SSH только вашей локальной сети. Это особенно полезно в домашней или офисной среде, где вам не нужен внешний доступ к вашей системе через Интернет.
В этой статье мы рассмотрим, как ограничить доступ SSH к локальной сети в Linux с помощью правил брандмауэра и конфигураций SSH. Мы объясним каждый шаг простыми словами, чтобы даже новичок мог разобраться.
Зачем ограничивать SSH локальной сетью?
Ограничение доступа по SSH только локальной сетью может снизить риск несанкционированного доступа к вашей системе.
Вот несколько причин, почему вы можете захотеть это сделать:
- Безопасность. Ограничение доступа к SSH из внешних сетей не позволяет злоумышленникам сканировать или пытаться взломать ваш сервер через Интернет.
- Контролируемый доступ. Если к одной локальной сети подключено несколько устройств, вы по-прежнему можете управлять системой, не подвергая ее внешним угрозам.
- Простота. Имея только локальный доступ, вам не придется беспокоиться о настройке дополнительных уровней безопасности для внешнего доступа.
Понимание локальной сети
Прежде чем начать, важно понять, что подразумевается под «локальной сетью». Локальная сеть — это группа устройств, подключенных к одной физической или беспроводной сети, например домашней сети Wi-Fi или офисной сети.
Эти устройства используют один и тот же внутренний диапазон IP-адресов, например 192.168.x.x или 10.0.x.x, тогда как внешние устройства (которые находятся в Интернете) будут иметь разные диапазоны IP-адресов.
Шаг 1. Проверьте диапазон локальных IP-адресов Linux
Чтобы узнать диапазон вашей локальной сети, вам сначала необходимо определить IP-адрес вашего устройства с помощью следующей команды ip, которая отобразит ваш IP-адрес и информацию о сети.
ip a
Вы увидите информацию о сетевых интерфейсах. Найдите что-то вроде 192.168.x.x или 10.0.x.x, которое сообщит вам ваш локальный IP-адрес.
Обычно ваш локальный IP-адрес находится в одном из этих частных диапазонов:
192.168.x.x
10.0.x.x
172.16.x.x to 172.31.x.x
Например, если ваш IP-адрес — 192.168.122.63, диапазон вашей локальной сети, скорее всего, будет 192.168.1.0/24, что означает все устройства с IP-адресами в диапазоне 192.168. .1.x находятся в одной локальной сети.
Шаг 2. Настройте SSH для прослушивания только локальных адресов
По умолчанию SSH прослушивает все доступные сетевые интерфейсы. Мы изменим его для прослушивания только в локальной сети.
sudo nano /etc/ssh/sshd_config
Найдите строку с #ListenAddress
и раскомментируйте ее (удалите #
в начале). Установите для него свой локальный IP-адрес.
Например, если ваш локальный IP-адрес — 192.168.122.63, обновите файл следующим образом:
ListenAddress 192.168.122.63
Перезапустите службу SSH, чтобы изменения вступили в силу.
sudo systemctl restart ssh
OR
sudo systemctl restart sshd
Теперь ваш SSH сервер будет прослушивать соединения только с вашего локального IP-адреса. Если вы попытаетесь подключиться из внешней сети, в подключении будет отказано.
Шаг 3. Ограничьте SSH с помощью правил брандмауэра
Хотя настройка демона SSH на прослушивание только локальных адресов полезна, вы можете добавить дополнительный уровень безопасности, настроив правила брандмауэра, которые гарантируют, что только устройства в вашей локальной сети смогут подключаться через SSH, даже если кто-то попытается получить доступ к вашей системе. используя свой внешний IP.
Использование UFW (несложный брандмауэр)
Если вы используете UFW, брандмауэр по умолчанию во многих дистрибутивах Linux, таких как Ubuntu, выполните следующие команды:
Разрешить SSH-соединения только из вашей локальной сети, например IP-адреса в диапазоне 192.168.1.x, и запретить SSH-соединения из других сетей. Обязательно перезагрузите брандмауэр и проверьте его состояние.
sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw deny 22
sudo ufw reload
sudo ufw status
Использование брандмауэра
Чтобы ограничить SSH локальной сетью в Linux с помощью Firewalld, выполните следующие команды.
Разрешить доступ по SSH из вашей локальной сети, например IP-адреса в диапазоне 192.168.1.x, и запретить подключения SSH из других сетей. Обязательно перезагрузите брандмауэр и проверьте его состояние.
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="22" drop'
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Использование iptables
Если вы не используете UFW или Firewalld, вы можете использовать iptables для настройки аналогичных правил.
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo iptables -L
Теперь доступ по SSH разрешен только с локальных устройств в пределах вашей сети.
Шаг 4. Проверьте свою конфигурацию
После настройки SSH и брандмауэра пришло время протестировать настройку, чтобы убедиться, что все работает должным образом.
С устройства в локальной сети попробуйте подключиться к серверу по SSH:
ssh [email
Если у вас есть доступ к внешней сети (например, с использованием мобильных данных или VPN), попробуйте подключиться к внешнему IP-адресу системы. Соединение должно быть заблокировано или отклонено.
Дополнительные советы
Вот несколько дополнительных советов по настройке SSH для локальной сети:
- Статический IP. Рекомендуется установить статический IP-адрес для устройства, к которому вы хотите подключиться по SSH, особенно если вы настраиваете правила брандмауэра на основе локального диапазона IP-адресов, что предотвратит изменение вашего IP-адреса. если маршрутизатор перезагружается.
- VPN-доступ. Если вам нужен удаленный доступ из внешней сети, рассмотрите возможность настройки VPN, которая позволит вам безопасно подключаться к локальной сети через Интернет, а SSH по-прежнему будет доступен только внутри локальная сеть.
- Отслеживать журналы. Всегда отслеживайте журналы SSH на предмет любых попыток несанкционированного доступа.
Проверить логи можно с помощью команды Tail:
sudo tail -f /var/log/auth.log
Заключение
Ограничение доступа SSH к локальной сети — это простой, но эффективный способ повысить безопасность вашей системы Linux. Следуя инструкциям в этом руководстве, вы можете предотвратить внешний доступ к вашему SSH-серверу, сохраняя при этом локальный доступ для задач управления и администрирования.
Благодаря правилам брандмауэра и правильной настройке вы можете гарантировать, что только доверенные устройства в вашей локальной сети смогут подключаться через SSH, что снижает риск несанкционированного доступа.