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ä,
- palvelut on pilkuilla eroteltu luettelo palveluista, joihin nykyistä sääntöä tulee soveltaa.
asiakkaat edustavat luetteloa pilkuilla erotetuista isäntänimistä tai IP-osoitteista, joihin sääntö vaikuttaa. Seuraavat yleismerkit hyväksytään:
- KAIKKI vastaa kaikkea. Koskee sekä asiakkaita että palveluita.
- LOCAL vastaa isäntiä ilman pistettä FQDN:ssä, kuten localhost.
- TUDETTU osoittavat tilanteen, jossa isäntänimi, isäntäosoite tai käyttäjä tunnetaan.
- UNKNOWN on vastakohta sanalle TUDETTU.
- 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.
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.