Если вам нужен хороший брандмауэр для вашего Linux-сервера или рабочего стола, iptables — отличный выбор. Он очень гибкий и быстрый. В этом руководстве мы покажем вам, как настроить брандмауэр iptables в Linux.
Установка iptables в Linux.
Чтобы настроить брандмауэр с помощью iptables в вашей системе Linux , вам необходимо сначала установить его. Откройте окно терминала и следуйте приведенным ниже инструкциям по установке для вашей ОС Linux. Iptables можно установить как на настольные компьютеры Linux, так и на серверы, и если вы предпочитаете стандартную загрузку iptables для Linux, вы можете посетить официальный веб-сайт . После завершения установки вы можете приступить к настройке брандмауэра с помощью iptables.
Инструкции по Ubuntu
sudo apt установить iptables
Инструкции Debian
sudo apt-get установить iptables
Инструкции по Arch Linux
sudo pacman -S iptables
Инструкции Fedora
sudo dnf установить iptables
Инструкции OpenSUSE
sudo sudo zypper в iptables
Дистрибутивы EPEL (Rhel, CentOS, Rocky, Alma и др.)
sudo yum установить iptables
Как создать набор правил iptables
Вы должны создать новый набор правил iptables, прежде чем пытаться использовать его в качестве брандмауэра. Откройте окно терминала и убедитесь, что вы можете вводить команды sudo . Если ваш пользователь не может, войдите в учетную запись root с помощью su .
Отсюда используйте команду iptables -F . Эта команда удалит и сбросит все предыдущие правила для iptables в вашей системе.
судо iptables-F
После выполнения приведенной выше команды вы можете запустить команду iptables -L , чтобы проверить и подтвердить, что правила были стерты.
судо iptables -L
Убедившись, что правила iptables очищены, используйте приведенную ниже команду iptables -P, чтобы по умолчанию заблокировать входящий трафик.
ВНИМАНИЕ: если вы редактируете iptables через SSH, отключитесь и редактируйте на физическом компьютере. Выполнение приведенной ниже команды автоматически отключит вас от SSH, пока вы не разрешите его через брандмауэр.
sudo iptables -P ВХОД DROP
Далее необходимо разрешить исходящий трафик из вашей системы через iptables. Вы можете разрешить исходящий трафик через брандмауэр iptables, введя следующую команду iptables -P .
sudo iptables -P ВЫВОД ПРИНЯТЬ
После того, как вы отключили входящий трафик и включили исходящий трафик, вы переходите к разрешению определенных служб.
Как разрешить порты через брандмауэр iptables
По умолчанию запуск iptables -P INPUT DROP отключает входящий трафик из всех источников (SSH, HTTP и т. д.). Чтобы включить эти службы, вам нужно добавить их в правила iptables.
Чтобы упростить задачу, вот список общих портов, которые вы, возможно, захотите включить в своем брандмауэре iptables. Скопируйте команду, связанную с портом, который вы хотите включить через брандмауэр iptables.
- HTTP (порт 80):
sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
- HTTPS (порт 443):
sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
- SSH (порт 22):
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
- FTP (порт 21):
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
- SMTP (порт 25):
sudo iptables -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
- DNS (порт 53):
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
для UDP или sudo iptables -A INPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
для TCP
- DNS через TLS (DoT) (порт 853):
sudo iptables -A INPUT -p tcp --dport 853 -m state --state NEW,ESTABLISHED -j ACCEPT
- DNS через HTTPS (DoH) (порт 443):
sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
- Протокол удаленного рабочего стола (RDP) (порт 3389):
sudo iptables -A INPUT -p tcp --dport 3389 -m state --state NEW,ESTABLISHED -j ACCEPT
- Виртуальные сетевые вычисления (VNC) (порт 5900):
sudo iptables -A INPUT -p tcp --dport 5900 -m state --state NEW,ESTABLISHED -j ACCEPT
- Secure Shell (SSH) с переадресацией X11 (порт 6010):
sudo iptables -A INPUT -p tcp --dport 6010 -m state --state NEW,ESTABLISHED -j ACCEPT
- База данных MySQL (порт 3306):
sudo iptables -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
- База данных PostgreSQL (порт 5432):
sudo iptables -A INPUT -p tcp --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
Когда вы разрешите все порты, которые хотите разрешить, вы можете проверить свои правила с помощью iptables -L .
судо iptables -L
Наконец, сохраните правила iptables в файл для целей резервного копирования. Вы можете сделать это с помощью команды iptables-save .
sudo iptables-save > /path/tosave/where/you/wish/to/save/rules/iptable-rules-backup
Как восстановить резервную копию iptables
Если вам нужно повторно развернуть брандмауэр iptables на другой машине, вот что нужно сделать. Сначала используйте команду iptables -F , чтобы сбросить существующие правила.
судо iptables-F
Затем скопируйте файл резервной копии в систему. После копирования восстановите резервную копию.
sudo iptables-восстановить <>