On 7/27/07, Rodolfo Zappa <[EMAIL PROTECTED]> wrote: > Galera, > > Antes de alguém vir com sermão, já pesquisei muito no histórico da lista > de no google, ok? > > Estou montando um gateway de internet para uma lan pequena, cujas regras > de firewall estou fazendo em IPFW. > > Esta é a primeira vez que utilizo o IPFW, pois antes utilizava o PF. > Diga-se de passagem, que achei o IPFW muito mais flexível, enxuto e de > sintaxe mais fácil de aprender que o PF. > > O problema que eu tive, foi para colocar o maldito ftp ativo (clientes > na minha lan acessando servidores na internet) funcionando através do nat. > > O ftp passivo funciona, com a seguinte regra: > > #---- Regra pra liberar FTP passivo (eh phoda!) > ${ipfwcmd} 03999 ${skipto} tcp from any 1024-65535 to any 10240-65535 > out via ${ext_if} setup keep-state > > Mas ficam muitas portas liberadas, e preferiria ter somente o ftp ativo. > > Para isto, estou iniciando o natd com a seguinte linha no rc.conf: > > firewall_enable="YES" > firewall_script="/usr/local/etc/ipfw.sh" > natd_enable="YES" > natd_interface="fxp0" > natd_flags="-dynamic -m -use_sockets -u -punch_fw 100:200" > > Para as regras do punch_fw ficarem logo após destas: > > #---- Divert para nat e checkagem de regras dinâmicas > ${ipfwcmd} 00010 divert natd ip from any to any in via ${ext_if} > ${ipfwcmd} 00011 check-state > > O problema é que o punch coloca regras liberando o tráfego da máquina > cliente em direção ao servidor na porta 20, e vice-versa, mas a conexão > de retorno do servidor não funciona (o cliente não consegue listar os > diretórios depois de conectado). > > Perguntas: > 1) A regra que o punch coloca não tem a opção setup keep-state. É assim > mesmo? > 2) A regra do punch tem que ficar onde exatamente? Ela está depois do > divert in e check-state e antes das regras de skipto. > > Abaixo, segue meu script de firewall completo. > > Por favor, me enviem uma luz. > > ------------------------------------------------- > #!/bin/sh > > #------- Variáveis de ambiente > ipfw='ipfw' > ipfwcmd='ipfw -q add' > skipto='skipto 65500' > > ext_if='fxp0' > lan_if='rl0' > > src_num='300' > src_free='192.168.0.34' > > dst_num='500' > dst_free='200.177.225.0/24' > > tcp_num='2000' > tcp_out='21 22 25 53 110 123 143 80 443 567 993 995' > > udp_num='3000' > udp_out='53' > > icmptypes='0,3,8,11,12,13,14' > > #---- Limpa geral (exceto set 31) > ${ipfw} -q -f flush > > #---- Libera tráfego oriundo próprio do firewall > ${ipfwcmd} 00001 allow all from any to any via lo > ${ipfwcmd} 00002 allow all from me to any out via ${ext_if} setup > keep-state uid root > > #---- Libera tráfego na interface da LAN > ${ipfwcmd} 00003 allow all from any to any via ${lan_if} > > #---- Divert para nat e checkagem de regras dinâmicas > ${ipfwcmd} 00010 divert natd ip from any to any in via ${ext_if} > ${ipfwcmd} 00011 check-state > > #---- Tráfego de saída > for src in ${src_free} ; do > ${ipfwcmd} ${src_num} ${skipto} all from ${src} to any out via > ${ext_if} keep-state > src_num=$(echo "${src_num} + 1" | bc) > done > > for dst in ${dst_free} ; do > ${ipfwcmd} ${dst_num} ${skipto} all from any to ${dst} out via > ${ext_if} keep-state > dst_num=$(echo "${dst_num} + 1" | bc) > done > > for tcp in ${tcp_out} ; do > ${ipfwcmd} ${tcp_num} ${skipto} tcp from any to any ${tcp} out via > ${ext_if} setup keep-state > tcp_num=$(echo "${tcp_num} + 1" | bc) > done > > for udp in ${udp_out} ; do > ${ipfwcmd} ${udp_num} ${skipto} udp from any to any ${udp} out via > ${ext_if} keep-state > udp_num=$(echo "${udp_num} + 1" | bc) > done > > ${ipfwcmd} 03998 ${skipto} icmp from any to any icmptypes ${icmptypes} > out via ${ext_if} keep-state > > #---- Regra pra liberar FTP passivo (eh phoda!) > ${ipfwcmd} 03999 ${skipto} tcp from any 1024-65535 to any 10240-65535 > out via ${ext_if} setup keep-state > > #---- Tráfego de entrada > ${ipfwcmd} 05000 deny all from any to any frag in via ${ext_if} > ${ipfwcmd} 05001 deny tcp from any to any established in via ${ext_if} > > ${ipfwcmd} 05010 deny all from 0.0.0.0/8 to any in via ${ext_if} > # loopbak > ${ipfwcmd} 05011 deny all from 127.0.0.0/8 to any in via ${ext_if} > # loopbak > ${ipfwcmd} 05012 deny all from 10.0.0.0/8 to any in via ${ext_if} > # RFC 1928 > ${ipfwcmd} 05013 deny all from 172.16.0.0/12 to any in via ${ext_if} > # RFC 1918 > ${ipfwcmd} 05014 deny all from 192.168.0.0/16 to any in via ${ext_if} > # RFC 1918 > ${ipfwcmd} 05015 deny all from 169.254.0.0/16 to any in via ${ext_if} > # DHCP auto-config > ${ipfwcmd} 05016 deny all from 192.0.2.0/24 to any in via ${ext_if} > # Reservado > ${ipfwcmd} 05017 deny all from 204.152.64.0/23 to any in via ${ext_if} > # Sun Cluster > ${ipfwcmd} 05018 deny all from 224.0.0.0/3 to any in via ${ext_if} > # Class D e E > > ${ipfwcmd} 05100 allow icmp from any to me icmptypes ${icmptypes} via > ${ext_if} limit src-addr 2 > ${ipfwcmd} 05101 allow tcp from any to me 22 in via ${ext_if} limit > src-addr 2 > > ${ipfwcmd} 05200 deny log all from any to any in via ${ext_if} > ${ipfwcmd} 05201 deny log all from any to any out via ${ext_if} > > #---- Regra skip to para nat do tráfego de saída > ${ipfwcmd} 65500 divert natd ip from any to any out via ${ext_if} > ${ipfwcmd} 65501 allow ip from any to any > > #---- Bloqueia tudo por default > ${ipfwcmd} 65534 deny log all from any to any > > -- > Cordialmente, > > Rodolfo Zappa > > Archive TSP - Total Solution Provider > Nosso negócio é garantir que a sua rede de informações não pare! > > (21) 2567-1842 > [EMAIL PROTECTED] > http://www.archive.com.br > > "Se a gente se lança sem vigor, sete de dez ações tomadas não dão certo. É > extremamente difícil tomar decisões num estado de agitação. Por outro lado, > se sem se preocupar com as conseqüências menores, abordamos os problemas com > o espírito afiado como uma lâmina, sempre encontramos a solução em menos > tempo do que é necessáio para respirar sete vezes." Nabeshima Naoshige > (1538-1618) > > > > > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >
proxy-ftp !? ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd