Strona 1 z 1

Dlaczego iptables nie blokuje połączeń do postfixa?

: 06 kwietnia 2013, 12:18
autor: dhapollo
Witam.

Mam problem z iptables, wydaje mi się iż nie blokuje dostępu do serwera.

Plik z zaporą wygląda tak:

Kod: Zaznacz cały

iptables -X
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT


iptables -A INPUT -i eth0 -p all -s 176.9.162.161 -j DROP
iptables -A INPUT -i eth0 -p all -s 192.168.125.30 -j DROP
iptables -A INPUT -i eth0 -p all -s 46.20.14.106 -j DROP
iptables -A INPUT -i eth0 -p all -s 81.248.0.166 -j DROP
iptables -A INPUT -i eth0 -p all -s 94.254.129.247 -j DROP
iptables -A INPUT -i eth0 -p all -s 94.254.210.224 -j DROP



iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT


iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 995 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
Wynik polecenia:

Kod: Zaznacz cały

root@debian:~# iptables -L -v
Chain INPUT (policy DROP 10 packets, 1409 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 DROP       all  --  eth0   any     mx1.bshellz.pl       anywhere            
    1   231 DROP       all  --  eth0   any     192.168.125.30       anywhere            
    0     0 DROP       all  --  eth0   any     ns1.datafem.net      anywhere            
    0     0 DROP       all  --  eth0   any     LLamentin-151-1-166.w81-248.abo.wanadoo.fr  anywhere            
    0     0 DROP       all  --  eth0   any     user-94-254-129-247.play-internet.pl  anywhere            
    0     0 DROP       all  --  eth0   any     user-94-254-210-224.play-internet.pl  anywhere            
   95  7340 ACCEPT     all  --  any    any     anywhere             anywhere            state ESTABLISHED 
    0     0 ACCEPT     tcp  --  eth0   any     anywhere             anywhere            tcp dpt:www 
    0     0 ACCEPT     tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  eth0   any     anywhere             anywhere            tcp dpt:smtp 
    0     0 ACCEPT     tcp  --  eth0   any     anywhere             anywhere            tcp dpt:imap2 
    0     0 ACCEPT     tcp  --  eth0   any     anywhere             anywhere            tcp dpt :p op3s 
    0     0 ACCEPT     tcp  --  eth0   any     anywhere             anywhere            tcp dpt :p op3 


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


Chain OUTPUT (policy ACCEPT 61 packets, 9696 bytes)
 pkts bytes target     prot opt in     out     source               destination         
root@debian:~# 
Czyli powinno być wszytko blokowane, tak?

Jeśli powyższe skrypty są poprawne to czemu w logach serwera pocztowego widzę próby połączenia z 81.248.0.166

Kod: Zaznacz cały

Apr  6 11:38:42 debian postfix/smtpd[4095]: warning: Connection rate limit exceeded: 6 from LLamentin-151-1-166.w81-248.abo.wanadoo.fr[81.248.0.166] for service smtp
Apr  6 11:38:42 debian postfix/smtpd[4095]: disconnect from LLamentin-151-1-166.w81-248.abo.wanadoo.fr[81.248.0.166]
Apr  6 11:39:32 debian postfix/smtpd[3874]: timeout after AUTH from LLamentin-151-1-166.w81-248.abo.wanadoo.fr[81.248.0.166]
Apr  6 11:39:32 debian postfix/smtpd[3874]: disconnect from LLamentin-151-1-166.w81-248.abo.wanadoo.fr[81.248.0.166]
Apr  6 11:39:36 debian postfix/smtpd[3870]: timeout after AUTH from LLamentin-151-1-166.w81-248.abo.wanadoo.fr[81.248.0.166]
Apr  6 11:39:36 debian postfix/smtpd[3870]: disconnect from LLamentin-151-1-166.w81-248.abo.wanadoo.fr[81.248.0.166]
Czy możecie mi wytłumaczyć czemu postfix zapisuje w logach powyższe wpisy, czy iptables nie powinno najpierw zablokować te połączenia?

: 06 kwietnia 2013, 13:06
autor: piroaa
Dzień dobry.
Skoro chcesz blokować kilka IP to te początkowe wpisy mogą wyglądać tak :

Kod: Zaznacz cały

iptables -A INPUT -s 176.9.162.161 -j DROP
iptables -A INPUT -s 192.168.125.30 -j DROP
iptables -A INPUT -s 46.20.14.106 -j DROP
iptables -A INPUT -s 81.248.0.166 -j DROP
iptables -A INPUT -s 94.254.129.247 -j DROP
iptables -A INPUT -s 94.254.210.224 -j DROP
Jak całość trochę pochodzi wydaj polecenie : iptables -L -nv i zobacz czy coś ci się łapie w powyższe regułki blokujące.
Może być tak że postfix startuje przed skryptem i dlatego pojawia ci się kilka wpisów na początku.

: 06 kwietnia 2013, 15:11
autor: dhapollo
Na chwile obecną dodałem do zapory logowanie całego ruchu w tablicy RAW w łańcuchu PREROUTING wyniki odfiltrowane w załączniku tablica-raw.txt. Widać dokładnie że adresy IP łączą się z moją maszyną (w obecnej konfiguracji jest to poprawne RAW to pierwsza tablica tu jeszcze nie ma mojego "filtra").

Wynik polecenia iptables -L -nv zamieszczam w załączniku plik iptables-L-nv.txt

Adresy IP które podałem że są blokowane nie pojawiły się już w logach postfixa, pomimo że są w logach tablicy RAW czyli regułki działają poprawnie, ale są nowe i mam pytanie dodatkowe :)

