Разбираем основы синтаксиса iptables
-
# установка
sudo apt -y install iptables-* && sudo apt -y install ufw
# Дибилизм ситуации в том, что сразу после установки
sudo systemctl disable ufw.service && sudo systemctl stop ufw.service
# Почему? Потому что в состав зависимостей ufw входит netfilter (сам фаерфолл) && iptables-persistent, # который сразу криво перехватывает управление траффиком в системе у iptables (при чем не смотря на # то, что это ubuntu firewall, он всюду и его вырубают с тем же успехом, что в Debian, что в CentOS7)
# после установки надо увериться, что в корне /etc/ находится папка iptables (там уже будут какие-то # правила, но это никому не интресно, ибо все равно все перепишем под себя =)) Последний пакет # сохраняет правила (после перезапуска фаерволла (iptables-persistent)
# . Это чистая практика, сам видел такое на шлюзах, управляющих траффиком и вот, наконец:
sudo iptables -F чистит все цепочки правил (даже те, что были по умолчанию)
sudo iptables -P INPUT DROP && sudo iptables -P OUTPUT DROP установить по умолчанию запрещающую #политику на все исходящие и входящие пакеты
## УПРАВЛЕНИЕ ПОРТАМИ И ТРАФФИКОМ
sudo iptables -A INPUT -p (protocol) tcp --match multiport --dports 80,443 (что там еще надо) -j ACCEPT разрешить сетевой серфинг
sudo iptables -A INPUT -p udp --dport 1194 -j DROP запретить vpn траффик через порт 1194 по протоколу udp
sudo iptables -I INPUT 1 -s 1.1.1.1 -p tcp --dport 25 -j DROP - запрет на траффик на порт 25 с адреса 1.1.1.1, #заметитм, что перед указанным адресом есть буква s (source, источник), буква d - destination # (назначение)
# Переводим входящий траффик на интрефейс eth1 хоста 1.15 по 22 порту
sudo iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 22 -j DNAT --to-destination 192.168.1.15:22
sudo iptables -A FORWARD -p tcp -d 192.168.1.15 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Перенаправим входящий траффик с порта 8022 на порт 22 хоста 1.15 по протоколу tcp
sudo iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 8022 -j DNAT --to-destination 192.168.1.15:22
sudo iptables -A FORWARD -p tcp -d 192.168.1.15 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j #ACCEPT
# Удалить правила за номером 4 и перезапустить фаерволл
sudo iptables -D INPUT 4 && sudo systemctl restart iptables.service
# запрет входящего траффика на порт 25 по протоколу tcp
sudo iptables -A INPUT -p tcp --dport 25 -j DROP
sudo iptables -L - чтение правил
sudo iptables -L -n -v чтение правил, но несколько более детально
# Как переместить правило из конца списка вначало
sudo iptables-save > rules.v4 перенаправлоение листинга правил в создаваемый файл rules.v4
sudo nano rules.v4 - открываем файл rules.v4 редактором nano и редактим правила
sudo iptables-restore < rules.v4 перенаправляем содержимое файла rules.v4
sudo systemctl restart iptables.service перезапусаем фаерволл (иногда из-за этого правила могут слететь) -
ставится sudo apt -y install iptables-* ufw && sudo systemctl disable/stop ufw (в числе прочего ставится пакет iptables-netfilter-persistent (он и отвечает за сохранность правил после перезагрузки). Данный способ установки имеет отношение только к Debian, на счет CentOS && Ubuntu информации нет
-
iptables в составе своих пакетов имеет такую штуку, как пакет iptables-persistent - он отвечает за синхронизацию правил фаервола с протоколами ip v4 && ip v6, которые в свою очередь будут синхронизированы с NetworkManager. Как раз в момент установки этого пакета - он и предлагает вам создать директорию /etc/iptables, внутри которой будут пустые файлы для обновленных правил iptables, которые, лично ,я просто меняю на файлы с уже прописанными правилами iptables. после чего делается systemctl restart ipbtales.service && systemctl status iptables.service - дабы убедиться, что правила на месте и работают. НО
Ни в Rosa Fresh 12, ни в ALTOS для неттопов или системников пакета iptables-persistent - нет. Видимо в результате бессмысленного и беспощадного ребрендинга (читай переименования пакетов в репах, в своих собственных). Думалось, это баг, но нет это "фича": предполагалось впаять вместо фаервола антивирь по умолчанию... НО есть проблема: Linux - не винда и правила антиврус здесь у фаервола по умолчанию не перехватывает, да и много ли линуксоидов, которые готовы потратить свои кровные на антивирус для Linux? Думаю, вопрос риторический - а, значит, из-за такой вот безалаберности со стороны шизанутых маркетологов, популярность отечественных ос будет немного не айс, можно, конечно, нарисовать вместо этого ufw, но эта штука в репах просто для красоты и ни на что не влияет. А работает - только опять-таки в связке iptables (да идиотизм), но как говорится ce l'a vi. Но не все потеряно:
вышесказанное относится только к дистрибутивам, упомянутым выше, а вот c Astra Linux - например не все так однозначно - по крайней мере в версии 1.7.X - iptables - точно был - сам видел и ставил и настраивал. 1.8 - еще не имел возможности пощупать...