Criar um servidor firewall no linux [RESOLVIDO]

1. Criar um servidor firewall no linux [RESOLVIDO]

william paim
william paim

(usa Outra)

Enviado em 08/03/2016 - 19:50h

Pessoal, boa noite, sou estudante de um curso de técnico e manutenção e suporte em informática; estou trabalhando no meu TCC e preciso da ajuda de quem puder me ajudar para criar um servidor firewall no linux. Não tenho quase nada de conhecimento em linux mas estou aprendendo e tentando "pegar o jeito", quem puder me ajudar sou muito grato.

OBS: Usarei uma distribuição Debian


  


2. Re: Criar um servidor firewall no linux [RESOLVIDO]

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 08/03/2016 - 22:14h

Recomendo fazer uma busca nos artigos aqui no VOL que tem muito material à respeito do tema. Seguem alguns links:

http://www.hardware.com.br/livros/servidores-linux/
https://www.vivaolinux.com.br/artigo/Squid-348-SSL-Firewall-DNS-DHCP-no-Debian-Jessie-v8
https://www.vivaolinux.com.br/busca/?cx=partner-pub-3535276187000580%3A4725058203&cof=FORID%3A10...
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782



3. Re: Criar um servidor firewall no linux

Patrick Silva
ps-martins

(usa Debian)

Enviado em 08/03/2016 - 22:55h

Vamos lá, vou aqui apenas te explicar uma prévia de como se faz, no seu caso, você está usando o Debian,

De o seguinte comando :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWAR DROP

Agora da um ping para qualquer lugar :
ping 127.0.0.1
ping 8.8.8.8

verá que está tudo bloqueado

### Para Liberar use o ACCEPT ###
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWAR ACCEPT

.
O restante você da uma pesquisada, sobre as outras regras, Pesquise sobre portas, sobre os tipos de tabelas Nat, Filter, Mangle, Raw .
Para listar as “chains” que cada tabela possui use a sinxtaxe:
iptables -L -t <tabela> 


INPUT – Regras de entrada de pacotes;

OUTPUT – Regras de saída de pacotes;

FORWARD – Regras de passagem de pacotes pelo firewall.

PREROUTING – Regras que serão processadas antes do roteamento
dos pacotes nas interfaces do firewall;

POSTROUTING – Regras que serão processadas pós roteamento dos
pacotes nas interfaces do firewall;

OUTPUT – Regras de saída de pacotes.
.
Um detalhes muito importante é se o nosso firewall será o gateway da rede, ou
seja, a fronteira entre a sua rede e a internet. Se a resposta for positiva, devemos
estabelecer uma política que faça o repasse dos pacotes de uma rede para a outra
(forward). A primeira coisa que precisamos fazer é liberar o repasse de pacotes entre
as interfaces de rede, no kernel:

root@firewall :~# vim +28 /etc/sysctl.conf 

net. ipv4 . ip_forward =1 


.
Depois você deve criar um Script de Firewall, e iniciar juntamente com o sistema .
Adicione o cabeçalho para inicialização durante o boot:
root@firewall :~# head /etc/init.d/ssh > /etc/init.d/firewall 

.

Conceda a permissão de execução para o script:
root@firewall :~# chmod +x /etc/init.d/firewall 

.

root@firewall :~# vim /etc/init.d/firewall 

#! /bin/sh
### BEGIN INIT INFO
# Provides : firewall
# Required - Start :
# Required - Stop :
# Default - Start : 2 3 4 5
# Default - Stop : 0 1 6
# Short - Description : firewall
### END INIT INFO

.
##### inicio do Script Firewall #######

case $1 in
stop )

# politicas que aceitam qualquer tipo de conex ão
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

# limpar as regras das tabelas nat e filter
iptables -t nat -F
iptables -t filter -F
;;

start )
# politicas que bloqueiam qualquer tipo de conex ão
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP

;;

restart )
$0 stop
sleep 0.5
$0 start

;;

*)
echo ’POR FAVOR USE " stop | start | restart "’

;;

esac

########### FIM DO SCRIPT Firewall ##############
.

Vamos testar o Script
root@firewall :~# service firewall restart 


Quando você da um start no mesmo, verá que não consegue pingar para lugar algum, pois na regra de inicialização,
foi configurado com DROP nas tabelas .
Vou te dar um exemplo de como você deve fazer +- , faz de conta que você quer bloquear tudo e conseguir pingar para o localhost 127.0.0.1, Aí você deve adicionar essa regra no start juntamente com as outras já inseridas.

start)
# permite que a maquina FIREWALL ping a loopback
iptables -A OUTPUT -p icmp -d 0/0 -j ACCEPT
iptables -A INPUT -p icmp -d 127.0.0.1 -j ACCEPT
;;

root@firewall :~# service firewall restart 


Agora se você consegue pingar para sua loopback

ping 127.0.0.1

root@firewall :~# service firewall stop 


Parando o Firewall você consegue pingar (acesso) a qualquer lugar .
.

Para que ele seja iniciado junto com sistema quando a máquina for ligada, podemos
colocar o "script"nos níveis de execução:

root@firewall :/etc/init .d# insserv -d firewall 


.
Todas as regras que são feitas ficam na memória do computador. Caso ele seja
reiniciado, perderemos todas elas. Podemos utilizar os comandos "iptables-save"e
"iptables-restore".

root@firewall :# iptables-save 

