Las IP en hosts.deny solo bloquean ssh

0

Estoy ejecutando un servidor pequeño donde quiero bloquear algunas IP especiales usando /etc/hosts.deny . Si hago una entrada como

ALL: <IP>

solo el servicio ssh se bloqueará para IP . Todos los demás servicios como ftp, http, etc. todavía son accesibles por IP . ¿ El archivo host.deny no define reglas globales?

Tik0
fuente
¿Qué es exactamente lo que quieres bloquear? ¿Desea evitar que hablen por completo con su servidor? (el firewall puede hacerlo) o simplemente bloquear el acceso a un servicio en particular (smtp, imap, web): esto se puede hacer mediante firewall o configurando una configuración restrictiva para esas IP no deseadas para servicios particulares. Por favor, sea más específico en sus preguntas.
VL-80

Respuestas:

5

/etc/hosts.deny y /etc/hosts.allow son parte de TCP-Wrapper, un programa desarrollado por Wietse Venema para negar el acceso a los piratas informáticos en los años noventa.

TCP wrappers controla el acceso TCP de los procesos ejecutados desde /etc/inetd.conf. La mayoría de las distribuciones modernas de Linux (todas basadas en Debian, Arch Linux, ...) ya no tienen inetd .

TCPwrapper todavía controla algunas aplicaciones porque están compiladas con la biblioteca libwrap y, por lo tanto, son compatibles con tcpwrapper incluso si no se ejecutan desde /etc/inetd.conf. Estas aplicaciones incluyen, a mi leal saber y entender, telnet, ssh, sendmail, pop3 y stunnel.

Puede verificar si su aplicación es compatible con tcp-wrapper mediante el comando de cadenas :

 # strings /usr/sbin/sshd|grep hosts_access
 hosts_access

o por medio de ldd :

 # ldd /usr/sbin/sshd | grep libwrap
    libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f7059e7a000)

La forma correcta, hoy en día, de impedir que intrusos accedan a su sistema, es usar iptables :

  iptables -A INPUT -s 11.22.33.44 -j DROP
MariusMatutiae
fuente
¡Buena respuesta! Sé iptables pero desafortunadamente solo permite unas pocas (64) entradas. ¿Conoces algún otro método que no use iptables?
Tik0
1
@ Tik0 Sí, debe instalar y usar ipset . Está en todos los repositorios. Esta página web de Arch Linux Wiki, wiki.archlinux.org/index.php/Ipset , es muy fácil de leer y muy informativa, incluso si no usa Arch Linux.
MariusMatutiae
¿Quién te dijo que iptables solo permite 64 entradas? Tengo sistemas que usan solo iptables para cortafuegos con aproximadamente 500 entradas. Además, la forma más segura de firewall es negar todo, luego permitir "establecido y relacionado" y luego permitir lo que desea. Los sistemas definitivamente funcionan según lo previsto, ya que se han probado exhaustivamente.
davidgo
@ Tik0 El problema aquí no son las 64 entradas, sino la velocidad con la que se produce la manipulación de paquetes. ipset es mucho más rápido, especialmente cuando tiene listas masivas de IP para bloquear.
MariusMatutiae
Es complejo de configurar, pero si desea bloquear muchas IP, investigue nfblock. Se basa en nfqueue (envía el tráfico que desea filtrar al objetivo NFQUEUE) y luego nfblock lo aprueba o niega en función de una lista de bloqueo.
LawrenceC
0

Desde la memoria, sshd solo lee hosts.allow / hosts.deny. Deberá configurar un firewall para restringir otros servicios.

arco444
fuente
Tu memoria es defectuosa.
JdeBP
No es mi memoria, la configuración del servidor no me permite más líneas :(. Es virtual.
Tik0
0

Solo los servicios que usan el contenedor tcpd o sshd, prestan atención a hosts.deny y hosts.allow. La mayoría de los servicios utilizan su propio contenedor TCP o el contenedor x? Inetd.

Soure: http://its.virginia.edu/unixsys/sec/hosts.html

PD: Hace algún tiempo me encontré con una nota que decía que xinitd se puede compilar para admitir libwrap (o algo que afecte) que usa hosts.deny / allow.

Chris S
fuente