Redirigere porta locale verso server POP esterno: iptables?

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Redirigere porta locale verso server POP esterno: iptables?

Messaggio da joe »

Come da oggetto, vorrei redirigere una porta locale diciamo per esempio la 2995 verso un server esterno POP3 alla porta 995, ad esempio pop.gmail.com.
Sono riuscito con netcat in modalità tunnel:

Codice: Seleziona tutto

netcat -v -L pop.gmail.com:995 -p 2995 -s 127.0.0.1
Impostando un client di posta per accedere al server pop sul localhost alla porta 2995, riesco a scaricarmi le mail.... anche se alla fine della sessione il comando netcat sopracitato, termina. Avendo più di un account su gmail, dovrei rilanciarlo per ogni account.... francamente non ho trovato un'opzione in grado di tenermi in piedi il tunnel creato da netcat.

Trattandosi però in sostanza di forwarding iptables dovrebbe essere in grado di gestire la cosa.
Cercando e cercando, non sono riuscito a trovare un caso simile a quello che voglio realizzare io...in effetti potrebbe sembrare piuttosto inutile. Tuttavia questoapproccio ha un suo perchè, infatti a volte mi trovo a dover usare un tunnel ssh per accedere al server mail, in altri casi non voglio usarlo perchè non è necessario. Per non riconfigurare il client di posta ogni volta, lo vorrei configurare in modo che punti al local host su porta 2995 come da esempio....poi di volta in volta avvio uno script che richiama ssh quando mi serve, oppure richiama netcat come sopra quando non ho isogni di ssh... Vorrei ssotituire a netcat iptables per il problema di cui parlavo prima.

In sostanza com dire ad iptables di redirigere la porta locale 2995 verso il server pop.gmail.com sulla porta 995?
Ho cercato parecchio in rete, ma di esempi pratici per fare questa cosa non ne ho trovati. Nonostante mi interessi anche imparare iptables, vorrei quanto prima raggiungere un risultato concreto, per cui chiedo scusa se chiedo la pappa pronta, ma non sapendo quasi nulla di iptables non mi è facile capire anche i risultati delle ricerche che ho fatto.
Detto questo poi, anche qualche link non è da disdegnare, tut'altro.. ma se la risposta stesse du una riga sarei grato se al link poteste accompagnare il comando d'esempio concreto.
Ringrazio in anticipo. :)

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: Redirigere porta locale verso server POP esterno: iptables?

Messaggio da sardylan »

iptables non credo... Direi più con un tunnel SSH locale

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Redirigere porta locale verso server POP esterno: iptables?

Messaggio da joe »

Riprendo questo topic perchè non riesco a capire come faccia a funzionare... eppure funziona alla grande.
Qual era il problema:

- a volte mi connetto ad internet utilizzando un cellulare come modem su rete tim e utilizzando l'apn dedicato al wap.
Con questo apn si hanno parecchie limitazioni tra cui l'accesso a vari servers pop e smtp esterni attraverso apposito client di posta.

- l'obiettivo era dunque riuscire ad utilizzare un client di posta, quindi accedere a pop3 e smtp di vari account esterni (gmail, tim e altro).
stranamente i server di gmail e tim non riesco a raggiungerli con sylpheed. Tuttavia altri account come lavabit.com riesco a raggiungerlo normalmente. Strano...

- la soluzione cui avevo pensato era un tunnel ssh verso una shell remota cui ho accesso e da lì collegarmi con sessioni criptate ssl ai vari server di posta sulle porte 465 per smtp e 995 per il pop. Purtroppo non tutti gli account dispongono di accesso criptato, per esempio il server di tim accetta solo le classiche connessioni in chiaro da porte 25 e 110, alla fine se passo per la shell remota (che appartiene a terzi nonmeglio definiti) preferisco evitare le connessioniin chiaro verso il server di posta.
La soluzione pratica è stata quella di predisporre il tunnel e configurare sylpheed in modo che acceda al localhost su porte redirette verso i server remoti attraverso la shell remota via tunnel ssh. Spero di essermi spiegato.


- Aggiungo che dispongo anche di un'offerta in fascia serale che permette di accedere ad internet usando apn ibox che è pensato apposta per collegarsi dal pc, emette a disposizione una connessione senza limitazioni a differenza del wap.
In questa situazione non mi serve più il tunnel in quanto riesco ad accedere normalmente ai server di posta... Ma sylpheed è configurato per usareil tunnel, per questo chiedevo della redirezione in locale... senza passare per la shell remota.

A questo proposito la soluzione di sardylan mi pare funzionare alla grande:

- attivo sshd in locale.
- configuro il tunnel sostituendo l'indirizzo della shell remota semplicemente col localhost.
- non tocco nulla della configurazione di sylpheed (è questa è una gran comodità)
E soprtattutto funziona tutto e mi evito di passare dalla shel remota.

Ora occhio, abbiamo riassumendo due soluzioni
1- la soluzione del tunnel attraverso la shell remota
2- la soluzione del tunnel attraverso il server sshd locale

E qua esce il mio dubbio:
la soluzione (1) funziona sempre indipendentemente dalla modalita di connessione ad internet, in quanto si appogga sempre alla shell remota. E fin qui non ci piove.
La soluzione (2) dovrebbe invece funzionare solamente nel caso in cui sono connesso con apn ibox, in quanto si appoggia al localhost la cui connettività dipende ovviamente dalle eventuali limitazioni dell'isp quando accedo via apn wap.

E invece sorpresa:
Adottando la soluzione (2) l'accesso ai server di posta fuziona sempre, anche con apn wap... Dove diavolo sono finite le limitazioni che ho quando accedo direttamente con sylpheed al server di posta remoto?
Se aveste delle ipotesi...

Avatar utente
sardylan
Linux 3.x
Linux 3.x
Messaggi: 993
Iscritto il: mar 24 apr 2007, 9:21
Nome Cognome: Luca Cireddu
Slackware: current 64bits
Kernel: 3.16
Desktop: KDE 4.14
Distribuzione: Debian - CLFS
Località: Cagliari
Contatta:

Re: Redirigere porta locale verso server POP esterno: iptables?

Messaggio da sardylan »

Stranissimo... :/ Anche perché la seconda soluzione prevede che sia la stessa macchina a far funzionare la cosa... Quindi non saprei...
Però toglimi una curiosità... Il tuo client di posta lavora sempre son le porte POP3 ed SMTP su SSL ??? Ovvero, quando usi la soluzione 2, come fai il tunnel?? Che comandi esegui esattamente (facciamo prima, così vedo come funziona la cosa)...

Potrei azzardare (senza vedere i comandi) che i servers POP3 ed SMTP che usi accettino connessione SSL anche su porte 25 e 110... Porte che quindi sono permesse dall'access point wap...

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Redirigere porta locale verso server POP esterno: iptables?

Messaggio da joe »

Questo è lo script che avvio dopo aver avviato il server sshd locale.

Codice: Seleziona tutto

SERVER_HOST="localhost"
USER=joe
LOCAL_HOST=127.0.0.1
CONNECT="ssh -C -fN ${USER}@${SERVER_HOST}"
# route mail traffic trought ssh tunnel

#  tim
tim_pop="box.posta.tim.it"
tim_smtp="mail.posta.tim.it"
tim_l_pop=2110
tim_r_pop=110
tim_l_smtp=2025
tim_r_smtp=25
TIM="-L ${tim_l_pop}/${tim_pop}/${tim_r_pop} -L ${tim_l_smtp}/${tim_smtp}/${tim_r_smtp}"

# gmail
gmail_pop="pop.gmail.com"
gmail_smtp="smtp.gmail.com"
gmail_l_pop=3995
gmail_r_pop=995
gmail_l_smtp=3465
gmail_r_smtp=465
GMAIL="-L ${gmail_l_pop}/${gmail_pop}/${gmail_r_pop} -L ${gmail_l_smtp}/${gmail_smtp}/${gmail_r_smtp}"

# lavabit
lavabit_pop="lavabit.com"
lavabit_smtp="lavabit.com"
lavabit_l_pop=4995
lavabit_r_pop=995
lavabit_l_smtp=4465
lavabit_r_smtp=465
LAVABIT="-L ${lavabit_l_pop}/${lavabit_pop}/${lavabit_r_pop} -L ${lavabit_l_smtp}/${lavabit_smtp}/${lavabit_r_smtp}"


#main

$CONNECT $BROWSER $WEB $TIM $GMAIL $LAVABIT
Poi ho impostato i vari accounts su sylpheed di conseguenza, in modo che puntino al localhost sulle porte locali (poi ci pensa il tunnel a redirigerle sulle porte remote corrette).
Il mio client lavora con SSL su POP3 e SMTP, ma non per tutti gli accounts, come vedi dallo script infatti, per l''account tim non uso SSL... in quanto non è prprio predisposto questo tipo di accesso sul loro server.

Secondo me l'unico discriminante forse potrebbe essere il client. Cioè accedendo direttamente al server remoto con sylpheed, qualcosa nel tragitto potrebbe intercettare lo user agent e bloccarlo, invece passando per sshd magari questa informazione risulta differente... anche se mi pare strano in effetti.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Redirigere porta locale verso server POP esterno: iptables?

Messaggio da joe »

Non avete nessun'altra idea in merito?

A me è venuta l'idea di fare una prova relativa alla navigazione web.
L'apn predisposto per il wap comporta la connessione ad internet attraverso un proxy che tim interpone tra l'utente ed internet. Questo proxy adatta le pagine web alle esigenze di un cellulare, inoltre limita alcune azioni... per esempio a volte ho anche avuto problemi ad effettuare il login qui sul forum.

Ora il ragionamento può essere il seguente:
Il traffico mail viene filtrato in qualche modo da tim, ma passando per un server ssh locale, questo tipo di traffico stranamente non sembra dare problemi e funziona come se non fosse filtrato.
Analogamente si potrebbe pensare:
Il traffico web passa attraverso un proxy che in qualche misura limita un po' la navigazione. Forse predisponendo il server ssh locale in modo da redirigere una porta locale verso la porta 80 dei siti richiamati col browser succederebbe qualcosa... magari per qualche "mistero" come per il traffico mail.
Cosa ne pensate?
E cosa proporreste per realizzare una configurazione di sshd coerente con quanto detto sopra?

Rispondi