Affärssystem: ADSL_VPN_SYNC.SH

Sökväg i meny: Revision 2005-06-15

Arbetsgång vid övervakning av tunnlar

Beskrivning av rutin i Affärssystemet SystemQ

Steg 1. cron startar Adsl_vpn_sync.sh:
#!/bin/sh
FORETAG="1"
DLGDRIVER="BACKGROUND"
export FORETAG DLGDRIVER

/opt/eloquence6/bin/eloqcore -t3 Adsl_vpn_sync.02 2>/tmp/Adsl_vpn_sync.log

Testar om kontakt finns med Internet

Testar om kontakt finns med Internet Programmet provar att pinga Publ_dns$ som man satt i Vpn konfigurationsprogram
Svar från public DNS
  1. Om den får svar så går den vidare och kontrollerar om Wan_ip har ändrats
  2. Har vi fått en ny WAN IP-adress
    1. Anroppar CALL Tunnel(1)
      1. Förnyad kontroll av WAN-ipnr
      2. Anropar CALL Ipsec_conf(1)
        1. Ny brandväggs konfiguration
        2. Ny konfigurationsfil ipsec.conf
        3. Startar om tunnlar
    2. Testar tunnlar
  3. WAN IP-nr är oförändrat
    1. Testar tunnlar
    2. Söker efter tunnlar med Tunnel.Status$(3)="STARTA") och Tunnel.Status$(1)="OK"
    3. Anropar CALL Tunnel(3) för att starta om dessa
      1. Ny konfigurationsfil ipsec.conf
      2. Startar om tunnlar
      3. Testar tunnlar för att uppdatera dessa till TEST OK
Ingen kontakt public DNS
  1. Sätter Setup.Status$(2) till "DOWN"
  2. Uppdaterar Tunnel.Status$(3) till "STARTA" och Tunnel.Status$(4) till "DOWN"
  3. Undersöker problem med Internetanslutning
Steg 3. Om det är samma Wan_ip så går den vidare och kontrollerar alla tunnlar genom att pinga Tunnel_ping$ som man satt i Vpn.01 om den inte får svar ändrat statusen på den tunneln till STARTA, programmet startar om den tunneln och går tillbaka till Steg 2. och kör vidare.

Kontroll om vår WAN-IP-nr har ändrats

Uppdaterar status Uppdaterar Setup.Status$(2) med "PUBL DNS"
Kontroll av WAN IP-nr
  1. Hämtar vilket nätverkskort som används på Internetsidan Saknas information funger ej programmet.
  2. Analyserar IP-nr från operativsystemet med ifconfig
  3. Om IP-nr finns
    1. Om IP-nr har ändrats
      1. Uppdaterar Setup.Status$(3) med "NY WANIP"
      2. Uppdaterar Setup.Date_time$(1) med tidpunkt för nytt IP-nr
      3. Lagrar namn på brandvägg
        WAN IP-nr
        i filen /tmp/new_ip.mail:
                 fw_konfig
                 systemq1.harbolaget.se ;
                 81.225.64.157 ;
                 
    2. Om IP-nr ej har ändrats
      1. Uppdaterar Setup.Status$(3) med "IPSEC"
      2. Uppdaterar Setup.Date_time$(1) med tidpunkt för IP-nr
  4. Om IP-nr saknas
    1. Uppdaterar Setup.Status$(3) med "DOWN"
    2. Uppdaterar Setup.Date_time$(1) med tidpunkt
    3. Lagrar WAN DOWN och tidpunkt i /tmp/network_status
    4. Om Reboot är satt lagras "Rebooting Firewall" i samma fil
    5. Skickar filen /tmp/network_status till administratören med e-post.
    6. Om Reboot är satt startas brandväggen om med /sbin/reboot

Problem med Internetanslutning

Uppdatera statusen i databasen Om ej svar uppdateras Setup.Status$(2) till DOWN
Status till fil Lagrar "Public dns DOWN" i filen /opt/SystemQ/Tunnel/status
Testar WAN Fortsätter med Kontroll av WAN IP-nr
Om NYTT WAN-IPnr Gör ett nytt försök medTestar om kontakt finns med Internet

Försöken upprepas 5 gånger eller tills programmet hållit på i 4 minuter

Ny konfigurationsfil ipsec.conf

/etc/ipsec.conf
  1. Skriver en ny konfigurationsfil till /tmp/ips.DATA för tunnlar med Tunnel.Status$(1)=OK
  2. Uppdaterar Tunnel.Status$(3) med "STARTA" om Tunnel.Status$(3) ej har värdet "UP"
  3. Uppdaterar Tunnel.Status$(2) med "IPSEC"
  4. Uppdaterar Setup.Status$(3) med "IPSEC"
  5. kopierar /tmp/ips.DATA till /etc/ipsec.conf

Startar om tunnlar

Starta om ipsec Om Setup.Status$(3)="NY WANIP" starta ipsec om med "/etc/init.d/ipsec restart"
Starta om tunnlar
  1. Sök efter tunnlar med Tunnel.Status$(3)="STARTA" och Tunnel.Status$(1)="OK" och Tunnel.Status$(2)="IPSEC")
  2. Stänger ner Tunneln
  3. Startar om
  4. Uppdaterar Tunnel.Status$(3) med "UP"
  5. Uppdaterar Tunnel.Date_time$(3) med tidpunkt
  6. Gör en kort paus inna nästa tunnel

Ny brandväggs konfiguration

Setup.Status$(4)="TABL" Gör en konfigurationsfil /tmp/rcf.DATA som för att användas av iptables
Setup.Status$(4) med övriga värden Gör en konfigurationsfil /tmp/rcf.DATA som för att användas av ipchaines
Startar om brandvägg
  • kopierar /tmp/rcf.DATA till /tmp/rc.firewall"
  • kopierar /tmp/rc.firewall /etc/rc.d/rc.firewall"
  • Om man inte kör med iptables (Setup.Status$(4)="TABL") startas brandväggen om med /etc/rc.d/rc.firewall

Testar tunnlar

Väljer tunnlar Söker efter tunnlar med Tunnel.Status$(3)="IPSEC") och Tunnel.Status$(1)="OK"

Tidigare testades bara tunnlar med:

Söker efter tunnlar med Tunnel.Status$(3)="UP") och Tunnel.Status$(1)="OK"

Testar förbindelse
  1. pingar angiven pingadress i det lokal nätverket
  2. Om ingen kontakt
    1. Uppdaterar Tunnel.Status$(3) med "STARTA"
    2. Uppdaterar Tunnel.Status$(4) med "DOWN"
    3. Uppdaterar Tunnel.Date_time$(4) med tidpunkt
    4. Lagrar tunnelnamn och WAN-IP-nr i filen /opt/SystemQ/Tunnel/mail.config
    5. E-postar filen /opt/SystemQ/Tunnel/mail.config till Mail adress tunnel
  3. Om kontakt
    1. Uppdaterar Tunnel.Status$(3) med "UP"
    2. Uppdaterar Tunnel.Status$(4) med "TEST OK"
    3. Uppdaterar Tunnel.Date_time$(6) med tidpunkt om denna är nollstäld från tidigare
    4. Uppdaterar Tunnel.Date_time$(7) med tidpunkt
Affärssystem SystemQ Handbok
Affärssystem
Support
Affärssystem