Брандмауэр решает, какие подключения пускать на сервер, а какие нет. Логика простая, снаружи должны быть видны только те сервисы, которыми вы реально пользуетесь. Чем меньше открытых портов, тем меньше шансов, что кто-то найдёт в них уязвимость.
Обычно открыть нужно совсем немного.
- SSH – порт
22или ваш, если вы его меняли; - сайт – порты
80и443; - VPN или прокси – порты, которые использует ваша программа, например
443для VLESS.
Сначала разрешите SSH
Если включить брандмауэр, не разрешив SSH, вы сразу потеряете доступ к серверу. Поэтому выполняйте команды строго по порядку.
Настройка брандмауэра
Команды выполняются на сервере.
# Устанавливаем UFW (в Ubuntu он обычно уже есть)
sudo apt update
sudo apt install -y ufw
# По умолчанию запрещаем все входящие подключения и разрешаем
# исходящие
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Разрешаем SSH. Если вы меняли порт, укажите свой вместо 22
sudo ufw allow 22/tcp
# Если на сервере работает сайт, открываем HTTP и HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Включаем брандмауэр. На вопрос о текущих SSH-подключениях
# ответьте y
sudo ufw enable
# Смотрим, какие правила действуют
sudo ufw status verbose# Устанавливаем firewalld и включаем его автозапуск
sudo dnf install -y firewalld
sudo systemctl enable --now firewalld
# Смотрим, что уже открыто. SSH здесь обычно разрешён по
# умолчанию
sudo firewall-cmd --list-all
# Если на сервере работает сайт, открываем HTTP и HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# Применяем изменения
sudo firewall-cmd --reloadЕсли позже понадобится открыть ещё какой-то порт, например 8080 для панели управления, это делается одной командой.
# Открываем порт 8080 для TCP-подключений
sudo ufw allow 8080/tcp# Открываем порт 8080 для TCP-подключений и применяем изменения
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reloadSSH только с вашего IP-адреса
Это самая сильная мера, ведь подключиться к SSH сможете только вы, а для всех остальных порт будет закрыт. Свой IP-адрес можно узнать на сайте 2ip.ru.
Подходит, если у вас постоянный IP
Этот шаг подходит, только если у вас постоянный IP-адрес. У многих домашних провайдеров он время от времени меняется, и тогда после смены адреса вы не сможете зайти по SSH, и придётся заходить через консоль. Если не уверены, что IP постоянный, пропустите этот шаг.
# Разрешаем SSH только с вашего IP. Вместо ВАШ_IP подставьте
# свой адрес,
# а вместо 22 – свой порт SSH, если меняли его
sudo ufw allow from ВАШ_IP to any port 22 proto tcp
# Удаляем общее правило, которое пускало к SSH всех
sudo ufw delete allow 22/tcp
# Проверяем список правил
sudo ufw status# Разрешаем SSH только с вашего IP. Вместо ВАШ_IP подставьте
# свой адрес,
# а вместо 22 – свой порт SSH, если меняли его
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="ВАШ_IP" port port="22" protocol="tcp" accept'
# Убираем стандартный сервис SSH, который был открыт для всех
sudo firewall-cmd --permanent --remove-service=ssh
# Применяем изменения и проверяем результат
sudo firewall-cmd --reload
sudo firewall-cmd --list-allЕсли доступ всё-таки пропал
Если доступ всё-таки пропал, откройте сервер кнопкой Консоль в списке серверов в личном кабинете и временно выключите брандмауэр.
На Ubuntu и Debian это команда sudo ufw disable.
На AlmaLinux, CentOS и Oracle Linux это sudo systemctl stop firewalld.
Потом поправьте правила и включите его снова.
Наши ресурсы
Telegram-канал: https://t.me/f3cloud_news
Сайт хостинга: https://f3cloud.com