Ola,, tudo blz!!!! Alexandre. Eu tb. acredito muito em Receita de bolo, pena que o resto nao.
No site da conectiva tem um material muito bom de como fazer firewall � claro que voce ter� que ler mais coisas como o how-to etc...(de preferencia p/ material em portugues), como eu acretido que o linux so se aprende fazendo, eu vou passar para voce um script exemplo, dai para frente leitura OK. Nao esque�a de ler como funciona o TCP/IP e seu flags e muito bom saber isto facilida tudo. http://www.conectiva.com.br/cpub/pt/incConectiva/suporte/pr/servidores.firew all.iptables.html Eu fiz isto, apenas lendo do site da conectiva, na epoca eles tinha no site um exemplo de um script de ipchains que so tinha inicio e fim dai eu fiz o corpo dele, com o passar do tempo eu migrei para o iptables, nao � um firewall mas quebra um galho,, estas regras sao apenas para fechar as porta do gateway e deixar tudo liberado na rede interna, ou seja, so bloqueia o que vier da internet, e toda conexao negada � loga, para voce poder ter uma ideia de quem tenta logar, hoje este script esta mais completo, nao quer ser egoista ok, vou apenas da o basico, pois � falta de seguran�a tb. mostrar como � escrito seu firewall, entao este script e apenas um exemplo, voce dever� ir melhorando ele de acordo com sua necessidade assim com eu fiz, "digo, estou fazendo isto nunca para heheheheh." Voc� poder� incluir novidade como pegar o ip, da lan e do gateway, poder� criar chains etc.. hoje eu uso um arquivo so para cadastrar as porta que dever�o ser fechadas em vez de colocar uma regra para cada uma,,, e poder� tb. colocar condi�oes logica como if then do while etc... para melhorar a sua escrita Para se fazer um firewall voce deve tomar algumas decisoes e cuidados: 1) O que deve ficar aberto ou fechado, interno e externo, o que voce deixar aberto e algo que voce deve decidir. Uma coisa que eu vejo sempre falar e que deve-se fechar tudo e abrir somente o que voce quer, isto e valido, se voce nao for usar a maq como esta�ao. Se voce precisar ser cliente de algum programa que usa porta dinamincas neste caso voce fica enrolado,,, e mais dificil mas,,,, ex: netmeeting 2) Deve ter uma politica de senha segura para os repectivos demons das portas, nao usar senha muito facil, e que nao seja comum. pois s� firewall nao segura. 3) Ficar sempre atento as noticias de atualiza�oes dos demons para no sofrer com exploit's pois as portas que voce decidir deixar abertas, podem receber conexao nao pense que so a senha seguara "os caras so bons" e seria triste voce ter que conhecer "O CARA" P HEHEHEH...... 4) Ter um firewall logando para voce poder de vez enquanto analizar os log's para poder evitar posiveis ataques. 5) Seguran�a nao para por aqui etc.......... #!/bin/sh # set -x # FireWall - Iptables # # description:FireWall 02 - Estefanio Brunhara (31)3082-3181 9132-4305 # chkconfig: 2345 99 10 # # coloque este arquivo no /etc/rc.d/init.d/ # e ative ele no ntsysv # # . /etc/rc.d/init.d/functions . /etc/sysconfig/network if [ ${NETWORKING} = "no" ] then exit 0 fi # Capturando Variaveis all='0/0' DevGW='eth1' DevLan='eth0' gw='200.xxx.157.104' ip='192.168.1.1' rede='192.168.1.0/24' # Listando Variaveis echo echo "Dev-gw ---->" $DevGW echo "Dev-lan --->" $DevLan echo "rede ------>" $rede echo "ip -------->" $ip echo "gw -------->" $gw echo #Verifica se exit o arquivo de log if [ -f /var/log/firewall ]; then echo echo "Arquivos de log em /var/log/firewall" echo else touch /var/log/firewall echo "################### Logando FireWall ######################" >> /etc/syslog.conf echo "kern.info /var/log/firewall" >> /etc/syslog.conf /etc/rc.d/init.d/syslog restart fi # Inicio do FireWall case "$1" in start) gprintf "Iniciando o %s: " "FireWall" echo # Limpado Regas iptables -F iptables -X iptables -t nat -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # Ativando repasse de pacotes echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Carregando Modulos /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_tables /sbin/modprobe ipt_unclean /sbin/modprobe ipt_limit /sbin/modprobe ipt_LOG /sbin/modprobe ipt_REJECT /sbin/modprobe ip_nat_ftp # Ativando o Mascaramento iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -s $rede -d $all -j ACCEPT iptables -A POSTROUTING -s $all -d $all -t nat -o $DevGW -j MASQUERADE ################## Liberando acesso completo para Servidor ################ iptables -A INPUT -s $rede -d $rede -j ACCEPT iptables -A INPUT -s $rede -i lo -j ACCEPT ##################### Pacotes mal Formatados ############################# iptables -A FORWARD -i $DevGW -m unclean -j DROP ######################### Logando pacotes ################################ iptables -A INPUT -d $gw -m limit --limit 20/hour -j LOG iptables -A INPUT -p icmp -d $gw -j LOG --log-prefix "Ping-gw->" iptables -A INPUT -p tcp -d $gw --dport 21 -j LOG --log-prefix "Ftp-gw-->" iptables -A INPUT -p tcp -d $gw --dport 23 -j LOG --log-prefix "Teln-gw->" iptables -A INPUT -p tcp -d $gw --dport 22 --syn -j LOG --log-prefix "Ssh-gw-->" iptables -A INPUT -p tcp -d $gw --dport 111 -j LOG --log-prefix "Por-map->" iptables -A INPUT -p udp -d $gw --dport 111 -j LOG --log-prefix "Por-map->" iptables -A INPUT -p tcp -d $gw --dport 135:139 -j LOG --log-prefix "Net-ssn->" iptables -A INPUT -p udp -d $gw --dport 135:139 -j LOG --log-prefix "Net-ssn->" iptables -A INPUT -p tcp -d $gw --dport 1024:65535 --syn -j LOG --log-prefix "Syn-gw-->" ################### Limit de icmp de fora da rede 1 p/ segundo ####################### iptables -A INPUT -p icmp -s ! $rede -d $gw -i $DevGW -j ACCEPT -m limit --limit 1/second ################### Limit de conexcao 2 / segundo ####################### iptables -A INPUT -p tcp --syn -m limit --limit 2/s -j ACCEPT #################### Configurando Regas de Entrada ######################## # ftp iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 21 # ssh iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 22 iptables -A INPUT -p udp -d $gw -i $DevGW -j DROP --dport 22 # telnet iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 23 # smtp iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 25 # Dns iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 53 iptables -A INPUT -p udp -d $gw -i $DevGW -j DROP --dport 53 # www iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 80 # pop3 iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 110 # portmapper iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 111 # Proxy iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 3128 # X11 iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 6000 # irc iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 6660:6670 # Windows iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 135:139 iptables -A INPUT -p udp -d $gw -i $DevGW -j DROP --dport 135:139 iptables -A FORWARD -p tcp -s $all -d 192.168.1.254 -j DROP --dport 135:139 iptables -A FORWARD -p udp -s $all -d 192.168.1.254 -j DROP --dport 135:139 iptables -A INPUT -p tcp -d $gw -i $DevGW -j DROP --dport 445 iptables -A INPUT -p udp -d $gw -i $DevGW -j DROP --dport 445 ##################### Configurando Regas de Saida ########################## iptables -A OUTPUT -s $all -d 0/0 -j ACCEPT ######################## Redirencionamento ### ############################# iptables -t nat -A PREROUTING -p tcp --dport 80 -d ! $gw -j REDIRECT --to-ports 3128 echo ;; stop) gprintf "Parando o %s: " "FireWall" echo echo 0 > /proc/sys/net/ipv4/ip_forward iptables -Z iptables -F iptables -t nat -F PREROUTING iptables -t nat -F OUTPUT iptables -t nat -F POSTROUTING iptables -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT ;; *) gprintf "Use firewall (start|stop)" echo ;; esac *** Estefanio Brunhara *** [EMAIL PROTECTED] Usuario Linux N� 221140 Assinantes em 22/01/2003: 2240 Mensagens recebidas desde 07/01/1999: 198188 Historico e [des]cadastramento: http://linux-br.conectiva.com.br Assuntos administrativos e problemas com a lista: mailto:[EMAIL PROTECTED]
