Kirjoittaja Aihe: Kotipalvelin ja ulkoinen IP-osoite. Ratkaisu.  (Luettu 2943 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 656
    • Profiili
Kotipalvelin ja ulkoinen IP-osoite. Ratkaisu.
« : 19.12.09 - klo:17.03 »
Ainakin minun pitää päästä päivittäin, monesti montakin kertaa omalle kotipalvelimelle taloverkon ulkopuolelta. Käytän tähän ainoastaan SSH/SFTP/SCP:tä. Ongelmia tulee, jos ISP joutuu muuttamaan kotipisteiden IP-osoitteita. Tätä varten on olemassa monenkinlaisia temppuja. Omaan tarpeeseeni kehitin mahdollisimman yksinkertaisen ratkaisun. (Mitä, eikö sinulla ole kotiserveriä ?!)

- Talon ulkopuolisessa verkossa olevalle serverille tehdään yksi sivu: osoite.shtml, jonka sisältönä on ainoastaan yks tagi:
<!--#echo var="REMOTE_ADDR"-->
Tämä tulostaa selaimen ruudulle sivua lukevan työaseman osoitteen.
Haetaan crontab:n ohjaamana tämä osoite wget:llä ja verrataan sitä edellisenä päivänä haettuun osoitteeseen. Mikäli osoitteet ovat erilaiset, lähetetään sähköpostia omaan postilaatikkoon. Postin lähettämiseen käytetään samaa ssmtp -pakettia, joka on jo ladattu serveriin backup-järjestelmän tiedotuksia varten. Backupista olen kirjoittanut jo aiemmin.

Crontabiksi käy vaikka seuraava, joka liipaisee tarkistuksen kolmen tunnin välein joka päivä:
 07 */3 * * * /home/bin/hae_IP/hae_IP.sh 2>> /var/log/cron_root.err 1>>/dev/null

Ohessa listaus käyttämästäni scriptistä
Scriptissä sisällä oleva sähköpostiosoite sekä palvelun tarjoava www-osoite kannattaa vaihtaa. Aion kyllä pitää tuon www-sivun tuolla, mutta en takaa sitä.

------------<hae_IP.sh>-------------
#!/bin/bash
# This script wgets a certain html file from a server outside the home net
# The file contains only an environment tag <!--#echo var="REMOTE_ADDR"-->
# While fetched with wget, the file contains the IP address of home
# Compare this to a day old version and sen a message, if the file has changed.

RECEIVER=mistofeles@postipalvelin.fi
MESSAGE=temp.tmp;
# ------------- system commands used by this script --------------------
ECHO=/bin/echo;
CAT=/bin/cat;
SENDMAIL=/usr/sbin/sendmail;
# ------------- the script itself --------------------------------------
# Copy previous address to another file:
mv osoite.shtml old_IP;
# Get the new value:
wget -q http://www.saunalahti.fi/orfeus/osoite.shtml

# Compare values = files:
cmp -s osoite.shtml old_IP;
if (( $? )) ; then {
        $ECHO "To: $RECEIVER" > $MESSAGE;
        $ECHO -n "Subject: Uusi koti-IP: " >> $MESSAGE;
        $CAT osoite.shtml >> $MESSAGE;
        $ECHO "" >>$MESSAGE;
        $CAT osoite.shtml >> $MESSAGE;
        $ECHO " = Koti-ADSL-liittyman uusi ulkoinen osoite." >>$MESSAGE;
        $CAT $MESSAGE | $SENDMAIL $RECEIVER;
} fi;
------------</hae_IP.sh>-------------

Jiku

  • Käyttäjä
  • Viestejä: 248
    • Profiili
Vs: Kotipalvelin ja ulkoinen IP-osoite. Ratkaisu.
« Vastaus #1 : 19.12.09 - klo:17.48 »
käyhän se noinkin, mutta eikö dynaaminen nimipalvelu olisi paljon vaivattomampi tapa?
esimerkiksi dy.fi -palveluun on helppo päivittää osoite automaattisesti.
joissain adsl-modeemeissa on suoraan tuki dynaamisille nimipalveluille.
itse päivitän crontabilla ajamalla skriptin:
Koodia: [Valitse]
#!/bin/bash
wget --delete-after --no-check-certificate --no-proxy --user=<käyttäjätunnus@domain> --password=<salasana> https://www.dy.fi/nic/update?hostname=<tunnus>.dy.fi
 
Puoliksi suunniteltu on hyvin tehty

Mistofelees

  • Käyttäjä
  • Viestejä: 656
    • Profiili
Vs: Kotipalvelin ja ulkoinen IP-osoite. Ratkaisu.
« Vastaus #2 : 01.01.10 - klo:18.58 »
käyhän se noinkin, mutta eikö dynaaminen nimipalvelu olisi paljon vaivattomampi tapa?
esimerkiksi dy.fi -palveluun on helppo päivittää osoite automaattisesti.

En yhtäkkiä keksinyt, miten saan ssh:n toimimaan ulkoa sisään dy.fi:n kautta toimien.
Toisaalta minulla ei ole tarkoitusta asetaa talon sisäistä www-palvelinta näkymään ulospäin.
SSH/SFTP/SCP ovat täysin riittävät työkalut, kun haluan hakea dokumentteja kotiserveriltä, eikä kenelläkään muulla ole sinne asiaa.

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: Kotipalvelin ja ulkoinen IP-osoite. Ratkaisu.
« Vastaus #3 : 01.01.10 - klo:23.34 »
Toimiiko tämä?
Koodia: [Valitse]
ssh tunnus@osoite.dy.fi