Show iptables on linux

Содержание
  1. Viewing all iptables rules
  2. 8 Answers 8
  3. IPTABLES
  4. 2. Отобразить список правил с номерами строк.
  5. 3. Отобразить INPUT или OUTPUT цепочки правил.
  6. 4. Остановить, запустить, перезапустить файрвол.
  7. 5. Удалить правила файрвола.
  8. 6. Добавить правило в файрвол.
  9. 7. Сохраняем правила файрвола.
  10. 8. Восстанавливаем правила.
  11. 9. Устанавливаем политики по умолчанию.
  12. 10. Блокировать только входящие соединения.
  13. 11. Сбрасывать адреса изолированных сетей в публичной сети.
  14. 12. Блокировка определенного IP адреса.
  15. 13. Заблокировать входящие запросы порта.
  16. 14. Заблокировать запросы на исходящий IP адрес.
  17. 15. Записать событие и сбросить.
  18. 16. Записать событие и сбросить (с ограничением на количество записей).
  19. 16. Сбрасывать или разрешить трафик с определенных MAC адресов.
  20. 17. Разрешить или запретить ICMP Ping запросы.
  21. 18. Открыть диапазон портов.
  22. 9. Открыть диапазон адресов.
  23. 20. Закрыть или открыть стандартные порты.
  24. 21. Ограничить количество параллельных соединений к серверу для одного адреса.
  25. Помощь по iptables.
  26. Проверка правила iptables.

Viewing all iptables rules

Is there a way to view iptables rules in a bit more detail? I recently added masquerade to a range of IPs:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE service iptables save service iptables restart 
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 

8 Answers 8

When using the -L , —list option to list the current firewall rules, you also need to specify the appropriate Netfilter table (one of filter , nat , mangle , raw or security ). So, if you’ve added a rule for the nat table, you should explicitly specify this table using the -t , —table option:

Or using the options short form:

If you don’t specify a specific table, the filter table is used as the default.

For faster results, it can be useful to also include the -n , —numeric option to print numeric IP addresses instead of hostnames, thus avoiding the need to wait for reverse DNS lookups.

You can get even more information by including the -v , —verbose option.

iptables controls five different tables: filter , nat , mangle , raw and security . On a given call, iptables only displays or modifies one of these tables, specified by the argument to the option -t (defaulting to filter ). To see the complete state of the firewall, you need to call iptables on each of the tables successively.

Additionally, to get an accurate representation of the rules, you need to pass the option -v . Otherwise some important criteria are omitted in the output, such as the interface in filter rules (e.g. a rule that says “accept everything” and a rule that says “accept everything on the loopback interface” can only be distinguished with -v ).

Thus, to get a complete presentation of the netfilter rules, you need

iptables -vL -t filter iptables -vL -t nat iptables -vL -t mangle iptables -vL -t raw iptables -vL -t security 

Alternatively, you can call the iptables-save program, which displays all the rules in all tables in a format that can be parsed by iptables-restore . This format is also reasonably readable by humans (it’s pretty much like a series of calls to the iptables command to build the table).

Читайте также:  Обновление дистрибутива линукс минт

Источник

IPTABLES

Thank you for reading this post, don’t forget to subscribe!

Где:
-L : Пока­зать спи­сок правил.
-v : Отоб­ра­жать допол­ни­тель­ную инфор­ма­цию. Эта опция пока­зы­ва­ет имя интер­фей­са, опции, TOS мас­ки. Так­же отоб­ра­жа­ет суф­фик­сы ‘K’, ‘M’ or ‘G’.
-n : Отоб­ра­жать IP адрес и порт чис­ла­ми (не исполь­зуя DNS сер­ве­ра для опре­де­ле­ния имен. Это уско­рит отображение).

2. Отобразить список правил с номерами строк.

# iptables -n -L -v —line-numbers

3. Отобразить INPUT или OUTPUT цепочки правил.

# iptables -L INPUT -n -v
# iptables -L OUTPUT -n -v —line-numbers

4. Остановить, запустить, перезапустить файрвол.

Сила­ми самой системы:
# service iptables stop
# service iptables start

Мож­но так­же исполь­зо­вать коман­ды iptables для того, что­бы оста­но­вить фай­р­вол и уда­лить все правила:
# 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 OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT

Где:
-F : Уда­лить (flush) все правила.
-X : Уда­лить цепочку.
-t table_name : Выбрать таб­ли­цу (nat или mangle) и уда­лить все правила.
-P : Выбрать дей­ствия по умол­ча­нию (такие, как DROP , REJECT , или ACCEPT ).

5. Удалить правила файрвола.

Что­бы отоб­ра­зить номер стро­ки с суще­ству­ю­щи­ми правилами:
# iptables -L INPUT -n —line-numbers
# iptables -L OUTPUT -n —line-numbers
# iptables -L OUTPUT -n —line-numbers | less
# iptables -L OUTPUT -n —line-numbers | grep 202.54.1.1

Полу­чим спи­сок IP адре­сов. Про­сто посмот­рим на номер сле­ва и уда­лим соот­вет­ству­ю­щую стро­ку. К при­ме­ру для номе­ра 3:
# iptables -D INPUT 3

