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  2018-02-04 11:08:19

  gracz1010 - Nowy użytkownik

gracz1010
Nowy użytkownik
Zarejestrowany: 2018-02-04

Fail2ban, ssh - debian 8 bezpieczeństwo

Witam wszystkich
Dopiero się ucze więc prosze o wyorzumiałość ; )
Loguje się na konto robocze (brak uprawnień, wyłączone logowanie po hasłach.) poprzez ssh. Możliwość logowania do roota wyłączona (w razie  potrzeby zrobione osobne konto z uprawnieniami sudo). Czy fail2ban jest potrzebny? Słyszałem że logując przez ssh ataki typu brute force mamy z głowy. Czy to prawda?

Offline

 

#2  2018-02-04 21:07:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Taki brute-force się zdarzają nawet, jak masz logowanie po hasłach wyłączone, po prostu nie wszystkie booty skrypciarzy pisane są  bezbłędnie i  z należytą starannością.

Przy czym nie czaję, do czego tu potrzebny fail2ban, jeśli sam Netfiter ma dosyć zabawek, żeby ochronić demona SSH.

Ostatnio edytowany przez Jacekalex (2018-02-07 23:10:59)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2018-02-07 13:10:11

  gracz1010 - Nowy użytkownik

gracz1010
Nowy użytkownik
Zarejestrowany: 2018-02-04

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Dziękuje bardzo za odpowiedź. Ucze się od niedawna metodą prób i błędów więc póki co to straszny amator ze mnie ;)
Generalnie to firewall przepuszcza tylko określoną pule IP na zmienionych portach i zastanawiam się, czy w takim wypadku takie coś jest mi w ogóle potrzebne?
Nie ukrywam, że zależy mi na jak najprościejszym rozwiązaniu i jeśli da się to zrobić tylko w iptablesie (o ile jest to w ogóle potrzebne) to cieszyłbym się, jeśli nakierowałby mnie Pan na dobrą droge. Pozdrawiam

Offline

 

#4  2018-02-07 13:52:03

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Kiedyś używałem czegoś działającego na podobnej do tego zasadzie:

Kod:

-N IN_SSH
-A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -j IN_SSH
-A IN_SSH -m recent --name sshbf --rttl --rcheck --hitcount 3 --seconds 10 -j DROP
-A IN_SSH -m recent --name sshbf --rttl --rcheck --hitcount 4 --seconds 1800 -j DROP
-A IN_SSH -m recent --name sshbf --set -j ACCEPT

Offline

 

#5  2018-02-07 14:26:36

  gracz1010 - Nowy użytkownik

gracz1010
Nowy użytkownik
Zarejestrowany: 2018-02-04

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Dobrze to interpretuje?
   
1. Zezwól na połączenie ssh
2/3. (Tutaj mam wątpliwości) 3 błędne próby = ban 10 s. czy 3 błębne próby w przeciągu 10 sec = ban forever?
4. Zezwól na połączenie jeśli nie zostało odfiltrowane przez powyższe reguły

Czy próby logowania są zapisywane w logach? bany są zapisywane w pamięci ram/w plikach? wolałbym aby pamięć nie została przepełniona bez mojej wiedzy.
Druga sprawa - jeśli logować przez ssh moge się tylko z mojeg IP to są jakieś realne szanse, że potencjalnemu napastnikowi uda wykonać się brute force? (pomijamy rzeczy takie jak backdoor na moim PC)

Offline

 

#6  2018-02-07 18:05:16

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Tak mniej więcej:
1. Tworzy nowy łańcuch IN_SSH
2. Każde nowe połączenie ssh kieruje do łańcucha IN_SSH
3. Jeśli w ciągu 3 sekund zostaną zarejestrowane 3 nowe połączenia to każde kolejne jest porzucane
4. Jeśli w ciągu 1800 sekund zostaną zarejestrowane 4 nowe połączenia to każde kolejne będzie porzucane
5. Jeśli paczka przeszła pomyślnie przez powyższe sprawdziany to jest akceptowana.

http://compilefailure.blogspot.com/2011/04/better-ssh-brute-force-prevention-with.html
https://wiki.archlinux.org/index.php/simple_stateful_firewall
http://pcserver.uk/iptrecent.htm

Ostatnio edytowany przez arecki (2018-02-07 18:07:51)

Offline

 

#7  2018-02-07 19:21:27

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

[quote=gracz1010]Dobrze to interpretuje?[/quote]
A do manuala nie możesz zajrzeć? Np tu:
http://ipset.netfilter.org/iptables-extensions.man.html#lbBW

Iptables to nie pole do interpretacji, tam zachodzą konkretne operacje. xD

Offline

 

#8  2018-02-07 23:05:14

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Ja kiedyś dawno temu (dokładnie całe 13 sekund temu), na jednym VPS miałem tak:

Kod:

-N SSH
iptables  -A INPUT -p tcp -m tcp -m multiport --dports 11541,23486 -m connlimit --connlimit-upto 10 --connlimit-mask 0 --connlimit-saddr -j SSH
iptables  -A SSH -m hashlimit --hashlimit-upto 5/hour --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name ssh -j ACCEPT
iptables  -A SSH -j RETURN

Ponieważ jednak taki numer mnie też potrafi mocno przyblokować, małe uzupełnienie było potrzebne:

Kod:

ipset create brama hash:net maxelem 65535 timeout 86400 
iptables -t raw -I PREROUTING -m set --match-set brama src -j ACCEPT
iptables -I  INPUT -m set --match-set brama src -j ACCEPT

i taki mały skrypcik:
[b]cat /etc/profile.d/sshbrama.sh[/b]

