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

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


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


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


3. Включите UFW:
3. Включите UFW:
<code>
<code>sudo ufw enable</code>
sudo ufw enable
</code>


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


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


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


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


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


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


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


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


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


=== Управление UFW ===
=== Управление UFW ===


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


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


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


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


== 3. Настройка iptables ==
== 3. Настройка iptables ==
Строка 93: Строка 65:


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


== 4. Сохранение правил iptables ==
== 4. Сохранение правил iptables ==
Строка 171: Строка 119:


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


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


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


=== Для CentOS/RHEL ===
=== Для CentOS/RHEL ===


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


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


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


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


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


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


== 5. Настройка fail2ban ==
== 5. Настройка fail2ban ==
Строка 219: Строка 151:


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


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


=== Настройка fail2ban ===
=== Настройка fail2ban ===


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


2. Настройте основные параметры:
2. Настройте основные параметры:
<code>
<code>[DEFAULT]</code>
[DEFAULT]
<code>bantime = 3600</code>
bantime = 3600
<code>findtime = 600</code>
findtime = 600
<code>maxretry = 3</code>
maxretry = 3
<code>ignoreip = 127.0.0.1/8 ::1</code>
ignoreip = 127.0.0.1/8 ::1
<code>[sshd]</code>
 
<code>enabled = true</code>
[sshd]
<code>port = ssh</code>
enabled = true
<code>logpath = /var/log/auth.log</code>
port = ssh
<code>maxretry = 3</code>
logpath = /var/log/auth.log
maxretry = 3
</code>


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


=== Мониторинг fail2ban ===
=== Мониторинг fail2ban ===


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


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


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


== 6. Настройка для конкретных сервисов ==
== 6. Настройка для конкретных сервисов ==
Строка 278: Строка 193:


1. Разрешите трафик на порты веб-сервера:
1. Разрешите трафик на порты веб-сервера:
<code>
<code>sudo ufw allow 80/tcp</code>
# Apache
<code>sudo ufw allow 443/tcp</code>
sudo ufw allow 80/tcp
<code>sudo ufw allow 80/tcp</code>
sudo ufw allow 443/tcp
<code>sudo ufw allow 443/tcp</code>
 
# Nginx
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
</code>


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


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


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


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


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


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


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


== 7. Мониторинг и логирование ==
== 7. Мониторинг и логирование ==
Строка 327: Строка 227:


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


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


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


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


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


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


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


== 8. Устранение неполадок ==
== 8. Устранение неполадок ==
Строка 378: Строка 266:


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


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


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


== 9. Дополнительные настройки безопасности ==
== 9. Дополнительные настройки безопасности ==
Строка 398: Строка 280:


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


2. Добавьте содержимое:
2. Добавьте содержимое:
<code>
<code>PORT=$1</code>
#!/bin/bash
<code>DURATION=$2</code>
PORT=$1
<code>sudo ufw allow $PORT/tcp</code>
DURATION=$2
<code>echo "sudo ufw delete allow $PORT/tcp" | at now + $DURATION minutes</code>
 
<code>echo "Порт $PORT будет открыт в течение $DURATION минут"</code>
# Открыть порт
sudo ufw allow $PORT/tcp
 
# Запланировать закрытие
echo "sudo ufw delete allow $PORT/tcp" | at now + $DURATION minutes
 
echo "Порт $PORT будет открыт в течение $DURATION минут"
</code>


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


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


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


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


== 10. Автоматизация и скрипты ==
== 10. Автоматизация и скрипты ==
Строка 439: Строка 305:


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


2. Добавьте содержимое:
2. Добавьте содержимое:
<code>
<code>sudo ufw --force reset</code>
#!/bin/bash
<code>sudo ufw default deny incoming</code>
 
<code>sudo ufw default allow outgoing</code>
# Очистка правил
<code>sudo ufw allow ssh</code>
sudo ufw --force reset
<code>sudo ufw allow 80/tcp</code>
 
<code>sudo ufw allow 443/tcp</code>
# Базовые правила
<code>sudo ufw enable</code>
sudo ufw default deny incoming
<code>echo "Файрвол настроен и включен"</code>
sudo ufw default allow outgoing
 
# SSH
sudo ufw allow ssh
 
# Веб-сервер
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
 
# Включение файрвола
sudo ufw enable
 
echo "Файрвол настроен и включен"
</code>


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


== Заключение ==
== Заключение ==

Версия от 20:02, 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. Разрешите трафик на порты веб-сервера: 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):

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