Buckminster
(usa Debian)
Enviado em 28/05/2013 - 22:40h
sneeps.ninja escreveu:
Buckminster escreveu:
O tráfego da porta 80 está sendo direcionado para o Squid.
E seria bom então você fixar o IP 189.58.100.145 nas configurações do modem/roteador.
E coloca a porta 8080 como Safe_port no Squid para garantir e libera ela no iptables.
É o seguinte, a placa eth2 não deve ser gateway nem nada, somente deve ser a placa de rede que responderá pelo teu site, só isso.
Se você quiser fazer alguma proteção deverá fazer no iptables.
E esqueci de falar:
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 8080 -j DNAT --to-destination 189.58.100.145:8080 << essa regra deve ir ANTES da regra de redirecionamento para o Squid e ANTES da regra do compartilhamento.
"Seguinte Buck:
tenho um sistema web nesse servidor que requer o tomcat também...rsrsr e ele esta na porta 8080."
---Coloca o Tomcat ou o Apache em outra porta e aponta cada um para sua respectiva porta no iptables.
Espero que essa máquina tenha uma configuração de hardware robusta para aguentar esses serviços.
"outra coisa a faixa ip 189.58.100.0 é tudo ip real(válido na internet) é fixo sim, mas eu quero que os usuarios saiam pela internet de 15mb (eth2) e quero que as pessoas que acessem o site acessem pelo ip real (189.58.100.148 eth1)"
---Isso que você chama de IP real é o IP que você alugou da operadora, ou seja, é o IP do modem para a Internet, as pessoas irão acessar o site pela URL (www.algumacoisa.com.br), não interessa o IP para elas.
Esse IP 189.58.100.148 é o IP do modem e você não pode fixar ele na placa de rede do servidor.
internamente os usuarios da minha rede interna podem acessar pelo ip da rede mesmo.
Comentei a regra que faz o redirect da porta 80 p/ ver se isso poderia ser o problema, mas mesmo assim ele nao pinga no ip real
vou mandar as minhas regras do iptables que estou usando:
#!/bin/bash
# Autor: Maison K. Sakamoto
# DOCUMENTACAO BASICA PARA USO DO IPTABLES
# -s = source : origem
# -d = destination : destino
# --sport = source-port : porta de origem
# --dport = destination-port : porta de destino
# -p = protocolo
# -j = Acao
# -A = adiciona regra no final da cadeia
# -F = apaga as regras da cadeia
# -X = apaga uma cadeia vazia
# -P = Configura a politica padrao da cadeia
# -i = input : especifica a interface de entrada do pacote.(valida em INPUT, PREROUTING e FORWARD)
# -o = output : especifica a interface de saida. (valida em OUTPUT,POSTROUTING E FORWARD
# -t = tabela : filter(padrao), nat(NAT-gera outras conexoes), mangle(permite alteracao nos pacotes, raw(rastreio)
# SNAT = realiza o NAT, alterando o endereco de origem do pacote
# MASQUERADE = Realiza o NAT, permite que a rede interna se comunique com a internet (VALIDO em POSTROUTING somente)
firewall_start(){
# Aceitar pacotes das redes ( -s=source origem | -d=destino )
iptables -A INPUT -s 189.58.100.0/255.255.255.0 -j ACCEPT << essas 6 regras estão liberando tudo que vem das redes para o servidor, inclusive da Internet.
iptables -A INPUT -d 189.58.100.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -d 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -d 10.0.0.0/255.255.255.0 -j ACCEPT
# SSH
iptables -A INPUT -p tcp --sport 22 -j ACCEPT
# MYSQL
iptables -A INPUT -p tcp --sport 3306 -j ACCEPT
# SVN - Versionamento do NetBeans
iptables -A INPUT -p tcp --sport 8443 -j ACCEPT
# HTTP para serem acessados neste servidor
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp --dport 80 -j MASQUERADE << essa regra está compartilhando tudo com tudo, você tem dois links no mesmo servidor, não tem como dar certo; você deve acrescentar a ethx por onde entra o link de 15 Mb e deve usar SNAT (iptables -t nat -A POSTROUTING -o ethx -j SNAT --to-source xxx.xxx.xxx.xxx << aqui você coloca o IP que está fixo na placa de rede que entra o link de 15 Mb).
# SERVIDOR WEB - para que esta maquina seja acessivel via internet
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 189.58.100.148:80 << o servidor Web, pelo que você colocou antes, está na eth2, e também não adianta nada você colocar o IP do modem aqui; aqui vai o IP da placa de rede que responde pelo servidor Web. E essa regra deve ficar acima da regra anterior.
-----Olha só, a coisa é simples: tu tem 3 placas de rede, uma entra um link de 15 Mb, a outra deve sair esse link de 15 Mb para tua rede interna, a outra placa é a que responderá pelo servidor Web com o outro link.
Esquece por enquanto os IPs dos modens.
--- As máquinas se "acham" pelo IP. Você tem 3 placas de rede com um IP fixo em cada uma delas e cada uma responde por um ou mais serviços no servidor. Se tiver dois ou mais serviços saindo por uma mesma placa de rede daí cada um deve sair por uma porta diferente e cada porta só pode responder por um único serviço senão dá conflito.
iptables -A FORWARD -d 189.58.100.148 -p tcp --dport 80 -j ACCEPT
# TERMINAL SERVICE
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
# Acessar o servidor 192.168.1.139 atraves do ts(porta 3389) via modem gvt
iptables -t nat -A PREROUTING -d 10.0.0.200 -p tcp --dport 3389 -j DNAT --to 192.168.1.139:3389
#subtituir a linha de cima com o codigo abaixo
iptables -t nat -A PREROUTING -d 189.58.100.148 -p tcp --dport 3389 -j DNAT --to 192.168.1.139:3389
# Rotear a rede externa(internet)
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth2 -j MASQUERADE << aqui você está colocando a rede interna para sair pela eth2 que é a placa do Servidor Web e está fazendo MASQUERADE, não tem como dar certo isso.
--- Com IP fixo nas placas de rede NÃO se usa MASQUERADE, se usa SNAT para fazer o compartilhamento e você deve fazer o compartilhamento somente da placa de rede por onde entra o link de 15 Mb.
Raciocina como se o Servidor Web fosse uma máquina à parte, ou seja, ele está fisicamente junto nesse servidor, mas é um serviço à parte que vai responder pela placa de rede dele com o link dele.
---Se o Tomcat tem um serviço somente para a rede interna você deve apontar ele no iptables somente para a rede interna através da porta dele, seja a 8080 ou outra porta que você escolher.
Na escolha de outra porta você deve verificar qual porta tem disponível aí no teu servidor. Usa o nmap e veja se a porta 8081, por exemplo, está disponível.
Agora, para ficar bom mesmo, o ideal seria você colocar mais uma placa de rede para o Tomcat (se a placa-mãe desse servidor aceitar mais uma placa de rede).
# SQUID
iptables -t nat -A PREROUTING -s 192.168.1.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -s 192.168.1.0/255.255.255.0 -p tcp --dport 443 -j REDIRECT --to-port 3128
##aceitar loopback
iptables -A INPUT -p TCP --syn -s 127.0.0.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#BLOQUEIO DE QUALQUER OUTRA CONEXAO QUE NAO ESTEJA LISTADA ACIMA
iptables -A INPUT -p tcp --syn -j DROP
}
firewall_stop(){
iptables -F
iptables -t nat -F
iptables -X
iptables -P INPUT ACCEPT << você está colocando todas as políticas como ACCEPT, ou seja, está tudo liberado.
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}
case "$1" in
start)
echo -n "Inicializando Firewall: "
firewall_stop
firewall_start
echo "OK."
;;
stop)
echo -n "Encerrando Firewall: "
firewall_stop
;;
restart)
echo -n "Encerrando Firewall: "
firewall_stop
echo "OK."
echo -n "Iniciando Firewall: "
firewall_start
echo "OK."
;;
*)
echo "Uso: /etc/init.d/firewall {start|stop|restart)"
exit 1
;;
esac
Qualquer dúvida, posta aqui.