root@firewall :# iptables-save > /root/firewall 

root@firewall :# service firewall stop 

root@firewall :# iptables-restore /root/firewall 

root@firewall :# iptables -nL ; sleep 5 ; iptables -t nat -nL 




4. Obrigado, farei esta pesquisa sim; agradeço pela força.

william paim
william paim

(usa Outra)

Enviado em 09/03/2016 - 21:00h

K666 escreveu:

Recomendo fazer uma busca nos artigos aqui no VOL que tem muito material à respeito do tema. Seguem alguns links:

http://www.hardware.com.br/livros/servidores-linux/
https://www.vivaolinux.com.br/artigo/Squid-348-SSL-Firewall-DNS-DHCP-no-Debian-Jessie-v8
https://www.vivaolinux.com.br/busca/?cx=partner-pub-3535276187000580%3A4725058203&cof=FORID%3A10...
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782





5. Obrigado vou testar tudo o que você postou de conteúdo aqui, grato.

william paim
william paim

(usa Outra)

Enviado em 09/03/2016 - 21:02h

ps-martins escreveu:

Vamos lá, vou aqui apenas te explicar uma prévia de como se faz, no seu caso, você está usando o Debian,

De o seguinte comando :
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWAR DROP

Agora da um ping para qualquer lugar :
ping 127.0.0.1
ping 8.8.8.8

verá que está tudo bloqueado

### Para Liberar use o ACCEPT ###
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWAR ACCEPT

.
O restante você da uma pesquisada, sobre as outras regras, Pesquise sobre portas, sobre os tipos de tabelas Nat, Filter, Mangle, Raw .
Para listar as “chains” que cada tabela possui use a sinxtaxe:
iptables -L -t <tabela> 


INPUT – Regras de entrada de pacotes;

OUTPUT – Regras de saída de pacotes;

FORWARD – Regras de passagem de pacotes pelo firewall.

PREROUTING – Regras que serão processadas antes do roteamento
dos pacotes nas interfaces do firewall;

POSTROUTING – Regras que serão processadas pós roteamento dos
pacotes nas interfaces do firewall;

OUTPUT – Regras de saída de pacotes.
.
Um detalhes muito importante é se o nosso firewall será o gateway da rede, ou
seja, a fronteira entre a sua rede e a internet. Se a resposta for positiva, devemos
estabelecer uma política que faça o repasse dos pacotes de uma rede para a outra
(forward). A primeira coisa que precisamos fazer é liberar o repasse de pacotes entre
as interfaces de rede, no kernel:

root@firewall :~# vim +28 /etc/sysctl.conf 

net. ipv4 . ip_forward =1 


.
Depois você deve criar um Script de Firewall, e iniciar juntamente com o sistema .
Adicione o cabeçalho para inicialização durante o boot:
root@firewall :~# head /etc/init.d/ssh > /etc/init.d/firewall 

.

Conceda a permissão de execução para o script:
root@firewall :~# chmod +x /etc/init.d/firewall 

.

root@firewall :~# vim /etc/init.d/firewall 

#! /bin/sh
### BEGIN INIT INFO
# Provides : firewall
# Required - Start :
# Required - Stop :
# Default - Start : 2 3 4 5
# Default - Stop : 0 1 6
# Short - Description : firewall
### END INIT INFO

.
##### inicio do Script Firewall #######

case $1 in
stop )

# politicas que aceitam qualquer tipo de conex ão
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

# limpar as regras das tabelas nat e filter
iptables -t nat -F
iptables -t filter -F
;;

start )
# politicas que bloqueiam qualquer tipo de conex ão
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP

;;

restart )
$0 stop
sleep 0.5
$0 start

;;

*)
echo ’POR FAVOR USE " stop | start | restart "’

;;

esac

########### FIM DO SCRIPT Firewall ##############
.

Vamos testar o Script
root@firewall :~# service firewall restart 


Quando você da um start no mesmo, verá que não consegue pingar para lugar algum, pois na regra de inicialização,
foi configurado com DROP nas tabelas .
Vou te dar um exemplo de como você deve fazer +- , faz de conta que você quer bloquear tudo e conseguir pingar para o localhost 127.0.0.1, Aí você deve adicionar essa regra no start juntamente com as outras já inseridas.

start)
# permite que a maquina FIREWALL ping a loopback
iptables -A OUTPUT -p icmp -d 0/0 -j ACCEPT
iptables -A INPUT -p icmp -d 127.0.0.1 -j ACCEPT
;;

root@firewall :~# service firewall restart 


Agora se você consegue pingar para sua loopback

ping 127.0.0.1

root@firewall :~# service firewall stop 


Parando o Firewall você consegue pingar (acesso) a qualquer lugar .
.

Para que ele seja iniciado junto com sistema quando a máquina for ligada, podemos
colocar o "script"nos níveis de execução:

root@firewall :/etc/init .d# insserv -d firewall 


.
Todas as regras que são feitas ficam na memória do computador. Caso ele seja
reiniciado, perderemos todas elas. Podemos utilizar os comandos "iptables-save"e
"iptables-restore".

root@firewall :# iptables-save 

root@firewall :# iptables-save > /root/firewall 

root@firewall :# service firewall stop 

root@firewall :# iptables-restore /root/firewall 

root@firewall :# iptables -nL ; sleep 5 ; iptables -t nat -nL 










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts