Kuinka suojata verkkopalvelut TCP-kääreillä Linuxissa


Tässä artikkelissa selitämme, mitä TCP-kääreet ovat ja kuinka ne määritetään rajoittamaan pääsyä Linux-palvelimella toimiviin verkkopalveluihin. Ennen kuin aloitamme, meidän on kuitenkin selvennettävä, että TCP-kääreiden käyttö ei poista oikein konfiguroidun palomuurin tarvetta.

Tässä suhteessa voit ajatella tätä työkalua isäntäpohjaisena pääsynhallintaluettelona, ei järjestelmän lopullisena turvatoimena. Käyttämällä palomuuria ja TCP-kääreitä sen sijaan, että suosisit toisiaan, varmistat, että palvelimellesi ei jää yhtäkään vikakohtaa.

Hosts.allow ja hosts.deny ymmärtäminen

Kun verkkopyyntö saapuu palvelimellesi, TCP-kääreet käyttävät hosts.allow- ja hosts.deny-koodeja (tässä järjestyksessä) määrittääkseen, pitäisikö asiakkaan sallia käyttää tiettyä palvelua. .

Oletuksena nämä tiedostot ovat tyhjiä, kaikki kommentoituja tai niitä ei ole olemassa. Siten kaikki sallitaan TCP-kääreiden kerroksen läpi ja järjestelmäsi jätetään luottamaan palomuuriin täyden suojan saamiseksi. Koska tämä ei ole toivottavaa johdannossa mainitsemamme syyn vuoksi, varmista, että molemmat tiedostot ovat olemassa:

ls -l /etc/hosts.allow /etc/hosts.deny

Molempien tiedostojen syntaksi on sama:

<services> : <clients> [: <option1> : <option2> : ...]

missä,

  1. palvelut on pilkuilla eroteltu luettelo palveluista, joihin nykyistä sääntöä tulee soveltaa.
  2. asiakkaat edustavat luetteloa pilkuilla erotetuista isäntänimistä tai IP-osoitteista, joihin sääntö vaikuttaa. Seuraavat yleismerkit hyväksytään:

    1. KAIKKI vastaa kaikkea. Koskee sekä asiakkaita että palveluita.
    2. LOCAL vastaa isäntiä ilman pistettä FQDN:ssä, kuten localhost.
    3. TUDETTU osoittavat tilanteen, jossa isäntänimi, isäntäosoite tai käyttäjä tunnetaan.
    4. UNKNOWN on vastakohta sanalle TUDETTU.
    5. PARANOID aiheuttaa yhteyden katkeamisen, jos käänteiset DNS-haut (ensin IP-osoitteesta isäntänimen määrittämiseksi, sitten isäntänimen perusteella IP-osoitteiden saamiseksi) palauttavat kussakin tapauksessa eri osoitteen.
  3. Lopuksi valinnainen luettelo kaksoispisteellä erotetuista toimista kertoo, mitä pitäisi tapahtua, kun tietty sääntö käynnistyy.

Sinun kannattaa pitää mielessä, että sääntö, joka sallii pääsyn tiettyyn palveluun tiedostossa /etc/hosts.allow, on ensisijainen sääntöön /etc/hosts.deny nähden, joka kieltää se. Lisäksi, jos samaan palveluun sovelletaan kahta sääntöä, vain ensimmäinen otetaan huomioon.

Valitettavasti kaikki verkkopalvelut eivät tue TCP-kääreiden käyttöä. Voit selvittää, tukeeko tietty palvelu niitä seuraavasti:

ldd /path/to/binary | grep libwrap

Jos yllä oleva komento palauttaa lähdön, se voi olla TCP-kääritty. Esimerkkejä tästä ovat sshd ja vsftpd, kuten tässä näkyy:

Kuinka käyttää TCP-kääreitä palvelujen pääsyn rajoittamiseen

Kun muokkaat /etc/hosts.allow- ja /etc/hosts.deny-, varmista, että lisäät rivinvaihdon painamalla Enter-näppäintä viimeisen rivin jälkeen. ei-tyhjä rivi.

Jos haluat sallia SSH- ja FTP-käytön vain kohteisiin 192.168.0.102 ja localhost ja estää kaikki muut, lisää nämä kaksi riviä tiedostoon /etc/hosts.deny. :

sshd,vsftpd : ALL
ALL : ALL

ja seuraava rivi tiedostossa /etc/hosts.allow:

sshd,vsftpd : 192.168.0.102,LOCAL
#
hosts.deny	This file contains access rules which are used to
#		deny connections to network services that either use
#		the tcp_wrappers library or that have been
#		started through a tcp_wrappers-enabled xinetd.
#
#		The rules in this file can also be set up in
#		/etc/hosts.allow with a 'deny' option instead.
#
#		See 'man 5 hosts_options' and 'man 5 hosts_access'
#		for information on rule syntax.
#		See 'man tcpd' for information on tcp_wrappers
#
sshd,vsftpd : ALL
ALL : ALL
#
hosts.allow	This file contains access rules which are used to
#		allow or deny connections to network services that
#		either use the tcp_wrappers library or that have been
#		started through a tcp_wrappers-enabled xinetd.
#
#		See 'man 5 hosts_options' and 'man 5 hosts_access'
#		for information on rule syntax.
#		See 'man tcpd' for information on tcp_wrappers
#
sshd,vsftpd : 192.168.0.102,LOCAL

Nämä muutokset tapahtuvat välittömästi ilman uudelleenkäynnistystä.

Seuraavassa kuvassa näet sanan LOCAL poistamisen vaikutuksen viimeiseltä riviltä: FTP-palvelin lakkaa olemasta käytettävissä localhost:lle. Kun olemme lisänneet jokerimerkin takaisin, palvelu tulee jälleen saataville.

Jos haluat sallia kaikki palvelut isännille, joiden nimi sisältää example.com, lisää tämä rivi kohtaan hosts.allow:

ALL : .example.com

ja jos haluat estää vsftpd:n pääsyn koneille 10.0.1.0/24, lisää tämä rivi kohtaan hosts.deny:

vsftpd : 10.0.1.

Huomaa kahdessa viimeisessä esimerkissä piste asiakasluettelon alussa ja lopussa. Sitä käytetään osoittamaan "KAIKKI isännät ja/tai asiakkaat, joiden nimi tai IP sisältää kyseisen merkkijonon".

Oliko tästä artikkelista sinulle apua? Onko sinulla kysyttävää tai kommentteja? Voit vapaasti jättää meille huomautuksen alla olevan kommenttilomakkeen avulla.