Настройка файрвола (iptables/ufw) — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Настройка файрвола (iptables/ufw) = == 1. Подготовка системы == * Войдите в систему под учетной з…»)
(нет различий)

Версия 19:34, 14 октября 2025

Содержание

Настройка файрвола (iptables/ufw)

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через консоль (не только SSH).

2. Настройка UFW (Ubuntu/Debian)

Установка и активация UFW

1. Проверьте статус UFW: sudo ufw status

2. Если UFW не установлен, установите его: sudo apt update sudo apt install ufw

3. Включите UFW: sudo ufw enable

Базовая настройка UFW

1. Разрешите SSH подключения (ВАЖНО!): sudo ufw allow ssh

2. Разрешите HTTP и HTTPS трафик: sudo ufw allow 80/tcp sudo ufw allow 443/tcp

3. Разрешите трафик на конкретный порт: sudo ufw allow 8080/tcp

4. Разрешите трафик с конкретного IP: sudo ufw allow from 192.168.1.100

Дополнительные правила UFW

1. Запретите трафик на порт: sudo ufw deny 23/tcp

2. Разрешите трафик только на определенный порт: sudo ufw allow 3306/tcp

3. Настройте правила для конкретного интерфейса: sudo ufw allow in on eth0 to any port 80

Управление UFW

1. Просмотрите статус: sudo ufw status verbose

2. Просмотрите нумерованные правила: sudo ufw status numbered

3. Удалите правило по номеру: sudo ufw delete 1

4. Сбросьте все правила: sudo ufw --force reset

3. Настройка iptables

Основы iptables

1. Просмотрите текущие правила: sudo iptables -L -n -v

2. Просмотрите правила с номерами строк: sudo iptables -L -n -v --line-numbers

Базовая настройка iptables

1. Очистите все правила: sudo iptables -F sudo iptables -X sudo iptables -t nat -F sudo iptables -t nat -X

2. Установите политики по умолчанию: sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT

3. Разрешите loopback трафик: sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT

Настройка правил для веб-сервера

1. Разрешите установленные соединения: sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2. Разрешите SSH (ВАЖНО!): sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

3. Разрешите HTTP и HTTPS: sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

4. Разрешите ping: sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Дополнительные правила iptables

1. Ограничьте количество соединений: sudo iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP

2. Заблокируйте подозрительный трафик: sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

3. Заблокируйте конкретный IP: sudo iptables -A INPUT -s 192.168.1.100 -j DROP

4. Сохранение правил iptables

Для Ubuntu/Debian

1. Установите iptables-persistent: sudo apt install iptables-persistent

2. Сохраните текущие правила: sudo netfilter-persistent save

3. Включите автозапуск: sudo systemctl enable netfilter-persistent

Для CentOS/RHEL

1. Сохраните правила: sudo iptables-save > /etc/sysconfig/iptables

2. Включите автозапуск: sudo systemctl enable iptables

Ручное сохранение

1. Сохраните правила в файл: sudo iptables-save > /etc/iptables/rules.v4

2. Создайте скрипт для загрузки: sudo nano /etc/rc.local

3. Добавьте строку: iptables-restore < /etc/iptables/rules.v4

5. Настройка fail2ban

Установка fail2ban

1. Установите fail2ban: sudo apt install fail2ban

2. Создайте локальную конфигурацию: sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Настройка fail2ban

1. Отредактируйте конфигурацию: sudo nano /etc/fail2ban/jail.local

2. Настройте основные параметры: [DEFAULT] bantime = 3600 findtime = 600 maxretry = 3 ignoreip = 127.0.0.1/8 ::1

[sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 3

3. Запустите fail2ban: sudo systemctl start fail2ban sudo systemctl enable fail2ban

Мониторинг fail2ban

1. Проверьте статус: sudo fail2ban-client status

2. Проверьте конкретную тюрьму: sudo fail2ban-client status sshd

3. Разблокируйте IP: sudo fail2ban-client set sshd unbanip 192.168.1.100

6. Настройка для конкретных сервисов

Настройка для веб-сервера

1. Разрешите трафик на порты веб-сервера:

  1. Apache

sudo ufw allow 80/tcp sudo ufw allow 443/tcp

  1. Nginx

sudo ufw allow 80/tcp sudo ufw allow 443/tcp

2. Настройте iptables для веб-сервера: sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Настройка для базы данных

1. Разрешите подключения к MySQL только с локальных адресов: sudo ufw allow from 192.168.1.0/24 to any port 3306

2. Настройте iptables: sudo iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT

Настройка для FTP

1. Разрешите FTP трафик: sudo ufw allow 21/tcp sudo ufw allow 20/tcp sudo ufw allow 1024:65535/tcp

2. Настройте iptables для пассивного FTP: sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT

7. Мониторинг и логирование

Просмотр логов

1. Просмотрите логи UFW: sudo tail -f /var/log/ufw.log

2. Просмотрите логи iptables: sudo dmesg | grep iptables

3. Просмотрите логи fail2ban: sudo tail -f /var/log/fail2ban.log

Мониторинг подключений

1. Просмотрите активные соединения: sudo netstat -tulpn

2. Просмотрите соединения по протоколам: sudo ss -tulpn

3. Просмотрите статистику трафика: sudo iptables -L -n -v

8. Устранение неполадок

Частые проблемы

1. Заблокирован доступ к серверу:

  • Подключитесь через консоль
  • Отключите файрвол: sudo ufw disable
  • Или сбросьте iptables: sudo iptables -F

2. SSH не работает:

  • Проверьте правила: sudo ufw status
  • Разрешите SSH: sudo ufw allow ssh

3. Веб-сайт недоступен:

  • Проверьте правила для портов 80 и 443
  • Убедитесь, что веб-сервер запущен

Диагностика

1. Проверьте статус файрвола: sudo ufw status verbose sudo iptables -L -n -v

2. Проверьте открытые порты: sudo nmap -sT -O localhost

3. Проверьте сетевые интерфейсы: ip addr show

9. Дополнительные настройки безопасности

Ограничение по времени

1. Создайте скрипт для временного открытия порта: sudo nano /usr/local/bin/temp-open-port.sh

2. Добавьте содержимое:

  1. !/bin/bash

PORT=$1 DURATION=$2

  1. Открыть порт

sudo ufw allow $PORT/tcp

  1. Запланировать закрытие

echo "sudo ufw delete allow $PORT/tcp" | at now + $DURATION minutes

echo "Порт $PORT будет открыт в течение $DURATION минут"

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/temp-open-port.sh

Настройка геоблокировки

1. Установите geoip модуль: sudo apt install xtables-addons-common

2. Заблокируйте трафик из определенных стран: sudo iptables -A INPUT -m geoip --src-cc CN,KR -j DROP

10. Автоматизация и скрипты

Скрипт для быстрой настройки

1. Создайте скрипт настройки: sudo nano /usr/local/bin/firewall-setup.sh

2. Добавьте содержимое:

  1. !/bin/bash
  1. Очистка правил

sudo ufw --force reset

  1. Базовые правила

sudo ufw default deny incoming sudo ufw default allow outgoing

  1. SSH

sudo ufw allow ssh

  1. Веб-сервер

sudo ufw allow 80/tcp sudo ufw allow 443/tcp

  1. Включение файрвола

sudo ufw enable

echo "Файрвол настроен и включен"

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/firewall-setup.sh

Заключение

Файрвол успешно настроен! Теперь ваш сервер защищен от нежелательного трафика.

Для размещения ваших защищенных проектов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой файрвола и обеспечением безопасности вашего сервера!