Strona 1 z 3

Dziwny problem z firewallem

: 26 grudnia 2008, 15:12
autor: goners
Witam.
Jestem tutaj nowy i przede wszystkim witam całe grono forum oraz życzę wesołych świąt.

A teraz do rzeczy, mam prostego firewalla opartego o iptables, wygląda on następująco:

FIREWALL

Wszystko wygląda dobrze, na początku blokuję wszystko, później dodaje reguły a mimo wszystko, po uruchomieniu:

Kod: Zaznacz cały

chmod +x firewall
 ./firewall
Blokuje dokładnie wszystko, w ogóle nie zwracając uwagi na odblokowane usługi.
Z góry dziękuję za pomoc.

Pozdrawiam

: 26 grudnia 2008, 15:20
autor: markossx
W OUTPUT masz kolego nie tak.
Najlepiej ustaw policy OUTPUT na ACCEPT i pousuwaj wszystko co dotyczy OUTPUT z regułek, lub
zostaw OUTPUT na drop (nie widzę takiej potrzeby) i ustaw:

Kod: Zaznacz cały

... -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED
Powinno pomóc.
Chyba, że koniecznie chcesz mieć OUTPUT na DROP wtedy bardzo dokładnie musisz pilnować co wpuszczasz i co ma wychodzić i weź pod uwagę, że sam nigdzie nie wyjdziesz z boxa jeśli nie napiszesz regułki właściwej.

: 26 grudnia 2008, 15:35
autor: goners
Zmieniłem, oto jak wygląda teraz: firewall

Po odpaleniu pojawiło się:

Kod: Zaznacz cały

file4all:~/Firewall# ./firewall
iptables: No chain/target/match by that name
file4all:~/Firewall#
I wszystko się odłączyło, nic nie działało znowu :)

: 26 grudnia 2008, 16:01
autor: markossx
Nie wiem w czym masz tam problem ale jest OK,
żeby Ci to udowodnić uruchomiłem Twoje regułki na virtualnym debianie:

Kod: Zaznacz cały

debian-dw:~# iptables -L -nv
Chain INPUT (policy DROP 9 packets, 1128 bytes)
 pkts bytes target     prot opt in     out     source               destination
   21  1464 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:20
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:21
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spt:53
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 3 code 0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 3 code 1
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 3 code 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 3 code 4

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

Chain OUTPUT (policy ACCEPT 22 packets, 2472 bytes)
 pkts bytes target     prot opt in     out     source               destination

: 26 grudnia 2008, 16:05
autor: goners
Po tej linijce:

Kod: Zaznacz cały

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

Występuje taki jakby błąd:

Kod: Zaznacz cały

iptables: No chain/target/match by that name
Odpalam myślę że dobrze zapisuję sobie plik firewall; chmod +x firewall;./firewall

Edit:
Może mieć coś do rzeczy to, że jest to vps, a sieciówki to nie eth0 itp tylko venet0:0 i venet0:1?

: 26 grudnia 2008, 18:04
autor: markossx
Najwyraźniej ma znaczenie:
a tak próbowałeś:

Kod: Zaznacz cały

iptables -A INPUT -i venet0:0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
Coś dla iptables nie jest jednoznaczne u Ciebie, może być kwestia interfejsu. :?:

: 26 grudnia 2008, 21:00
autor: goners

Kod: Zaznacz cały

file4all:~/Firewall# iptables -A INPUT -i venet0:0 -p tcp -m state --state ESTAB                                                                                                 LISHED,RELATED -j ACCEPT
Warning: weird character in interface `venet0:0' (No aliases, :, ! or *).
iptables: No chain/target/match by that name
Niedozwolone znaki, więc spróbowałem:

Kod: Zaznacz cały

file4all:~/Firewall# iptables -A INPUT -i venet0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables: No chain/target/match by that name
Nie mam bladego pojęcia co to może być...

: 26 grudnia 2008, 21:28
autor: markossx
To ustaw interfejs jako zmienną w skrypcie i w regułach używaj tej zmiennej.
I rozpocznij te reguły od:

Kod: Zaznacz cały

#!/bin/bash
bo aż w oczy szczypie...
Albo zamiast używać ifconfig do konfiguracji interfejsów spróbuj pakietu iproute.

: 26 grudnia 2008, 21:51
autor: goners
A mógłbyś troszkę jaśniej? Wiesz, dopiero w sumie od niedawna bawię się Linuksem.

Edit:

Przepraszam już zrozumiałem tylko jak ustawić wymaganą zmienną?

: 26 grudnia 2008, 22:11
autor: markossx

Kod: Zaznacz cały

IFACE="venet0:0"
...
...
... -i $IFACE ...
edit: co nie zmienia faktu, że iptables zgłasza problem ale reguła się dodaje...