Newsgroup: it.comp.os.linux.iniziare
Titolo: IPTABLES prerouting

Salve ho un problema di questo tipo voglio far vedere il mio sito a tutti
Sono configurato cosi
Serverweb:8080 --- FW Linux  --- Internet
Per fare cio ho aggiunto alla config del fw queste due righe
$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 --dport 80 -j DNAT 
--to-destination serverweb:8080
e questa perchè una volta fatto il pre route passa per le regole giusto?
$IPTABLES -A INPUT -i ppp0 -m state --state $NewEstRel -p tcp --dport 
8080 -j ACCEPT
Nonostante cio nn funziona come mai?
tnx
Enrico

 Enrico
-- 
------------------------------------------
Togliere aldruz- per rispondermi via e-mail
------------------------------------------

 pacchetti destinati al WebServer.
No. OUTPUT non e` affatto coinvolto nella questione,solo FORWARD.
Schiarisciti anche tu le idee: 
http://iptables-tutorial.frozentux.net

Grazie mille
ho aggiunto la seguente regola
$IPTABLES -A FORWARD -i ppp0 -p tcp -m tcp --dport 8080 -j ACCEPT
che associata alla
$IPTABLES -t nat -A PREROUTING -p tcp -i ppp0 --dport 80 -j DNAT
--to-destination serverweb:8080
funziona correttamebte
Grazie mille
Enrico
Braindead ha scritto:


Mi correggo (nn avevo pulito la vecchia tabella) ci vuole anke l'input 
se no nn mi fa entrare ovvero
$IPTABLES -A INPUT -i $EXTERNALIF -m state --state $NewEstRel -p tcp 
--dport 80 -j ACCEPT
se no nn passa
grazie di nuovo
E.
Enrico ha scritto:


 grazie di nuovo
No,ti starai confondendo e/o facendo porcate.
Puoi avere una macchina che ti fa da firewall con INPUT e OUTPUT in DROP
e con oppurtune regole in FORWARD.
Insisto,schiarisciti le idee.

Questo è lo script del fw
#!/bin/bash
LOCALIF="eth0"
INTERNALNET="
192.168.0.0/255.255.255.0
"
EXTERNALIF="ppp0"
REMOTENET="0/0"
IPTABLES="/sbin/iptables"
NewEstRel="NEW,ESTABLISHED,RELATED"
#
#
#
#
#
$IPTABLES -X
#cancella tutte le regole
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -F PREROUTING
#
#
echo -n "RULES"
$IPTABLES -F
echo -n "."
#
$IPTABLES -t mangle -F
echo -n "."
#
echo "Done!"
echo -n "Regole Base ...."
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
#$IPTABLES -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#
echo " OK"
#
# escludi i pacchetti unclened
echo -n "escludi i pacchetti unclened ."
$IPTABLES -A INPUT -m unclean -j DROP
echo " OK"
#
# escludi i pacchetti spofed
echo -n "escludi i pacchetti spofed"
$IPTABLES -A INPUT -s $INTERNALNET -i $EXTERNALIF -j DROP
echo " OK"
#
# Accetta 0/0 e SSH
echo -n "Accetta 0/0 e SSH"
$IPTABLES -A INPUT -s $INTERNALNET -i $LOCALIF -p tcp -m tcp --dport 22 
-j ACCEPT
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state $NewEstRel -j ACCEPT
echo " OK"
#
# Proteggi il firwall dai icmp DoS
#$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 8 -m lenght --lenght 
128:65535 -j DROP
#
echo -n "Accetto gli icmp dalla rete interna"
$IPTABLES -A INPUT -p icmp -s $INTERNALNET -j ACCEPT
echo  " OK"
#
#
# forward chains to allow conn... from out lan to 0/0
#
echo -n "Attivo forward "
$IPTABLES -A FORWARD -i $EXTERNALIF -m state --state RELATED,ESTABLISHED 
-j ACCEPT
$IPTABLES -A FORWARD -i $LOCALIF -m state --state $NewEstRel -j ACCEPT
echo " OK"
#
# Proteggi out LAN dai imp DoS
echo -n "drop degli icmp in forward"
$IPTABLES -A FORWARD -p icmp -m icmp --icmp-type 8 -m length --length 
128:65535 -j DROP
echo " OK"
#
#
# NON REINDIRIZZA I PACCHETTI MULTICAST
#
#$IPTABLES -A FORWARD -m pkttype --pkt-type multicast -j DROP
#
#echo "OK"
echo -n "Regole nat"
#
#set up masquerading
echo -n "Attivo masquerading"
$IPTABLES -t nat -I POSTROUTING -s $INTERNALNET -o $EXTERNALIF -j MASQUERADE
echo " OK"
#
#
echo -n "Regole Mangle "
#
# Log su ulogd gli icmp DoS
echo -n "log"
$IPTABLES -t mangle -A PREROUTING -p icmp -m icmp --icmp-type 8 -m 
length --length 128:65535 -j ULOG
echo " OK"
#
echo -n "(Modifica dell'urgenza dei pacchetti)"
#Minimiza delay (Riduci attesa)
#
$IPTABLES -t mangle -A PREROUTING -p tcp -m tcp -m multiport --dports 
21,22,23,80 -j TOS --set-tos 0x10
echo -n " 1 OK"
#
#Maximiza Througput
#
$IPTABLES -t mangle -A PREROUTING -p tcp -m tcp -m multiport --dports 
20,8080 -j TOS --set-tos 0x08
echo -n " 2 OK"
#
#
$IPTABLES -t mangle -A PREROUTING -p tcp -m tcp --dport 53 -j TOS 
--set-tos 0x04
echo " 3 OK"
#
#
#
echo -n "Chiuso"
echo  " "
SCRIPT estemporaneo per aggiungere la porta
#!/bin/bash
LOCALIF="eth0"
INTERNALNET="
192.168.0.0/255.255.255.0
"
EXTERNALIF="ppp0"
REMOTENET="0/0"
IPTABLES="/sbin/iptables"
NewEstRel="NEW,ESTABLISHED,RELATED"
#
#
MACCHINA_CON_SERVER="192.168.0.25"
PORTA_SERVER="8080"
#
#RIghe esteporanee
echo -n "Apro le porte ________"
$IPTABLES -A INPUT -i $EXTERNALIF -m state --state $NewEstRel -p tcp 
--dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTERNALIF --dport 80 -j DNAT 
--to-destination $MACCHINA_CON_SERVER:$PORTA_SERVER
$IPTABLES -A FORWARD -i $EXTERNALIF -p tcp --dport $PORTA_SERVER -j ACCEPT
Senza input nn va
dimmi dove secondo te è l'errore pechè sembra che senza rifiuti la 
connessione o forse il problema è che le aggiungo dopo nn so
dimmi tu
Grazie
E.
Braindead ha scritto:


 connessione o forse il problema è che le aggiungo dopo nn so dimmi tu
tcpdump / tetheral sono tuoi amici,impara ad usarli.
Per il resto uno script cosi` e` di difficile lettura,impara anche ad
usare iptables-save e iptables-restore che hanno anche l'indubbio
vantaggio di lavorare in maniera atomica.
Comunque ad una sommaria lettura quella riga in INPUT non ha comunque
senso di esistere proprio per come funziona Netfilter. 
Ed e` la terza volta che ti sto dicendo di schiarirti le idee.
Auguri e tanti saluti.

 E.
