Dúvidas sobre Iptables + Squid [RESOLVIDO]

1. Dúvidas sobre Iptables + Squid [RESOLVIDO]

Rodrigo Izidoro
paperboy501

(usa Fedora)

Enviado em 29/10/2008 - 11:42h

Terminei de montar um server com Iptables + Squid (não utilizo squid transparent), porém não consigo rodar nenhum script de firewall que eu utilizo em outros distros. Gostaria de saber se, no Debian Etch o que eu preciso para o mesmo entender que se trata de um script de firewall e sair lendo ao ser executado.

O mesmo so está funcionando utilizando esses comandos:
iptables-save , iptables-restore e não gosto desse metodo, pois o arquivo fica ruim de editar. Por isso gostaria de estar utilizando o padrão que todos utilizam !!!

Quando executo o script abaixo, aparece a seguinte msg:
-su: ./rc.firewall: /bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado

Segue parte do Script do adotei:
#!/bin/bash

# Local para o executavel do IPTables
IPT=`which iptables`;

# Interface da rede INTERNA
IF_INTERNA="eth0";

# Interface da rede EXTERNA
IF_EXTERNA="eth1";

# Definição da rede interna
REDE_INTERNA="192.168.1.0/24"


fw_start()
{
#ativa o roteamento dinamico
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr


# ================ POLITICAS PADRAO ===================
$IPT -t filter -P INPUT DROP
$IPT -t filter -P FORWARD DROP
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P INPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT

# Cria chain com regras de segurança
$IPT -N BLOCK
$IPT -A BLOCK -p icmp --icmp-type echo-request -j DROP
$IPT -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -m unclean -j DROP
$IPT -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A BLOCK -j LOG --log-prefix "FW_ALERT: "
$IPT -A BLOCK -j DROP

# Muda a prioridade dos pacotes (Type Of Service) para agilizar as coisas
$IPT -t mangle -A OUTPUT -o $IF_EXTERNA -p tcp -m multiport --dports 21,22,80,6667 -j TOS --set-tos 0x10

# Libera todo o trafego local
$IPT -t filter -A INPUT -i lo -j ACCEPT
$IPT -t filter -A INPUT -i $IF_INTERNA -j ACCEPT
$IPT -t filter -A FORWARD -i $IF_INTERNA -j ACCEPT

# Libera só SSH
$IPT -t filter -A INPUT -i $IF_EXTERNA -p tcp -m multiport --dports 22 -j ACCEPT

# Libera a conexao para a rede interna
$IPT -t nat -A POSTROUTING -s $REDE_INTERNA -j MASQUERADE

# Regras para evitar packet flood
$IPT -A INPUT -j BLOCK
$IPT -A FORWARD -j BLOCK
}

fw_stop()
{
$IPT -t filter -P INPUT ACCEPT
$IPT -t filter -P FORWARD ACCEPT
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P INPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT
$IPT -t filter -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -t filter -X
$IPT -t nat -X
$IPT -t mangle -X
$IPT -t filter -Z
$IPT -t nat -Z
$IPT -t mangle -Z
}

fw_usage()
{
echo
echo "$0 (start | stop | restart | clear)"
echo
echo "start - Ativa o firewall"
echo "stop - Desativa o firewall"
echo "restart - Reativa o firewall"
echo "clear - Limpa os contatores"
}

fw_clear()
{
$IPT -t filter -Z
$IPT -t nat -Z
$IPT -t mangle -Z
}

case $1 in

start)
fw_start;
;;

stop)
fw_stop;
;;

restart)
fw_stop;
fw_start;
;;

clear)
fw_clear;
;;
*)
fw_usage;
exit;

;;

esac



  


2. Re: Dúvidas sobre Iptables + Squid [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/11/2008 - 23:15h

Amigo faca o seguinte coloque o seguinte script no /etc/rc.local e depois reinicie o pc vai funcionar.

#!/bin/sh


# Compartilha a conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
# CONEXAO DA INTERNET eth1 PARA A REDE eth0
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


# Bloqueia pings e protege contra IP spoofing e pacotes inválidos
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP


# Abre para a interface de loopback e para a interface de rede local
iptables -A INPUT -i lo -j ACCEPT
# REDE LOCAL eht0
iptables -A INPUT -i eth0 -j ACCEPT


# Abre para as portas especificadas
iptables -A INPUT -p tcp --dport 22 -j ACCEPT


# Bloqueia as demais conexões, deixando passar apenas pacotes de resposta
iptables -A INPUT -p tcp --syn -j DROP

USO DEBIAN ETCH - COM ESSE SCRIPT TA FUNFANDO NORMALMENTE!

flw


3. direcionamento

diego
forfun

(usa Mandriva)

Enviado em 12/11/2008 - 14:14h

po meu amigo vc j direciono os serviços da porta 80 para a 3128 q é a porta do squid!


4. Squid + Iptables

Rodrigo Izidoro
paperboy501

(usa Fedora)

Enviado em 12/11/2008 - 15:34h

Então, na verdade eu uso essa máquina como server com squid sem ser transparente, porem nao redirecionei a porta, mas ao apontar no browser o mesmo funciona perfeitamente.


5. Re: Dúvidas sobre Iptables + Squid [RESOLVIDO]

Toth BR
TothBR

(usa Debian)

Enviado em 12/11/2008 - 18:05h

Olá amigo!

Pelo que vi o problema esta no inicio do seu script na configuração das variaveis segue abaixo as alterações:

#!/bin/bash

# Local para o executavel do IPTables
IPT=/sbin/iptables

# Interface da rede INTERNA
IF_INTERNA=eth0

# Interface da rede EXTERNA
IF_EXTERNA=eth1

# Definição da rede interna
REDE_INTERNA=192.168.1.0/24

Salve seu script no diretório /etc/init.d/ torne executavel chmod +x <script> depois crie um link simbólico em /etc/rc2.d ln -s /etc/init.d/script /etc/rc2.d/S99script assim toda vez que seu sistema for reiniciado executara automaticamente o script de firewall.

Abraços espero ter ajudado, te passei a mesma politica e configuração que uso em meus servidores e funciona perfeitamente abraços.


6. Mesmo assim nao rolou !!!

Rodrigo Izidoro
paperboy501

(usa Fedora)

Enviado em 13/11/2008 - 17:29h

Olha só o erro que continua !!!

-bash: ./rc.firewall: /bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado


7. Re: Dúvidas sobre Iptables + Squid [RESOLVIDO]

Cloves Pereira Costa Jr
clovesjr

(usa Slackware)

Enviado em 13/11/2008 - 17:52h

O problema está na quebra de linha... este ^M que aparece no final...

Isto acontece porque provavelment este script foi editado no Window$, certo?

Para remover isto, abre o script no VI, deleta a primeira linha e digita novamente...

[]s

Cloves Jr






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts