Kā nodrošināt tīkla pakalpojumus, izmantojot Linux TCP iesaiņotājus


Šajā rakstā mēs izskaidrosim, kas ir TCP iesaiņotāji un kā tos konfigurēt konfigurētam ugunsmūrim.

Šajā sakarā jūs varat domāt par šo rīku kā galveno savas sistēmas drošības līdzekli. Izmantojot ugunsmūri un TCP ietinējus, tā vietā, lai dotu priekšroku viens otram, jūs pārliecināsieties, ka jūsu serverim nav atstāts viens kļūmes punkts.

Izpratne hosts.allow un hosts.deny

Kad tīkla pieprasījums sasniedz jūsu serveri, TCP iesaiņotāji izmanto hosts.allow un hosts.deny (šādā secībā), lai noteiktu, vai klientam jāļauj izmantot doto pakalpojumu .

Pēc noklusējuma šie faili ir tukši, visi ir komentēti vai to nav. Tādējādi viss ir atļauts, izmantojot TCP iesaiņotāju slāni, un jūsu sistēma tiek pilnībā paļauties uz ugunsmūri. Tā kā tas nav vēlams ievadā norādītā iemesla dēļ, pārliecinieties, vai pastāv abi faili:

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

Abu failu sintakse ir vienāda:

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

kur,

  1. pakalpojumi ir komatu atdalīts to pakalpojumu saraksts, kuriem jāpiemēro pašreizējais noteikums.
  2. klienti pārstāv to komatu atdalīto saimniekdatoru vai IP adrešu sarakstu, uz kuriem attiecas kārtula. Tiek pieņemtas šādas aizstājējzīmes:
    1. VISI atbilst visam. Attiecas gan uz klientiem, gan pakalpojumiem.
    2. LOCAL atbilst saimniekiem bez perioda savā FQDN, piemēram, localhost.
    3. ZINĀTS norāda situāciju, kad ir zināms resursdatora nosaukums, resursdatora adrese vai lietotājs.
    4. Nezināms ir pretējs ZINĀTAM.
    5. PARANOID dēļ savienojums tiek pārtraukts, ja reversā DNS meklēšana (vispirms IP adresē, lai noteiktu resursdatora nosaukumu, pēc tam resursdatora nosaukumā, lai iegūtu IP adreses) katrā gadījumā atgriež citu adresi.

    Varat paturēt prātā, ka kārtulai, kas atļauj piekļuvi noteiktam pakalpojumam sadaļā /etc/hosts.allow , ir prioritāte pār /etc/hosts.deny kārtulu, kas aizliedz to. Turklāt, ja uz vienu un to pašu pakalpojumu attiecas divi noteikumi, tiks ņemts vērā tikai pirmais.

    Diemžēl ne visi tīkla pakalpojumi atbalsta TCP iesaiņotāju izmantošanu. Lai noteiktu, vai konkrētais pakalpojums tos atbalsta, rīkojieties šādi:

    # ldd /path/to/binary | grep libwrap
    

    Ja iepriekš minētā komanda atgriež izvadi, to var ietīt TCP. Piemērs tam ir sshd un vsftpd, kā parādīts šeit:

    Kā izmantot TCP iesaiņotājus, lai ierobežotu piekļuvi pakalpojumiem

    Rediģējot /etc/hosts.allow un /etc/hosts.deny , pārliecinieties, vai esat pievienojis jaunu rindiņu, nospiežot Enter pēc pēdējās neiztukšotās rindas.

    Lai atļautu SSH un FTP piekļuvi tikai vietnei 192.168.0.102 un localhost un noraidītu visus pārējos, pievienojiet šīs divas rindas mapē /etc/hosts.deny :

    sshd,vsftpd : ALL
    ALL : ALL
    

    un šāda rindiņa /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
    

    Šīs izmaiņas notiek nekavējoties bez restartēšanas.

    Šajā attēlā var redzēt vārda LOCAL noņemšanas sekas no pēdējās rindas: FTP serveris kļūs nepieejams localhost. Pēc tam, kad aizstājam aizstājējzīmi, pakalpojums atkal ir pieejams.

    Lai ļautu visiem pakalpojumiem uzturēt resursdatorus, kuru nosaukumā ir example.com , pievienojiet šo rindu hosts.allow :

    ALL : .example.com
    

    un, lai liegtu piekļuvi vsftpd mašīnām 10.0.1.0/24 versijā, pievienojiet šo rindu mapē hosts.deny :

    vsftpd : 10.0.1.
    

    Pēdējos divos piemēros ievērojiet punktu klientu saraksta sākumā un beigās. To lieto, lai norādītu “VISUS resursdatorus un/vai klientus, ja nosaukumā vai IP ir šī virkne”.

    Vai šis raksts jums bija noderīgs? Vai jums ir kādi jautājumi vai komentāri? Jūtieties brīvi nomest mums piezīmi, izmantojot zemāk esošo komentāru veidlapu.