iptables

How can we help?

iptables

Навигация

Ссылка

Отображать все действующие правила лучше с детализацией и нумерацией строк, Ключ —line-numbers нумерует строки, -L выводит список правил всех цепочек, -v отвечает за детализацию вывода, -n выводит IP-адреса и номера портов в числовом формате:

iptables --line-numbers -L -v -n

Удалить 4 правило в цепочке INPUT:

iptables -D INPUT 4

Сброс всех правил, создаем файл, делаем его исполняемым и редактируем:

touch /etc/iptables.reset && chmod +x /etc/iptables.reset && vi /etc/iptables.reset
!/bin/bash
colGreen="\033[32m"
resetCol="\033[0m"
echo -n "Flushing firewall rules and changing default policy to ACCEPT…"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo -e "$colGreen Done! $resetCol"

Ставим утилиту

apt install iptables-persistent

Теперь для сохранения текущих настроек достаточно ввести команду:

service netfilter-persistent save

Вернуться к последним сохраненным правилам:

iptables-restore < /etc/iptables/rules.v4

Писать в лог, например событие DROP INPUT, записи пишутся в файл /var/log/syslog:

iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "ACCESS RESTRICTED: "

Заблокировать адрес:

iptables -A INPUT -s 10.10.10.1 -j DROP

Разрешить адрес:

iptables -A INPUT -s 10.10.10.1 -j ACCEPT

Открыть порты:

iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT

то же самое в две строки:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Block outgoing sites
iptables -A OUTPUT -p tcp -d www.microsoft.com -j DROP

Allow ping from specific ip’s only
iptables -A INPUT -s 1.2.3.0/24 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Allow ssh from specific ip’s only
iptables -A INPUT -s 1.2.3.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j DROP

Block incoming web access
iptables -A input -p tcp --dport 80 -j DROP

Port forward
Forward incoming connection to another internal host (aa.bb.cc.dd:22)
iptables -t nat -A PREROUTING -I eth0 -p tcp --dport 1022 -j DNAT --to aa.bb.cc.dd:22
iptables -A FORWARD -p tcp -d aa.bb.cc.dd -dport 22 -m state --state NEW,ESTABLISH -j ACCEPT

Delete a rule
iptables -L -n -v --line-numbers
iptables -D input {line-number}