Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: iptables filtrowanie połączeń  (Przeczytany 973 razy)

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2763
  • 1709
    • Zobacz profil
iptables filtrowanie połączeń
« dnia: 2021-05-16, 22:45:48 »
Chciałbym " limitować " / ograniczyć ilość logowanych połączeń danego IP co 10 minut.
Zrobiłem sobię taką zaporę.

# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -m comment --comment Default_policy_desktop_v4 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment Default_policy_desktop_v4 -j ACCEPT
-A OUTPUT -m limit --limit 10/min --limit-burst 1 -j LOG --log-prefix "IPTables: "

Czyli według poradnika / dokumentacji https://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO-7.html
Rozumiem to tak że w moim przypadku
gdy wystąpi powyżej 2 połączeń jakiegoś IP wyjściowego, wtedy na 10 min. dane połączenie nie jest logowane.

Ale u mnie to coś chyba nie działa, a prawdopodobnie źle zrozumiałem.
Bo mam tak, czyli " DST=IP_google_analitics "  powtarza się częściej niż co 10 minut.

May 16 22:34:28 user kernel: [25124.691524] IPTables: IN= OUT=eth SRC=Local_IP DST=IP_google_analitics LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=39061 DF PROTO=TCP SPT=41200 DPT=443 WINDOW=24576 RES=0x00 ACK URGP=0 
May 16 22:34:42 user kernel: [25138.835635] IPTables: IN= OUT=eth SRC=Local_IP DST=IP_google_analitics LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=39075 DF PROTO=TCP SPT=41200 DPT=443 WINDOW=24576 RES=0x00 ACK URGP=0
May 16 22:34:54 user kernel: [25151.123774] IPTables: IN= OUT=eth SRC=Local_IP DST=IP_google_analitics LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=39134 DF PROTO=TCP SPT=41200 DPT=443 WINDOW=24576 RES=0x00 ACK URGP=0
May 16 22:35:01 user kernel: [25157.874129] IPTables: IN= OUT=eth SRC=Local_IP DST=IP_google_analitics LEN=1352 TOS=0x00 PREC=0x00 TTL=64 ID=39135 DF PROTO=TCP SPT=41200 DPT=443 WINDOW=24576 RES=0x00 ACK PSH URGP=0
May 16 22:35:11 user kernel: [25168.212019] IPTables: IN= OUT=eth SRC=Local_IP DST=IP_google_analitics LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=39213 DF PROTO=TCP SPT=41200 DPT=443 WINDOW=24576 RES=0x00 ACK URGP=0
May 16 22:35:22 user kernel: [25178.452091] IPTables: IN= OUT=eth SRC=Local_IP DST=IP_google_analitics LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=39214 DF PROTO=TCP SPT=41200 DPT=443 WINDOW=24576 RES=0x00 ACK URGP=0

Testuję na Linux Mint.
« Ostatnia zmiana: 2021-05-16, 22:56:41 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2763
  • 1709
    • Zobacz profil
Odp: iptables filtrowanie połączeń
« Odpowiedź #1 dnia: 2021-05-25, 10:54:31 »
Chyba rozwiązałem problem

iptables -N CHAINFILTR
iptables -A OUTPUT -m conntrack --ctstate NEW -j CHAINFILTR
iptables -A CHAINFILTR -m recent --set --name FILTRNOWY --mask 255.255.255.255 --rdest
iptables -A CHAINFILTR -m recent ! --rcheck --seconds 60 --hitcount 2 --name FILTRNOWY --mask 255.255.255.255 --rdest -j LOG --log-prefix "iptables "

Dla mnie trochę dziwnie działa, ale lepsze to niż nic.

W praktyce to działa tak.
Jeżeli jedną pewną stronę odwiedzam częściej niż co minutę,
    Wtedy tylko jedno nowe połączenie będzie zanotowane w logu / w dzienniku systemowym.
    Natomiast pozostałe nowe połączenia do tej samej strony nie  będą zanotowane w logu / w dzienniku systemowym,
    nawet gdyby trwały ponad godzinę.
Jeżeli robię sobie większe przerwy powyżej 1 minuty przy odwiedzaniu strony internetowej,
    to każde nowe połączenie do tej strony  będzie odnotowane w logu.


PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.