Firewall e NAT em FreeBSD com controle de banda e redirecionamento de portas e IPs
Neste artigo vou mostrar todos os passos de como criar um servidor firewall e NAT em FreeBSD com opções interessantes como redirecionamentos de portas e/ou IPs.
Parte 6: Editando o rc.local
Aqui é possível realizar configurações de controle de banda e
bloqueio de portas. Também podem ser colocadas linhas de comando
para levantar serviços como o Squid por exemplo.
Com esse controle é possível cortar os problemas com aqueles usuários que ficam o dia inteiro no MSN e baixando coisas, lotando a rede que alguns precisam.
Logado como root vá ate o /etc:
$ cd /etc
$ ee rc.local
Com esse controle é possível cortar os problemas com aqueles usuários que ficam o dia inteiro no MSN e baixando coisas, lotando a rede que alguns precisam.
Logado como root vá ate o /etc:
$ cd /etc
$ ee rc.local
#apaga todas as regras ativas do firewall
/sbin/ipfw -f flush
#Levanta MPD
/usr/local/sbin/mpd -b
#Levanta o Squid
#/sbin/ipfw add 2 allow tcp from 200.200.200.12 to any 80
#/sbin/ipfw add 3 fwd 127.0.0.1,3128 tcp from any to any 80
#é possível bloquear que protocolos NetBios passem pelo servidor
#opção interessante para administradores de redes em provedor
#para que o netbios de uma rede interna case problemas na rede
#de distribuição do provedor, apesar do NetBios não ser roteável...
#Bloqueios de NetBios
/sbin/ipfw add 100 deny log tcp from any to any 135
/sbin/ipfw add 101 deny log tcp from any to any 136
/sbin/ipfw add 102 deny log tcp from any to any 137
/sbin/ipfw add 103 deny log tcp from any to any 138
/sbin/ipfw add 104 deny log tcp from any to any 139
/sbin/ipfw add 105 deny log udp from any to any 135
/sbin/ipfw add 106 deny log udp from any to any 136
/sbin/ipfw add 107 deny log udp from any to any 137
/sbin/ipfw add 108 deny log udp from any to any 138
/sbin/ipfw add 109 deny log udp from any to any 139
/sbin/ipfw add 110 deny log tcp from any 135 to any
/sbin/ipfw add 111 deny log tcp from any 136 to any
/sbin/ipfw add 112 deny log tcp from any 137 to any
/sbin/ipfw add 113 deny log tcp from any 138 to any
/sbin/ipfw add 114 deny log tcp from any 139 to any
/sbin/ipfw add 115 deny log udp from any 135 to any
/sbin/ipfw add 116 deny log udp from any 136 to any
/sbin/ipfw add 117 deny log udp from any 137 to any
/sbin/ipfw add 118 deny log udp from any 138 to any
/sbin/ipfw add 119 deny log udp from any 139 to any
/sbin/ipfw add 120 deny log tcp from any to any 445
/sbin/ipfw add 121 deny log tcp from any 445 to any
/sbin/ipfw add 122 deny log udp from any to any 445
/sbin/ipfw add 123 deny log udp from any 445 to any
#utilize as regras abaixo para setar valores de banda para os IPs internos
#para o IP 10.23.0.106
#de qualquer lugar para o 10.23.0.106...
/sbin/ipfw add 1 pipe 1 tcp from any to 10.23.0.106 out
#do 10.23.0.106 para qualquer lugar...
/sbin/ipfw add 1 pipe 2 tcp from 10.0.0.106 to any in
#seta o valor de download
/sbin/ipfw pipe 1 config bw 256kbit/s queue 10kbytes
#seta o valor de upload
/sbin/ipfw pipe 2 config bw 1128kbit/s queue 10kbytes
#para o ip 10.23.0.95
/sbin/ipfw add 1 pipe 3 tcp from any to 10.23.0.95 out
/sbin/ipfw add 1 pipe 4 tcp from 10.23.0.95 to any in
/sbin/ipfw pipe 3 config bw 128kbit/s queue 10kbytes
/sbin/ipfw pipe 4 config bw 64kbit/s queue 10kbytes
#com a regra abaixo é fechado todos os demais IPs
#ela deve sempre ficar após as liberações
#Fecha Tudo
/sbin/ipfw add 1 pipe 5 tcp from any to 10.23.0.0:255.255.255.0 out
/sbin/ipfw add 1 pipe 6 tcp from 10.23.0.0:255.255.255.0 to any in
/sbin/ipfw pipe 5 config bw 1bit/s queue 10kbytes
/sbin/ipfw pipe 6 config bw 1bit/s queue 10kbytes
/sbin/ipfw -f flush
#Levanta MPD
/usr/local/sbin/mpd -b
#Levanta o Squid
#/sbin/ipfw add 2 allow tcp from 200.200.200.12 to any 80
#/sbin/ipfw add 3 fwd 127.0.0.1,3128 tcp from any to any 80
#é possível bloquear que protocolos NetBios passem pelo servidor
#opção interessante para administradores de redes em provedor
#para que o netbios de uma rede interna case problemas na rede
#de distribuição do provedor, apesar do NetBios não ser roteável...
#Bloqueios de NetBios
/sbin/ipfw add 100 deny log tcp from any to any 135
/sbin/ipfw add 101 deny log tcp from any to any 136
/sbin/ipfw add 102 deny log tcp from any to any 137
/sbin/ipfw add 103 deny log tcp from any to any 138
/sbin/ipfw add 104 deny log tcp from any to any 139
/sbin/ipfw add 105 deny log udp from any to any 135
/sbin/ipfw add 106 deny log udp from any to any 136
/sbin/ipfw add 107 deny log udp from any to any 137
/sbin/ipfw add 108 deny log udp from any to any 138
/sbin/ipfw add 109 deny log udp from any to any 139
/sbin/ipfw add 110 deny log tcp from any 135 to any
/sbin/ipfw add 111 deny log tcp from any 136 to any
/sbin/ipfw add 112 deny log tcp from any 137 to any
/sbin/ipfw add 113 deny log tcp from any 138 to any
/sbin/ipfw add 114 deny log tcp from any 139 to any
/sbin/ipfw add 115 deny log udp from any 135 to any
/sbin/ipfw add 116 deny log udp from any 136 to any
/sbin/ipfw add 117 deny log udp from any 137 to any
/sbin/ipfw add 118 deny log udp from any 138 to any
/sbin/ipfw add 119 deny log udp from any 139 to any
/sbin/ipfw add 120 deny log tcp from any to any 445
/sbin/ipfw add 121 deny log tcp from any 445 to any
/sbin/ipfw add 122 deny log udp from any to any 445
/sbin/ipfw add 123 deny log udp from any 445 to any
#utilize as regras abaixo para setar valores de banda para os IPs internos
#para o IP 10.23.0.106
#de qualquer lugar para o 10.23.0.106...
/sbin/ipfw add 1 pipe 1 tcp from any to 10.23.0.106 out
#do 10.23.0.106 para qualquer lugar...
/sbin/ipfw add 1 pipe 2 tcp from 10.0.0.106 to any in
#seta o valor de download
/sbin/ipfw pipe 1 config bw 256kbit/s queue 10kbytes
#seta o valor de upload
/sbin/ipfw pipe 2 config bw 1128kbit/s queue 10kbytes
#para o ip 10.23.0.95
/sbin/ipfw add 1 pipe 3 tcp from any to 10.23.0.95 out
/sbin/ipfw add 1 pipe 4 tcp from 10.23.0.95 to any in
/sbin/ipfw pipe 3 config bw 128kbit/s queue 10kbytes
/sbin/ipfw pipe 4 config bw 64kbit/s queue 10kbytes
#com a regra abaixo é fechado todos os demais IPs
#ela deve sempre ficar após as liberações
#Fecha Tudo
/sbin/ipfw add 1 pipe 5 tcp from any to 10.23.0.0:255.255.255.0 out
/sbin/ipfw add 1 pipe 6 tcp from 10.23.0.0:255.255.255.0 to any in
/sbin/ipfw pipe 5 config bw 1bit/s queue 10kbytes
/sbin/ipfw pipe 6 config bw 1bit/s queue 10kbytes
Pode salvar o arquivo. Agora dê permissão de executável:
$ chmod +x rc.local
Assim sempre que for realizada alguma mudança neste arquivo não precisa reiniciar o server, apenas execute o comando:
$ ./rc.local
E assim concluo este artigo, espero que ajude aos iniciantes e também aos veteranos ;d
Dúvidas e sugestões são sempre bem vindas e pretendo responder à todas.
Um aBRaço.
valeuuuuuuu... agora sim, aprendendo essa parte de firewall vou poder migrar alguns servidores da empresa pra freebsd.