Настройка файрвола (iptables/ufw) — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 11: | Строка 11: | ||
1. Проверьте статус UFW: | 1. Проверьте статус UFW: | ||
− | < | + | <pre>sudo ufw status</pre> |
2. Если UFW не установлен, установите его: | 2. Если UFW не установлен, установите его: | ||
− | < | + | <pre>sudo apt update</pre> |
− | < | + | <pre>sudo apt install ufw</pre> |
3. Включите UFW: | 3. Включите UFW: | ||
− | < | + | <pre>sudo ufw enable</pre> |
=== Базовая настройка UFW === | === Базовая настройка UFW === | ||
1. Разрешите SSH подключения (ВАЖНО!): | 1. Разрешите SSH подключения (ВАЖНО!): | ||
− | < | + | <pre>sudo ufw allow ssh</pre> |
2. Разрешите HTTP и HTTPS трафик: | 2. Разрешите HTTP и HTTPS трафик: | ||
− | < | + | <pre>sudo ufw allow 80/tcp</pre> |
− | < | + | <pre>sudo ufw allow 443/tcp</pre> |
3. Разрешите трафик на конкретный порт: | 3. Разрешите трафик на конкретный порт: | ||
− | < | + | <pre>sudo ufw allow 8080/tcp</pre> |
4. Разрешите трафик с конкретного IP: | 4. Разрешите трафик с конкретного IP: | ||
− | < | + | <pre>sudo ufw allow from 192.168.1.100</pre> |
=== Дополнительные правила UFW === | === Дополнительные правила UFW === | ||
1. Запретите трафик на порт: | 1. Запретите трафик на порт: | ||
− | < | + | <pre>sudo ufw deny 23/tcp</pre> |
2. Разрешите трафик только на определенный порт: | 2. Разрешите трафик только на определенный порт: | ||
− | < | + | <pre>sudo ufw allow 3306/tcp</pre> |
3. Настройте правила для конкретного интерфейса: | 3. Настройте правила для конкретного интерфейса: | ||
− | < | + | <pre>sudo ufw allow in on eth0 to any port 80</pre> |
=== Управление UFW === | === Управление UFW === | ||
1. Просмотрите статус: | 1. Просмотрите статус: | ||
− | < | + | <pre>sudo ufw status verbose</pre> |
2. Просмотрите нумерованные правила: | 2. Просмотрите нумерованные правила: | ||
− | < | + | <pre>sudo ufw status numbered</pre> |
3. Удалите правило по номеру: | 3. Удалите правило по номеру: | ||
− | < | + | <pre>sudo ufw delete 1</pre> |
4. Сбросьте все правила: | 4. Сбросьте все правила: | ||
− | < | + | <pre>sudo ufw --force reset</pre> |
== 3. Настройка iptables == | == 3. Настройка iptables == | ||
Строка 65: | Строка 65: | ||
1. Просмотрите текущие правила: | 1. Просмотрите текущие правила: | ||
− | < | + | <pre>sudo iptables -L -n -v</pre> |
2. Просмотрите правила с номерами строк: | 2. Просмотрите правила с номерами строк: | ||
− | < | + | <pre>sudo iptables -L -n -v --line-numbers</pre> |
=== Базовая настройка iptables === | === Базовая настройка iptables === | ||
1. Очистите все правила: | 1. Очистите все правила: | ||
− | < | + | <pre>sudo iptables -F</pre> |
− | < | + | <pre>sudo iptables -X</pre> |
− | < | + | <pre>sudo iptables -t nat -F</pre> |
− | < | + | <pre>sudo iptables -t nat -X</pre> |
2. Установите политики по умолчанию: | 2. Установите политики по умолчанию: | ||
− | < | + | <pre>sudo iptables -P INPUT DROP</pre> |
− | < | + | <pre>sudo iptables -P FORWARD DROP</pre> |
− | < | + | <pre>sudo iptables -P OUTPUT ACCEPT</pre> |
3. Разрешите loopback трафик: | 3. Разрешите loopback трафик: | ||
− | < | + | <pre>sudo iptables -A INPUT -i lo -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A OUTPUT -o lo -j ACCEPT</pre> |
=== Настройка правил для веб-сервера === | === Настройка правил для веб-сервера === | ||
1. Разрешите установленные соединения: | 1. Разрешите установленные соединения: | ||
− | < | + | <pre>sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</pre> |
2. Разрешите SSH (ВАЖНО!): | 2. Разрешите SSH (ВАЖНО!): | ||
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT</pre> |
3. Разрешите HTTP и HTTPS: | 3. Разрешите HTTP и HTTPS: | ||
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT</pre> |
4. Разрешите ping: | 4. Разрешите ping: | ||
− | < | + | <pre>sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT</pre> |
=== Дополнительные правила iptables === | === Дополнительные правила iptables === | ||
1. Ограничьте количество соединений: | 1. Ограничьте количество соединений: | ||
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP</pre> |
2. Заблокируйте подозрительный трафик: | 2. Заблокируйте подозрительный трафик: | ||
− | < | + | <pre>sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP</pre> |
3. Заблокируйте конкретный IP: | 3. Заблокируйте конкретный IP: | ||
− | < | + | <pre>sudo iptables -A INPUT -s 192.168.1.100 -j DROP</pre> |
== 4. Сохранение правил iptables == | == 4. Сохранение правил iptables == | ||
Строка 119: | Строка 119: | ||
1. Установите iptables-persistent: | 1. Установите iptables-persistent: | ||
− | < | + | <pre>sudo apt install iptables-persistent</pre> |
2. Сохраните текущие правила: | 2. Сохраните текущие правила: | ||
− | < | + | <pre>sudo netfilter-persistent save</pre> |
3. Включите автозапуск: | 3. Включите автозапуск: | ||
− | < | + | <pre>sudo systemctl enable netfilter-persistent</pre> |
=== Для CentOS/RHEL === | === Для CentOS/RHEL === | ||
1. Сохраните правила: | 1. Сохраните правила: | ||
− | < | + | <pre>sudo iptables-save > /etc/sysconfig/iptables</pre> |
2. Включите автозапуск: | 2. Включите автозапуск: | ||
− | < | + | <pre>sudo systemctl enable iptables</pre> |
=== Ручное сохранение === | === Ручное сохранение === | ||
1. Сохраните правила в файл: | 1. Сохраните правила в файл: | ||
− | < | + | <pre>sudo iptables-save > /etc/iptables/rules.v4</pre> |
2. Создайте скрипт для загрузки: | 2. Создайте скрипт для загрузки: | ||
− | < | + | <pre>sudo nano /etc/rc.local</pre> |
3. Добавьте строку: | 3. Добавьте строку: | ||
− | < | + | <pre>iptables-restore < /etc/iptables/rules.v4</pre> |
== 5. Настройка fail2ban == | == 5. Настройка fail2ban == | ||
Строка 151: | Строка 151: | ||
1. Установите fail2ban: | 1. Установите fail2ban: | ||
− | < | + | <pre>sudo apt install fail2ban</pre> |
2. Создайте локальную конфигурацию: | 2. Создайте локальную конфигурацию: | ||
− | < | + | <pre>sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local</pre> |
=== Настройка fail2ban === | === Настройка fail2ban === | ||
1. Отредактируйте конфигурацию: | 1. Отредактируйте конфигурацию: | ||
− | < | + | <pre>sudo nano /etc/fail2ban/jail.local</pre> |
2. Настройте основные параметры: | 2. Настройте основные параметры: | ||
− | < | + | <pre>[DEFAULT]</pre> |
− | < | + | <pre>bantime = 3600</pre> |
− | < | + | <pre>findtime = 600</pre> |
− | < | + | <pre>maxretry = 3</pre> |
− | < | + | <pre>ignoreip = 127.0.0.1/8 ::1</pre> |
− | < | + | <pre>[sshd]</pre> |
− | < | + | <pre>enabled = true</pre> |
− | < | + | <pre>port = ssh</pre> |
− | < | + | <pre>logpath = /var/log/auth.log</pre> |
− | < | + | <pre>maxretry = 3</pre> |
3. Запустите fail2ban: | 3. Запустите fail2ban: | ||
− | < | + | <pre>sudo systemctl start fail2ban</pre> |
− | < | + | <pre>sudo systemctl enable fail2ban</pre> |
=== Мониторинг fail2ban === | === Мониторинг fail2ban === | ||
1. Проверьте статус: | 1. Проверьте статус: | ||
− | < | + | <pre>sudo fail2ban-client status</pre> |
2. Проверьте конкретную тюрьму: | 2. Проверьте конкретную тюрьму: | ||
− | < | + | <pre>sudo fail2ban-client status sshd</pre> |
3. Разблокируйте IP: | 3. Разблокируйте IP: | ||
− | < | + | <pre>sudo fail2ban-client set sshd unbanip 192.168.1.100</pre> |
== 6. Настройка для конкретных сервисов == | == 6. Настройка для конкретных сервисов == | ||
Строка 193: | Строка 193: | ||
1. Разрешите трафик на порты веб-сервера: | 1. Разрешите трафик на порты веб-сервера: | ||
− | < | + | <pre>sudo ufw allow 80/tcp</pre> |
− | < | + | <pre>sudo ufw allow 443/tcp</pre> |
− | < | + | <pre>sudo ufw allow 80/tcp</pre> |
− | < | + | <pre>sudo ufw allow 443/tcp</pre> |
2. Настройте iptables для веб-сервера: | 2. Настройте iptables для веб-сервера: | ||
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT</pre> |
=== Настройка для базы данных === | === Настройка для базы данных === | ||
1. Разрешите подключения к MySQL только с локальных адресов: | 1. Разрешите подключения к MySQL только с локальных адресов: | ||
− | < | + | <pre>sudo ufw allow from 192.168.1.0/24 to any port 3306</pre> |
2. Настройте iptables: | 2. Настройте iptables: | ||
− | < | + | <pre>sudo iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT</pre> |
=== Настройка для FTP === | === Настройка для FTP === | ||
1. Разрешите FTP трафик: | 1. Разрешите FTP трафик: | ||
− | < | + | <pre>sudo ufw allow 21/tcp</pre> |
− | < | + | <pre>sudo ufw allow 20/tcp</pre> |
− | < | + | <pre>sudo ufw allow 1024:65535/tcp</pre> |
2. Настройте iptables для пассивного FTP: | 2. Настройте iptables для пассивного FTP: | ||
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT</pre> |
== 7. Мониторинг и логирование == | == 7. Мониторинг и логирование == | ||
Строка 227: | Строка 227: | ||
1. Просмотрите логи UFW: | 1. Просмотрите логи UFW: | ||
− | < | + | <pre>sudo tail -f /var/log/ufw.log</pre> |
2. Просмотрите логи iptables: | 2. Просмотрите логи iptables: | ||
− | < | + | <pre>sudo dmesg | grep iptables</pre> |
3. Просмотрите логи fail2ban: | 3. Просмотрите логи fail2ban: | ||
− | < | + | <pre>sudo tail -f /var/log/fail2ban.log</pre> |
=== Мониторинг подключений === | === Мониторинг подключений === | ||
1. Просмотрите активные соединения: | 1. Просмотрите активные соединения: | ||
− | < | + | <pre>sudo netstat -tulpn</pre> |
2. Просмотрите соединения по протоколам: | 2. Просмотрите соединения по протоколам: | ||
− | < | + | <pre>sudo ss -tulpn</pre> |
3. Просмотрите статистику трафика: | 3. Просмотрите статистику трафика: | ||
− | < | + | <pre>sudo iptables -L -n -v</pre> |
== 8. Устранение неполадок == | == 8. Устранение неполадок == | ||
Строка 252: | Строка 252: | ||
1. '''Заблокирован доступ к серверу''': | 1. '''Заблокирован доступ к серверу''': | ||
* Подключитесь через консоль | * Подключитесь через консоль | ||
− | * Отключите файрвол: < | + | * Отключите файрвол: <pre>sudo ufw disable</pre> |
− | * Или сбросьте iptables: < | + | * Или сбросьте iptables: <pre>sudo iptables -F</pre> |
2. '''SSH не работает''': | 2. '''SSH не работает''': | ||
− | * Проверьте правила: < | + | * Проверьте правила: <pre>sudo ufw status</pre> |
− | * Разрешите SSH: < | + | * Разрешите SSH: <pre>sudo ufw allow ssh</pre> |
3. '''Веб-сайт недоступен''': | 3. '''Веб-сайт недоступен''': | ||
Строка 266: | Строка 266: | ||
1. Проверьте статус файрвола: | 1. Проверьте статус файрвола: | ||
− | < | + | <pre>sudo ufw status verbose</pre> |
− | < | + | <pre>sudo iptables -L -n -v</pre> |
2. Проверьте открытые порты: | 2. Проверьте открытые порты: | ||
− | < | + | <pre>sudo nmap -sT -O localhost</pre> |
3. Проверьте сетевые интерфейсы: | 3. Проверьте сетевые интерфейсы: | ||
− | < | + | <pre>ip addr show</pre> |
== 9. Дополнительные настройки безопасности == | == 9. Дополнительные настройки безопасности == | ||
Строка 280: | Строка 280: | ||
1. Создайте скрипт для временного открытия порта: | 1. Создайте скрипт для временного открытия порта: | ||
− | < | + | <pre>sudo nano /usr/local/bin/temp-open-port.sh</pre> |
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
− | < | + | <pre>PORT=$1</pre> |
− | < | + | <pre>DURATION=$2</pre> |
− | < | + | <pre>sudo ufw allow $PORT/tcp</pre> |
− | < | + | <pre>echo "sudo ufw delete allow $PORT/tcp" | at now + $DURATION minutes</pre> |
− | < | + | <pre>echo "Порт $PORT будет открыт в течение $DURATION минут"</pre> |
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/temp-open-port.sh</pre> |
=== Настройка геоблокировки === | === Настройка геоблокировки === | ||
1. Установите geoip модуль: | 1. Установите geoip модуль: | ||
− | < | + | <pre>sudo apt install xtables-addons-common</pre> |
2. Заблокируйте трафик из определенных стран: | 2. Заблокируйте трафик из определенных стран: | ||
− | < | + | <pre>sudo iptables -A INPUT -m geoip --src-cc CN,KR -j DROP</pre> |
== 10. Автоматизация и скрипты == | == 10. Автоматизация и скрипты == | ||
Строка 305: | Строка 305: | ||
1. Создайте скрипт настройки: | 1. Создайте скрипт настройки: | ||
− | < | + | <pre>sudo nano /usr/local/bin/firewall-setup.sh</pre> |
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
− | < | + | <pre>sudo ufw --force reset</pre> |
− | < | + | <pre>sudo ufw default deny incoming</pre> |
− | < | + | <pre>sudo ufw default allow outgoing</pre> |
− | < | + | <pre>sudo ufw allow ssh</pre> |
− | < | + | <pre>sudo ufw allow 80/tcp</pre> |
− | < | + | <pre>sudo ufw allow 443/tcp</pre> |
− | < | + | <pre>sudo ufw enable</pre> |
− | < | + | <pre>echo "Файрвол настроен и включен"</pre> |
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/firewall-setup.sh</pre> |
== Заключение == | == Заключение == |
Текущая версия на 10:39, 15 октября 2025
Содержание
- 1 Настройка файрвола (iptables/ufw)
- 1.1 1. Подготовка системы
- 1.2 2. Настройка UFW (Ubuntu/Debian)
- 1.3 3. Настройка iptables
- 1.4 4. Сохранение правил iptables
- 1.5 5. Настройка fail2ban
- 1.6 6. Настройка для конкретных сервисов
- 1.7 7. Мониторинг и логирование
- 1.8 8. Устранение неполадок
- 1.9 9. Дополнительные настройки безопасности
- 1.10 10. Автоматизация и скрипты
- 1.11 Заключение
Настройка файрвола (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. Разрешите трафик на порты веб-сервера:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
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. Добавьте содержимое:
PORT=$1
DURATION=$2
sudo ufw allow $PORT/tcp
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. Добавьте содержимое:
sudo ufw --force reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
echo "Файрвол настроен и включен"
3. Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/firewall-setup.sh
Заключение
Файрвол успешно настроен! Теперь ваш сервер защищен от нежелательного трафика.
Для размещения ваших защищенных проектов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для корпоративных проектов с продвинутой защитой
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой файрвола и обеспечением безопасности вашего сервера!