LinuxForum.Fans
Тема

Удивительное рядом (ebtables с бриджами и без)

Автор: souz64 10 сообщений 3296 просмотров
#117674

Привет 2ch^WLinuxForum! wink

пытаюсь ограничить хождение по физическому интерфейсу пакетов отличных от 0x8863 и 0x8864 указывая данный интерфейс
но стоит создать бридж для данного интерфейса как ограничение начинает работать! правила не меняю (sic!)

у кого нибудь есть какие соображения? и да я знаю что обозначает b в слове ebtables


pS нужно чтобы защитить на L2 свою сетку от юнных пионэров!

#117685
souz64 написал:
пытаюсь ограничить хождение по физическому интерфейсу пакетов отличных от 0x8863 и 0x8864 указывая данный интерфейс

а что это за интерфейсы? я только eth, ppp, lo, ну и подобные знаю :(

souz64 написал:
но стоит создать бридж для данного интерфейса как ограничение начинает работать! правила не меняю (sic!)

а что такое "создать бридж"?

souz64 написал:
у кого нибудь есть какие соображения? и да я знаю что обозначает b в слове ebtables

а я - нет :(

#117696

а что это за интерфейсы?

это PPPoE! грубо говоря я хочу данный через интерфейс поднимать _только_ PPPoE до концетратора провайдера !

а что такое "создать бридж"?

ну э... imho я понимаю под "создать бридж" некую прослойку между драйвером сетевки и ядром для L2 -управления

ну у меня дебиан и я правлю /etc/network/interfaces
e.g. было


...
auto eth0
iface eth0 inet static
....

стало


...
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
bridge_port eth0
bridge_stp off
...

а я - нет :(

bridge! ebtables - Ethernet bridge frame table administration (c) man ebtables
imho iptables - L3+ managment, ebtables - L2 managment

#117702

souz64, всё же просто. Вы переделываете сам интерфейс сети, указывая маркеры допустимых пакетов.
А для того, чтобы правило вступило в работу, необходимо задать интерфейс сети, отличный от стандартного (ebtables) smile .
Сразу бы писали, что у вас шлюз, а не простой хост, пришпиленный к роутеру.

#117705
souz64 написал:
ну у меня дебиан и я правлю /etc/network/interfaces

а.. тогда не знаю, у меня по другому.
про ebtables почитал. интересно, но лично мне пока не нужно.

#117707
Wolfenberg написал:
отличный от стандартного (ebtables) .
Сразу бы писали, что у вас шлюз, а не простой хост, пришпиленный к роутеру.

может я тупой нуб.... НО я указываю ebtables -A INPUT -i eth0 ... в обоих случаях (sic!) и ebtables работает только при наличии бриджа!

#117715
souz64 написал:
в обоих случаях (sic!) и ebtables работает только при наличии бриджа!

дык ebtables и есть приблуда управления бриджем... iptables работает уже по верх неё, это средство более высокого уровня (кстати, а почему вы им не хотите пользоваться?)

#117722
drBatty написал:
а почему вы им не хотите пользоваться?

пользуюсь... просто планирую в будущем OpenVZ (разнести сервисы) и vrrp (just for fun)

#117724

souz64, а... ну расскажите, что получилось ;)

#117734
drBatty написал:
ну расскажите, что получилось

пока интересного ничего нет.....

0. потестил esxi ( проприетарный, в бесплатном режиме плюшки порезаны и куча ограничений, совместим только с оборудованием из своего белого списка [тести на Intel DG45ID -- там сетевка подходит ], должен находится за бордером ибо врожденного фаера у него нет) -- не подошел, потестил xen server ( жрет кучу памяти 700-800 мб, зато iptables из консоли, подключать дополнительные жестикие диски не удобно) , kvm и virtualbox ( у обоих зависимости тащат иксы O_O )
1. поставил debian в минимально возможном варианте без иксов и без стандартных утилит ( ибо они тащат exim, nfs-tools и portmap )....
2. поставил virtualbox
3. поставил в гостевой системе mikrotik 3.20 (firewall у него мутантский -- ну не может быть у правила state сразу RELATED,ESTABLISHED только двумя правилами )
4. переставил систему (сказывается опыт работы с вендой^_^)
5. см п1
6. отключил ipv6
7. написал простенький скриптик для iptables

#!/bin/sh
IPTABLES="/sbin/iptables"
DUMPFILE="/etc/iptables-dump"

LAN_DEVICE=eth2
WAN_VIRTUAL_DEVICE=ppp7
WAN_PHYSICAL_DEVICE=eth0

init()
{
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -F
$IPTABLES -X
$IPTABLES -F -t nat
$IPTABLES -X -t nat
$IPTABLES -F -t mangle
$IPTABLES -F -t mangle
$IPTABLES -A INPUT -i lo -j ACCEPT -m comment --comment "ACCEPT on loopback"
$IPTABLES -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP -m comment --comment "PROTECT loopback"
$IPTABLES -A INPUT -m state --state INVALID -j DROP -m comment --comment "DROP invalid packets"
$IPTABLES -A INPUT -p ICMP --fragment -j DROP -m comment --comment "DoS"
$IPTABLES -A INPUT -d 224.0.0.0/8 -j DROP -m comment --comment "DROP MICROSOFT FLOOOD"
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "stateful hack"
$IPTABLES -A INPUT -p tcp -m multiport --dport 137,138,139,445 -j DROP
$IPTABLES -A INPUT -p udp -m multiport --dport 137,138,139,445 -j DROP
$IPTABLES -A INPUT -p tcp --dport 22 ! -i $LAN_DEVICE -j DROP -m comment --comment "SSH protector"
$IPTABLES -A INPUT -p tcp --dport 25 -j DROP -m comment --comment "spammers"
$IPTABLES -A INPUT -p tcp -m multiport --dport 21,53,80,443,3389,8080 -j DROP -m comment --comment "hackers/TCP"
$IPTABLES -A INPUT -p udp -m multiport --dport 53,69 -j DROP -m comment --comment "hackers/UDP"
$IPTABLES -A INPUT -i $LAN_DEVICE -j ACCEPT -m comment --comment "ACCEPT on trusted LAN"
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -p ICMP --fragment -j DROP -m comment --comment "DoS"
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "stateful hack"
$IPTABLES -A FORWARD -i $LAN_DEVICE -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPTABLES -t nat -A POSTROUTING -o $WAN_VIRTUAL_DEVICE -j MASQUERADE
$IPTABLES -t nat -A PREROUTING -p tcp --dport 54097 -j DNAT --to 192.168.168.101:54097 -m comment --comment "torrent forwarding"
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 3389 -j MARK --set-mark 3389 -m comment --comment "RDP"
$IPTABLES -t mangle -A PREROUTING -p tcp -m multiport --dport 80,443,8080 -j MARK --set-mark 80 -m comment --comment "WWW"
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 1723 -j MARK --set-mark 1723 -m comment --comment "PPTP"
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 53 -j MARK --set-mark 53 -m comment --comment "DNS"
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 21 -j MARK --set-mark 21 -m comment --comment "FTP"
$IPTABLES -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 22 -m comment --comment "SSH"
$IPTABLES -t mangle -A PREROUTING -p udp --dport 1701 -j MARK --set-mark 1701 -m comment --comment "L2TP"
$IPTABLES -t mangle -A PREROUTING -j MARK --set-mark 666 -m comment --comment "other"
exit 0
};

reveal()
{
echo ***** [ filter ] ************************************************************************************************************************************
$IPTABLES -vL
echo ***** [ nat ] ***************************************************************************************************************************************
$IPTABLES -vL -t nat
echo ***** [ mangle ] ************************************************************************************************************************************
$IPTABLES -vL -t mangle
};

store_rules()
{
iptables-save > $DUMPFILE
};

restore_rules()
{
iptables-restore < $DUMPFILE
};

stop_firewall()
{
store_rules
echo 0 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/ip_dynaddr
}

start_firewall()
{
restore_rules
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
};

case $1 in
"stop")
stop_firewall
exit 0
;;

"start")
start_firewall
exit 0
;;

"reload")
stop_firewall
start_firewall
exit 0
;;

"restart")
init
exit 0
;;

"reveal")
reveal
exit 0
;;

"kawai")
echo "nya"
exit 0
;;

"nya")
echo "kawai"
exit 0
;;

*)
exit 0
;;

esac

echo 2

8. с внешки потыкал себя nmapом

...
сейчас дома мучаю в виртуалке debian ( OpenVZ ) прежде чем на железо переносить

ps iptables настраивал по опеннетовским манам
ppS $IPTABLES -A INPUT -d 224.0.0.0/8 -j DROP -m comment --comment "DROP MICROSOFT FLOOOD" что то не ловит ничего
pppS удобно пользоваться командой reveal в сочетании watch -n 1

Войдите или зарегистрируйтесь, чтобы ответить.