Servidor de Internet, Firewall, Logs - Ubuntu 10.04.3 LTS Lucid Lynx

Neste artigo estarei mostrando como montar um Servidor de Internet com Firewall bastante simples, com Proxy transparente, Firewall, Logs e bloqueios diversos por MAC.

[ Hits: 58.659 ]

Por: Welton Cordeiro em 01/09/2011


Criando script de Firewall



Instalando rcconf para que possamos configurar serviço e inicialização:

# apt-get install rcconf

Criando Script:

# touch /etc/init.d/firewall

Editando script:

# mcedit /etc/init.d/firewall

echo Limpando as tabelas e Chains
iptables -F
iptables -F -t nat
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t mangle -F
iptables -t nat -F
iptables -X
echo Limpeza das Tabelas ..... [ok]

### Habilitando os módulos
modprobe iptable_nat
modprobe ip_nat_ftp
echo Modulos Carregados ..... [ok]

### Compartilhamento da Internet
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo Internet Compartilhada ..... [ok]

#Segurança

#Não responde a pings
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#Proteção contra Ip Spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP

#Autoriza pacotes provenientes da interface de loopback lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT

#Impedindo ataque Ping of Death na rede
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#Impedindo ataque de Denial Of Service Dos na rede e servidor
iptables -I FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp -m limit --limit 1/s -j ACCEPT

#Protecao contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

#Protecao contra worms
iptables -I FORWARD -p tcp --dport 135 -j LOG --log-level info --log-prefix 'WORMS REDE>'
iptables -A FORWARD -p tcp --dport 135 -j DROP
iptables -I INPUT -p tcp --dport 135 -j LOG --log-level info --log-prefix 'WORMS >'
iptables -A INPUT -p tcp --dport 135 -j DROP

#bloqueador de tentativas de conexão da internet
iptables -A INPUT -p tcp --syn -j DROP
echo Seguranca Carregada ..... [ok]

#CONECTIVIDADE SOCIAL
iptables -t nat -A PREROUTING -p tcp -d 200.201.0.0/16 -j ACCEPT
iptables -A FORWARD -p tcp -d 200.201.0.0/16 -j ACCEPT
echo Conectividade Social Carregada ..... [ok]

#PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo Proxy Transparente Carregado ..... [ok]

#BLOQUEAR MSN
iptables -I FORWARD -p tcp -s 10.0.0.0/8 --dport 1863 -j DROP
echo Bloqueio de Msn Carregado ..... [ok]

#Redirecionamentos

#EXEMPLO DE REDIRECIONAMENTO
iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 3389 -i eth1 -j DNAT --to 10.1.1.10
iptables -t nat -A PREROUTING -p udp -s 0/0 --dport 3389 -i eth1 -j DNAT --to 10.1.1.10

Dando permissão de execução ao arquivo:

# chmod +x /etc/init.d/firewall

Incluindo o Firewall na inicialização, para que o processo fique automático:

# rcconf

Vai abrir uma lista de arquivos que são executados na inicialização do sistema, ache o Firewall e marque-o para que ele seja iniciado durante o processo de inicialização.

Marque-a teclando a barra de espaços e em seguida tecle ENTER para confirmar as alterações.

Agora execute o script:

# /etc/init.d/firewall
Página anterior     Próxima página

Páginas do artigo
   1. Configurando as interfaces de rede e Configurando Squid
   2. Continuação - Configurando Squid
   3. Criando script de Firewall
   4. Instalando e configurando Sarg
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Acesso remoto fácil, sem necessidade de instalação de programa

Configurar Speedy Home na distribuição SuSE 10

Zebedee: Criando um túnel seguro entre máquinas

Solução completa para Web Server usando Apache + SSL + MOD_JK + PHP + MySQL

ProFTPD + MySQL - Servidor FTP com usuários em banco de dados

  
Comentários
[1] Comentário enviado por facb69 em 05/09/2011 - 20:25h

Muito bom esse tutorial, Welton.
Só não entendi porque você configurou sua eth0 com 10.1.1.1 e a eth1 com 192.168.1.2 já que não há no texto nenhuma informação sobre NAT e são duas redes diferentes. Sei que um roteador faz isso mas, nesse caso, como seria?
Se puder me explicar, vai me ajudar bastante pois estou estudando redes, também, e vou usar em casa mais prá frente.
Mais uma vez, parabéns pelo tutorial.

Abraço,
Fábio

[2] Comentário enviado por awn em 09/09/2011 - 22:45h

Excelente tutorial,
Estou preste a ultiliza-lo aqui em casa e só entender porque você configurou sua eth0 com 10.1.1.1 e a eth1 com 192.168.1.2 já que não há no texto nenhuma informação sobre NAT e são duas redes diferentes. E não poderia ficar a eth1 soconfigurado o dns com 127.0.0.1 pois e nele que vem a internet?

Att
Anderson

[3] Comentário enviado por weltonpba em 10/09/2011 - 08:00h

Caros Amigos, a eth0 e ip fixo que configurei pra rede de computadores, a eth1 e ip fixo do meu modem dhcp que vem a internet, ele pega a internet pelo 192 e roteia pelo 10 intederão ?

[4] Comentário enviado por weltonpba em 10/09/2011 - 10:00h

Agora que eu intendi sua pergunta, o Ubuntu quando acaba de instalar ele, ele pega dhcp da rede automatico, ae o que acontece quando você vai configurar pra colocar ip manual no servidor, pra ele ficar fixo, digamos que o dhcp automatico esteja como dns 200.10.120.3 ae quando você coloca manual para outro endereço ip da qual a dns e diferente ele ainda continua com as dns do dhcp automatico por isso eu deixei caso for necessario editar as dns use mcedit /etc/resolv.conf, por que foi uma questão que eu tive que colocar pq na hora de configurar o servidor, a internet não tava funcionando ae eu verifiquei que as dns estavão diferentes... mas ae e questão de cada um como vai ser sua configuração isso e muito relativo...

[5] Comentário enviado por dubetors em 28/08/2012 - 10:55h

opa, segui seu tutorial, mas o que aconteçe é o seguinte, das estações consigo pingar para a internet, porem não navega. qnd comento as linhas do proxi transparente no firewall, consigo navegar, porem sem nenhum filtro, pois não passa pelo squid. saberia o que pode ser? grato


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts