sinbit
(usa Debian)
Enviado em 28/02/2013 - 10:49h
Ola Galera do forum
Tenho um servidor com squid3 e firewall iptables compartilhando a internet para varios usuarios, sendo todos autenticados o problema e quero liberar alguns IP da rede para passar sem proxy(autenticação do squid).Estou tendo outro problema na hora de declarar a variavel como redelocal="eth0" com aspas. o Script roda mas da um erro de Bad argument `eth0', ja tentei várias soluções e nada, e tb não sei se um erro esta impactando no outro problema.
Script do firewall:
#!/bin/bash
# Firewall System
internet="eth1"
redelocal="eth0"
echo "####################ATIVANDO IPTABLES#######################"
### Passo 1: Limpando as regras ###
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat
iptables -F -t nat
echo "Limpando as regras ..................................[ OK ]"
# Definindo a Politica Default das Cadeias
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo "Politica Default das Cadeias ........................[ OK ]"
### Passo 2: Desabilitar o trafego IP entre as placas de rede ###
#echo "0" > /proc/sys/net/ipv4/ip_forward
#echo "Desabilitar o trafego IP entre as placas ............[ OK ]"
# Configurando a Protecao anti-spoofing
#echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
#for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
# echo "1" > $spoofing
#done
#echo "Protecao anti-spoofing ..............................[ OK ]"
# Impedimos que um atacante possa maliciosamente alterar alguma rota
#echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
#echo "Impedimos alterar alguma rota .......................[ OK ]"
# Utilizado em diversos ataques, isso possibilita que o atacante determine o "caminho" que seu
# pacote vai percorrer (roteadores) ate seu destino. Junto com spoof, isso se torna muito perigo
#echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
#echo "Impossibilita que o atacante determine o "caminho" ....[ OK ]"
# Protecao contra responses bogus
#echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#echo "Protecao contra responses bogus .....................[ OK ]"
# Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS.
#echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#echo "Protecao contra ataques de syn ......................[ OK ]"
### Passo 3: Carregando os modulos do iptables ###
# Ativa modulos
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ipt_unclean
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_owner
echo "Carregando os modulos ...............................[ OK ]"
#################################################
# FIM DA Tabela FILTER
#################################################
# Proteção contra port scanners
iptables -N SCANNER
iptables -A SCANNER -m limit --limit 15/m -j LOG --log-prefix "FIREWALL: port scanner: "
iptables -A SCANNER -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $internet -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $internet -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $internet -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $internet -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $internet -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $internet -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $internet -j SCANNER
echo "Scaner de Portas ....................................[ OK ]"
# Libera acesso externo a determinadas portas
##Algumas portas devem ser negadas.
#iptables -A INPUT -p tcp --dport 1433 -j DROP
#iptables -A INPUT -p tcp --dport 1505 -j DROP
#iptables -A INPUT -p tcp --dport 6670 -j DROP
#iptables -A INPUT -p tcp --dport 6711 -j DROP
#iptables -A INPUT -p tcp --dport 6712 -j DROP
#iptables -A INPUT -p tcp --dport 6713 -j DROP
#iptables -A INPUT -p tcp --dport 12345 -j DROP
#iptables -A INPUT -p tcp --dport 12346 -j DROP
#iptables -A INPUT -p tcp --dport 20034 -j DROP
#iptables -A INPUT -p tcp --dport 31337 -j DROP
#iptables -A INPUT -p tcp --dport 6000 -j DROP
#echo "Negando portas invalidas ............................[ OK ]"
#Traceroutes caindo
#iptables -A INPUT -p udp --dport 33434:33523 -j DROP
#iptables -A INPUT -p tcp --dport 113 -j REJECT
#iptables -A INPUT -p igmp -j REJECT
#iptables -A INPUT -p tcp --dport 80 -j DROP
#echo "Rejeitando lixo :....................................[ OK ]"
### Passo 4: Agora, vamos definir o que pode passar e o que nao ###
# Cadeia de Entrada
##ips que nao passam pelo proxy
##micro sinkere backup
# acesso direto sem, proxy
iptables -A INPUT -p tcp --dport 8080 -i $redelocal -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i $redelocal -j ACCEPT
iptables -t nat -I PREROUTING -s 10.12.40.4 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.12.40.4 -o $internet -j MASQUERADE # Servidor sinkere
iptables -t nat -A PREROUTING -i $redelocal -s 10.12.40.4 -p tcp -m multiport --dport 80,443 -j
iptables -A FORWARD -p tcp -s 10.12.40.4 -j ACCEPT
iptables -t nat -A PREROUTING -s 10.12.40.4 -d 0.0.0.0/0 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 10.12.40.4 -j RETURN
#iptables -t nat -I PREROUTING -s 10.12.40.4 -j ACCEPT
#iptables -t nat -I POSTROUTING -s 10.12.40.4 -o $internet -j MASQUERADE
#iptables -I FORWARD -s 10.12.40.4 -j ACCEPT
echo "Computadores que nao passam pelo proxy...............[ OK ]"
#ips q podem acessar msn
#fulano
#iptables -A FORWARD -p tcp -s 192.168.1.15 --dport 1863 -j ACCEPT
#iptables -A FORWARD -p tcp -s 192.168.1.90 --dport 1863 -j ACCEPT
#echo "Regras msn...........................................[ OK ]"
# porta para contabilidade
#DCTF
iptables -A FORWARD -p tcp --dport 3456 -j ACCEPT
#DPI
iptables -A FORWARD -p tcp --dport 24001 -j ACCEPT
#ted
iptables -A FORWARD -p tcp --dport 8017 -j ACCEPT
echo "Regras comtabilidade.................................[ OK ]"
#ativei essa
#portas para departamento pessoal
#sefip
iptables -A FORWARD -p tcp --dport 2004 -j ACCEPT
iptables -A FORWARD -p tcp --dport 2631 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1494 -j ACCEPT
iptables -A FORWARD -p tcp --dport 5017 -j ACCEPT
echo "Regras DP ...........................................[ OK ]"
#habilitando o fluxo interno entre os processos
iptables -I INPUT -i lo -j ACCEPT
iptables -I OUTPUT -o lo -j ACCEPT
echo "ativado o fluxo interno entre os processos"
echo "ON .................................................[ OK ]"
#cadastro
iptables -A FORWARD -p tcp --dport 25777 -j ACCEPT
iptables -A FORWARD -p tcp --dport 5432 -j ACCEPT
#essa aqui tbbb
#datasiga
iptables -A FORWARD -p tcp --dport 20650 -j ACCEPT
iptables -A FORWARD -p tcp --dport 10650 -j ACCEPT
echo "Regras Cadastro .....................................[ OK ]"
#vnc
#iptables -A FORWARD -p tcp --dport 5700 -j ACCEPT
#iptables -A INPUT -p tcp --dport 5700 -j ACCEPT
#echo "Regras Vnc .... .....................................[ OK ]"
#terminal server
#iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
#iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
#echo "Regras terminal serv ................................[ OK ]"
######
######
# Redireciona porta 80 para 3128 (squid)
#iptables -t nat -A PREROUTING -i $redelocal -p tcp --dport 80 -j REDIRECT --to-port 3128
# PORTA 53 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i $redelocal -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i $redelocal -p udp --dport 53 -j ACCEPT
# PORTA 1505 - ACEITA PARA A REDE LOCAL
iptables -A INPUT -p tcp $redelocal --dport 1505 -j ACCEPT
iptables -A FORWARD -i $redelocal -p tcp --dport 1505 -j ACCEPT
iptables -A FORWARD -i $redelocal -p udp --dport 1505 -j ACCEPT
# PORTA 110 - ACEITA PARA A REDE LOCAL
#iptables -A FORWARD -i $redelocal -p tcp --dport 110 -j ACCEPT
#iptables -A FORWARD -i $redelocal -p udp --dport 110 -j ACCEPT
# PORTA 25 - ACEITA PARA A REDE LOCAL
#iptables -A FORWARD -i $redelocal -p tcp --dport 25 -j ACCEPT
# identd
#iptables -A INPUT -p tcp --dport 113 -j ACCEPT
#iptables -A INPUT -p udp --dport 113 -j ACCEPT
# https
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 443 -j ACCEPT
iptables -A FORWARD -i $redelocal -p tcp --dport 443 -j ACCEPT
# PORTA 20 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 1505 -m recent --name sshattack --set
iptables -A INPUT -p tcp --dport 1505 --syn -m recent --name sshattack --rcheck --seconds 60 --h
iptables -A INPUT -p tcp --dport 1505 --syn -m recent --name sshattack --rcheck --seconds 60 --h
iptables -A FORWARD -p tcp --syn --dport 1505 -m recent --name sshattack --set
iptables -A FORWARD -p tcp --dport 1505 --syn -m recent --name sshattack --rcheck --seconds 60 -
iptables -A FORWARD -p tcp --dport 1505 --syn -m recent --name sshattack --rcheck --seconds 60 -
# PORTA 21 - ACEITA PARA A REDE LOCAL
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp --dport 21 -j ACCEPT
# PORTA 22 - ACEITA PARA A REDE INTERNET
iptables -A INPUT -p tcp --dport 1505 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1505 -j ACCEPT
##vpn criar estas regras para todas vpns
#iptables -A INPUT -p tcp --dport 5001 -j ACCEPT
#iptables -A FORWARD -p tcp --dport 5001 -j ACCEPT
#iptables -A INPUT -p udp --dport 5001 -j ACCEPT
#iptables -A FORWARD -p udp --dport 5001 -j ACCEPT
#iptables -I FORWARD -i tun0 -j ACCEPT
#iptables -I FORWARD -o tun0 -j ACCEPT
#########################
#bloqueia qualquer tentativa de nova conexao de fora para esta maquina
#iptables -A INPUT -i $internet -m state --state ! ESTABLISHED,RELATED -j LOG --log-level 6 --l
iptables -A INPUT -i $internet -m state --state ! ESTABLISHED,RELATED -j DROP
#no iptables, temos de dizer quais sockets sao validos em uma conexao
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Cadeia de Entrada ...................................[ OK ]"
#########################
# Cadeia de Reenvio (FORWARD).
# Primeiro, ativar o mascaramento (nat).
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o $internet -j MASQUERADE
echo "Ativando o mascaramento .............................[ OK ]"
# Agora dizemos quem e o que podem acessar externamente
# O controle do acesso a rede externa e feito na cadeia "FORWARD"
iptables -A FORWARD -i $internet -j ACCEPT
iptables -A FORWARD -o $internet -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Ativando o acesso ftp.. .............................[ OK ]"
###################
###BLOQUEANDO TODAS AS SAIDAS E PORTAS
iptables -A INPUT -p all -j DROP
iptables -A FORWARD -p all -j DROP
echo "Rejeitando saida e entrada ..........................[ OK ]"
########################
# No iptables, temos de dizer quais sockets sao validos em uma conexao
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Quais sockets sao validos ...........................[ OK ]"
#################################################
# Tabela FILTER
#################################################
# Proteção contra tronjans
# -------------------------------------------------------
#iptables -A INPUT -p TCP -i $internet --dport 666 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 4000 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 6000 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 6006 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 16660 -j DROP
# Proteção contra trinoo
# -------------------------------------------------------
#iptables -A INPUT -p TCP -i $internet --dport 27444 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 27665 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 31335 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 34555 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 35555 -j DROP
#echo "Proteção contra trinoo ............................. [ OK ]"
# Protecao contra acesso externo squid
#iptables -A INPUT -p TCP -i $internet --dport 8080 -j DROP
#iptables -A INPUT -p TCP -i $internet --dport 8080 -j DROP
# Protecao contra telnet
#iptables -A INPUT -p TCP -i $internet --dport telnet -j DROP
#echo "Proteção contra telnet ....................... [ OK ]"
# Dropa pacotes TCP indesejavei
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Dropa pacotes mal formados
iptables -A INPUT -i $internet -m unclean -j DROP
# Protecao contra worms
#iptables -A FORWARD -p tcp --dport 135 -i $internet -j REJECT
# Protecaocontra syn-flood
iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
# Protecao contra ping da morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#Allow ALL other forwarding going out
iptables -A FORWARD -o $internet -i $redelocal -j ACCEPT
echo "Caregado tabela filter ............................ [ OK ]"
# Finalmente: Habilitando o trafego IP, entre as Interfaces de rede
echo "1" > /proc/sys/net/ipv4/ip_forward
#echo "Habilitar o trafego IP entre as placas: .............[ OK ]"
echo "##################FIM DE REGRAS IPTABLES####################"
exit 0
Ha muitas coisa comentada pois eu estava achando que poderia ser algumas dessas regras, mas pelo visto nada resolveu a Internet esta funcionando perfeitamente.