Bloquear portas

Iniciado por lilam, 21 de Março de 2013, 08:35

tópico anterior - próximo tópico

lilam

Bom inicio de outono a todos !
Amigos, preciso de uma ajuda, a principio é algo simples, mas devo estar fazendo algo errado, preciso bloquear todas as portas, e deixar apenas a 80,8080 e 22, porém quando eu tento fazer bloqueio, para tudo, inclusive a internet e conexão SSH, abaixo segue meu firewall, se puderem postar as linhas que devo acrescentar para que funcione.

#! /bin/bash

echo "=============================================================="
echo "=============================================================="
echo "Limpando Regras do IPTABLES"
echo "Reiniciando Firewall RAFITEC S/A"
echo "=============================================================="
echo "=============================================================="


#Resetando as regras
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t mangle -F

#Adicionando modulos no kernel
modprobe ip_tables
modprobe iptable_nat


#Liberando encaminhamento de pacotes
echo "1" > /proc/sys/net/ipv4/ip_forward


#Compartilhando a internet
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


#Proxy transparente, tratando dos protocolos UDP e TCP, direcionando o trafego para 3128
iptables -t nat -A PREROUTING -s 192.168.200.2/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.200.2/24 -p udp --dport 80 -j REDIRECT --to-port 3128

Arthur Bernardes

#1
Vamos fazer assim.!

Apague esse script, e crie um novo com esse comando ==> sudo gedit /etc/init.d/firewall

E cole este conteúdo..!

# Interface da Internet:
ifinternet="eth0"

# Interface da rede local
iflocal="eth1"

iniciar(){

# Adicionando módulos no Kernel
modprobe ip_tables
modprobe iptable_nat
echo "Módulos Carregados"

# Liberando Roteamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Roteamento Ativado"

# Compartilhando a internet..!
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo "Compartilhamento ativado"

# Bloquear todas as portas
iptables -P INPUT DROP

# Liberando portas
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p udp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p udp --dport 3128 -j ACCEPT
echo "Portas Liberadas"

# Proxy Transparente com tráfego redirecionado para porta 3128
iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $iflocal -p udp --dport 80 -j REDIRECT --to-port 3128
}

parar(){
iptables -F
iptables -F -t nat
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac


Salve o arquivo..!

Em terminal, dê permissão de execução ao script ==>sudo chmod +x /etc/init.d/firewall

E depois, execute esse comando ==> sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6 .

Execute o serviço com o comando ==> sudo service firewall start ou sudo /etc/init.d/firewall start

Para iniciar = start ; para parar = stop ;  para reiniciar = restart

Qualquer erro, reporte aqui.!

lilam

#2
fiz como ,me explicou mas ao dar o comando

E depois, execute esse comando ==> sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6

apresentou:

update-rc.d: using dependency based boot sequencing
insserv: warning: script 'firewall' missing LSB tags and overrider

lilam

coloquei no inicio do arquivo

#! /bin/bash

e coloquei na inicialização no /etc/rc.local

#/etc/init.d/firewall stop
#/etc/init.d/firewall start

vou testar

lilam


Arthur Bernardes

Deixe-o assim.

#!bin/bash

# Interface da Internet:
ifinternet="eth0"

# Interface da rede local
iflocal="eth1"

iniciar(){

# Adicionando módulos no Kernel
modprobe ip_tables
modprobe iptable_nat
echo "Módulos Carregados"

# Liberando Roteamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Roteamento Ativado"

# Compartilhando a internet..!
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo "Compartilhamento ativado"

# Liberando portas
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p udp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p udp --dport 3128 -j ACCEPT
echo "Portas Liberadas"

# Bloquear todas as portas
iptables -P INPUT DROP

# Proxy Transparente com tráfego redirecionado para porta 3128
iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $iflocal -p udp --dport 80 -j REDIRECT --to-port 3128
}

parar(){
iptables -F
iptables -F -t nat
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac


E então execute os comandos que eu sugeri no meu post anterior..!

lilam

nao consigo executar isso

E depois, execute esse comando ==> sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6 .

apresenta o erro

update-rc.d: using dependency based boot sequencing
insserv: warning: script 'firewall' missing LSB tags and overrider

Arthur Bernardes

Vamos começar denovo, apague o conteúdo do Script, e depois cole esse conteúdo..!

#!bin/bash

# Interface da Internet:
ifinternet="eth0"

# Interface da rede local
iflocal="eth1"

iniciar(){

# Adicionando módulos no Kernel
modprobe ip_tables
modprobe iptable_nat
echo "Módulos Carregados"

# Liberando Roteamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Roteamento Ativado"

# Compartilhando a internet..!
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo "Compartilhamento ativado"

# Liberando portas
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p udp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p udp --dport 3128 -j ACCEPT
echo "Portas Liberadas"

# Bloquear todas as portas
iptables -P INPUT DROP

# Proxy Transparente com tráfego redirecionado para porta 3128
iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $iflocal -p udp --dport 80 -j REDIRECT --to-port 3128
}

parar(){
iptables -F
iptables -F -t nat
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac


Depois, dê permissão de execução ==> sudo chmod +x /etc/init.d/firewall

Só então, após executar esse comando, execute esse próximo ==> sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6 .


Então, inicie, pare ou reinicie o serviço..!

Te passei os comandos no início do tópico..!

lilam

foi isso que eu fiz, segui o primeiro passo - OK
no segundo apresentou o erro

Arthur Bernardes

Certo, então, deixe de lado esse último comando..!

Consegue executar o serviço..?

sudo service firewall start ou sudo /etc/init.d/firewall start

Você salvou esse script em /etc/init.d/..?

Com o nome firewall..?

Preste atenção, você pode ter salvo em local errado.!

lilam

isso, salvei nesse caminho e com o nome de firewall

ao aplicar o comando stop e start, nao apresenta nenhum erro, porem nao esta funcionando a internet

Arthur Bernardes

#11
A internet das estações ou da máquina Firewall..?

Configurou corretamente a interface em /etc/network/interfaces..?

Como seguiu os passos para configurar seu Servidor..?

Execute em terminal os seguintes comandos e poste os resultados aqui..!

cat /etc/network/interfaces
ifconfig -a


Você tem certeza de estar com o Proxy Funcionando..?

Tenta comentar a linha que redireciona o tráfego para o Squid, reinicie o firewall e veja se consegue navegar..

Eu repito, confira se o Squid está funcionando..!

lilam

interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

#WAN
auto eth0
iface eth0 inet static
address 187.52.171.203
netmask 255.255.255.248
gateway 187.52.171.201

#LAN
auto eth1
iface eth1 inet static
address 192.168.200.2
netmask 255.255.255.0

### Quando eu comento a linha
iptables -P INPUT DROP

tudo volta a funcionar

Arthur Bernardes

Huum..! Ela bloqueia todo o tráfego..!

Remova essa linha e salve o arquivo..! Se remover ela, consegue navegar a internet certo..?

Após remover, inicie o serviço e então execute o comando ==> sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6 .

lilam

se eu remover essa linha a internet funciona, a porta 22 tambem, porem conexoes https continuam funcionando tambem

esse comando nao funciona

$sudo update-rc.d firewall start 99 2 3 4 5 . stop 0 1 6 . (como root tambem não)

apresenta esse erro

update-rc.d: using dependency based boot sequencing
insserv: warning: script 'K01firewall' missing LSB tags and overrider
insserv: warning: script 'firewall' missing LSB tags and overrider


** O Firewall esta executando certo, porem alguma coisa com as regras nao deve estar certo , pois usando o DROP  esta bloqueando tudo, me corrija se eu estiver errado