De:  guerreiro-graciano Para:  linux-br@bazar.conectiva.com.br Assunto:  (linux-br)Ajuda para novo firewall Data:  Fri, 25 Jul 2003 12:41:41 -0300 Ola lista.... Eu tenho este firewall que foi me dado por um amigo, ele roda com o ipchains.....so que estou precisando migrar este firewall para o iptables......alguem teria um script em iptables que possa mandar ...ou poderia converter este de ipchains para iptables... infelizmente eu nao manjo nada disto abaixo... DEVAIR #! /bin/sh # description: Inicializacao do IPChains # #chkconfig: 2345 80 30 #processname: ipchains #pidfile: /var/run/ipchains.pid . /etc/rc.d/init.d/functions . /etc/sysconfig/network if [ ${NETWORKING} = "no" ] then exit 0 fi case "$1" in start) gprintf "Iniciando o Servico de %s: " "IPChains" # EDITE AS CONSTANTES ABAIXO DE ACORDO COM O SEU SISTEMA!. INTERFACE_EXTERNA="eth0" # a que liga voce com a INET INTERFACE_INTERNA="eth1" # a da sua rede interna LOOPBACK_INTERFACE="lo" IPADDR="000.000.00.000" # o seu IP, no caso eh do servidor LOCALNET="00.0.000.0/00" # a faixa de ips locais QUALQUERLUGAR="any/0" NAMESERVER_1="000.000.0.00" # o ip do servidor DNS primario NAMESERVER_2="000.000.0.000" # o ip do servidor DNS secundario POP_SERVER="pop3.uol.com.br" # seu servidor de pop externo SYSLOG_SERVER="mail.unsekurity.org" # seu servidor syslog interno # # Bem, ai os SYSLOG* acima eh o seguinte: # Caso alguem entre no seu sistema, e tente apagar logs vitais, existira uma # copia remota, fazendo com que o esforco dele tenha sido em vao. Para que # isso seja possivel, o "syslogd" deve ser inicializado com a opcao "-r" # e o servidor do syslog (no caso a maquina mail), deve aceitar pacotes udp # na porta 514!! Assim como o cliente deve aceitar o envio de pacotes udp # na mesma porta!! # # no syslog da maquina cliente deve conter a seguinte linha: # # kern.* @mail # # entao ela enviara as mensagem do kernel para a maquina mail!! # # maiores informacoes: man 8 syslogd # LOOPBACK="127.0.0.0/8" CLASS_A="10.0.0.0/8" CLASS_B="172.16.0.0/12" CLASS_C="10.1.0.0/16" CLASS_D_MULTICAST="224.0.0.0/4" CLASS_E_RESERVED_NET="240.0.0.0/5" BROADCAST_ORI="0.0.0.0" BROADCAST_DEST="255.255.255.255" PORTASPRIV="0:1023" PORTASNAOPRIV="1024:65535" # -------------------------------------------------------------------------- -- # as portas do SSH iniciam em 1023 e vao ate a porta 513 para cada conexao # adicional!! PORTAS_SSH="1022:1023" # alcance das portas do SSH # traceroute geralmente usa -S 32769:65535 -D 33434:33523 PORTAS_ORI_TRACEROUTE="32769:65535" PORTAS_DEST_TRACEROUTE="33434:33523" #Protecao contra ataquers # 0 desativa e 1 ativa # # essa opcao ativada evita ataques do tipo 'sun flood atack' echo 1 > /proc/sys/net/ipv4/tcp_syncookies # rejeita todas as requisicoes de icmp ECHO destinadas a enderecos # broadcasting ou multicasting echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # ignora mensagens falsas de icmp_error_responses echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses for i in /proc/sys/net/ipv4/conf/*; do # desativa o redirecionamento de mensagem icmp echo 0 > $i/accept_redirects # essa opçao permite estabelecer o caminho que um pacote leva ate chegar ao # seu destino e o caminho de volta. echo 0 > $i/accept_source_route # permite que pacotes de origem suspeita ou desconhecida sejam logados pelo kernel echo 1 > $i/log_martians # verifica o endereco de origem do pacote prevenindo a maquina de ataques # do tipo ip Spoofing echo 1 > $i/rp_filter; done # echo echo 1 > /proc/sys/net/ipv4/ip_forward ipchains -F # Configura a regra padrao do filtro para Accept ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT /sbin/ipchains -A forward -s 0/0 -d 0/0 -j MASQ #ipmasqadm portfw -f #/sbin/ipchains --flush /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio #ports=554,7070,70701,6970,6971 /sbin/modprobe ip_masq_irc /sbin/modprobe ip_masq_vdolive /sbin/modprobe ip_masq_cuseeme /sbin/modprobe ip_masq_quake /sbin/modprobe rarp #trava telnet #ipchains -D input -p tcp -s 000.000.000.000 -d 000.000.00.00 telnet -j ACCEPT #ipchains -A input -p tcp -s 000.000.000.000 -d 000.000.00.00 telnet -j ACCEPT #ipchains -D input -p tcp -s 0/0 -d 000.000.00.00 telnet -j REJECT #ipchains -A input -p tcp -s 0/0 -d 000.000.00.00 telnet -j REJECT #firewall #ipchains -A input -i eth0 -p tcp -s 0/0 -d 0/0 137:139 -l -j DENY #ipchains -A input -i eth0 -p udp -s 0/0 -d 0/0 137:139 -l -j DENY #ipchains -A input -p udp -s 0/0 -d 0/0 138 -j DENY #ipchains -A input -p udp -s 0/0 -d 0/0 137 -j DENY #ipchains -A input -p tcp -s 0/0 -d 0/0 119 -j DENY #ipchains -A input -s 0/0 -d 0/0 -i eth0 -p tcp -j DENY -l #ipchains -A input -i eth0 -p tcp -s 0/0 -d 0/0 1080 -j DENY #ipchains -A input -i eth0 -p udp -s 0/0 -d 0/0 1080 -j DENY ipchains -A input -i eth0 -p tcp -s 0/0 -d 0/0 3128 -j DENY ipchains -A input -i eth0 -p udp -s 0/0 -d 0/0 3128 -j DENY ipchains -A input -p tcp -s ! 00.0.000.0/00 -d 000.000.00.000 3128 -j REJECT ipchains -A input -p tcp -s ! 00.0.000.0/00 -d 000.000.00.000 139 -j REJECT ipchains -A input -p tcp -s ! 00.0.000.0/00 -d 000.000.00.000 515 -j REJECT ipchains -A input -p udp -s ! 00.0.000.0/00 -d 000.000.00.000 3128 -j REJECT ipchains -A input -p udp -s ! 00.0.000.0/00 -d 000.000.00.000 139 -j REJECT ipchains -A input -p udp -s ! 00.0.000.0/00 -d 000.000.00.000 515 -j REJECT ipchains -A input -p icmp -s ! 00.0.000.0/00 -d 000.000.00.000 3128 -j REJECT ipchains -A input -p icmp -s ! 00.0.000.0/00 -d 000.000.00.000 139 -j REJECT ipchains -A input -p icmp -s ! 00.0.000.0/00 -d 000.000.00.000 515 -j REJECT #Liberacao de Email ipchains -A forward -p tcp -s 00.0.000.0/00 -d 0/0 25 -j MASQ ipchains -A forward -p tcp -s 00.0.000.0/00 -d 0/0 110 -j MASQ # SPOOFING & ENDERECO INVALIDOS # Recusa pacotes forjados. # Ignora a entrada/saida de pacotes de/para enderecos invalidos. # Recusa pacotes forjados dizendo ser da interface externa e loga. ipchains -A input -i $INTERFACE_EXTERNA -s $IPADDR -j DENY -l # Recusa pacotes para/dizendo ser de uma Classe A privada e loga. # -d quer dizer DESTINO ! ipchains -A input -i $INTERFACE_EXTERNA -s $CLASS_A -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -d $CLASS_A -j DENY -l ipchains -A output -i $INTERFACE_EXTERNA -s $CLASS_A -j REJECT -l ipchains -A output -i $INTERFACE_EXTERNA -d $CLASS_A -j REJECT -l # Recusa pacotes para/dizendo ser de uma Classe B privada e loga. ipchains -A input -i $INTERFACE_EXTERNA -s $CLASS_B -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -d $CLASS_B -j DENY -l ipchains -A output -i $INTERFACE_EXTERNA -s $CLASS_B -j REJECT -l ipchains -A output -i $INTERFACE_EXTERNA -d $CLASS_B -j REJECT -l # Recusa pacotes para/dizendo ser de uma Classe C privada e loga. ipchains -A input -i $INTERFACE_EXTERNA -s $CLASS_C -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -d $CLASS_C -j DENY -l ipchains -A output -i $INTERFACE_EXTERNA -s $CLASS_C -j REJECT -l ipchains -A output -i $INTERFACE_EXTERNA -d $CLASS_C -j REJECT -l # Recusa pacotes dizendo ser da interface de loopback e loga. ipchains -A input -i $INTERFACE_EXTERNA -s $LOOPBACK -j DENY -l ipchains -A output -i $INTERFACE_EXTERNA -s $LOOPBACK -j REJECT -l # Recusa enderecos de ORIGEM da broadcast ipchains -A input -i $INTERFACE_EXTERNA -s $BROADCAST_DEST -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -d $BROADCAST_ORI -j DENY -l # Recusa uma classe D de enderecos multicast (in.h) (NET-3-HOWTO) # Multicast eh ilegal como endereco de origem. # Multicast usa UDP. ipchains -A input -i $INTERFACE_EXTERNA -s $CLASS_D_MULTICAST -j DENY -l # Recusa uma classe E de enderecos reservados ipchains -A input -i $INTERFACE_EXTERNA -s $CLASS_E_RESERVED_NET -j DENY -l # recusa enderecos definidos como reservados pela IANA # 0.*.*.*, 1.*.*.*, 2.*.*.*, 5.*.*.*, 7.*.*.*, 23.*.*.*, 27.*.*.* # 31.*.*.*, 37.*.*.*, 39.*.*.*, 41.*.*.*, 42.*.*.*, 58-60.*.*.* # 65-95.*.*.*, 96-126.*.*.*, 197.*.*.*, 201.*.*.* (?), 217-223.*.*.* ipchains -A input -i $INTERFACE_EXTERNA -s 1.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 2.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 5.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 7.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 23.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 27.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 31.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 37.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 39.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 41.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 42.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 58.0.0.0/7 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 60.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 65.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 66.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 67.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 68.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 69.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 70.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 71.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 72.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 73.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 74.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 75.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 76.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 77.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 78.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 79.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 80.0.0.0/4 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 96.0.0.0/4 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 112.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 113.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 114.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 115.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 116.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 117.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 118.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 119.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 120.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 121.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 122.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 123.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 124.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 125.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 126.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 217.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 218.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 219.0.0.0/8 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -s 220.0.0.0/6 -j DENY -l ipchains -A input -i $INTERFACE_EXTERNA -p udp \ -s $QUALQUERLUGAR $PORTAS_ORI_TRACEROUTE \ -d $IPADDR $PORTAS_DEST_TRACEROUTE -j DENY -l # Rejeita, melhor do que barrar negar, conexoes na porta 113. (NET-3-HOWTO) ipchains -A input -i $INTERFACE_EXTERNA -p tcp \ -s $QUALQUERLUGAR \ -d $IPADDR 113 -j REJECT #ipchains -A input -s 0/0 -d 0/0 -j REJECT -l #ipchains -A output -s 0/0 -d 0/0 -j REJECT -l ;; stop) gprintf "Parando o servico de %s: " "IPChains" echo /sbin/rmmod ip_masq_ftp /sbin/rmmod ip_masq_raudio /sbin/rmmod ip_masq_irc /sbin/rmmod ip_masq_vdolive /sbin/rmmod ip_masq_cuseeme /sbin/rmmod ip_masq_quake /sbin/rmmod rarp ;; restart) $0 stop $0 start ;; *) gprintf "Uso: ipchains (start|stop|restart)" echo ;; esac exit 0 --------------------------------------------------------------------------- Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br Regras de utilização da lista: http://linux-br.conectiva.com.br FAQ: http://www.zago.eti.br/menu.html