[CentOS-es] Como evito ataque DDoS a servidor DNS por iptables

Ignacio Ordeñana ifor1982 en gmail.com
Jue Oct 3 15:27:31 UTC 2013


hola pero desde el punto de vista del servidor DNS en lo que respecta de la
configuracion como puedo evitar esos ataques DDoS y por medio de iptables
sin necesidad de utilizar el software fail2ban, tienen alguna configuracion
al detalle de este tipo de configuracion

saludos


El 3 de octubre de 2013 08:46, David González Romero
<dgrvedado en gmail.com>escribió:

> DNS tiene dos cosas:
> 1- Tener una configuracion CERO recursividad y tratar de hacer FORWARD a
> todo lo que no puedas solucionar.
> 2- NUNCA permitir conexion tcp al puerto 53 y si tienes que definir SLAVES
> de tus zonas, intenta configurar bien las zonas.
>
> Por demás:
> iptables -A INPUT -s 0/0 -dport 53 -p tcp -j DROP o REJECT
> iptables -A INPUT -s 0/0 -dport 53 -p udp -j ACCEPT
>
> Y claro muy importante "yum update" o "aptitude update" con frecuencia
>
> Saludos,
> David
>
>
> El 3 de octubre de 2013 10:39, Elio Bastias, Project Managers <
> elio.bastias en gmail.com> escribió:
>
> > Rodrigo,
> > Buenos Días,
> > Como estas,
> > te paso un link, en donde te explica un poco mas detallado cada una de
> las
> > líneas, y otros temas:
> >
> > http://www.fail2ban.org/wiki/index.php/Talk:Apache
> > *básicamente apache-badbots* Bloquea por iptables los hosts que se
> conectan
> > haciendo uso de un “User Agent” sospechoso, y nos envia un mail para
> > avisarnos.****
> >
> > te paso algunos ejemplos:
> >
> > *apache-tcpwrapper:* Bloquea con el fichero /etc/hosts.deny los hosts que
> > se intentan conectar a dominios protegidos con contraseña (estos fallos
> de
> > autenticación aparecen en el error_log)*[*
> >
> > *apache-tcpwrapper]*
> >
> > enabled&nbsp; = true
> >
> > filter&nbsp;&nbsp; = apache-auth
> > action&nbsp;&nbsp; = hostsdeny
> > logpath&nbsp; = /var/www/vhosts/*/statistics/logs/error_log
> > maxretry = 6
> >
> > *apache-badbots* Bloquea por iptables los hosts que se conectan haciendo
> > uso de un “User Agent” sospechoso, y nos envia un mail para avisarnos.***
> > *[apache-badbots]
> > enabled&nbsp; = true
> > filter&nbsp;&nbsp; = apache-badbots
> > action&nbsp;&nbsp; = iptables-multiport[name=BadBots, port="http,https"]
> >            sendmail-buffered[name=BadBots, lines=5, dest=you en mail.com]
> > logpath&nbsp; = /var/www/vhosts/*/statistics/logs/access_log
> > bantime&nbsp; = 172800
> > maxretry = 1
> >
> > # Para prevenir ataques de inyeccion de codigo
> >
> > *php-url-fopen*. Bloqueamos los hosts, que intentan una inyeccion de
> código
> > del tipo: GET /index.php?n=http://www.dominio.com/fichero.htm
> > [php-url-fopen]
> > enabled = true
> > port&nbsp;&nbsp;&nbsp; = http,https
> > filter&nbsp; = php-url-fopen
> > logpath = /var/www/vhosts/*/statistics/logs/access_log
> > maxretry = 1
> >
> > # Evitamos ataques de ips que accedan a urls que contengan passthru o
> > system o similares
> >
> > *apache-hacks*: Bloquea los hosts que acceden a urls sospechosas,
> haciendo
> > un SCAN o directamente acceden a urls intentando inyectar llamadas al
> > sistema desde php (system, passthru…) esta regla se va rellenando con las
> > expresiones que vamos encontrando en los logs, al final del post,
> > adjuntamos el contenido del filtro en nuestro caso.
> > [apache-hacks]
> > enabled&nbsp; = true
> > port&nbsp;&nbsp;&nbsp;&nbsp; = http,https
> > filter&nbsp;&nbsp; = apache-hacks
> > action&nbsp;&nbsp; = iptables-multiport[name=AtaqueApache,
> > port="http,https"]
> >            sendmail-buffered[name=AtaqueApache, lines=5, dest=
> you en mail.com
> > ]
> > logpath&nbsp; = /var/www/vhosts/*/statistics/logs/access_log
> > maxretry = 3
> >
> > En el ultimo caso, hemos creado un fichero apache-hacks.conf en el
> > directorio filters.d, para empezar podemos agregar entradas como estas:
> >
> > failregex = ^<HOST> -.*”(GET|POST).*\?.*passthru.* HTTP\/.*$
> > ^<HOST> -.*”(GET|POST).*\?.*system.* HTTP\/.*$
> >
> > Y mas adelante agregar nuevas reglas.
> >
> > Con estos 4 casos, podemos evitar algunos de los intentos de ataque mas
> > comunes, pero no podemos ni por un momento pensar que con solo aplicar
> esto
> > estamos a salvo.
> >
> >
> > Saludos,
> >
> >
> >
> >
> >
> >
> > 2013/10/3 Rodrigo Pichiñual Norin <rodrigo.pichinual en gmail.com>
> >
> > > Elio,
> > >
> > > me puedes explicar este trozo de codigo y para que sirve?
> > >
> > > [apache-badbots]
> > >
> > > enabled  = true
> > > filter   = apache-badbots
> > > action   = iptables-multiport[name=BadBots, port="http,https"]
> > >            sendmail-buffered[name=BadBots, lines=5, dest=tu email]
> > > logpath  = /home/*/logs/access.log
> > > bantime  = 172800
> > > maxretry = 1
> > >
> > >
> > >
> > > esta habilidato apache-badbots (enabled = true)
> > > utiliza el filtro apache-badbots ubicado en el directorio filter.d
> > > action = ?
> > > logpath= donde busca los log para actuar
> > > bantime = ? ( se que es timepo de banneo)
> > > maxretry = ? ( un solo intentoooo???? )
> > >
> > >
> > > gracias
> > >
> > >
> > > 2013/10/3 Elio Bastias, Project Managers <elio.bastias en gmail.com>
> > >
> > > > Buenos Días,
> > > > Ignacio,
> > > > Hay muchas formas para poder evitarlos:
> > > > 1) Una es colocar un router con algún IDS, tipo Snort, ú  otro para
> que
> > > la
> > > > carga se haga en el router y no en el servidor DNS.-
> > > > 2) Podes utilizar fail2ban, en otro hilo estamos discutiendo algo
> > > similar,
> > > > te pego una de las posibles config que se puede hacer, esto es de uno
> > de
> > > > los foristas, para que te orientes:
> > > >
> > > > había un problema similar con unos de mi vps, al revisar los logs
> full
> > > > ataques,
> > > > pero con pocas cosas los detuve, te explico a ver que te sirve:
> > > >
> > > > 1.- SSH: Cambie el puerto por Defecto.
> > > >
> > > > 2.- Definir Buenas Reglas Iptables y Shorewall (Administrar una Lista
> > > Negra
> > > > de Ips de Ataques).
> > > >
> > > > 3.- Fail2ban: (Luego de Investigar mucho logre esta configuración):
> > > >
> > > > [DEFAULT]
> > > >
> > > > # "ignoreip" can be an IP address, a CIDR mask or a DNS host.
> Fail2ban
> > > will
> > > > not
> > > > # ban a host which matches an address in this list. Several addresses
> > can
> > > > be
> > > > # defined using space separator.
> > > > ignoreip = tu ip.
> > > >
> > > > # "bantime" is the number of seconds that a host is banned.
> > > > bantime  = 36000
> > > >
> > > > # A host is banned if it has generated "maxretry" during the last
> > > > "findtime"
> > > > # seconds.
> > > > findtime  = 600
> > > >
> > > > # "maxretry" is the number of failures before a host get banned.
> > > > maxretry = 3
> > > >
> > > > # "backend" specifies the backend used to get files modification.
> > > > # Available options are "pyinotify", "gamin", "polling" and "auto".
> > > > # This option can be overridden in each jail as well.
> > > > #
> > > > # pyinotify: requires pyinotify (a file alteration monitor) to be
> > > > installed.
> > > > #              If pyinotify is not installed, Fail2ban will use auto.
> > > > # gamin:     requires Gamin (a file alteration monitor) to be
> > installed.
> > > > #              If Gamin is not installed, Fail2ban will use auto.
> > > > # polling:   uses a polling algorithm which does not require external
> > > > libraries.
> > > > # auto:      will try to use the following backends, in order:
> > > > #              pyinotify, gamin, polling.
> > > > backend = auto
> > > >
> > > > # "usedns" specifies if jails should trust hostnames in logs,
> > > > #   warn when reverse DNS lookups are performed, or ignore all
> > hostnames
> > > in
> > > > logs
> > > > #
> > > > # yes:   if a hostname is encountered, a reverse DNS lookup will be
> > > > performed.
> > > > # warn:  if a hostname is encountered, a reverse DNS lookup will be
> > > > performed,
> > > > #        but it will be logged as a warning.
> > > > # no:    if a hostname is encountered, will not be used for banning,
> > > > #        but it will be logged as info.
> > > > usedns = warn
> > > >
> > > >
> > > > # This jail corresponds to the standard configuration in Fail2ban
> 0.6.
> > > > # The mail-whois action send a notification e-mail with a whois
> request
> > > > # in the body.
> > > >
> > > > [ssh-iptables]
> > > >
> > > > enabled  = true
> > > > filter   = sshd
> > > > action   = iptables[name=SSH, port=ssh, protocol=tcp]
> > > >            sendmail-whois[name=SSH, dest=root, sender=tu email]
> > > > logpath  = /var/log/secure
> > > >
> > > > [proftpd-iptables]
> > > >
> > > > enabled  = true
> > > > filter   = proftpd
> > > > action   = iptables[name=ProFTPD, port=ftp, protocol=tcp]
> > > >            sendmail-whois[name=ProFTPD, dest=tu email]
> > > > logpath  = /var/log/proftpd/access.log
> > > > maxretry = 5
> > > >
> > > > # This jail forces the backend to "polling".
> > > >
> > > > [sasl-iptables]
> > > >
> > > > enabled  = true
> > > > filter   = sasl
> > > > backend  = polling
> > > > action   = iptables[name=sasl, port=smtp, protocol=tcp]
> > > >            sendmail-whois[name=sasl, dest=tu email]
> > > > logpath  = /var/log/maillog
> > > > maxretry = 3
> > > >
> > > > # Here we use TCP-Wrappers instead of Netfilter/Iptables.
> "ignoreregex"
> > > is
> > > > # used to avoid banning the user "myuser".
> > > >
> > > >
> > > > [ssh-tcpwrapper]
> > > >
> > > > enabled     = true
> > > > filter      = sshd
> > > > action      = hostsdeny
> > > >               sendmail-whois[name=SSH, dest=tu email]
> > > > ignoreregex = for myuser from
> > > > logpath     = /var/log/secure
> > > >
> > > > # This jail demonstrates the use of wildcards in "logpath".
> > > > # Moreover, it is possible to give other files on a new line.
> > > >
> > > > [apache-tcpwrapper]
> > > >
> > > > enabled  = true
> > > > filter   = apache-auth
> > > > action   = hostsdeny
> > > > logpath  = /home/*/logs/*error.log
> > > >            /home/*/logs/error.log
> > > > maxretry = 6
> > > >
> > > > # The hosts.deny path can be defined with the "file" argument if it
> is
> > > > # not in /etc.
> > > >
> > > > [postfix-tcpwrapper]
> > > >
> > > > enabled  = true
> > > > filter   = postfix
> > > > action   = iptables-multiport[name=postfix,
> port="110,995,143,993,25",
> > > > protocol=tcp]
> > > >            sendmail-buffered[name=BadBots, lines=5, dest=tu email]
> > > > logpath  = /var/log/maillog
> > > > maxretry = 3
> > > >
> > > > # Ban hosts which agent identifies spammer robots crawling the web
> > > > # for email addresses. The mail outputs are buffered.
> > > >
> > > > [dovecot]
> > > >
> > > > enabled = true
> > > > filter = dovecot
> > > > action = iptables-multiport[name=Dovecot, port="110,995,143,993,25",
> > > > protocol=tcp]
> > > >          sendmail-whois[name=Fail2Dovecot, lines=5, dest=tu email]
> > > > logpath = /var/log/dovecot.log
> > > > maxretry = 3
> > > >
> > > > [apache-badbots]
> > > >
> > > > enabled  = true
> > > > filter   = apache-badbots
> > > > action   = iptables-multiport[name=BadBots, port="http,https"]
> > > >            sendmail-buffered[name=BadBots, lines=5, dest=tu email]
> > > > logpath  = /home/*/logs/access.log
> > > > bantime  = 172800
> > > > maxretry = 1
> > > >
> > > > # Use shorewall instead of iptables.
> > > >
> > > > [apache-shorewall]
> > > >
> > > > enabled  = true
> > > > filter   = apache-noscript
> > > > action   = shorewall
> > > >            sendmail[name=Postfix, dest=tu email]
> > > > logpath  = /home/*/logs/error.log
> > > >
> > > > # This jail uses ipfw, the standard firewall on FreeBSD. The
> "ignoreip"
> > > > # option is overridden in this jail. Moreover, the action
> "mail-whois"
> > > > defines
> > > > # the variable "name" which contains a comma using "". The characters
> > ''
> > > > are
> > > > # valid too.
> > > >
> > > > # This jail blocks TCP traffic for DNS requests.
> > > >
> > > > [named-refused-tcp]
> > > >
> > > > enabled  = true
> > > > filter   = named-refused
> > > > action   = iptables-multiport[name=Named, port="domain,953",
> > > protocol=tcp]
> > > >            sendmail-whois[name=Named, dest=tu email]
> > > > logpath  = /var/log/messages
> > > > ignoreip = tu ip
> > > >
> > > > # Jail for more extended banning of persistent abusers
> > > > # !!! WARNING !!!
> > > > #   Make sure that your loglevel specified in fail2ban.conf/.local
> > > > #   is not at DEBUG level -- which might then cause fail2ban to fall
> > into
> > > > #   an infinite loop constantly feeding itself with non-informative
> > lines
> > > > [recidive]
> > > >
> > > > enabled  = true
> > > > filter   = recidive
> > > > logpath  = /var/log/fail2ban.log
> > > > action   = iptables-allports[name=recidive]
> > > >            sendmail-whois-lines[name=recidive,
> > > > logpath=/var/log/fail2ban.log]
> > > > bantime  = 604800  ; 1 week
> > > > findtime = 86400   ; 1 day
> > > > maxretry = 5
> > > >
> > > > Estas son algunas opciones que puedes configurar en tu fail2ban, si
> > > buscas
> > > > en google con tus logs que ya tienes puedes probar cada una de ellas,
> > te
> > > > recomiendo que crees tu propio archivo jail.local en vez de
> jail.conf,
> > > asi
> > > > cada vez que actualices tendrás tus reglas guardadas sin problemas,
> > todo
> > > es
> > > > cuestión de paciencia y sobre todo de analizar tus logs para detectar
> > los
> > > > ataques que recibes, claro habrán otros que no veras como escaneos,
> > > >
> > > > Saludos
> > > >
> > > >
> > > > El 3 de octubre de 2013 10:22, Ignacio Ordeñana <ifor1982 en gmail.com
> > > > >escribió:
> > > >
> > > > > hola me gustaria saber como evitar ataque DDoS a mi servidor dns
> por
> > > > medio
> > > > > de iptables e inclusive como volver mas seguros el servidor dns
> para
> > > > evitar
> > > > > estos tipo de ataques
> > > > >
> > > > > saludos
> > > > > _______________________________________________
> > > > > CentOS-es mailing list
> > > > > CentOS-es en centos.org
> > > > > http://lists.centos.org/mailman/listinfo/centos-es
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Elio Bastias
> > > > Project Manager
> > > > _______________________________________________
> > > > CentOS-es mailing list
> > > > CentOS-es en centos.org
> > > > http://lists.centos.org/mailman/listinfo/centos-es
> > > >
> > > _______________________________________________
> > > CentOS-es mailing list
> > > CentOS-es en centos.org
> > > http://lists.centos.org/mailman/listinfo/centos-es
> > >
> >
> >
> >
> > --
> > Elio Bastias
> > Project Manager
> >
> > EM-C&IT |Open Source Innovation | Open Source Communications
> > Estrategia y Management en Comunicaciones e Infraestructurade IT
> >
> > |Gtalk/Mail: consultor en eliobastias.com.ar
> >
> > |Skype:eliobastias
> >
> > |Twitter User: @eliobastias
> >
> > |WebSite: http://www.eliobastias.com.ar
> >
> > |Soporte & Mantenimiento -> http://goo.gl/BXySz
> >
> >
> >
> |------------------------------------------------------------------------------------------------
> > Los precios cotizados por el equipamiento están expresados en Dólares
> > Estadounidenses e incluyen todos los impuestos vigentes que gravan este
> > tipo de operaciones, excepto el Impuesto al Valor Agregado (I.V.A.) que,
> en
> > caso de corresponder, será adicionado en el porcentaje que establezca la
> > ley al momento de realizar la facturación. Los precios resultantes de la
> > presente serán pagaderos en dólares estadounidenses billete o en su
> defecto
> > en pesos, según cotización del dólar libre tipo vendedor del Banco de la
> > Nación Argentina del día inmediato anterior al de efectivo pago.
> > Referencia: www.bna.com.ar
> >
> >
> |------------------------------------------------------------------------------------------------
> > Este mensaje y, en su caso, sus archivos adjuntos, son informaión
> > confidencial enviada para uso exclusivo de su destinatario. Está
> > terminantemente prohibida la lectura, copia, duplicado o reenvío de esta
> > información por parte de cualquier persona distinta del destinatario. Si
> > usted ha recibido este mensaje por error, por favor elimínelo e informe
> de
> > inmediato a su remitente.
> >
> >
> |------------------------------------------------------------------------------------------------
> > Antes de imprimir, pensá en tu responsabilidad y compromiso con el MEDIO
> > AMBIENTE.-
> > _______________________________________________
> > CentOS-es mailing list
> > CentOS-es en centos.org
> > http://lists.centos.org/mailman/listinfo/centos-es
> >
> _______________________________________________
> CentOS-es mailing list
> CentOS-es en centos.org
> http://lists.centos.org/mailman/listinfo/centos-es
>


Más información sobre la lista de distribución CentOS-es