Привет 2ch^WLinuxForum! wink
пытаюсь ограничить хождение по физическому интерфейсу пакетов отличных от 0x8863 и 0x8864 указывая данный интерфейс
но стоит создать бридж для данного интерфейса как ограничение начинает работать! правила не меняю (sic!)
у кого нибудь есть какие соображения? и да я знаю что обозначает b в слове ebtables
pS нужно чтобы защитить на L2 свою сетку от юнных пионэров!
Удивительное рядом (ebtables с бриджами и без)
пытаюсь ограничить хождение по физическому интерфейсу пакетов отличных от 0x8863 и 0x8864 указывая данный интерфейс
а что это за интерфейсы? я только eth, ppp, lo, ну и подобные знаю :(
но стоит создать бридж для данного интерфейса как ограничение начинает работать! правила не меняю (sic!)
а что такое "создать бридж"?
у кого нибудь есть какие соображения? и да я знаю что обозначает b в слове ebtables
а я - нет :(
а что это за интерфейсы?
это 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
souz64, всё же просто. Вы переделываете сам интерфейс сети, указывая маркеры допустимых пакетов.
А для того, чтобы правило вступило в работу, необходимо задать интерфейс сети, отличный от стандартного (ebtables) smile .
Сразу бы писали, что у вас шлюз, а не простой хост, пришпиленный к роутеру.
ну у меня дебиан и я правлю /etc/network/interfaces
а.. тогда не знаю, у меня по другому.
про ebtables почитал. интересно, но лично мне пока не нужно.
отличный от стандартного (ebtables) .
Сразу бы писали, что у вас шлюз, а не простой хост, пришпиленный к роутеру.
может я тупой нуб.... НО я указываю ebtables -A INPUT -i eth0 ... в обоих случаях (sic!) и ebtables работает только при наличии бриджа!
в обоих случаях (sic!) и ebtables работает только при наличии бриджа!
дык ebtables и есть приблуда управления бриджем... iptables работает уже по верх неё, это средство более высокого уровня (кстати, а почему вы им не хотите пользоваться?)
а почему вы им не хотите пользоваться?
пользуюсь... просто планирую в будущем OpenVZ (разнести сервисы) и vrrp (just for fun)
souz64, а... ну расскажите, что получилось ;)
ну расскажите, что получилось
пока интересного ничего нет.....
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