Kod:

#!/bin/sh


if [ -n "$SSH_CLIENT" ]; then 
    if [ "`id -u`" -eq 0 ]; then

    FROMIP=$(echo $SSH_CLIENT |awk '{print $1}' )
    ipset add brama $FROMIP  timeout  86400  --exist;
       fi
fi

Ilekroć zaloguję się na SSH do powłoki systemowej na konto root, automatycznie mój adres IP (z którego się połączyłem), jest dodawany do tablicy [b]brama[/b] ipseta.

SOA#1

PS.
Jeżeli masz na VPSie IPv6, to tak samo robisz na IPv6.

Pozdro

Ostatnio edytowany przez Jacekalex (2018-03-05 17:20:36)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2018-02-08 13:34:48

  yossarian - Szczawiożerca

yossarian
Szczawiożerca
Skąd: Shangri-La
Zarejestrowany: 2011-04-25

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

[quote=gracz1010]Dobrze to interpretuje?
   
1. Zezwól na połączenie ssh
2/3. (Tutaj mam wątpliwości) 3 błędne próby = ban 10 s. czy 3 błębne próby w przeciągu 10 sec = ban forever?
4. Zezwól na połączenie jeśli nie zostało odfiltrowane przez powyższe reguły

Czy próby logowania są zapisywane w logach? bany są zapisywane w pamięci ram/w plikach? wolałbym aby pamięć nie została przepełniona bez mojej wiedzy.
Druga sprawa - jeśli logować przez ssh moge się tylko z mojeg IP to są jakieś realne szanse, że potencjalnemu napastnikowi uda wykonać się brute force? (pomijamy rzeczy takie jak backdoor na moim PC)[/quote]
To nie działa na zasadzie jakiegoś banowania i tworzenia listy zbanowanych adresów.
Po prostu zbyt często nawiązywane nowe połączenia zostają zostają odrzucane przez netfilter.
Można to sobie podejrzeć w  /proc (wirtualnym systemie plików). Przykładowo:

Kod:

cat /proc/net/xt_recent/sshbf

Do bardziej zaawansowanych ustawień można użyć narzędzia [tt]ipset[/tt]

Offline

 

#10  2018-02-08 22:51:26

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Do bardziej zaawansowanych ustawień można użyć narzędzia ipset[/quote]
Oj tam, oj tam, zaawansowanych ;)

Ipset najlepiej się sprawdza w tablicy RAW, na "portierni".

Tu jest metoda:
https://forum.dug.net.pl/viewtopic.php?pid=269383#p269383


A tu ostatni rezultat z jednego VPSa:

Kod:

root ~> ipset list wypad
Name: wypad
Type: hash:net
Revision: 6
Header: family inet hashsize 1024 maxelem 65535 timeout 3600
Size in memory: 12536
References: 5
Number of entries: 27
Members:
148.153.39.186 timeout 3451
202.29.215.226 timeout 60759
222.186.139.109 timeout 73503
113.102.213.237 timeout 598
45.76.45.199 timeout 82555
95.42.248.53 timeout 46342
212.237.46.179 timeout 43131
52.226.66.5 timeout 64074
211.60.83.218 timeout 83068
59.125.19.171 timeout 75906
125.160.224.67 timeout 64234
63.246.129.181 timeout 2590
60.190.104.228 timeout 2258
121.244.36.226 timeout 78579
60.23.29.186 timeout 3099
121.97.63.210 timeout 54396
5.188.10.179 timeout 84263
52.165.134.213 timeout 63621
220.178.61.54 timeout 658
89.218.138.250 timeout 50977
190.3.118.166 timeout 73530
200.111.8.59 timeout 56797
116.196.121.141 timeout 2684
122.176.97.120 timeout 49259
158.140.171.4 timeout 60287
190.72.57.144 timeout 68541
67.78.200.86 timeout 67059

Pozdro

Ostatnio edytowany przez Jacekalex (2018-02-08 22:52:17)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#11  2018-02-09 13:13:24

  gracz1010 - Nowy użytkownik

gracz1010
Nowy użytkownik
Zarejestrowany: 2018-02-04

Re: Fail2ban, ssh - debian 8 bezpieczeństwo

Dziękówa Panowie za odpowiedzi. Powiedzcie mi jeszcze z czystej ciekawości - załóżmy, że nie zabezpieczam w żadnen sposób demona ssh przed brute force (oczywiście nie mam zamiaru tego robić-bezpieczenstwa nigdy mało) ale firewall przepuszcza tylko moje IP na zmienionym porcie ssh, to czy istnieje jakieś realne zagrożenie atakiem? Na logike wydaje mi się, że nie ale wole podopytać bardziej ogarniętych w temacie

Offline

 

Stopka forum

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

[ Generated in 0.011 seconds, 14 queries executed ]

Informacje debugowania

Time (s) Query
0.00007 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00064 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.177.173' WHERE u.id=1
0.00061 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.177.173', 1732229644)
0.00050 SELECT * FROM punbb_online WHERE logged<1732229344
0.00065 DELETE FROM punbb_online WHERE ident='18.117.145.67'
0.00075 DELETE FROM punbb_online WHERE ident='3.15.203.246'
0.00059 DELETE FROM punbb_online WHERE ident='3.16.51.237'
0.00044 SELECT topic_id FROM punbb_posts WHERE id=317455
0.00165 SELECT id FROM punbb_posts WHERE topic_id=30258 ORDER BY posted
0.00068 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30258 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00087 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30258 ORDER BY p.id LIMIT 0,25
0.00152 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30258
Total query time: 0.00906 s