Или най­дем IP адрес источ­ни­ка (202.54.1.1) и уда­лим из правила:
# iptables -D INPUT -s 202.54.1.1 -j DROP

Где:
-D : Уда­лить одно или несколь­ко пра­вил из цепочки.

6. Добавить правило в файрвол.

Что­бы доба­вить одно или несколь­ко пра­вил в цепоч­ку, для нача­ла отоб­ра­зим спи­сок с исполь­зо­ва­ни­ем номе­ров строк:
# iptables -L INPUT -n —line-numbers

Что­бы вста­вить пра­ви­ло меж­ду 1 и 2 строкой:
# iptables -I INPUT 2 -s 202.54.1.2 -j DROP

Про­ве­рим, обно­ви­лось ли правило:
# iptables -L INPUT -n —line-numbers

7. Сохраняем правила файрвола.

Через iptables-save:
# iptables-save > /etc/iptables.rules

8. Восстанавливаем правила.

Через iptables-restore
# iptables-restore < /etc/iptables.rules

9. Устанавливаем политики по умолчанию.

Что­бы сбра­сы­вать весь трафик:
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
# iptables -L -v -n

После выше­пе­ре­чис­лен­ных команд ни один пакет не поки­нет дан­ный хост.
# ping google.com

10. Блокировать только входящие соединения.

Что­бы сбра­сы­вать все не ини­ци­и­ро­ван­ные вами вхо­дя­щие паке­ты, но раз­ре­шить исхо­дя­щий трафик:
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -m state —state NEW,ESTABLISHED -j ACCEPT
# iptables -L -v -n

Паке­ты исхо­дя­щие и те, кото­рые были запом­не­ны в рам­ках уста­нов­лен­ных сес­сий — разрешены.
# ping google.com

11. Сбрасывать адреса изолированных сетей в публичной сети.

# iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Спи­сок IP адре­сов для изо­ли­ро­ван­ных сетей:
10.0.0.0/8 -j (A)
172.16.0.0/12 (B)
192.168.0.0/16 ©
224.0.0.0/4 ( MULTICAST D)
240.0.0.0/5 (E)
127.0.0.0/8 ( LOOPBACK )

12. Блокировка определенного IP адреса.

Что­бы забло­ки­ро­вать адрес взлом­щи­ка 1.2.3.4:
# iptables -A INPUT -s 1.2.3.4 -j DROP
# iptables -A INPUT -s 192.168.0.0/24 -j DROP

Читайте также:  Чтобы определить id запущенного процесса можно использовать команды ос linux

13. Заблокировать входящие запросы порта.

Что­бы забло­ки­ро­вать все вхо­дя­щие запро­сы пор­та 80:
# iptables -A INPUT -p tcp —dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp —dport 80 -j DROP

Что­бы забло­ки­ро­вать запрос пор­та 80 с адре­са 1.2.3.4:
# iptables -A INPUT -p tcp -s 1.2.3.4 —dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 —dport 80 -j DR

14. Заблокировать запросы на исходящий IP адрес.

Что­бы забло­ки­ро­вать опре­де­лен­ный домен, узна­ем его адрес:
# host -t a facebook.com

Вывод: facebook.com has address 69.171.228.40

Най­дем CIDR для 69.171.228.40:
# whois 69.171.228.40 | grep CIDR

Забло­ки­ру­ем доступ на 69.171.224.0/19:
# iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP

Так­же мож­но исполь­зо­вать домен для блокировки:
# iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP
# iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP

15. Записать событие и сбросить.

Что­бы запи­сать в жур­нал дви­же­ние паке­тов перед сбро­сом, доба­вим правило:

# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG —log-prefix «IP_SPOOF A: »
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Про­ве­рим жур­нал (по умол­ча­нию /var/log/messages):
# tail -f /var/log/messages
# grep -i —color ‘IP SPOOF’ /var/log/messages

16. Записать событие и сбросить (с ограничением на количество записей).

Что­бы не пере­пол­нить раз­дел раз­ду­тым жур­на­лом, огра­ни­чим коли­че­ство запи­сей с помо­щью -m. К при­ме­ру, что­бы запи­сы­вать каж­дые 5 минут мак­си­мум 7 строк:
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit —limit 5/m —limit-burst 7 -j LOG —log-prefix «IP_SPOOF A: »
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

16. Сбрасывать или разрешить трафик с определенных MAC адресов.

# iptables -A INPUT -m mac —mac-source 00:0F:EA:91:04:08 -j DROP
## *разрешить только для TCP port # 8080 с mac адреса 00:0F:EA:91:04:07 * ##
# iptables -A INPUT -p tcp —destination-port 22 -m mac —mac-source 00:0F:EA:91:04:07 -j ACCEPT

17. Разрешить или запретить ICMP Ping запросы.

Что­бы запре­тить ping:
# iptables -A INPUT -p icmp —icmp-type echo-request -j DROP
# iptables -A INPUT -i eth1 -p icmp —icmp-type echo-request -j DROP

