Problem med postfix och ssh [löst]

Konfiguration av nätverk, hur man använder Ubuntu som server, och håller sin dator säker
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

Hej alla!
Jag tänkte försöka mig på att slippa byta server för utgående e-post på min bärbara dator så fort jag flyttar mig hemifrån.

Den lösning som jag tyckte verkade bäst efter en del googling innebär detta:

Kod: Markera allt

ssh -f micke@mindoman.se -L 2000:mindoman.se:25 -N
Enligt uppgift skall detta innebära att jag vidarebefordrar trafik på den bärbara datorns port 2000 via ssh till min servers port 25, så att jag kan skicka mejlen via postfix därifrån. I thunderbird ställer jag sedan i utgående server till localhost:2000. So far so good. Tyvärr lyckas min lilla manöver inte riktigt eftersom postfix vägrar att skicka mejlen vidare, vilket jag tycker är konstigt. När jag skickar trafiken på det här viset via ssh borde väl postfix uppfatta det som att mejlen kommer direkt från servern, eller?

Felmeddelandet jag får från postfix när jag försöker skicka mejl från den bärbara är: 5.7.1 <test@testmail.com>: Relay Access Denied

Är det någon där ute som kan hjälpa mig? Vad behöver ni se i så fall?

Här är /etc/postfix/main.cf i alla fall:

/Micke

Edit: Tog bort /etc/postfix/main.cf då det inte var den det var fel på.
Senast redigerad av 2 micke_nordin, redigerad totalt 8 gång.
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: Problem med postfix och ssh

Inlägg av andol »

Jag tror snarare att du är ute efter följande tunnel.

Kod: Markera allt

ssh -f micke@mindoman.se -L 2000:localhost:25 -N
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh

Inlägg av micke_nordin »

Det verkar funka bra, tack för hjälpen!

Hur gör jag för att få detta "sticky", för jag antar att det inte kommer ligga kvar vid omstart (och om det gör det, hur gör jag i så fall för att ta bort forwardingen vid behov)?

Alltså, finns det nån ssh-conf-fil där man kan lägga in något eller ska jag lägga kommandot i något autostart-script, och vilket i så fall?

/Micke
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: Problem med postfix och ssh

Inlägg av andol »

En fulvariant är ju alltid att peta in ssh-kommandot i /etc/rc.local.

En något mer robust lösning är ju annars att använda autossh tillsammans med ett init-skript jag hackade ihop i höstas.

http://www.andreasolsson.se/2008/08/27/ ... tunnelfoo/
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh

Inlägg av micke_nordin »

andol skrev:En fulvariant är ju alltid att peta in ssh-kommandot i /etc/rc.local.

En något mer robust lösning är ju annars att använda autossh tillsammans med ett init-skript jag hackade ihop i höstas.

http://www.andreasolsson.se/2008/08/27/ ... tunnelfoo/
/etc/rc.local verkar tyvärr inte funka, inte heller att köra det som en session.

Vad behöver jag fixa i ditt skript för att det skall funka för mitt exempel?

Är det bara den här biten som behöver ändras, och har jag i så fall gjort rätt?

Kod: Markera allt

## SETTINGS
#
# autossh monitoring port (unique)
MPORT=2000
# the ssh tunnel to setup
TUNNEL="-f micke@mindoman.se -L 2000:localhost:25 -N"
# remote user
RUSER="micke"
# remote server
RSERVER="mindoman.se"
# You must use the real autossh binary, not a wrapper.
DAEMON=/usr/lib/autossh/autossh
/Micke
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: Problem med postfix och ssh

Inlägg av andol »

Jo, det är bara den biten som ska behöva ändras. Dock så ska TUNNEL bara innehålla

Kod: Markera allt

TUNNEL="-L 2000:localhost:25 -N"
Sen så krävs det förstås att du har en tillräckligt modern version utav autossh installerat. Har du installerat den version som finns i repot för 8.04 så är det tillräckligt modernt.
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh

Inlägg av micke_nordin »

andol skrev:Jo, det är bara den biten som ska behöva ändras. Dock så ska TUNNEL bara innehålla

Kod: Markera allt

TUNNEL="-L 2000:localhost:25 -N"
Sen så krävs det förstås att du har en tillräckligt modern version utav autossh installerat. Har du installerat den version som finns i repot för 8.04 så är det tillräckligt modernt.
Jag installerade från autossh från intrepids repo, autossh ska det vara på klienten eller servern föresten, jag har installerat på klienten.

Varifrån kör jag ditt skript sedan?

/Micke
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: Problem med postfix och ssh

Inlägg av andol »

Det ska ligga på den dator varifrån du initierar tunneln. Autossh är alltså en wrapper runt ssh-clienten.

Skriptet hör hemma med de andra init-skripten i /etc/init.d/
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

Jag har fixat detta nu genom att lägga in koden i ett skript som först sover en stund och sedan fixar tunneln i sessioner. Jag fick inte till det på något annat sätt eftersom skriptet måste vänta på att networkmanager har kopplat upp det trådlösa nätverket innan skriptet körs.

