Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2017-05-24 17:14:28

  Maniec - Nowy użytkownik

Maniec
Nowy użytkownik
Zarejestrowany: 2017-05-24

Poprawność konfiguracji dla iptables

Witam chciałbym poprosić o pomoc/podpowiedź czy konfiguracja firewalla jest poprawna;

Kod:

#!/bin/sh
clear
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t raw -F
iptables -t raw -X
 
iptables -A INPUT -i lo -j ACCEPT
iptables -I INPUT -s 0.0.0.0 -j ACCEPT
iptables -I INPUT -s 127.0.0.1 -j ACCEPT
iptables -I INPUT -s 87.98.238.145 -j ACCEPT
iptables -I INPUT -s xxx -j ACCEPT
iptables -I INPUT -s 94.23.95.124 -j ACCEPT
 
iptables -A INPUT -p tcp -d xxx -m multiport --dports 3306,25588,25565,80,59640 -j DROP
 
iptables -A INPUT -p tcp -m tcp -i eth0 -d 87.98.238.145 -m multiport ! --dports 25565,80,59640 -j DROP
iptables -A INPUT -p udp -m udp -i eth0 -d 87.98.238.145  -j DROP
 
iptables -A INPUT -p tcp -m tcp -m state --state NEW -m recent --set --name TCP --rsource
iptables -A INPUT -p tcp -m tcp -m state --state NEW -m recent --update --seconds 1 --hitcount 5 --rttl --name TCP --rsource -j DROP
 
iptables -I INPUT -p tcp --dport 80 -m geoip ! --src-cc PL -m limit --limit 3/s --limit-burst 1 -j DROP
 
iptables -A INPUT -p tcp --dport 25565 -m connlimit --connlimit-above 2 -j DROP
iptables -A INPUT -p tcp --dport 59640 -m connlimit --connlimit-above 1 -j DROP
 
iptables -t nat -A PREROUTING -p tcp -i eth0 -d 87.98.238.145 -m geoip ! --src-cc PL --dport 25565 -j REDIRECT --to-port 59640
echo "Done!"

Teraz w skrócie co chcę osiągnąć:

- Zablokować poszczególne porty TCP do xxx - JEST OK
- Zablokować UDP do 87.98.238.145 - JEST OK
- Wylimitować trochę pakiety (SSyN i ogólny spam TCP dla obu adresów)  - JEST OK
- Jeśli na porcie 80 jest więcej połączeń niż 3/s z poza Polski to DROP - NIE JESTEM PEWIEN CZY DOBRZE
- Wylimitować max połączenia online do 1 i 2 na poszczególne porty - NIE JESTEM PEWIEN CZY DOBRZE
- Przekierować cały ruch z poza Polski z portu 25565 na port 59640 - NIE JESTEM PEWIEN CZY DOBRZE

Geoip zainstalowane poprawnie i działa, serwer mam w soyoustart więc blokowanie portów w panelu odpada bo nie ma tam takiej opcji.

xxx - główny adres serwera - eth0
87.98.238.145 - dodatkowy adres failover eth0:0 (skonfigurowany i działa poprawnie)

Co do przekierowania ruchu na inny port, działa ale swego czasu miałem tak że karta sieciowa się "resetowała" bo były jakieś błędy aktualnie ich nie mam bo występowało to przy większej ilości połączeń aktualnie ilość połączeń jest bardzo znikoma.

Dość chaotycznie się tutaj rozpisałem i za to z góry przepraszam, ale czy moglibyście podpowiedzieć co dodać lub zmienić a także czy w przypadku portów 25565 i 59640 dodać gdzieś ACCEPT dla ESTABLISHED i czy ogólnie kolejność reguł jest poprawna.


--
Z góry dziękuję i pozdrawiam.

Offline

 

#2  2017-05-24 21:46:34

  stepien86 - Członek DUG

stepien86
Członek DUG
Skąd: Łódź
Zarejestrowany: 2006-03-26

Re: Poprawność konfiguracji dla iptables

yy..a nie lepiej domyślnie ustawić DROP na wszystko a to co potrzeba puszczać? Mniej przeoczenia będzie mi się wydaje


manual ponad wszysytko....konsola ponad manual

Debian GNU Linux

Offline

 

#3  2017-05-24 22:16:22

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Poprawność konfiguracji dla iptables

iptables -P INPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT                         #odblokuje se ruch na lokalhoście
iptables -I INPUT -s 127.0.0.1 -j ACCEPT              #i dla pewności jeszcze raz :P
iptables -I INPUT -s 0.0.0.0 -j ACCEPT               # co autor miał na myśli? XD

Niechlujstwo, bałagan i bezsęs :P

Jak słuszne zauważył stepien86, polityki ustawić na DROP,mniej grzebania z regułami dropowania.
Zaneguj swoją logikę odnośnie firewalla i masz gotowy pomysł do wdrożenia ;)
Przekierowanie masz zrobione dobrze, pamiętaj tylko że jak łańcuch FORWARD jest na drop to musisz dopisać właśnie ACCEPT dla reguły z przekierowaniem. I wlączyć forwarding w kernelu :P
najlepiej na etapie pisania: dopisz swój adres IP z ktorego dzwonisz na maszynę na samą górę wszystkich regul jako ACCEPT, na łańcuchów zastosuj -j LOG i rób syntetyczne testy czy netcat na port 25565 przypadkiem nie pojawia się na 59640

