iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

jobfox
Сообщения: 142

iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение jobfox »

Так смотрим соединения по ip протоколу.
tcpdump -i eth1 -n ip proto 1\
где proto 1 - тип протокола.

1)Поделитесь правилом для iptables, которое блокирует gre,rawsocket.
2)Скиньте ссылку на метариал, где указано какой номер ip-протокола каким является типом (gre...и др.)
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение rm_ »

1) man iptables -> поиск по "proto"
2) /etc/protocols
Спасибо сказали:
ALexhha
Сообщения: 109

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение ALexhha »

1)Поделитесь правилом для iptables, которое блокирует gre

# iptables -A INPUT -p gre -j DROP

ну и по аналогии
Спасибо сказали:
pasis
Сообщения: 22
ОС: Gentoo Linux

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение pasis »

ALexhha писал(а):
30.12.2009 12:04
1)Поделитесь правилом для iptables, которое блокирует gre

# iptables -A INPUT -p gre -j DROP

ну и по аналогии

Если нужно запретить весь трафик протокола, то я бы посоветовал использовать -I:

Код: Выделить всё

# iptables -I INPUT -p gre -j DROP

так правило добавится в начало и трафик gre не будет проходить по всей цепочке до последнего правила, где дропнется. Это сократит процессорное время на обработку и возможность, что каким-то правилом в цепочке пакеты примутся.
Просто, в целях оптимизации :happy:
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение pelmen »

Ну тогда уж и я добавлю свои 5 копеек:
Если делать iptables -I , то обязательно необходимо указать после цепочки номер, перед которым это правило будет прописано. Т.е.
iptables -I INPUT 1 -p gre -j DROP
Спасибо сказали:
pasis
Сообщения: 22
ОС: Gentoo Linux

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение pasis »

pelmen писал(а):
30.12.2009 14:55
Ну тогда уж и я добавлю свои 5 копеек:
Если делать iptables -I , то обязательно необходимо указать после цепочки номер, перед которым это правило будет прописано. Т.е.
iptables -I INPUT 1 -p gre -j DROP

немного не так =), если не указываешь номер, то оно добавляется в начало цепочки, и легче понимать не перед каким правилом вставляется, а под каким номером будет новое правило. точнее, для меня легче понимать...
Спасибо сказали:
Denikin
Сообщения: 119

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение Denikin »

Помница в качестве -p можно указать только tcp, udp и icmp.
Т.о. правильно будет записать
-p tcp <protocol-name>
те iptables -I INPUT 1 -p tcp gre -j DROP
возможно потребуется какой нить дополнительный модуль загружать для поддержки

ну а с rawsocket чет ваще жестко
> If I have a an IP datagram in userspace and I send it via a raw socket
> created with socket(PF_INET, SOCK_RAW, IPPROTO_RAW) using the send()
> system call, will this packet traverse the netfilter chains?

No. Raw sockets bypass the TCP/IP stack. Netfilter hooks, and
consequently iptables, sit inside the IP stack.

Another effect of the same occurrence is that, even if your iptables
rules drop packets, you can still see them with tcpdump / ethereal.

> If it does not traverse the firewall, how can I make it do so?

The same way arptables and ebtables did it for ARP and bridging:
Make a clone of iptables (e.g rawtables), kernel and userspace.
Implement the neccessary hooks in the raw socket path, and implement
a new table for each of those hooks, into your new rawtables code.

That's not a weekend project.
Спасибо сказали:
pasis
Сообщения: 22
ОС: Gentoo Linux

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение pasis »

Denikin писал(а):
30.12.2009 17:52
Помница в качестве -p можно указать только tcp, udp и icmp.
Т.о. правильно будет записать
-p tcp <protocol-name>

В мане я нашел следующее:

Код: Выделить всё

[!] -p, --protocol protocol
              The  protocol  of the rule or of the packet to check.  The specified protocol can be one of tcp, udp, udplite, icmp, esp, ah, sctp or all, or it can be a numeric value, repre‐
              senting one of these protocols or a different one.  A protocol name from /etc/protocols is also allowed.  A "!" argument before the protocol inverts the test.  The number zero
              is equivalent to all.  Protocol all will match with all protocols and is taken as default when this option is omitted.

Т.е. как я понял из "A protocol name from /etc/protocols is also allowed", то как раз можно писать -p gre (или -p 47). Из /etc/protocols:

Код: Выделить всё

gre     47      GRE             # General Routing Encapsulation
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение pelmen »

Я у себя делал именно -p 47 - работает
Спасибо сказали:
Venegance
Сообщения: 119
ОС: Debian

Re: iptables.Заблокировать определенный тип ip-протокола (gre,rawsocket). Как ?

Сообщение Venegance »

Помница в качестве -p можно указать только tcp, udp и icmp.
Т.о. правильно будет записать
-p tcp <protocol-name>
те iptables -I INPUT 1 -p tcp gre -j DROP
возможно потребуется какой нить дополнительный модуль загружать для поддержки
Извините, многоуважаемый, но это есть полная глупость. TCP - это протокол транспортного уровня, а GRE - в общем случае сетевого -> TCP даже не подозревает о существовании GRE, и предположить, что TCP как-то связан с GRE - неверно.
Спасибо сказали: