Iptables + Squid lento

Iniciado por slavik, 09 de Outubro de 2013, 16:28

tópico anterior - próximo tópico

slavik

Boa tarde amigos

Estou passando por um problema de lentidão no meu firewall.

O script do iptables é esse:

http://pastebin.com/hpz25vbW

Esta é a configuração do squid:

http://pastebin.com/AHY7rWbk

O que está acontecendo é uma lentidão terrível, a ponto de ser muito mais rápido não direcionar o tráfego para o squid.
Outra coisa que está acontecendo é que tenho um redirecionamento de portas para um servidor zimbra, que parece funcionar somente quando tem vontade...
Alguém já viu algo parecido?

zekkerj

Seria possível postar as configurações aqui? Não tenho acesso ao pastebin desta rede.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

slavik

Aí vai

Iptables

#!/bin/sh

# Variaveis
# conexao com a internet
IFEXT="eth1"
IPEXT="ip externo"

# conexao com a rede local
IFINT="eth0"
IPINT="ip interno"
# zimbra
IPZIM="ip servidor zimbra"
# sapl
IPSAP="ip servidor sistema"
# mascara de rede
NTW="10.0.0.0/24"
# loopback
LOO="127.0.0.1"

IPT=`which iptables`

echo ""
$IPT -V
echo ""

firewall_start(){
        # ativando modulos de mascaramento
        modprobe ip_tables
        modprobe ip_conntrack
        modprobe iptable_filter
        modprobe iptable_nat
        modprobe ipt_LOG
        modprobe ipt_limit
        modprobe ipt_state
        modprobe ipt_MASQUERADE
        modprobe ip_nat_ftp
        modprobe ip_nat_irc
        modprobe ip_conntrack_ftp
        modprobe ip_conntrack_irc

        # ativando roteamento de pacotes e protecoes
        echo 1 > /proc/sys/net/ipv4/ip_forward
        echo 1 > /proc/sys/net/ipv4/tcp_syncookies
        echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
        echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

        # politicas padrao
        echo -n "Setting default policies (DROP)... "
        $IPT -P INPUT DROP
        $IPT -P FORWARD DROP
        $IPT -P OUTPUT ACCEPT
        echo "Ok"

        # acesso na loopback
        echo -n "Setting loopback access..."
        $IPT -A INPUT -s $LOO -d $LOO -j ACCEPT
        $IPT -A FORWARD -s $LOO -d $LOO -j ACCEPT
        echo "Ok"

        # acesso DNS
        echo -n "Setting DNS access..."
        $IPT -A INPUT -p tcp -s $NTW --dport 53 -j ACCEPT
        $IPT -A INPUT -p udp -s $NTW --dport 53 -j ACCEPT
        $IPT -A FORWARD -p tcp -s $NTW --dport 53 -j ACCEPT
        $IPT -A FORWARD -p udp -s $NTW --dport 53 -j ACCEPT
        echo "Ok"

        # acesso SSH
        echo -n "Setting SSH access..."
        $IPT -A INPUT -p tcp -s $NTW --dport 22 -j ACCEPT
        $IPT -A INPUT -p udp -s $NTW --dport 22 -j ACCEPT
        echo "Ok"

        # medidas de segurança contra spoofing, ping of death...
        echo -n "Setting ip spoofing protection..."
        $IPT -A INPUT -i $IFEXT -s 10.0.0.0/8 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 10. --"
        $IPT -A INPUT -i $IFEXT -s 10.0.0.0/8 -j DROP
        $IPT -A INPUT -i $IFEXT -s 172.16.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 172.16. --"
        $IPT -A INPUT -i $IFEXT -s 172.16.0.0/16 -j DROP
        $IPT -A INPUT -i $IFEXT -s 192.168.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 192.168. --"
        $IPT -A INPUT -i $IFEXT -s 192.168.0.0/16 -j DROP
        # protecao contra synflood
        $IPT -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
        # protecao contra ping da morte
        $IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
        echo "Ok"

        # trafego do apache
        $IPT -A INPUT -p tcp --dport 80 -j ACCEPT

        # trafego do zimbra
        for ZIMPORT in `cat /etc/init.d/zimbra_ports`; do
                $IPT -t nat -A PREROUTING -d $IPEXT -p tcp --dport $ZIMPORT -j DNAT --to-destination $IPZIM:$ZIMPORT
        done
        $IPT -t nat -A PREROUTING -d $IPEXT -p udp --dport 25 -j DNAT --to-destination $IPZIM:25
        $IPT -t nat -A PREROUTING -d $IPEXT -p udp --dport 26 -j DNAT --to-destination $IPZIM:26

        # proxy transparente
        echo -n "Setting transparent proxy... "
        $IPT -A INPUT -p tcp -s $NTW --dport 8787 -j ACCEPT
        $IPT -A INPUT -p udp -s $NTW --dport 8787 -j ACCEPT
        $IPT -t nat -A PREROUTING -s $NTW -p tcp --dport 80 -j REDIRECT --to-port 8787
        $IPT -t nat -A PREROUTING -s $NTW -p udp --dport 80 -j REDIRECT --to-port 8787
        echo "Ok"

        # liberando trafego para ips
        for IP in `cat /etc/init.d/ips`; do
                $IPT -t nat -A POSTROUTING -s $IP/32 -j MASQUERADE
        done

        # mascarando trafego em geral
        for PORT in `cat /etc/init.d/ports`; do
                $IPT -t nat -A POSTROUTING -p tcp -s $NTW --dport $PORT -j MASQUERADE
                $IPT -t nat -A POSTROUTING -p udp -s $NTW --dport $PORT -j MASQUERADE
        done

        $IPT -t nat -A POSTROUTING -p icmp -s $NTW -j MASQUERADE

        $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

        #### Tarefas de log ####
        echo -n "Setting log actions..."
        $IPT -A INPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: INPUT --"
        $IPT -A OUTPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: OUTPUT --"
        $IPT -A FORWARD -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: FORWARD --"
        echo "Ok"

        echo ""
        echo "Iptables started sucessfully"
        echo -n ""

}

firewall_stop(){
        echo -n "Stopping Iptables firewall... "
        echo -n ""

        echo -n "Cleaning rules... "
        $IPT -F
        $IPT -F -t nat
        $IPT -F -t mangle
        $IPT -X
        $IPT -X -t nat
        $IPT -X -t mangle
        $IPT -Z
        $IPT -Z -t nat
        $IPT -Z -t mangle
        echo "Ok"

        echo -n "Setting default ACCEPT policy... "
        $IPT -P FORWARD ACCEPT
        $IPT -P INPUT ACCEPT
        $IPT -P OUTPUT ACCEPT
        echo "Ok"

        echo -n ""
        echo -n "Iptables stopped sucessfuly"
        echo -n ""
}

firewall_status(){
        echo "==========   NAT Status Policies   =========="
        echo ""
        $IPT -t nat -nL
        echo ""

        echo "==========   Mangle Status Policies   =========="
        echo ""
        $IPT -t mangle -nL
        echo ""
       
        echo "==========   Filter Status Policies   =========="
        echo ""
        $IPT -nL
        echo ""
}

case "$1" in
        "start")
            firewall_start
            ;;
        "stop")
            firewall_stop
            ;;
        "restart")
            firewall_stop
            echo ""
            sleep 1
            firewall_start
            ;;
        "status")
            firewall_status
            ;;
         * ) echo "Use: firewall [start] [stop] [restart] [status]"
esac


Squid

http_port 8787 transparent
visible_hostname nome_servidor
visible_hostname on

# Cache em memoria
cache_mem 512 MB
maximum_object_size_in_memory 256 KB

# Cache em disco
maximum_object_size 128 MB
minimum_object_size 4 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid3 8192 64 256
refresh_pattern ^ftp: 15 20% 1440
refresh_pattern ^gopher: 15 0% 1440
refresh_pattern . 15 20% 1440

# Acl's de conexao e cache
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl local_network src 10.0.0.0/24

acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais 
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 901         # swat
acl Safe_ports port 1025-65535  # high ports