Offline

 

#4  2017-05-25 20:25:34

  Maniec - Nowy użytkownik

Maniec
Nowy użytkownik
Zarejestrowany: 2017-05-24

Re: Poprawność konfiguracji dla iptables

lis6502 napisał(-a):

iptables -P INPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT                         #odblokuje se ruch na lokalhoście
iptables -I INPUT -s 127.0.0.1 -j ACCEPT              #i dla pewności jeszcze raz :P
iptables -I INPUT -s 0.0.0.0 -j ACCEPT               # co autor miał na myśli? XD

Niechlujstwo, bałagan i bezsęs :P

Jak słuszne zauważył stepien86, polityki ustawić na DROP,mniej grzebania z regułami dropowania.
Zaneguj swoją logikę odnośnie firewalla i masz gotowy pomysł do wdrożenia ;)
Przekierowanie masz zrobione dobrze, pamiętaj tylko że jak łańcuch FORWARD jest na drop to musisz dopisać właśnie ACCEPT dla reguły z przekierowaniem. I wlączyć forwarding w kernelu :P
najlepiej na etapie pisania: dopisz swój adres IP z ktorego dzwonisz na maszynę na samą górę wszystkich regul jako ACCEPT, na łańcuchów zastosuj -j LOG i rób syntetyczne testy czy netcat na port 25565 przypadkiem nie pojawia się na 59640

A jak wygląda sytuacja w przypadku kolejności reguł?
DROP ALL TCP, ACCEPT 25565, REGUŁA OD LIMITÓW SSYN

Reguła od limitu ma DROP i nie pogryzie się to z wcześniejszym ACCEPT?

Ostatnio edytowany przez Maniec (2017-05-25 20:27:26)

Offline

 

#5  2017-05-25 22:46:00

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

Re: Poprawność konfiguracji dla iptables

Łancuchy procesowane są z góry do dołu. Możesz dopieścić firewalla, a na końcu wrzucić -I INPUT -j DROP i żaden pakiet Ci nie przyjdzie.
Zajrzyj tutaj xD. Przyjmijmy dla uproszczenia że każdy z tych ziomeczków to jedna regula w łańcuchu FORWARD.
Reguły nie są zbyt wyszukane bo wszędzie po kolei masz -j ACCEPT, ale gdyby powiedzmy trzeci od początku był na DROP to kolejne ACCEPTy nie mają znaczenia dla nadchodzących ananasów xD

Polecam postawić sobie wirtualke i na niej męczyć reguły, z logowaniem włącznie. W celach edukacyjnych nawet zapuśc sobie gufw, taki klikacz dla konsolofobów, może w ten sposób zasadza działania iptables będzie bardziej namacalna ;)

Ostatnio edytowany przez lis6502 (2017-05-25 22:50:37)

Offline

 

#6  2017-05-26 12:10:14

  Maniec - Nowy użytkownik

Maniec
Nowy użytkownik
Zarejestrowany: 2017-05-24

Re: Poprawność konfiguracji dla iptables

lis6502 napisał(-a):

Łancuchy procesowane są z góry do dołu. Możesz dopieścić firewalla, a na końcu wrzucić -I INPUT -j DROP i żaden pakiet Ci nie przyjdzie.
Zajrzyj tutaj xD. Przyjmijmy dla uproszczenia że każdy z tych ziomeczków to jedna regula w łańcuchu FORWARD.
Reguły nie są zbyt wyszukane bo wszędzie po kolei masz -j ACCEPT, ale gdyby powiedzmy trzeci od początku był na DROP to kolejne ACCEPTy nie mają znaczenia dla nadchodzących ananasów xD

Polecam postawić sobie wirtualke i na niej męczyć reguły, z logowaniem włącznie. W celach edukacyjnych nawet zapuśc sobie gufw, taki klikacz dla konsolofobów, może w ten sposób zasadza działania iptables będzie bardziej namacalna ;)

Kod:

iptables -P INPUT DROP
- #DROPIE ALL

iptables -A INPUT -i lo -j ACCEPT
- #ACCEPT LOCALA

iptables -A INPUT -p tcp -s xxx --dport 59640 -j ACCEPT
iptables -A INPUT -p tcp -s 87.98.238.145 --dport 25565 -j ACCEPT
- #ACCEPT PORTU 25565 i portu SSH (59640)

iptables -A INPUT -p tcp -m state --state NEW -m recent --set --name TCP --rsource
iptables -A INPUT -p tcp -m state --state NEW -m recent --update --seconds 1 --hitcount 5 --rttl --name TCP --rsource -j DROP
- #LIMIT W RAZIE SPAMU

Zawsze wydawało się że jeśli jest ACCEPT to po tym "kod" zatrzymuje jak return;
Czyli jak zrobię coś jak wyżej to reguła od spamu zadziała?

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)