Esta es una pregunta de Gokul, uno de los lectores habituales de Techglimpse:hosts.allow no funciona en la instalación mínima de CentOS 7.
Pregunta:Recientemente instalé una versión mínima de CentOS en mi VPS. Después de la instalación, intenté configurar hosts.allow para permitir conexiones TCP solo desde direcciones IP conocidas y sus rangos. Para hacer eso, generalmente edito /etc/hosts.allow y permito las direcciones IP de la siguiente manera:
TODOS:10.180.*.*, 106.*.*.*:permitir
Pero por alguna razón, pude usar SSH en el servidor desde una dirección IP que no es de confianza (la que no estaba permitida en hosts.allow). Parece que hosts.allow no funciona en la instalación mínima de CentOS 7. ¿Cómo resolver este problema? – Gokul
Reparar hosts.allow no funciona en la instalación mínima de CentOS 7
Generalmente, hosts.allow
contendrá reglas para permitir o denegar conexiones a servicios de red controlados por tcp_wrappers
biblioteca. Entonces, si su hosts.allow
las entradas son correctas y si aún no funciona, entonces necesita ver si tcp_wrappers
La biblioteca está instalada en la instalación mínima del sistema operativo. En la mayoría de los casos, es posible que las instalaciones mínimas no vengan con tcp_wrapper
biblioteca preinstalada. Entonces, instalar tcp_wrapper podría resolver el problema.
Instalar biblioteca tcp_wrapper:
En realidad, el demonio que lee hosts.allow
y hosts.deny
es tcpd
. Por lo tanto, debe verificar qué biblioteca proporciona tcpd
demonio como se muestra a continuación:
# yum provides tcpd
Salida de muestra:
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
La salida de muestra confirma que tcpd
binario es proporcionado por tcp_wrappers
biblioteca. Instalar tcp_wrappers
biblioteca usando yum
.
# yum install tcpd ::::::::::::::::::::: Installed: tcp_wrappers.x86_64 0:7.6-77.el7
Después de editar hosts.allow
y hosts.deny
, inicie el demonio como se muestra a continuación:
# /usr/sbin/tcpd
Compruebe si hosts.allow
permite correctamente que solo los hosts de confianza accedan a los servicios de red.
¿Sigue sin funcionar? En la mayoría de los casos, siempre debe DENY ALL
en hosts.deny
antes de permitir en hosts.allow
Por ejemplo,
What has always worked for me is: /etc/hosts.deny = ALL: ALL: DENY /etc/hosts.allow = sshd: 10.168.1.21
Espero que ayude.