acl purge method PURGE
acl CONNECT method CONNECT

# Acl's de bloqueio
acl unlimited_ips src "/etc/squid3/rules/unlimited_ips"
acl free_sites dstdom_regex "/etc/squid3/rules/free_sites"
acl blocked_sites url_regex -i "/etc/squid3/rules/blocked_sites"

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
htcp_access allow all
icp_access allow all

# Libera o resto
http_access allow unlimited_ips
http_access allow free_sites
http_access deny blocked_sites
http_access allow localhost
http_access allow local_network
http_access deny all

zekkerj

Bem, tem algumas coisas que eu não faria aí, por exemplo, na parte onde vc faz o MASQUERADING, vc está fazendo isso pra todo tráfego que entra vindo da rede local ("-s $NTW"), eu faria isso apenas para o tráfego que sai pela interface externa vindo da rede local ("-s $NTW -o $IFEXT").

Verifique se o IPv6 está ativo, se estiver e você não tiver suporte do seu provedor, desative.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

slavik

Refiz a configuração e ficou mais ou menos assim:


#!/bin/sh

# variaveis

# web
IF_WEB="interface_externa"
IP_WEB="ip_externo"

# interno
IF_INT="interface_interna"
IP_INT="ip_interno"
# sapl
IP_SAP="ip_sistema"
# zimbra
IP_ZIM="ip_zimbra"
# mascara de rede
NTWRK="10.0.0.0/24"

# atalho para o iptables
IPT=`which iptables`

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -Z
$IPT -Z -t nat
$IPT -Z -t mangle


# ativacao de modulos
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_MASQUERADE
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp


# compartilhamento de internet
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses


# limpando regras
$IPT -F
$IPT -X
$IPT -Z
$IPT -t nat -F
$IPT -t nat -X
$IPT -t nat -Z
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -t mangle -Z


# politicas padrao
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT


# conexoes de volta
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


###### regras de INPUT ######
# loopback
$IPT -A INPUT -i lo -j ACCEPT
# dns
$IPT -A INPUT -p tcp --dport 53 -j ACCEPT
$IPT -A INPUT -p udp --dport 53 -j ACCEPT
# ssh
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
# protecao contra ip spoofing
$IPT -A INPUT -i $IF_WEB -s 10.0.0.0/8 -j DROP
$IPT -A INPUT -i $IF_WEB -s 172.16.0.0/16 -j DROP
$IPT -A INPUT -i $IF_WEB -s 192.168.0.0/16 -j DROP
# apache
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
# squid
$IPT -A INPUT -p tcp -s $NTWRK --dport 8787 -j ACCEPT


###### regras de FORWARD #####
# loopback
$IPT -A FORWARD -i lo -j ACCEPT
# dns
$IPT -A FORWARD -p tcp --dport 53 -j ACCEPT
$IPT -A FORWARD -p udp --dport 53 -j ACCEPT
# protecao contra synflood
$IPT -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
# protecao contra ping da morte
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPT -A FORWARD -i $IF_WEB -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT


###### regras de NAT ######
for ZIMPORT in `cat /etc/init.d/zimbra_ports`; do
    $IPT -t nat -A PREROUTING -d $IP_WEB -p tcp --dport $ZIMPORT -j DNAT --to-destination $IP_ZIM:$ZIMPORT
done
$IPT -t nat -A PREROUTING -d $IP_WEB -p udp --dport 25 -j DNAT --to-destination $IP_ZIM:25
$IPT -t nat -A PREROUTING -d $IP_WEB -p udp --dport 26 -j DNAT --to-destination $IP_ZIM:26
# ips liberados
for IP in `cat /etc/init.d/ips`; do
    $IPT -t nat -A POSTROUTING -s $IP/32 -j MASQUERADE
done
# mascarando trafego em geral
for PORT in `cat /etc/init.d/ports`; do
    $IPT -t nat -A POSTROUTING -p tcp -s $NTWRK -o $IF_WEB --dport $PORT -j MASQUERADE
    $IPT -t nat -A POSTROUTING -p udp -s $NTWRK -o $IF_WEB --dport $PORT -j MASQUERADE
done
# nat do squid
$IPT -t nat -A PREROUTING -s $NTWRK -p tcp --dport 80 -j REDIRECT --to-port 8787


###### logging ######
# log de navegacao
$IPT -A INPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: INPUT --"
$IPT -A OUTPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: OUTPUT --"
$IPT -A FORWARD -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: FORWARD --"
# log de spoofing
$IPT -A INPUT -i $IF_WEB -s 10.0.0.0/8 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 10. --"
$IPT -A INPUT -i $IF_WEB -s 172.16.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 172.16. --"
$IPT -A INPUT -i $IF_WEB -s 192.168.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 192.168. --"


A lentidão continua, e apareceu mais um problema. Não consigo mais acessar o apache, pelo menos na rede interna.

Arthur Bernardes

#5
E o que isso faz?

# nat do squid
$IPT -t nat -A PREROUTING -s $NTWRK -p tcp --dport 80 -j REDIRECT --to-port 8787


Pelo que entendo, você está redirecionando todo o acesso à porta 80 para a porta 8787, antes você tinha problema com essa regra?

A regra para poder usar o proxy transparente não seria essa?

$IPT -t nat -A PREROUTING -i $IF_INT -p tcp --dport 80 -j REDIRECT --to-port 8787

Pode ser que eu esteja errado, por favor, me corrija.




Você mesmo que escreveu esse Firewall ou pegou de alguém?

Acho que tem muitas regras desnecessárias aí, qual o uso do Servidor (empresa, provedor, casa)?

slavik

É um firewall na empresa.
Roda apache, plone, e faz alguns redirecionamentos para outros servidores.
O script fui eu mesmo quem fez.

Testei sua regra do proxy transparente e não funcionou.

zekkerj

#7
CitarNão consigo mais acessar o apache, pelo menos na rede interna.
Você conseguia antes??? Estranho, não é o que parecia...

Outras coisas que eu percebei, os testes que vc faz contra synflood e ping da morte não são eficazes. O synflood, pq vc só está limitando o repasse de TCP SYN a 2/s, independente da origem ou destino (e isso pode ser um dos motivos da lentidão), e o ping da morte não tem a ver com a frequência dos pings, e sim com seu tamanho. Sem contar que o ping da morte é um ataque mais obsoleto que minha bisavó. Nem máquinas windows 95 eram mais vulneráveis a ele.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

slavik

Bom... vamos lá então...

Meu script se encontra assim:


#!/bin/sh

# variaveis

# web
IF_WEB="interface_externa"
IP_WEB="ip_externo"

# interno
IF_INT="interface_interna"
IP_INT="ip_interno"
# sapl
IP_SAP="ip_sistema"
# zimbra
IP_ZIM="ip_zimbra"
# mascara de rede
NTWRK="10.0.0.0/24"

# atalho para o iptables
IPT=`which iptables`

$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -X -t nat
$IPT -X -t mangle
$IPT -Z
$IPT -Z -t nat
$IPT -Z -t mangle


# ativacao de modulos
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_limit
modprobe ipt_state
modprobe ipt_MASQUERADE
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp


# compartilhamento de internet
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses


# politicas padrao
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT


# conexoes de volta
$IPT -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


###### regras de INPUT ######
# loopback
$IPT -A INPUT -i lo -j ACCEPT
# dns
$IPT -A INPUT -p tcp --dport 53 -j ACCEPT
$IPT -A INPUT -p udp --dport 53 -j ACCEPT
# ssh
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
# protecao contra ip spoofing
$IPT -A INPUT -i $IF_WEB -s 10.0.0.0/8 -j DROP
$IPT -A INPUT -i $IF_WEB -s 172.16.0.0/16 -j DROP
$IPT -A INPUT -i $IF_WEB -s 192.168.0.0/16 -j DROP
# apache
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
# squid
#$IPT -A INPUT -p tcp -s $NTWRK --dport 8787 -j ACCEPT


###### regras de FORWARD #####
# loopback
$IPT -A FORWARD -i lo -j ACCEPT
# dns
$IPT -A FORWARD -p tcp --dport 53 -j ACCEPT
$IPT -A FORWARD -p udp --dport 53 -j ACCEPT
# protecao contra synflood
$IPT -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
# protecao contra ping da morte
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPT -A FORWARD -i $IF_WEB -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT


###### regras de NAT ######
for ZIMPORT in `cat /etc/init.d/zimbra_ports`; do
$IPT -t nat -A PREROUTING -d $IP_WEB -p tcp --dport $ZIMPORT -j DNAT --to-destination $IP_ZIM:$ZIMPORT
done
$IPT -t nat -A PREROUTING -d $IP_WEB -p udp --dport 25 -j DNAT --to-destination $IP_ZIM:25
$IPT -t nat -A PREROUTING -d $IP_WEB -p udp --dport 26 -j DNAT --to-destination $IP_ZIM:26
# ips liberados
for IP in `cat /etc/init.d/ips`; do
$IPT -t nat -A POSTROUTING -s $IP/32 -j MASQUERADE
done
# mascarando trafego em geral
for PORT in `cat /etc/init.d/ports`; do
    $IPT -t nat -A POSTROUTING -p tcp -s $NTWRK -o $IF_WEB --dport $PORT -j MASQUERADE
    $IPT -t nat -A POSTROUTING -p udp -s $NTWRK -o $IF_WEB --dport $PORT -j MASQUERADE
done
# nat do squid
$IPT -t nat -A PREROUTING -i $IF_INT -p tcp --dport 80 -j REDIRECT --to-port 3128


###### logging ######
# log de navegacao
$IPT -A INPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: INPUT --"
$IPT -A OUTPUT -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: OUTPUT --"
$IPT -A FORWARD -m limit --limit 3/m --limit-burst 3 -j LOG --log-level info --log-prefix "Firewall: FORWARD --"
# log de spoofing
$IPT -A INPUT -i $IF_WEB -s 10.0.0.0/8 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 10. --"
$IPT -A INPUT -i $IF_WEB -s 172.16.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 172.16. --"
$IPT -A INPUT -i $IF_WEB -s 192.168.0.0/16 -m limit --limit 3/s -j LOG --log-level info --log-prefix "FIREWALL: Spoofing - 192.168. --"


Preciso de ajuda para dar acesso ao apache, tanto externo quanto interno, para direcionar as requisições para o zimbra e para ter uma segurança eficiente. Alguém pode me dar uma luz?

zekkerj

Para liberar o acesso do apache é simples, basta adicionar esta linha antes da liha do redirecionamento:

$IPT -t nat -A PREROUTING -i $IF_INT -d $MEU_IP --dport 80 -j RETURN

Outra coisa, estou vendo que vc agora está redirecionando o tráfego web p/ a porta 3128, não p/ 8787 como antes. Vc lembrou de reconfigurar seu Squid de acordo? Senão não adianta nada...
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

slavik

Esqueci de citar, mas sim, reconfigurei o squid para a porta 3128.

Essa linha que você colocou, funciona para o apache rodando nesse mesmo servidor ou em um servidor diferente?

zekkerj

#11
mesmo servidor.
edit: pensando bem, isso é indiferente. Qq q seja o endereço do(s) servidor(es) que vc quer que não caia(m) no redirecionamento p/ o squid, é só criar uma linha dessas e passar o endereço.

E se o servidor for outro, da rede interna, o tráfego já não passaria por aqui mesmo.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

slavik

Gerou esse erro:
iptables v1.4.12: unknown option "--dport"

zekkerj

Citar$IPT -t nat -A PREROUTING -i $IF_INT -d $MEU_IP --dport 80 -j RETURN
Lembrou de definir "MEU_IP"?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

slavik

Sim, tentei com o ip local e o ip externo.
Os dois geraram erro.

E outra coisa, a regra

$IPT -A INPUT -p tcp -i $IF_WEB --dport 80 -j ACCEPT

Não supriria? Porque ela está liberando a entrada de pacotes na porta 80, certo?