Поиск по сайту:

Как ограничить доступ 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, что снижает риск несанкционированного доступа.

Статьи по данной тематике: