PDA

View Full Version : iptables e Dmz


Pigna
30-11-2006, 17:09
Ciao a tutti.

Avrei bisogno per risolvere un problemino di regole iptables.

Ho un firewall con 2 skede di rete, eth0 collegata all'esterno e eth1 collegata alla rete dei server.

Nella rete ci sono 2 server, 1 Windows (web) e 1 Linux (mail).

Mettiamo che l'IP esterno e' 151.99.125.2, mentre l'IP interno del server Win e' 192.0.0.1 e quello linux 192.0.0.2.

Ora ho configurato il firewall con tutti i nat che mi servivano e tutto funziona, dall'esterno accedo all'interno senza problemi.

Il problemi mi si presenta quando da un server interno provo a collegarmi al sito o al mail server, mi spiego:

Sul server win c'è il web es. www.ilmioweb.it , se dal server provo a risolvere il nome con nslookup mi restituisce 151.99.125.2, se prerò provo a navigarci non funziona.

Ho provato a inserire la seguente regola:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -d 151.99.125.2 -j DNAT --to 192.168.0.1:80

Pero' non funziona, dal server non riesco a raggiungere il sito, e stesso problema vale per la posta.

Come posso risolvere?

Grazie.

Psycotic
30-11-2006, 17:27
Secondo me risolvi senza fare altre regole semplicemente inserendo nel tuo file /etc/hosts la riga 192.168.0.1 www.ilmioweb.it
Questo perche' prima di fare la query al dns, il tuo S.O. andra' a leggere prima questo file..

Cmq sia il problema potrebbe essere la confusione e quindi solo il modo in cui le hai ordinate... Oppure ancora piu' probabile che quando la macchina web risponde il pacchetto non riesce a tornare indietro perche' lo sputi fuori dall'eth0 mentre invece dovrebbe essere rigirato sempre all' eth1

Bisognerebbe vedere le altre regole anche se in una piccola lan conviene piu' la prima soluzione

dennyv
30-11-2006, 17:52
Devi inserire gli indirizzi e relativi nomi nel file /etc/hosts di Linux e C:\Windows\system32\drivers\etc\hosts in Windows, a meno che tu non usi un DNS interno (ma non credo, e sarebbe inutile per così poco!).

Non è un problema di Firewall, ma di come vengono risolti gli indirizzi (tramite il DNS pubblico che correttamente punta al tuo IP pubblico).

Ciaoo

W.S.
01-12-2006, 10:30
Il problema è che le risposte tornano al client ma con un indirizzo diverso da quello che si aspetta (si aspetta quello pubblico ma arriva quello interno) quindi o modifichi il file hosts a tutti i client della rete o fai un accrocchio per aggirare il fatto che nella stessa rete un client chiama un server con un indirizzo esterno, ora come ora mi viene in mente che sul firewall dovresti mascherare sia le richieste che le risposte in modo da forzare le riposte a passare per il firewall, quindi:
alla richiesta del client mascheri l'ip sorgente (con un ip esterno alla lan ma comunque privato) e la inoltri al server
alla risposta modifichi l'ip sorgente mettendo quello che il client i aspetta e lo inoltri al client.

Altra soluzione è isolare i server restringendo le netmask, anche in questo modo le risposte sono forzate a passare dal firewall, però rimane il problema dell'indirizzo pubblico che si aspetta il client.

Se non son stato chiaro (sorry ma son in ufficio) e ti interessa la soluzione chiedi pure!

bort_83
01-12-2006, 14:40
Il problema è che le risposte tornano al client ma con un indirizzo diverso da quello che si aspetta (si aspetta quello pubblico ma arriva quello interno) quindi o modifichi il file hosts a tutti i client della rete o fai un accrocchio per aggirare il fatto che nella stessa rete un client chiama un server con un indirizzo esterno, ora come ora mi viene in mente che sul firewall dovresti mascherare sia le richieste che le risposte in modo da forzare le riposte a passare per il firewall, quindi:
alla richiesta del client mascheri l'ip sorgente (con un ip esterno alla lan ma comunque privato) e la inoltri al server
alla risposta modifichi l'ip sorgente mettendo quello che il client i aspetta e lo inoltri al client.


quoto pienamente... le soluzioni sono un masquerade sull'interfaccia interna o IMHO la soluzione + pulita, risolvere gli indirizzi con i loro IP interni.