O hai cannato il DNAT o l'INPUT non dovrebbe proprio entrare nella 
soluzione del problema. INPUT serve solo per i pacchetti la cui 
destinazione finale è il firewall, i.e. la macchina su cui hai applicato 
le regole di Netfilter. Nel tuo caso il server web non si trova sulla 
tua macchina-firewall, giusto?

Confermo si trova dietro il fw
lorenzodes ha scritto:


 Confermo si trova dietro il fw
Per favore, quota a modo :)
Hai attivato il forward?
echo "1" > /proc/sys/net/ipv4/ip_forward

Si attivato il forward (nn uscirei :p)
nn so se hai visto lo script intero due post + su
Grazie per la disponbilita
E.
lorenzodes ha scritto:


Braindead ha scritto:
 > On Tue, 13 Dec 2005 16:04:01 +0100, Enrico wrote:
 > Qualche appunto sparso su alcune cose su cui m'e` caduto l'occhio:
 >
 >>#$IPTABLES -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
 >
 > E` commentata ed e` pure scritta male,ma servirebbe.
 > -A INPUT -i lo -j ACCEPT basta e avanza
nn vedo a cosa
 >
 >>[cut]
 > Allo spoofing ci pensa l'rpfilter.
Ok nn lo sapevo
 > tcpdump / tetheral sono tuoi amici,impara ad usarli.
vedro cosa sono sei il primo che me li nomina
 > Per il resto uno script cosi` e` di difficile lettura,impara anche ad
 > usare iptables-save e iptables-restore che hanno anche l'indubbio
 > vantaggio di lavorare in maniera atomica.
uso ipt-save come verifica (pensavo fosse meglio postare l'intero sript)
 > Comunque ad una sommaria lettura quella riga in INPUT non ha comunque
 > senso di esistere proprio per come funziona Netfilter.
Ho capito ma senza nn va
 > Ed e` la terza volta che ti sto dicendo di schiarirti le idee.
Guarda le mie idee sono chiare come una giornata di sole nel deserto
Ho postato una necessità: far si che un server dietro il fw fosse visto
da fuori; ho postato come pensavo potesse essere fatto
Mi siete stati utili perche ho capito che nn poteva funzionare senza il
forward e l'ho aggiunto
Ho visto che nn bastava anche se "concettualmente" doveva essre cosi
e ho ripostato il problema e "l'azione pratica" che senza input nn
funziona.
Ho postato tutta la config per esser il piu chiaro possibile per
permettervi di aiutarmi.
Questo perchè proprio nn ho capito in cosa mi dovevo schiarire le idee
 > Auguri e tanti saluti.
Grazie Mille
Enrico

 Questo perchè proprio nn ho capito in cosa mi dovevo schiarire le idee
Vediamo di capirci. Io la catena del forward la scriverei così:
-A FORWARD -o $LOCALIF -p tcp --destination $MACCHINA_CON_SERVER --dport 
  8080 -j ACCEPT
Aggiungerei (che non ho visto) una regola come la seguente:
-A OUTPUT -o lo -j ACCEPT
E ribadisco: INPUT non ha alcuna funzione nel forwardare i pacchetti al 
web server.