Met behulp deze handleiding heb ik mijn laptop en mijn home server zo geconfigueerd dat ik mijn uitgaande mail vanaf mijn laptop altijd kan versturen via de smtp server van mijn isp.
Hier zit nog een complicatie bij: het ip adres waarop ik mijn home server kan bereiken is 192.168.0.254 als ik thuis ben en xxx.xxx.xxx.xxx als ik ergens anders ben. Ik laat daarom mijn inetd.conf verwijzen naar een hostname 'mailhost'. Met behulp van een script in /etc/network/if-up.d maak ik in /etc/hosts een verwijzing naar het juiste ip adres. Het komt er op neer dat als de naam van het interface dat op komt 'wlan0' is en de SSID van het wlan 'MijnSSID' is ik 192.168.0.1 in mijn host file zet, anders het externe ip van mijn router (die poort 22 forward naar mijn server, ik heb een statisch ip).
Het script is:
Dit werkt, maar is niet waterdicht. Stel dat ik mijn laptop thuis via ethernet aansluit (want grote file transfer naar mijn server), dan werkt het niet. Of als wlan0 plotseling wlan1 wordt.
De elegantste methode die ik heb kunnen bedenken is detectie van het mac adres van je router. Maar dat is vrij traag. De commando's
zijn allebei nogal traag (waarom?) Heeft iemand een beter idee om te detecteren of je laptop verbonden is met je thuisnetwerk?
Hier zit nog een complicatie bij: het ip adres waarop ik mijn home server kan bereiken is 192.168.0.254 als ik thuis ben en xxx.xxx.xxx.xxx als ik ergens anders ben. Ik laat daarom mijn inetd.conf verwijzen naar een hostname 'mailhost'. Met behulp van een script in /etc/network/if-up.d maak ik in /etc/hosts een verwijzing naar het juiste ip adres. Het komt er op neer dat als de naam van het interface dat op komt 'wlan0' is en de SSID van het wlan 'MijnSSID' is ik 192.168.0.1 in mijn host file zet, anders het externe ip van mijn router (die poort 22 forward naar mijn server, ik heb een statisch ip).
Het script is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #!/bin/bash logger -i "running mailhost script" # remove the existing mailhost lines sed '/.*mailhost$/ d' /etc/hosts > /etc/newhosts mv /etc/newhosts /etc/hosts # quit if we are not configuring wlan0 if [ $IFACE = "wlan0" ]; then logger -i "configuring wlan0, retrieving SSID" # find out the identity of the local wlan SSID=$(iwconfig wlan0 | grep -o "ESSID:\".*\"" | cut -f 2 -d "\"") fi if [ $IFACE = "wlan0" ] && [ $SSID = "MijnSSID" ]; then logger -i "configuring mail host for home" echo -e "192.168.0.1\tmailhost" >> /etc/hosts else logger -i "configuring mail host for out" echo -e "my.external.ip.number\tmailhost" >> /etc/hosts fi |
Dit werkt, maar is niet waterdicht. Stel dat ik mijn laptop thuis via ethernet aansluit (want grote file transfer naar mijn server), dan werkt het niet. Of als wlan0 plotseling wlan1 wordt.
De elegantste methode die ik heb kunnen bedenken is detectie van het mac adres van je router. Maar dat is vrij traag. De commando's
code:
1
2
| route | grep default | cut etc etc arp 192.168.0.1| cut etc etc |
zijn allebei nogal traag (waarom?) Heeft iemand een beter idee om te detecteren of je laptop verbonden is met je thuisnetwerk?