Portin koputuksen käyttäminen SSH-palvelun suojaamiseen Linuxissa


Port Knocking on näppärä tekniikka portin pääsyn hallitsemiseen sallimalla vain laillisten käyttäjien pääsy palvelimella toimivaan palveluun. Se toimii siten, että kun oikea yhteysyritysten sarja on tehty, palomuuri avaa mielellään suljetun portin.

Portin koputuksen takana oleva logiikka on suojata Linux-järjestelmäsi automaattisilta porttiskannereilta, jotka etsivät avoimia portteja. Tässä oppaassa tutkimme, kuinka voit asentaa portin koputuksen ja kuinka voit määrittää sen suojaamaan SSH-palvelua. Esittelytarkoituksiin käytämme Ubuntu 18.04 -versiota.

Vaihe 1: Asenna ja määritä knockd

Aloita kirjautumalla sisään Linux-järjestelmääsi ja asentamalla knockd-daemon kuvan mukaisesti.

sudo apt install knockd

Kun olet asentanut, avaa knockd.conf-määritys haluamallasi tekstieditorilla. Tässä käytämme vim-komentorivin tekstieditoria.

sudo vim /etc/knockd.conf

Oletusasetustiedosto näkyy seuraavasti.

[openSSH]-osiossa meidän on vaihdettava oletusarvoinen koputusjärjestys – 7000,8000,9000 – joksikin muuksi. Tämä johtuu siitä, että nämä arvot ovat jo tiedossa ja voivat vaarantaa järjestelmän turvallisuuden.

Testausta varten olemme asettaneet arvoiksi 10005, 10006, 10007. Tämä on sekvenssi, jota käytetään SSH-portin avaamiseen asiakasjärjestelmästä.

Kolmannella rivillä – alkaen komennolla, muuta -A arvoksi -I heti /sbin/iptables:n jälkeen. komento ja ennen INPUT.

Ja lopuksi, muuta uudelleen [closeSSH]-osiossa oletussekvenssi haluamaasi vaihtoehtoon. Tämä on sekvenssi, jota käytetään SSH-yhteyden sulkemiseen, kun käyttäjä on valmis ja kirjautuu ulos palvelimelta.

Tässä on täydellinen kokoonpanomme.

Kun olet valmis, tallenna muutokset ja poistu.

Toinen kokoonpano, jota meidän on muokattava, on /etc/default/knockd. Avaa se vielä kerran tekstieditorillasi.

sudo vim /etc/default/knockd

Etsi rivi START_KNOCKD=0. Poista sen kommentti ja aseta arvoksi 1.

Siirry seuraavaksi riville KNOCKD_OPTS= ”-i eth1 ” Poista kommentti ja korvaa oletusarvo eth1 järjestelmäsi aktiivisella verkkoliittymällä. Tarkistaaksesi verkkoliittymäsi, suorita ip addr tai ifconfig-komento.

Järjestelmässämme enp0s3 on aktiivinen verkkokortti.

Täydellinen kokoonpano on kuvan mukainen.

Tallenna muutokset ja poistu.

Käynnistä sitten knockd-daemon ja ota se käyttöön kuvan mukaisesti.

sudo systemctl start knockd
sudo systemctl enable knockd

Voit tarkistaa knockd-daemonin tilan suorittamalla komennon:

sudo systemctl status knockd

Vaihe 2: Sulje palomuurin SSH-portti 22

Koska knockd -palvelun tavoitteena on joko myöntää tai estää pääsy ssh-palveluun, suljemme palomuurin ssh-portin. Mutta ensin tarkistetaan UFW-palomuurin tila.

sudo ufw status numbered

Lähdöstä näemme selvästi, että SSH-portti 22 on avoinna sekä IPv4- että IPv6-protokollalla numeroitu 5 ja 9.

Meidän on poistettava nämä kaksi sääntöä kuvan mukaisesti alkaen suurimmasta arvosta, joka on 9.

sudo ufw delete 9
sudo ufw delete 5

Nyt, jos yrität kirjautua sisään palvelimelle etänä, saat kuvan mukaisen yhteyden aikakatkaisuvirheen.

Vaihe 3: Määritä knock-asiakas muodostamaan yhteys SSH-palvelimeen

Viimeisessä vaiheessa määritämme asiakkaan ja yritämme kirjautua sisään lähettämällä ensin koputussekvenssin, jonka määritimme palvelimelle.

Mutta ensin asenna knockd-daemon aivan kuten teit palvelimelle.

sudo apt install knockd

Kun asennus on valmis, lähetä koputussekvenssi käyttämällä näkyvää syntaksia

knock -v server_ip knock_sequence

Meidän tapauksessamme tämä tarkoittaa:

knock -v 192.168.2.105 10005 10006 10007

Sinun pitäisi saada samanlainen tulos kuin meillä, riippuen järjestyksestäsi. Tämä osoittaa, että koputusyritykset onnistuivat.

Tässä vaiheessa sinun pitäisi pystyä kirjautumaan onnistuneesti palvelimelle SSH:n avulla.

Kun olet tehnyt työsi etäpalvelimella, sulje SSH-portti lähettämällä sulkeva koputussekvenssi.

knock -v 192.168.2.105 10007 10006 10005

Kaikki yritykset kirjautua sisään palvelimelle epäonnistuvat, kuten on osoitettu.

Loppuajattelua

Tämä tiivistää tämän oppaan siitä, kuinka voit hyödyntää portin koputusta SSH-palvelun turvaamiseksi palvelimellasi. Parempi ja helpompi tapa olisi määrittää salasanan SSH-todennus käyttämällä SSH-avainpareja. Tämä varmistaa, että vain yksityisen avaimen omaava käyttäjä voi todentaa palvelimella, johon julkinen avain on tallennettu.