|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[iptables]indirizzare da un pc ad un altro
Ciao a tutti
![]() Ho un piccolo pc che mi fa da gateway per alcuni computer su una piccola rete. Lo script che mi fa fare questo è il seguente: Codice:
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE Per esempio: il pc che fa da gateway ha ip interno 10.0.0.2 e pubblico 100.100.100.100 il pc che fa da serverino ha ip interno 10.0.0.3 e pubblico 100.100.100.101 Quello che vorrei realizzare è che se l'utente pippo da remoto (che ha anche lui un ip fisso e pubblico) anzichè collegarsi direttamente sulla macchina 100.100.100.101, debba collegarsi per forza a quella .100 e che quest'ultima poi lo reindirizzi sulla .101 e solo se si collega sempre dal suo ip pubblico (per esempio da 212.212.212.212) Mi date una mano per favore ? Grazie mille. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() Ultima modifica di RaouL_BennetH : 10-07-2007 alle 08:44. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Ad occhio (non testato) dovresti inserire qualcosa tipo:
iptables -t nat -A PREROUTING -i <interfaccia pubblica> [altre regole...] -j REDIRECT --to-address 10.0.0.3
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
mmm la 100.100.100.101 non deve essere raggiungibile direttamente giusto?
Quindi, se possibile dovresti mettere la 100.100.100.101 su un ip privato in modo che non sia possibile raggiungerla dall'esterno, assegni 100.100.100.101 ad un'interfaccia virtuale di 100.100.100.100 e natti il traffico in entrata (solo quello che abiliti) verso l'ip privato interno, ricordati di mascherare la risposta. In alternativa blocca l'accesso a quel servizio da qualsiasi indirizzo tranne che dal 100.100.100.100 obbligando così ad utilizzare 100.100.100.100 per raggiungere l'host, mascheri l'ip sorgente della richiesta in modo da farlo apparire come 100.100.100.100 all'host finale. Ad ogni richiesta che arriva poi i tuoi script dovranno decidere se abilitare o meno la conenssione ed inserire regole di conseguenza. Se sei pratico di C e il servizio non è critico, la cosa migliore sarebbe usare il target QUEUE, in modo da poter gestire i pacchetti in USER-SPACE come vuoi, memorizzare gli utenti... insomma gestire la cosa secondo le tue esigenze.
__________________
[ W.S. ] |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Si, al momento la .101 è su ip pubblico ma la vorrei togliere e far passare tutto dalla .100 e solo per prefissati ip esterni e solo dai pc della rete interna.
Per ilsensine: per "altre regole" su cosa mi devo documentare in particolare? Per W.S.: stai parlando in gergo troppo tecnico per un ignorantone come me ![]() potresti cercare di chiarirmi meglio ciò che hai scritto? (nn che sia colpa tua ovviamente) Grazie mille ![]()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Non so, se solo alcuni servizi devono essere rediretti, puoi mettere filtri sulle porte relative. Se solo alcuni IP sorgente sono ammessi, devi inserirli. Per i casi più complicati, ti conviene creare una chain apposita dove puoi mettere tutte le regole che ti servono.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
Scusa, è che son un pochino di fretta e non posso rispondere con calma...
Il problema è che se vuoi evitare che quella macchina sia raggiungibile direttamente, o non le assegni un ip pubblico (e quindi per raggiungerla bisogna passare da un NAT) oppure blocchi qualsiasi connessione tramite firewall, lasciando passare solo quelle che vuoi. Il problema però è il modo in cui vuoi autenticare queste connessioni, come vorresti farlo? Basta la corrispondenza ip-accesso? Sai già quali ip avranno accesso? Devi verificare altro oltre all'ip?
__________________
[ W.S. ] |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Nel mio caso è tutto abbastanza semplice. C'è un piccolo webservice che deve essere raggiunto solo da alcuni ip esterni e dai pc interni. Volevo solo un chiarimento in merito a questo: Se nelle regole io dico di accettare solo le connessioni che provengono da detti IP, è sufficiente per impedire l'accesso da qualsiasi altro IP oppure devo specificare ulteriori regole ?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Se non compi altre azioni, la regola viene ignorata e si continua nella catena di prerouting (che va su accept). Quindi le connessioni finiscono sul computer attuale, e puoi bloccarle con le normali regole nella catena di INPUT.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:08.