Ecco una domanda posta da Gokul, uno dei lettori abituali di Techglimpse:hosts.allow non funziona sull'installazione minima di CentOS 7.
Domanda:di recente ho installato una versione minima di CentOS sul mio VPS. Dopo l'installazione ho provato a configurare hosts.allow per consentire connessioni TCP solo da indirizzi IP noti e dai suoi intervalli. Per fare ciò, generalmente modifico /etc/hosts.allow e consento gli indirizzi IP come di seguito:
TUTTI:10.180.*.*, 106.*.*.*:consenti
Ma per qualche motivo, sono stato in grado di inviare SSH al server da un indirizzo IP non attendibile (quello che non era consentito in hosts.allow). Sembra che hosts.allow non funzioni sull'installazione minima di CentOS 7. Come risolvere questo problema? – Gokul
Correggi hosts.allow non funziona con l'installazione minima di CentOS 7
In genere, hosts.allow
conterrà regole per consentire o negare le connessioni ai servizi di rete controllati da tcp_wrappers
biblioteca. Quindi, se il tuo hosts.allow
le voci sono corrette e se continua a non funzionare, devi vedere se tcp_wrappers
libreria è installata nell'installazione minima del sistema operativo. Nella maggior parte dei casi, le installazioni minime potrebbero non venire con tcp_wrapper
libreria preinstallata. Quindi l'installazione di tcp_wrapper potrebbe risolvere il problema.
Installa la libreria tcp_wrapper:
In realtà il demone che legge hosts.allow
e hosts.deny
è tcpd
. Quindi devi controllare quale libreria fornisce tcpd
demone come di seguito:
# yum provides tcpd
Risultato di esempio:
tcp_wrappers-7.6-77.el7.x86_64 : A security tool which acts as a wrapper for TCP : daemons Repo : base Matched from: Filename : /usr/sbin/tcpd
L'output di esempio conferma che tcpd
binario è fornito da tcp_wrappers
biblioteca. Installa tcp_wrappers
libreria usando yum
.
# yum install tcpd ::::::::::::::::::::: Installed: tcp_wrappers.x86_64 0:7.6-77.el7
Dopo aver modificato hosts.allow
e hosts.deny
, avvia il demone come segue:
# /usr/sbin/tcpd
Controlla se hosts.allow
consente giustamente solo agli host fidati di accedere ai servizi di rete.
Continua a non funzionare? Nella maggior parte dei casi, dovresti sempre DENY ALL
in hosts.deny
prima di consentire in hosts.allow
Ad esempio,
What has always worked for me is: /etc/hosts.deny = ALL: ALL: DENY /etc/hosts.allow = sshd: 10.168.1.21
Spero che aiuti.