Раз­ре­шить для опре­де­лен­ных сетей / хостов:
# iptables -A INPUT -s 192.168.1.0/24 -p icmp —icmp-type echo-request -j ACCEPT

Раз­ре­шить толь­ко часть ICMP запросов:
### ** предполагается, что политики по умолчанию для входящих установлены в DROP ** ###
# iptables -A INPUT -p icmp —icmp-type echo-reply -j ACCEPT
# iptables -A INPUT -p icmp —icmp-type destination-unreachable -j ACCEPT
# iptables -A INPUT -p icmp —icmp-type time-exceeded -j ACCEPT
## ** разрешим отвечать на запрос ** ##
# iptables -A INPUT -p icmp —icmp-type echo-request -j ACCEPT

18. Открыть диапазон портов.

# iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 7000:7010 -j ACCEPT

9. Открыть диапазон адресов.

## разрешить подключение к порту 80 (Apache) если адрес в диапазоне от 192.168.1.100 до 192.168.1.200 ##
# iptables -A INPUT -p tcp —destination-port 80 -m iprange —src-range 192.168.1.100-192.168.1.200 -j ACCEPT

## пример для nat ##
# iptables -t nat -A POSTROUTING -j SNAT —to-source 192.168.1.20-192.168.1.25

20. Закрыть или открыть стандартные порты.

Заме­нить ACCEPT на DROP , что­бы забло­ки­ро­вать порт.

## ssh tcp port 22 ##
iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state —state NEW -p tcp —dport 22 -j ACCEPT

Читайте также:  Kali linux сбой автоматической настройки сети

## cups (printing service) udp/tcp port 631 для локальной сети ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp —dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp —dport 631 -j ACCEPT

## time sync via NTP для локальной сети (udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state —state NEW -p udp —dport 123 -j ACCEPT

## tcp port 25 (smtp) ##
iptables -A INPUT -m state —state NEW -p tcp —dport 25 -j ACCEPT

# dns server ports ##
iptables -A INPUT -m state —state NEW -p udp —dport 53 -j ACCEPT
iptables -A INPUT -m state —state NEW -p tcp —dport 53 -j ACCEPT

## http/https www server port ##
iptables -A INPUT -m state —state NEW -p tcp —dport 80 -j ACCEPT
iptables -A INPUT -m state —state NEW -p tcp —dport 443 -j ACCEPT

## tcp port 110 (pop3) ##
iptables -A INPUT -m state —state NEW -p tcp —dport 110 -j ACCEPT

## tcp port 143 (imap) ##
iptables -A INPUT -m state —state NEW -p tcp —dport 143 -j ACCEPT

## Samba file server для локальной сети ##
iptables -A INPUT -s 192.168.1.0/24 -m state —state NEW -p tcp —dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state —state NEW -p tcp —dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state —state NEW -p tcp —dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state —state NEW -p tcp —dport 445 -j ACCEPT

## proxy server для локальной сети ##
iptables -A INPUT -s 192.168.1.0/24 -m state —state NEW -p tcp —dport 3128 -j ACCEPT

## mysql server для локальной сети ##
iptables -I INPUT -p tcp —dport 3306 -j ACCEPT

21. Ограничить количество параллельных соединений к серверу для одного адреса.

Для огра­ни­че­ний исполь­зу­ет­ся connlimit модуль. Что­бы раз­ре­шить толь­ко 3 ssh соеди­не­ния на одно­го клиента:
# iptables -A INPUT -p tcp —syn —dport 22 -m connlimit —connlimit-above 3 -j REJECT

Уста­но­вить коли­че­ство запро­сов HTTP до 20:
# iptables -p tcp —syn —dport 80 -m connlimit —connlimit-above 20 —connlimit-mask 24 -j DROP

Где:
—connlimit-above 3 : Ука­зы­ва­ет, что пра­ви­ло дей­ству­ет толь­ко если коли­че­ство соеди­не­ний пре­вы­ша­ет 3.
—connlimit-mask 24 : Ука­зы­ва­ет мас­ку сети.

Помощь по iptables.

Для поис­ка помо­щи по iptables, вос­поль­зу­ем­ся man:
$ man iptables

Что­бы посмот­реть помощь по опре­де­лен­ным коман­дам и целям:
# iptables -j DROP -h

Проверка правила iptables.

Про­ве­ря­ем откры­тость / закры­тость портов:
# netstat -tulpn

Про­ве­ря­ем откры­тость / закры­тость опре­де­лен­но­го порта:
# netstat -tulpn | grep :80

Про­ве­рим, что iptables раз­ре­ша­ет соеди­не­ние с 80 портом:
# iptables -L INPUT -v -n | grep 80

В про­тив­ном слу­чае откро­ем его для всех:
# iptables -A INPUT -m state —state NEW -p tcp —dport 80 -j ACCEPT

Про­ве­ря­ем с помо­щью telnet
$ telnet ya.ru 80

Мож­но исполь­зо­вать nmap для проверки:
$ nmap -sS -p 80 ya.ru

Источник

Оцените статью
Adblock
detector