Jump to content

Como instalar el firewall pf


Shogun
 Share

Recommended Posts

Hola a todos,

 

Hoy os voy a explicar cómo instalar y configurar el firewall pf que viene integrado desde hace mucho tiempo en FreeBSD. Por tanto este tutorial debería servir en cualquier versión de FreeBSD que utilicéis.

 

Además de bloquear los puertos que no queramos que estén abiertos al público, configuraremos un limitador de frecuencia que bloqueará las IP que hagan demasiadas conexiones o demasiado rápidas, lo cual es muy útil para protegerse de ciertos ataques DDoS.

 

En primer lugar crearemos un fichero llamado /etc/pf.conf con el Easy Editor:

 

ee /etc/pf.conf

 

Nota: Esta configuración asume que tenemos página web, base de datos y juego, en la misma máquina. Si tenéis la web en otro sitio, cerrad los puertos 80 y 443 borrándolos de service_ports y añadir la IP de vuestro servidor web en /var/db/trusted_hosts. Para otras configuraciones preguntad en el hilo.

 

Copiamos y pegamos lo que viene a continuación en el putty:

ext_if="igb1"
service_ports="{ 22, 80, 443 }"
game_ports="{ 11000, 13000, 13001, 13002, 13010, 13011, 13012, 13020, 13021, 13022, 13099 }"
table <abusive_hosts> persist
table <trusted_hosts> persist file "/var/db/trusted_hosts"
set block-policy return
set loginterface $ext_if
set skip on lo
scrub on $ext_if reassemble tcp no-df set-tos lowdelay random-id
antispoof quick for { lo0 $ext_if }
block in
pass out all keep state
pass out on $ext_if all modulate state
pass in quick from <trusted_hosts>
block in quick from <abusive_hosts>
pass in on $ext_if inet proto icmp all icmp-type echoreq keep state
pass in on $ext_if proto tcp to any port $game_ports flags S/SA synproxy state /
        (max-src-conn 30, max-src-conn-rate 20/5, overload <abusive_hosts> flush)
pass in on $ext_if proto tcp to any port $service_ports flags S/SA keep state / 
        (max-src-conn 30, max-src-conn-rate 20/5, overload <abusive_hosts> flush)

Las tres primeras líneas debéis cambiarlas de esta forma:

 

ext_if: nombre del interface público, lo podemos averiguar con el comando ifconfig:

 

En este caso mi interface público, el que tiene asignado mi IP pública de internet, es igb1.

 

service_ports: puertos usados para ssh, web, etc. En el ejemplo he puesto 22 (SSH), 80 (HTTP), 443 (HTTPS)

 

game_ports: todos los puertos del metin, separados por coma: auth y los game cores (no pongáis el de db que suele ser 15000 por defecto ya que db no debe estar accesible a internet sólo a los game cores)

 

Si tienes tu página web en otro servidor o quieres por cualquier otro motivo que una o más direcciones IP tengan acceso libre a tu servidor sin pasar por el firewall debes ponerlas, una por línea, en este fichero que crearemos con:

 

ee /var/db/trusted_hosts

 

Terminada la configuración haremos lo siguiente:

 

kldload pf

pfctl -e

 

A partir de este momento estará activado nuestro firewall, aunque para que sea plenamente funcional debemos añadir una línea a /etc/rc.conf que ponga:

 

pf_enable="YES"

 

Y reiniciar FreeBSD. Ya estamos protegidos contra algunos tipos de ataque DDoS bastante comunes.

 

Manejo del firewall

 

Para ver las IP baneadas:

 

pfctl -t abusive_hosts -T show

 

Para borrar la tabla de bans entera:

 

pfctl -t abusive_hosts -T flush

 

Para añadir una IP a la tabla de bans:

 

pfctl -t abusive_hosts -T add 8.8.8.8

 

Para borrar una IP de la tabla de bans

 

pfctl -t abusive_hosts -T del 8.8.8.8

 

Para deshabilitar temporalmente el firewall:

 

pfctl -d

 

Si por cualquier motivo queremos desinstalar el firewall será necesario borrar la línea que escribimos en /etc/rc.conf y reiniciar la máquina. Tened cuidado también ya que os podéis bloquear a vosotros mismos sin querer, en ese caso la única solución es cambiar vuestra IP o pedirle a otro administrador que nos desbloquee con el comando correspondiente.

 

Cualquier duda os responderé en este hilo cuando pueda :)

Link to comment
Share on other sites

Esas reglas para el pf son algo imprecisas y genererá problemas ya que bloqueará a quien no debe.Exactamente bloqueará el acceso web, baneando la IP del hosting web que se conecte, simplemente con que alguien habrá el navegador, entre a la web, y la refresque un par de veces, el pf bloqueará la IP y no funcionará la web, además esto tambien sucederá si te bajas un sql de tu server o cualquier acción que supere dicho ratio, bloqueandote el acceso a tu server, y cabe la posiblidad de que bloquee a usuarios que habran diversas cuentas.Con añadir un

pass in quick from

se solucionaría.

 

Y para navengates que digan que esto no funciona, debeís de tener instalado el árbol completo de SRC para el pf.

Link to comment
Share on other sites

Jejeje sabia que ivan a decir eso xd esque tu dijiste 

 

 

 

