iptables - баг или я чего-то не понимаю.

Автор m90125, 07 декабря 2017, 23:59:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

m90125

Всем привет!

Возник вопрос по iptables. Он в самом низу поста. Решил я настроить на десктопе файервол. Это мой первый опыт работы с iptables.

Вывод команды uname -ar:
Linux 4.9.0-4-686-pae #1 SMP Debian 4.9.51-1 (2017-09-28) i686 GNU/Linux.

Что сделал:

1) Выполнил в терминале следующие команды:


iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999 - это результат вышеуказанной команды cat
iptables -A OUTPUT -p TCP --sport 32768:60999 -j ACCEPT
iptables -A OUTPUT -p UDP --sport 32768:60999 -j ACCEPT
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT


2) Чтобы сделать настройки постоянными, сохранил их в файл:


iptables-save > /etc/iptables.rules


3) Создал файл /etc/network/if-up.d/firewall с таким содержимым:


#!/bin/bash
/sbin/iptables-restore < /etc/iptables.rules
exit 0


4) Сделал его исполняемым:


chmod +x /etc/network/if-up.d/firewall


После перезагрузки решил посмотреть, что получилось. Дал команду iptables -L -v

Её вывод:


Chain INPUT (policy DROP 88 packets, 5674 bytes)
pkts bytes target     prot opt in     out     source               destination         
    2   100 ACCEPT     all  --  lo     any     anywhere             anywhere           
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-reply
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request
6964 7166K ACCEPT     tcp  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
  239 22943 ACCEPT     udp  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere           
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-reply
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         
    2   100 ACCEPT     all  --  any    lo      anywhere             anywhere           
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere           
5584  642K ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp spts:32768:60999
  244 15002 ACCEPT     udp  --  any    any     anywhere             anywhere             udp spts:32768:60999
    0     0 ACCEPT     all  --  any    lo      anywhere             anywhere           
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-reply
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp spts:32768:60999
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere             udp spts:32768:60999


Вопрос: почему в цепочке OUTPUT есть строчка "icmp --  any   any   anywhere   anywhere"? (вторая сверху)
Я разрешал только icmp echo-reply и icmp echo-request. А эта строчка, как я понял, говорит о том, что разрешены icmp-пакеты всех видов. Или это баг или я чего-то не понимаю. Может кто-то знает?

Спасибо!