# Ataki na ssh i ftp

## Bialy

Ostatnio 2 razy wykrzaczyl mi sie serwer (za 1szym razem padl zasilacz), a za 2gim razem sprawdzilem logi.

Ku mojemu zdziwieniu (choc nie az tak wielkim) ktos usilnie probuje sie dostac na ssh lub ftp. 

W logach vsftpd nie ma nic dziwnego (tylko moja aktywnosc),

a logi ssh dopiero teraz wlaczylem (przeoczenie wolajace o pomste do nieba).

Poza tym sa jakies regulki wycinajace takie IP. Oczywiscie za kazdym razem atakujacy IP jest inny.

----------

## mbar

Dzięki, że nas o tym poinformowałeś.

----------

## quosek

to pare podpowiedzi:

1) zmien porty ssh i ftp (pomaga)

2a) zainstaluj z fail2ban lub denyhosts (parsuje logi [fail2ban moze robic to "on change" loga, denyhosts chyba tylko co okreslony czas je przeglada]) - blokuja "atakujace" IP jezeli pomylily haslo okreslona ilosc razy (fail za pomoca firewalla, deny za pomoca tcpwrappers)

2b) alternatywa to tcpwrappers i polityka zamknieta (deny.hosts - ALL: ALL, allow.hosts - sshd: .pl sshd: .net sshd: 192.168.0.0/255.255.255.0 itd) (ja mam odblokowana tylko domene pl i net [dialog, czy netia z niej korzystaja] + pare znanych ip (potrafia byc problemy z reverse dns i wtedy nie rozpoznaje, ze to jest .pl)

a do tego mozna dopisac prosty programik cronowy, ktory jak wykryje probe wlamu, to skanuje tamtego hosta i jezeli to linux z otwartym ssh/ftp probuje sie przez 30min logowac na usera np. "nie_wlamuj_sie", czy cos w tym stylu  :Wink:  musi cos takiego potem super w logach wygladac  :Wink: 

----------

## bartmarian

fail2ban - używam do np posfix'a, blokuje IP:25 na pół dnia

denyhosts - cóż, tu ban jest na tydzień w przypadku user i 3 tygodnie gdy root

Edit by Poe

ort  

----------

## Bialy

Niekiedy prob na dany login jest kilka, a innym razem 1 proba.

Co dziwne nie ma prob wlamu na login 'root'.

----------

## quosek

to moze pomoze na pojedyncze proby blokoda na tcpwrapperach zakresow ....

jezeli laczysz sie tylko z kompow ktore maja dnsa ustawionego na .pl lub .net (wiekszosc dostawcow w polsce) to mozesz zrobic takie regulki jak ja mam

ew. jezeli zrobisz statystyki i okaze Ci sie ze np. masz duzo trefnych polaczen z chin, indonezji itd to mozesz poblokowac tylko te "panstwa" w hosts.deny

----------

## Bialy

A moze tcpwrappers + fail2ban ?? W tej kolejnosci.

Wtedy wytne wszystkie domeny jakie chce + wycinanie tych ktorzy probuja z domen z allow.

Mozna tak zrobic?

----------

## quosek

oczywiscie ze mozna  :Wink: 

----------

## sir KAT

Polecam regułę iptables z modułem recent. A poza tym jak ktoś już powiedział najlepszym sposobem jest po prostu zmiana portu.

----------

## lazy_bum

 *bartmarian wrote:*   

> denyhosts - cuż, tu ban jest na tydzień w przypadku user i 3 tygodnie gdy root

 

Albo na 3 tygodnie... albo na 1 dzień... albo na pół roku... albo jak sobie ustawisz w konfigu. (-;

Osobiście używałm ww. i bardzo mi odpowiada. Prób władowania się przez ssh mam sporo, tyle, że zazwyczaj to "jedzie" z jednego IP po jakiś losowych loginach (typu "sales", "admin" itd...). Co więcej denyhosts potrafi synchronizować bazę "złych IP" z zebranymi przez innych userów "złymi IP", co potrafi mocno zmniejszyć ilość "natrętów". (-;

----------

## Bialy

Co do plikow allow/denny.host to mam je sam stworzyc? To zemergowaniu tcp-wrapper nie mam tych plikow.

================================================

Uzbroilem sie tez w denyhosts i jedno mnie dziwi ze w konfigu jest odniesienie tylko do deny.host. Jak w deny.host wstawie all to w ogole nie bede mogl sie logowac na sshd?

Arfrever: Połączono posty.

----------

## quosek

w /etc powinienes miec hosts.deny i hosts.allow

allow jest wazniejszy od deny (czyli cos zezwolonego i zabronionego jest zezwolone)

----------

## mast3r

*  app-admin/denyhosts

      Latest version available: 2.6-r1

      Latest version installed: [ Not Installed ]

      Size of files: 41 kB

      Homepage:      http://www.denyhosts.net

      Description:   DenyHosts is a utility to help sys admins thwart ssh hackers

      License:       GPL-2

Używam tego na serwerze, i działa bardzo fajnie, w ciągu 24h blokuje po 3-4 IP, konfiguracja jest bardzo prosta. Niestety tylko do SSH, ale jeżeli z tego samego IP próbują się wbić z SSH i z FTP to dostęp do wszystkich usług zostanie zablokowany(chyba, że nie chcemy) wraz z FTP.

----------

## Bialy

 *quosek wrote:*   

> w /etc powinienes miec hosts.deny i hosts.allow
> 
> allow jest wazniejszy od deny (czyli cos zezwolonego i zabronionego jest zezwolone)

 

Powinienem miec czy powinienem stworzyc?

----------

## quosek

szczerze mowiac juz nie pamietam - za dawno to robilem

ale probuj stworzyc, do hosts.deny dac ALL:ALL i zobaczyc czy mozesz na tego kompa wbic sie np. przez ssh - nie mozesz to dziala  :Wink: 

pamietales o fladze tcpd ? bo bez niej nie bedzie dzialac

----------

## Bialy

Pamietalem. Tylko jak dam w deny ALL to przeciez nie bede sie mogl zalogowac via ssh (moze sie myle?).

Mozesz wkleic swoja zawartosc plikow allow i deny? Nie chce poprostu dac plamy  :Wink: 

----------

## SlashBeast

jak w deny dasz all a w allow swoje namiary - to Cię wpuści.

----------

## Bialy

Dobra, ale nadal dziwi mnie to ze w konfigu denyhosts nie ma odwolania do pliku hosts.allow

----------

## quosek

stop

pakiet denyhosts i pliki hosts.allow i hosts.deny to dwie rozne rzeczy:

1) pliki hosts.allow i hosts.deny sa to pliki konfiguracyjne tcpwrapperow (flaga tcpd np w ssh)

2) denyhosts to pakiet, ktory moze wykorzystywac te pliki (parsuje logi i dodaje dynamicznie wpisy do hosts.deny i hosts.allow, lub z tego co wyczytalem mozesz stworzyc dodatkowe pliczki na deny i allow i kazac tcpwrapperom doczytywac je oprocz tych powyzszych 2 plikow) (wiecej o denyhost nie powiem, bo sam go nie konfigurowalem [byl jedna z opcji na temat ktorej czytalem])

----------

## Bialy

To mam tcp-wrapper, denyhost i fail2ban.

Ale jak pisalem mam tylko plik hosts.deny (pusty). Zadnych innych po kompilacji programikow nie posiadam.

Z tego co napisales to do hosts.deny wpisy beda dodawane same. To jak mam ustawic hosts.allow?

PS.

Flage tez mam ustawiona.

----------

## quosek

nie mam zbytnio czasu by wnikac (ew. jutro pytania), wiec moja konfiguracja:

/etc/hosts.deny (z tego korzystaja tcpwrappery) (blokuja wszystko, co nie jest jawnie zezwolone w allow)

```

ALL:ALL

```

/etc/hosts.allow (z tego korzystaja tcpwrappery) (odblokowuja ssh z .pl i .net, oraz z 2-ch sieci, oraz proftpd z sieci lokalnej - nikt inny do zadnej uslugi korzystajacej z tcpwrapperow nie jest w stanie sie dobic - bo blokuje to powyzszy plik)

```

# SSH z domeny pl

sshd: .pl

sshd: .net

sshd: 192.168.0.0/255.255.255.0

#Krakow-hotel

sshd: 81.219.145.50

proftpd: 192.168.0.0/255.255.255.0

```

to co jest u gory wystarcza na odbicie 99% polaczen (bo moga sie wbijac, albo lokalni, albo ludki z okreslonej [tutaj jednej krakowskiej] sieci)

nie zabezpiecza to jeszcze przed dziecmi neostrady (czyli ludki z .pl i net) - do tego postawilem fail2ban'a (mi wystarczy tylko na ssh) (uwaga - korzystam z gamin [pakeit], by monitorowalo logi na bierzaco - w innym przypadku robi to co jakis czas)

/etc/fail2ban/jail.con

```

[DEFAULT]

bantime  = 600

findtime  = 600

maxretry = 3

backend = gamin

[ssh-iptables]

enabled  = true

filter   = sshd

action   = iptables[name=SSH, port=ssh, protocol=tcp]

logpath  = /var/log/sshd/refused.log

maxretry = 3

```

u gory widac, ze blokuje po 3-ch nieudanych probach (na 600s) (proby w przeciagu 600s). zwroc uwage na logpath - ja mam logi do ssh wrzucane do refused.log - jak jest domyslnie dla sysloga nie pamietam

dzieki takiej konfiguracji, to co przejdzie przez tcpwrappery (czyli u mnie z .net, .pl i krakowki hotel) i sprobuje w przeciagu 10min zalogowac sie 3 razy zle dostanie na 10 min bana na polaczenia przez fail2ban'a

UWAGA

fail2ban umozliwia tez blokwoania po tcpwrapperach, ale ..... jego blokowanie polega na dorzuceniu odpowiedniego wpisu do hosts.deny, co nam i tak nic nie da, bo jezeli cos jest jawnie zdefiniowane w hosts.allow (np. .pl) to nawet jezeli jest jawnie zadeklarowane w deny to i tak jest zezwolone (czyli jednym slowem - takie polaczenie NIE DZIALA [oczywiscie dla przestawionego wczesniej przypadku])

jezeli nie chcesz nikogo ucinac po domenie ISPka to wtedy nie dodajesz sam wpisow do hosts.allow i deny i wtedy mozesz korzystac z fail2ban opartego o tcpwrappery

----------

## Bialy

Dzieki za szczegolowe wyjasnienie.

Bardzo to mi sie przyda.

Co do: 

 *quosek wrote:*   

> jak jest domyslnie dla sysloga nie pamietam

 

to znajduje sie w:

```
/var/log/messages
```

----------

