Невозможно запретить SSH с других IP-адресов

Вопрос или проблема

В настоящее время я не могу запретить SSH с других IP-адресов. Я использую VPS на Ubuntu от Hostinger, добавил ограничение в брандмауэре, чтобы разрешить доступ с моего IP и нескольких других, но запретить всем остальным. Это не срабатывает, я по-прежнему могу подключаться по SSH с любых IP-адресов. Основываясь на recommendation поддержки Hostinger, я выполнил следующие команды:

sudo ufw allow from 191.1.2.3 to any port 22
sudo ufw allow from 38.1.2.3 to any port 22
sudo ufw allow from 103.1.2.3 to any port 22
sudo ufw deny 22

Эта команда также не срабатывает, она разрешает доступ с других IP-адресов. У меня настроен VPN, и при смене регионов все работает хорошо с другими IP-адресами.

Правка: после выполнения sudo ufw status вывод:

22                         ALLOW       191.1.2.3            
22                         DENY        Anywhere         
22 (v6)                    DENY        Anywhere (v6)  

Ответ или решение

Чтобы решить вашу проблему с запретом SSH доступа с других IP-адресов на вашем VPS с Ubuntu, следуйте приведённым ниже шагам. Прежде всего, важно убедиться, что брандмауэр (UFW) настроен корректно и конфликтов в правилах не возникает.

  1. Проверьте активность UFW: Убедитесь, что UFW запущен и активен. Вы можете проверить состояние командой:

    sudo ufw status verbose

    Если UFW не активен, включите его:

    sudo ufw enable
  2. Удалите конфликтующие правила: Вам необходимо очистить существующие правила и настроить их заново. Для этого выполните команды:

    sudo ufw reset

    Это вернёт настройки UFW к значениям по умолчанию.

  3. Добавьте разрешённые IP-адреса: После сброса правил добавьте разрешённые IP-адреса. Убедитесь, что используете правильный синтаксис:

    sudo ufw allow from 191.1.2.3 to any port 22
    sudo ufw allow from 38.1.2.3 to any port 22
    sudo ufw allow from 103.1.2.3 to any port 22
  4. Запретьте доступ с других IP: Затем добавьте правило, которое будет запрещать доступ ко всем другим IP на 22 порту:

    sudo ufw deny 22

    После этого все IP, которые не входят в разрешённые, не смогут подключиться через SSH.

  5. Проверьте статусы правил: Убедитесь, что всё настроено корректно. Выполните команду для проверки:

    sudo ufw status

    Ожидаемый вывод должен выглядеть примерно так:

    22                         ALLOW       191.1.2.3
    22                         ALLOW       38.1.2.3            
    22                         ALLOW       103.1.2.3
    22                         DENY        Anywhere
    22 (v6)                    DENY        Anywhere (v6)  
  6. Проверьте файл конфигурации SSH: Иногда настройки SSH могут разрешать подключения без учёта брандмауэра. Откройте файл конфигурации SSH:

    sudo nano /etc/ssh/sshd_config

    Убедитесь, что параметр PermitRootLogin установлен в ‘no’, и AllowUsers настроен, если вы хотите ограничить доступ ещё больше. После внесения изменений перезапустите SSH:

    sudo systemctl restart sshd
  7. Дополнительные меры безопасности: Рассмотрите возможность использования таких методов, как аутентификация по ключам SSH, изменение порта по умолчанию (22) на другой (например, 2200) или установка программного обеспечения для защиты (например, Fail2Ban), чтобы предотвратить brute-force атаки.

После выполнения всех вышеперечисленных шагов SSH должен ограничивать доступ только для тех IP-адресов, которые вы указали, и запрещать доступ для всех остальных. Если проблема остаётся, убедитесь, что у вас нет других активных брандмауэров (например, Cloudflare, или встроенной системы безопасности вашего провайдера), которые могут влиять на подключение.

Оцените материал
Добавить комментарий

Капча загружается...