Sshguard: Difference between revisions
Created page with 'Broneeritud: Robert Vane' |
No edit summary |
||
(19 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]] | |||
==Mis on SSHGUARD ja mida see teeb?== | |||
Sshguard on teenus mis kaitseb masinal jooksvaid võrguteenuseid (näiteks ssh, imap, pop) erinevate rünnakute eest. Sshguard teeb seda jälgides konstantselt erinevaid süsteemilogisid (näiteks syslog,syslog-ng,metalog, multilog,raw messages). | |||
Rünnaku avastamisel kasutab Sshguard masinas asuvat tulemüüri realiseerimaks teatud ajaks blokeeringut ründaja IP aadressile. Linuxis oskab Sshguard kasutada netfilter/iptables tulemüüre. | |||
Esimene blokeering kestab 7 minutit, järgmine juba 14 minutit ning suureneb kaks korda iga järgneva rünnaku tundemärgi avastamisel. | |||
Näiteks kui sshguard avastab et aadress X tegi midagi kahtlast või halba teenusele Y, käivitab sshguard masina tulemüüris reegli blokeerimaks aadressi X. Sshguard hoiab aadressi X blokeerituna 7 min ning seejärel vabastab ta blokeeringust. Kui sshguard avastab et aadress X tegi uuesti midagi kahtlast või halba teenusele Y, blokeeritakse aadress X 14 minutiks. | |||
NB! Olenemata oma nimest Sshguard kaitseb ta ka teisi teenuseid kui SSH | |||
Erinevalt sarnasest lahendusest fail2ban on sshguard lihtsam, väiksem, kirjutatud C keeles mistõttu kasutab ta vähem süsteemiresursse. | |||
==Instaleerimine== | |||
SSHguard'il ei ole konfiguratsioonifaili. Kogu konfigureerimine mida peab tegema on luua ahel "Sshguard" ning lisada reegel INPUT ahelasse iptable'is. Seejärel teha suunamine kõigile sissetulevatele pakettidele läbi sshguard ahela, mis tagab et kogu logi sisenevate pakettide kohta jõuab sshguardini. Sshguard saab seejärel sisestada tulemüüri reegleid blokeerimaks sissetulevaid pakette mis saabuvad keelatud hostidelt. | |||
Sshguard installeerimise eelduseks on iptables olemasolu. Iptables on olemas kõigil Ubuntu distributsioonidel. Mõne teise Linuxi distributsiooni korral peab eelnevalt kontrollima kas iptables on paigaldatud. Kui iptables tulemüür puudub tuleb see installeerida. | |||
Seejärel võib installeerida sshguard'i | |||
apt-get install ssh-guard | |||
==Algseadistus== | |||
Nagu öeldud ei ole Sshguardil konfiguratsioonifaili. Kõigepealt peab looma uue ahela nimega "sshguard" iptables tulemüüri: | |||
iptables -N sshguard | |||
Seejärel tuleb modifitseerida INPUT ahelat nii, et ta saadaks kogu sissetuleva võrguliikluse edasi Sshguardile: | |||
iptables -A INPUT -j sshguard | |||
Kui soovitakse jälgida mingeid kindlaid porte siis peab iptables INPUT ahelasse tegema reegli mis suunab sshguard ahelasse edasi vaid paketid mis saabuvad portidel mida tahetakse jälgida. | |||
Järgnev reegel määrab sshguard ahelasse edasi suunama vaid SSH, FTP, POP, IMAP portidele saabuvad tcp paketid: | |||
iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard | |||
==Whitelisting== | |||
Sshguard pakub ka aadresside ja hostide whitelistingut. Whitelistis olevatelt aadressidel ja hostidelt tulevad paketid lastakse läbi tulemüüri isegi siis kui nad genereerivad kahtlast liiklust. See lihtsustab süsteemiadminni tööd sellevõrra, et ei pea firma sisevõrgus end vale parooliga lootusetult autentida püüdvate töötajate arvutite sisevõrgu aadressidelt blokeeringut eemaldama. Whitelisti saab määrata nii üksikud IP aadressid, hostid kui ka IP aadresside vahemiku subnet maskiga. | |||
Määrame whitelisti üksiku IP aadressi: | |||
sshguard -w 192.168.1.50 | |||
Määrame whitelisti üksiku hosti: | |||
sshguard -w sobralik.host.ee | |||
Hosti nimedele tehakse DNS päringud ühe korra sshguard käivitumisel. Kui hostile vastab mitu aadressi, siis lisatakse need kõik whitelisti. | |||
Määrame whitelisti kogu firma sisevõrgu: | |||
sshguard -w 192.168.0.0/24 | |||
Käske võib ka kombineerida - ühes käsus võib määrata nii IP aadressi, hosti kui ka aadressi vahemiku: | |||
sshguard -w 192.168.1.50 -w sobralik.host.ee -w 192.168.0.0/24 | |||
==Logide jälgimine== | |||
Sshguard oskab jälgida erinevates formaatides logisid: syslog, syslog-ng, metalog, multilog, raw log. Jälgimine toimub mitmest logist korraga. Samuti jälgitakse logifailide ümbertõstmist, kadumist(kustutamist) ning nende taasilmumist. | |||
Määrame jälgimiseks kolm logifaili: | |||
sshguard -l /var/log/maillog -l /var/log/auth.log -l /opt/myapp/logging.fifo | |||
Kui jälgima pole määratud ühtegi logi, võtab sshguard logikandeid ikkagi vastu stantardsisendisse. Stantardsisendit saab ka määrata nagu iga teist logifaili. Stantardsisendi võtmeks on "-": | |||
sshguard -l - | |||
==Sshguard automaatkäivitus== | |||
Et sshguard käivitkus süsteemi bootupil automaatselt peab looma järgmise skripti ning salvestama selle /etc/init.d/sshguard kausta: | |||
#! /bin/sh | |||
# this is a concept, elaborate to your taste | |||
case $1 in | |||
start) | |||
/usr/local/sbin/sshguard -l /var/log/auth.log & | |||
;; | |||
stop) | |||
killall sshguard | |||
;; | |||
*) | |||
echo "Use start or stop" | |||
exit 1 | |||
;; | |||
esac | |||
==Kasutatud kirjandus== | |||
http://www.sshguard.net/docs/setup/ | |||
http://www.sshguard.net/docs/setup/getlogs/log-sucker/ | |||
http://www.sshguard.net/docs/whitelist/ | |||
http://www.sshguard.net/docs/faqs/ | |||
https://wiki.archlinux.org/index.php/Sshguard | |||
http://linuxaria.com/recensioni/protect-your-server-with-sshguard?lang=en | |||
http://felipeferreira.net/?p=1062 |
Latest revision as of 01:00, 25 November 2011
Mis on SSHGUARD ja mida see teeb?
Sshguard on teenus mis kaitseb masinal jooksvaid võrguteenuseid (näiteks ssh, imap, pop) erinevate rünnakute eest. Sshguard teeb seda jälgides konstantselt erinevaid süsteemilogisid (näiteks syslog,syslog-ng,metalog, multilog,raw messages). Rünnaku avastamisel kasutab Sshguard masinas asuvat tulemüüri realiseerimaks teatud ajaks blokeeringut ründaja IP aadressile. Linuxis oskab Sshguard kasutada netfilter/iptables tulemüüre. Esimene blokeering kestab 7 minutit, järgmine juba 14 minutit ning suureneb kaks korda iga järgneva rünnaku tundemärgi avastamisel.
Näiteks kui sshguard avastab et aadress X tegi midagi kahtlast või halba teenusele Y, käivitab sshguard masina tulemüüris reegli blokeerimaks aadressi X. Sshguard hoiab aadressi X blokeerituna 7 min ning seejärel vabastab ta blokeeringust. Kui sshguard avastab et aadress X tegi uuesti midagi kahtlast või halba teenusele Y, blokeeritakse aadress X 14 minutiks.
NB! Olenemata oma nimest Sshguard kaitseb ta ka teisi teenuseid kui SSH
Erinevalt sarnasest lahendusest fail2ban on sshguard lihtsam, väiksem, kirjutatud C keeles mistõttu kasutab ta vähem süsteemiresursse.
Instaleerimine
SSHguard'il ei ole konfiguratsioonifaili. Kogu konfigureerimine mida peab tegema on luua ahel "Sshguard" ning lisada reegel INPUT ahelasse iptable'is. Seejärel teha suunamine kõigile sissetulevatele pakettidele läbi sshguard ahela, mis tagab et kogu logi sisenevate pakettide kohta jõuab sshguardini. Sshguard saab seejärel sisestada tulemüüri reegleid blokeerimaks sissetulevaid pakette mis saabuvad keelatud hostidelt.
Sshguard installeerimise eelduseks on iptables olemasolu. Iptables on olemas kõigil Ubuntu distributsioonidel. Mõne teise Linuxi distributsiooni korral peab eelnevalt kontrollima kas iptables on paigaldatud. Kui iptables tulemüür puudub tuleb see installeerida.
Seejärel võib installeerida sshguard'i
apt-get install ssh-guard
Algseadistus
Nagu öeldud ei ole Sshguardil konfiguratsioonifaili. Kõigepealt peab looma uue ahela nimega "sshguard" iptables tulemüüri:
iptables -N sshguard
Seejärel tuleb modifitseerida INPUT ahelat nii, et ta saadaks kogu sissetuleva võrguliikluse edasi Sshguardile:
iptables -A INPUT -j sshguard
Kui soovitakse jälgida mingeid kindlaid porte siis peab iptables INPUT ahelasse tegema reegli mis suunab sshguard ahelasse edasi vaid paketid mis saabuvad portidel mida tahetakse jälgida.
Järgnev reegel määrab sshguard ahelasse edasi suunama vaid SSH, FTP, POP, IMAP portidele saabuvad tcp paketid:
iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard
Whitelisting
Sshguard pakub ka aadresside ja hostide whitelistingut. Whitelistis olevatelt aadressidel ja hostidelt tulevad paketid lastakse läbi tulemüüri isegi siis kui nad genereerivad kahtlast liiklust. See lihtsustab süsteemiadminni tööd sellevõrra, et ei pea firma sisevõrgus end vale parooliga lootusetult autentida püüdvate töötajate arvutite sisevõrgu aadressidelt blokeeringut eemaldama. Whitelisti saab määrata nii üksikud IP aadressid, hostid kui ka IP aadresside vahemiku subnet maskiga.
Määrame whitelisti üksiku IP aadressi:
sshguard -w 192.168.1.50
Määrame whitelisti üksiku hosti:
sshguard -w sobralik.host.ee
Hosti nimedele tehakse DNS päringud ühe korra sshguard käivitumisel. Kui hostile vastab mitu aadressi, siis lisatakse need kõik whitelisti.
Määrame whitelisti kogu firma sisevõrgu:
sshguard -w 192.168.0.0/24
Käske võib ka kombineerida - ühes käsus võib määrata nii IP aadressi, hosti kui ka aadressi vahemiku:
sshguard -w 192.168.1.50 -w sobralik.host.ee -w 192.168.0.0/24
Logide jälgimine
Sshguard oskab jälgida erinevates formaatides logisid: syslog, syslog-ng, metalog, multilog, raw log. Jälgimine toimub mitmest logist korraga. Samuti jälgitakse logifailide ümbertõstmist, kadumist(kustutamist) ning nende taasilmumist.
Määrame jälgimiseks kolm logifaili:
sshguard -l /var/log/maillog -l /var/log/auth.log -l /opt/myapp/logging.fifo
Kui jälgima pole määratud ühtegi logi, võtab sshguard logikandeid ikkagi vastu stantardsisendisse. Stantardsisendit saab ka määrata nagu iga teist logifaili. Stantardsisendi võtmeks on "-":
sshguard -l -
Sshguard automaatkäivitus
Et sshguard käivitkus süsteemi bootupil automaatselt peab looma järgmise skripti ning salvestama selle /etc/init.d/sshguard kausta:
#! /bin/sh # this is a concept, elaborate to your taste case $1 in start) /usr/local/sbin/sshguard -l /var/log/auth.log & ;; stop) killall sshguard ;; *) echo "Use start or stop" exit 1 ;; esac
Kasutatud kirjandus
http://www.sshguard.net/docs/setup/
http://www.sshguard.net/docs/setup/getlogs/log-sucker/
http://www.sshguard.net/docs/whitelist/
http://www.sshguard.net/docs/faqs/
https://wiki.archlinux.org/index.php/Sshguard
http://linuxaria.com/recensioni/protect-your-server-with-sshguard?lang=en