Ya estamos protegidos contra algunos tipos de ataque DDoS bastante comunes.

 

Por eso dije ya se que el firewall no es para Ddos...

 

Es mi culpa por no explicarme bien :D :D

 

Y el Ddos de Ovh te digo yo que si detiene todos los ataques ddos

 

Si no lo probamos xd

Link to comment
Share on other sites

  • 8 months later...

Boas tardes,

 

Shogun, o código que esta no post nº1 esta todo em uma linha.... é para ficar assim?

da para corrir a imagem de forma a que se possa entender melhor?

 

 

o meu Auth.log esta cheio de:

 

 

 

Dec 29 16:08:26 ns341257 sshd[82323]: Failed password for root from 122.225.97.68 port 42692 ssh2
Dec 29 16:08:26 ns341257 sshd[82325]: Failed password for root from 122.225.97.68 port 42702 ssh2
Dec 29 16:08:28 ns341257 sshd[82323]: Failed password for root from 122.225.97.68 port 42692 ssh2
Dec 29 16:08:28 ns341257 sshd[82325]: Failed password for root from 122.225.97.68 port 42702 ssh2
Dec 29 16:08:28 ns341257 sshd[82327]: Failed password for root from 122.225.97.68 port 43364 ssh2
Dec 29 16:08:29 ns341257 sshd[82327]: Failed password for root from 122.225.97.68 port 43364 ssh2
Dec 29 16:08:29 ns341257 sshd[82323]: Failed password for root from 122.225.97.68 port 42692 ssh2
Dec 29 16:08:29 ns341257 sshd[82327]: Failed password for root from 122.225.97.68 port 43364 ssh2
Dec 29 16:08:30 ns341257 sshd[82327]: Failed password for root from 122.225.97.68 port 43364 ssh2
Dec 29 16:08:30 ns341257 sshd[82323]: Failed password for root from 122.225.97.68 port 42692 ssh2
Dec 29 16:08:30 ns341257 sshd[82327]: Failed password for root from 122.225.97.68 port 43364 ssh2
Dec 29 16:08:30 ns341257 sshd[82325]: Failed password for root from 122.225.97.68 port 42702 ssh2
Dec 29 16:08:30 ns341257 sshd[82323]: Failed password for root from 122.225.97.68 port 42692 ssh2
Dec 29 16:08:30 ns341257 sshd[82327]: Failed password for root from 122.225.97.68 port 43364 ssh2
Dec 29 16:08:30 ns341257 sshd[82327]: Disconnecting: Too many authentication failures for root [preauth]
Dec 29 16:08:30 ns341257 sshd[82325]: Failed password for root from 122.225.97.68 port 42702 ssh2
Dec 29 16:08:31 ns341257 sshd[82323]: Failed password for root from 122.225.97.68 port 42692 ssh2
Dec 29 16:08:31 ns341257 sshd[82323]: Disconnecting: Too many authentication failures for root [preauth]
Dec 29 16:08:31 ns341257 sshd[82325]: Failed password for root from 122.225.97.68 port 42702 ssh2
Dec 29 16:08:35 ns341257 sshd[82325]: Failed password for root from 122.225.97.68 port 42702 ssh2

 
 
penso que seria boa ideia meter a firewall ... não ? :\
Link to comment
Share on other sites

Nao, ficou assim por causa da actualizaçao do forum.

 

Para bruteforces podes instalar o sshguard-pf acho que escrevi um tutorial na metin2dev. Ou, mais simples, mudar o numero do port do SSH em /etc/ssh/sshd_config, mas lembra reiniciar o serviço sshd depois e abrir o port novo no pf, se tiveres isso instalado.

Link to comment
Share on other sites

Para todo aquel genio informático que se crea que se pueden parar TODOS los ataques DDoS les recuerdo que los servidores de Sony (Si sony con miles de millones de euros y una empresa de prestigio) fueron atacados de esta manera y les tiraron varios servidor un mes entero. Imagínate lo que podría pasarle a vuestro servidor de OVH con un ataque de semejante magnitud.

Y ahora me vais a permitir dejaros una cita de mi mismo para que lo tengáis en mente:

"Todo lo hecho por el hombre puede deshacerse por otro hombre con los mismos conocimientos"

Que viene a decir que nada es invulnerable sabiendo como esta hecho y como atacarlo.

Un saludo !


#Edit: Muchísimas gracias Shogun por el post, muy interesante y muy útil.

Link to comment
Share on other sites

mmm no compares Sony(grandisima empresa multimillonaria) con un servidor de metin2. Tampoco compares a Lizard Squad con un niño de 14 años con 1 botnet de juguete.

 

Y yo creo que nadie piensa que es firewall vaya a parar mucho, simplemente que ayude a filtar el ataque.

Si claro claro, obviamente que no se puede comparar una cosa con la otra, pero sabemos que aqui en metin2 hay gente con buenos servidores, y no solo con uno sino con mas, empresas de hosting, alianzas entre servidores, etc etc suficientes para hacer un ataque decente, no para tirar a Sony claro está, pero suficiente para hacerle pupa aun servidor de metin.

Entonces quiero dejar constancia de que la gente que se cree por estar en OVH son intocables, que se quiten esa idea de la cabeza porque un buen ataque DDoS los puede tirar igual que a todos.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...