Palomuuri UFW
Palomuuri suojelee ulkomaailmalta ja sallii webbisivujen ja muiden palveluiden turvallisen käytön. Se on asennettava ennen kuin mitään päästetään linjoille. Tarkkaan ottan palomuuri on ohjelma nimeltään itables ja ufw on sen käyttöliittymä, mutta usein sanotaan yksinkertaisuuden nimissä, että ufw on palomuuri.
Se on todennäköisesti jo asennettuna, mutta varmistetaan asia:
ufw status
Jos sait vastaukseksi Status inactive
niin ufw on paikoillaan, mutta ei käynnissä. Tällä hetkellä kukaan muu kuin sinä ei pääse serverille. Jos sait vastaukseksi, että ufw:tä ei löydy, niin asenna se:
apt install ufw
Nyt on aika avata ovet maailmalle, vaikka ensimmäistäkään sivusto ei ole vielä asetettu. Mutta webserveri ja SSH on kuitenkin käytössä.
Perustasollaan UFW (lyhennys englanninkielisestä nimestä Uncomplicated FireWall, mutkaton palomuuri) on todella helppo säätää. Katsotaan mitä on valmiina odottamassa:
ufw app list
Se näyttää tältä:
root@demo:~# ufw app list Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
UFW sallii aukaisemisia, sulkemisia ja muuta kulunvalvotaa per portti tai porttialue, saapuvien IP-osoitteiden mukaan tai minkälaista yhteyttä ollaan tekemässä, mutta nyt päästään helpommalla. Käytetään valmiita ratkaisuja asennettujen ohjelmistojen mukaan. Meitä kiinnostaa Nginx FULL, että saadaan nettiliikenne auki tavalliselle http:lle eli porttiin 80 sekä https portista 443. Kun jossain vaiheessa otat SSH:n käyttöön, niin sekin on hyvä mahdollistaa.
Aukaisuun tarvitaan pari yksinkertaista komentoa:
ufw allow 'Nginx Full'
ufw allow OpenSSH
Käynnistetään palomuuri:
ufw enable
Sinulle ilmoitetaan, että käynnistys saattaa katkaista nykyisen SSH-yhteyden. Se ei haittaa, sillä jos et ole jossain välissä itse tehnyt SSH:ta, niin se ei ole edes käytössä. Vastaa y
.
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Saat ilmoituksen, että palomuuri on käytössä ja se käynnistetään serverin mukana.
Firewall is active and enabled on system startup
Tarkistetaan vielä mikä on nykyinen tilanne:
ufw status
Sinulle kerrotaan mitkä ovat käynnissä:
root@demo:~# ufw status Status: active To Action From -- ------ ---- Nginx Full ALLOW Anywhere OpenSSH ALLOW Anywhere Nginx Full (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Fail2ban
Fail2ban on ohjelma, joka seuraa epäonnistuneita kirjautumisia, yrityksiä väärään paikkaan ja kaikkea muuta, joka ei ole sallittua. Kun yrityksiä tulee liikaa, niin Fail2ban estää IP-osoitteen määrätyksi ajaksi kirjoittamalla iptablesiin (siihen aitoon palomuuriin) säännön, joka keiltää pääsyn kokonaan. Hyödyllinen apuväline, koska murtoyrityksiä tulee koko ajan. Joten muista pitää niin serverisi kuin WordPressin päivitykset ajan tasalla.
Asennetaan Fail2ban:
apt install fail2ban
Se ei ole tällaisenaan kovinkaan hyödyllinen, mutta suojaa ainakin SSH:n. Säädetään se myöhemmin avuliaammaksi, kun ollaan saatu sivusto paikoilleen.
Annetaan sen käynnistyä automaattisesti, kun serverikin käynnistyy:
systemctl enable fail2ban
Käynnistetään se:
systemctl start fail2ban
Vilkaistaan saman tien onko se jo pyydystänyt IP-osoitteita, jotka ovat yrittäneet kirjautua serverille:
fail2ban-client status sshd
Minulla tulos oli tällainen, kun droplet oli noin kolmen tunnin ikäinen:
root@demo:~# fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 9 | |- Total failed: 45 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 1 |- Total banned: 1 `- Banned IP list: 140.143.238.46
Tuo tarkoittaa, että sillä hetkellä oli yksi IP-osoite bannattu ja logissa oli kaikkiaan 45 yritystä, joista 9 oli tutkittavan aikajanan sisällä, mutta yrityksiä ei ollut riittävästi – nuo kaikki määritellään asetuksissa, myöhemmin.
Kokeillaan yhtä komentoa lisää. Katsotaan mistä tuo IP-osoite oli:
whois 140.143.238.46
inetnum: 140.143.0.0 - 140.143.255.255 netname: TencentCloud descr: Tencent cloud computing (Beijing) Co., Ltd. descr: Floor 6, Yinke Building,38 Haidian St, descr: Haidian District Beijing country: CN
Kiinalainen botti. Noita riittää. Jopa niin paljon, että pystyvät saamaan serverisi jopa kyykistymään. Kiina ja Iran ovat niin pahoja ongelmia, että sinun kannattaa tulevaisuudessa miettiä niiden bannaamista kokonaan. Toki Fail2ban siivoaa niitä minkä ehtii, mutta sinulla on hyvin äkkiä kymmeniä tuhansia IP-osoitteita Fail2bannin sulkulistalla.