Men det funkar ju också, även om det är ett ful-hack. Andols skript funkade förövrigt jättebra, förutom att jag var tvungen att starta det manuellt efter att networkmanager var klar med sitt, den som sitter på ett trådbundet nät har nog nytta av det skriptet....

/Micke
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

Kan jag lägga initscriptet i /etc/network/if-up.d? Kommer det att köras när nätverksuppkopplingen är klar då?

/Micke
KiviE
Inlägg: 2157
Blev medlem: 25 okt 2007, 14:00
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Luleå

Re: Problem med postfix och ssh [löst]

Inlägg av KiviE »

micke_nordin skrev:Kan jag lägga initscriptet i /etc/network/if-up.d? Kommer det att köras när nätverksuppkopplingen är klar då?

/Micke
http://www.cyberciti.biz/tips/how-do-i- ... gs-up.html

Det du behöver är alltså post-up /etc/network/if-up.d/<name of your script>
andol
Inlägg: 3093
Blev medlem: 31 dec 2007, 00:19
OS: Ubuntu
Utgåva: 23.10 Mantic Minotaur

Re: Problem med postfix och ssh [löst]

Inlägg av andol »

micke_nordin skrev:Kan jag lägga initscriptet i /etc/network/if-up.d? Kommer det att köras när nätverksuppkopplingen är klar då?
Jo, med lite modifikationer så går det alldeles utmärkt.

Till en börja med så får du ju skippa case-satsen, och därmed kravet att ange parametern start.

Sen så torde du vilja inleda med lämpligt test, så skriptet bara körs då "rätt" interface går upp. Om inte annat så är lo(opback) ett i sammanhanget helt fel interface.

Möjligtvis att det kan bli konstigt om nätverksinterfacet får för sig att, medans datorn är igång, gå upp och ner litegrann. Antagligen vill du se till att du behåller lämpligt testet från init-skriptet så att inte autossh försöker köra dubbelt.

Då jag har kört saker via ./if-up.d har det i regel varit genom att starta om ett befintligt skript från /etc/init.d/

EDIT: Oj, nu blev det visst lite rörigt. Poängen är dock att det krävs lite eftertanke och testande innan man får automagiska processer att bete sig automagiskt på rätt sätt.
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

andol skrev:
Då jag har kört saker via ./if-up.d har det i regel varit genom att starta om ett befintligt skript från /etc/init.d/

EDIT: Oj, nu blev det visst lite rörigt. Poängen är dock att det krävs lite eftertanke och testande innan man får automagiska processer att bete sig automagiskt på rätt sätt.
He, he, eftertanke var just ordet :D

Jag försökte lägga in detta i ett skript som jag kallade mail.sh i /etc/network/if-up.d:

Kod: Markera allt

#!/bin/sh
/etc/init.d/autofs restart
su micke
ssh -f micke@mindoman.se -L 2000:localhost:25 -N
Det ledde till att booten landade i ett skal (inloggad som micke) och ett filsystem som endast var läsbart ;D ;D ;D

Skulle man istället kunna skriva ett skript som lägger sig i bakgrunden tills det att den t.ex. klarar av att pinga google och sedan kör kommandona ovan? På det viset skulle det inte spela någon roll vilket nätverk jag ansluter via.

Som ni ser håller jag nu förövrigt på med två saker som skall starta när uppkopplingen är initierad, dels så ska ssh-tunneln för mejlen starta, men sedan ska den också montera en katalog från min server på den bräbara via sshfs. Bägge dessa grejer funkar jättebra om jag startar dem förhand, men jag skulle alltså vilja att de startar automatiskt så fort datorn kopplat upp sig via 3g-modemet, det trådlösa eller det trådbundna nätverket. Jag antar att det första kommandot måste köras som root medan det sista skall köras som mig själv för att allt ska funka förövrigt.

/Micke
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

Ok, nu tror jag att jag närmar mig:

Kod: Markera allt

#!/bin/sh
until  ping -c1 google.com > /dev/null 2>&1; do sleep 1s; done 
/etc/init.d/autofs restart
su micke
ssh -f micke@mindoman.se -L 2000:localhost:25 -N
Frågan är bara varifrån jag skall köra skriptet så att de körs i bakgrunden som root tills det går att pinga google och sedan kan byta till micke för det andra kommandot. Kör det som root från /etc/rc.local? Sedan blir det väl så att jag får köra ett wrapperskript som startar det här, kommandot där blir väl typ: /home/micke/bin/mail.sh &

/Micke

Edit: och sedan ska jag så klart pinga mindoman.se i stället för google eftersom det är onödigt att göra sig beroende av att deras server funkar :)
KiviE
Inlägg: 2157
Blev medlem: 25 okt 2007, 14:00
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Luleå

Re: Problem med postfix och ssh [löst]

Inlägg av KiviE »

Pinga är väl helt onödigt?