Lista z blokowanymi adresami IP tworzy mi się automatycznie na podstawie limitu jednoczesnych połączeń. Jaki proponujecie ustawić bezpieczny limit, tak aby filtr łapał intruzów oraz nie blokował klienta?

Jak jest lepiej:
Blokować intruzów w tablicy RAW czy domyślnej?

: 06 kwietnia 2013, 16:57
autor: piroaa
To trochę od końca.

Jak sama nazwa wskazuje filtry wrzucasz do tablicy filter czyli domyślnej, tablica raw ma inne zastosowania.

Co do pierwszej części twojego pytania, a dla czego chcesz blokować kogokolwiek w iptables na podstawie ilości połączeń?

A co z sytuacją w której klienci łączą się za NAT w takim wypadku z jednego IP może ci się łączyć choćby i 50 osób jednocześnie.

Ja nie jestem pewien, czy to dobry pomysł żeby wycinać w ten sposób klientów na stałe, serwerem pocztowym działającym produkcyjnie się nie zajmowałem ale z eksperymentów wiem, że jeśli dobrze go skonfigurujesz to bez autoryzacji wiadomości nikt nie wyśle.

Jeśli natomiast koniecznie musisz, mieć coś takiego, zainteresuj się raczej modułem iptables recent, lub co lepsze czymś takim jak failtoban wytnie konkretne IP po określonej próbie nieudanych logowań. Detekcja działa w warstwie wyższej niż sam iptables przez co jest o wiele bardziej skuteczna i wygodna.

Odnośnie samego limitu podejrzewam, że musisz sam wykombinować co będzie dla ciebie najlepsze. Przeanalizuj liczbę prawidłowych połączeń pomnóż razy 2 i zobacz co z tego wyjdzie.

: 06 kwietnia 2013, 20:59
autor: dhapollo
Od końca raczej od początku :)
Masz racje co do limitów, w mojej sytuacji od strony internetu łączą się jednostki 90% łączy się od strony LAN.

Skrypt dział tak jak powinien i 99% logów stanowią użytkownicy, zobaczymy jak będzie w nocy przeważnie w tedy się wszystko kumulowało. Jutro się wszystko wyjaśni.

Serwer poczty jest zabezpieczony i wymaga autoryzacji oczywiście.

: 07 kwietnia 2013, 12:26
autor: Yampress
To jest niewskazane

Kod: Zaznacz cały

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

Skoro cała polityka INPUT na DROP to to nie ma znaczenia

Kod: Zaznacz cały

iptables -A INPUT -i eth0 -p all -s 176.9.162.161 -j DROP
iptables -A INPUT -i eth0 -p all -s 192.168.125.30 -j DROP
iptables -A INPUT -i eth0 -p all -s 46.20.14.106 -j DROP
iptables -A INPUT -i eth0 -p all -s 81.248.0.166 -j DROP
iptables -A INPUT -i eth0 -p all -s 94.254.129.247 -j DROP
iptables -A INPUT -i eth0 -p all -s 94.254.210.224 -j DROP

Musiałbyś zrobić tak aby dla tych hostów na danym porcie blokował.

: 07 kwietnia 2013, 21:47
autor: dhapollo

Kod: Zaznacz cały

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
Nad powyższym się zastanawiałem i skłaniam się do przyznania racji.

Kod: Zaznacz cały

iptables -A INPUT -i eth0 -p all -s 176.9.162.161 -j DROP

Blokowanie raczej ma sens, ponieważ blokuje wszytko dla tego IP (każdy port). Dlaczego nam blokować konkretne porty?

Skrypt blokujący spisuje się super obecnie w logach postfixa nie mam już po próbach włamań (błędnej autoryzacji).

Pozostały mi jedynie dziwne (jak dla mnie) wpisy sugerujące sporadyczne próby wysłania spamu

Kod: Zaznacz cały

Apr  7 12:31:47 debian postfix/anvil[16536]: statistics: max connection rate 1/60s for (smtp:195.66.73.40) at Apr  7 12:28:27
Apr  7 12:31:47 debian postfix/anvil[16536]: statistics: max connection count 1 for (smtp:195.66.73.40) at Apr  7 12:28:27
Apr  7 12:31:47 debian postfix/anvil[16536]: statistics: max message rate 1/60s for (smtp:195.66.73.40) at Apr  7 12:28:27
Apr  7 12:31:47 debian postfix/anvil[16536]: statistics: max recipient rate 1/60s for (smtp:195.66.73.40) at Apr  7 12:28:27
Apr  7 12:31:47 debian postfix/anvil[16536]: statistics: max cache size 1 at Apr  7 12:28:27
Może mi ktoś rozjaśnić co to znaczy?