Om du kollade länken jag skickade ovan så borde det räcka med post-up /etc/network/if-up.d/<name of your script> i inställningarna för wlan0 (eller vilket interface det nu är). Fungerade inte det?

Sen hur skriptet exakt ska se ut vet jag inte men det känns som en finare lösning än att försöka pinga någon annan dator.
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

KiviE skrev:Pinga är väl helt onödigt?

Om du kollade länken jag skickade ovan så borde det räcka med post-up /etc/network/if-up.d/<name of your script> i inställningarna för wlan0 (eller vilket interface det nu är). Fungerade inte det?

Sen hur skriptet exakt ska se ut vet jag inte men det känns som en finare lösning än att försöka pinga någon annan dator.
Nej det funkade inte, det finns ju inget annat i /etc/network/interfaces än:

Kod: Markera allt

auto lo 
iface lo inet loopback
och jag vill alltså kunna använda ett godtyckligt utav tre olika interfaces (som alltså inte är definierade i /etc/network/interfaces utan förmodligen sköts av networkmanager), det gäller: eth0, eth1 och ppp0

Situationen är nu som följer, jag har lagt in ett anrop till ett skrip i /etc/rc.local
/usr/bin/mail.sh &

i det skriptet finns dessa kommandon:

Kod: Markera allt

#!/bin/sh
until ping -c1 google.com > /dev/null 2>&1; do sleep 1s; done 
/etc/init.d/autofs restart
/etc/init.d/autossh_tunnel restart
exit 0
Där /etc/init.d/autossh_tunnel är andols modifierade skript och /etc/init.d/autofs är en montering av en sshfs resurs.
Tyvärr funkar inte det att köra det från /etc/rc.local utan bara från terminalen...

/Micke
KiviE
Inlägg: 2157
Blev medlem: 25 okt 2007, 14:00
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Luleå

Re: Problem med postfix och ssh [löst]

Inlägg av KiviE »

micke_nordin skrev:
KiviE skrev:Pinga är väl helt onödigt?

Om du kollade länken jag skickade ovan så borde det räcka med post-up /etc/network/if-up.d/<name of your script> i inställningarna för wlan0 (eller vilket interface det nu är). Fungerade inte det?

Sen hur skriptet exakt ska se ut vet jag inte men det känns som en finare lösning än att försöka pinga någon annan dator.
Nej det funkade inte, det finns ju inget annat i /etc/network/interfaces än:

Kod: Markera allt

auto lo 
iface lo inet loopback
och jag vill alltså kunna använda ett godtyckligt utav tre olika interfaces (som alltså inte är definierade i /etc/network/interfaces utan förmodligen sköts av networkmanager), det gäller: eth0, eth1 och ppp0
Just ja, dumt nog så sköter networkmanager det utan att använda filen /etc/network/interfaces.
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

Jag har gjort så här nu, jag har lagt ett anrop till detta skript (/home/micke/bin/mail.sh &) i "sessioner" :

Kod: Markera allt

#!/bin/sh
until ping -c1 google.com > /dev/null 2>&1; do sleep 1s; done 
ssh -f micke@mindoman.se -L 2000:localhost:25 -N
Det fixar så att jag nu kan mejla via thunderbird utan att behöva byta server för utgående e-post oavsett vilket nät jag är uppkopplad på (jag skickar ju mejlen genom min egen server) genom att ange servern till localhost med port 2000.

Skriptet startar alltså tunneln automatiskt så fort den kan pinga google. Autofs monteringen gav jag upp, i stället har jag lagt till en vanlig nfs montering i /etc/fstab av disken vilket funkar prima när jag är hemma. Då jag är borta monterar jag den via nautilus vilket är en liten uppoffring jämfört med allt jobb med att få den automountas när nätverket är uppe.

/Micke
KiviE
Inlägg: 2157
Blev medlem: 25 okt 2007, 14:00
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Luleå

Re: Problem med postfix och ssh [löst]

Inlägg av KiviE »

Eftersom jag tycker pinga google är en rätt ful lösning har jag nu hittat en som kanske fungerar då.

Kod: Markera allt

#!/bin/sh
[ "$IFACE" != "lo" ] || exit 0
ssh -f micke@mindoman.se -L 2000:localhost:25 -N
och lägg skriptet i /etc/network/if-up.d/

Nu ska skriptet köra varje gång du får anslutning på något nätverkskort, eth0, wlan0 osv men inte bara om det är lo.

Du gör som du vill om du orkar testa eller inte men tycker det borde fungera. Andra filer i if-up.d mappen fungerar så iaf.
Användarvisningsbild
micke_nordin
Inlägg: 1539
Blev medlem: 21 aug 2008, 17:03
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Problem med postfix och ssh [löst]

Inlägg av micke_nordin »

Tack för det! Det verkar funka skitbra! Nu behöver jag inte heller handstarta tunneln om nätet råkar koppla i från efter att datorn startats!

/Micke
Skriv svar

Återgå till "Nätverk, säkerhet och servrar"