Ciphwall

Aus Ciphron Knowledge Base

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Grundeinrichtung

Zugriff via Seriell

Für die Erstkonfiguration empfiehlt sich der Login via seriellem Kabel. Benutzen Sie dazu bei der CiphWall MINI G1 den ausgewiesenen COM Port, bei anderen CiphWall Geräten den Port CONSOLE.

Die Verbindungeinstellungen lauten wie folgt: 38400 8/N/1

38400 baud
8 Datenbits
kein Stopbit
1 Paritätsbit

Unter Windows können Sie das Programm HyperTerm (Start -> Programme -> Zubehör -> HyperTerminal) nutzen, unter Linux, FreeBSD oder OpenBSD empefhlen wir Minicom.

Interfaces

Die Konfiguration der Interfaces erfolgt in der Datei /etc/ciphos.cfg:

Relevant sind die Parameter:

if_cnt - Anzahl der *aktiven* Interfaces
if_* - Konfigurationsblock pro Interface

Aktivieren der Konfiguration via Neustart des Systems.

Anzeigen der Netzwerkinterfaces

ifconfig -a


Kurzfristiges Umkonfigurieren von Interfaces:

  • IP Addresse setzen / ändern:
ifconfig <INTERFACE> <IP_ADDRESSE> netmask <NETMASK> up

  • Alias hinzufügen:
ifconfig <INTERFACE> alias <IP_ADDRESSE> netmask <NETMASK>
  • IP Addresse entfernen:
ifconfig <INTERFACE> delete <IP_ADDRESSE>

Routen

Grundsätzlich kann jede Netzmaske auch in CIDR (/XX) angegeben werden.


Einrichtung des Default Gateways

Temporär

/sbin/route delete default               # route entfernen
/sbin/route add default <IP_ADDRESS>

Dauerhaft

vi /etc/ciphos.cfg

anpassen des Parameters 'gw':

gw=1.2.3.4

und anschliessender reboot mittels:

reboot

Einrichten von Host und Netzrouten

Temporär hinzufügen:


/sbin/route add -net xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz #(Netzroute)
/sbin/route add -host xxx.xxx.xxx.xxx zzz.zzz.zzz.zzz #(Hostroute)

Temporär löschen:

/sbin/route delete -net xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy


Statisch:

Editieren Sie die Datei /etc/route.conf mit vi oder nano:

 # Netzroute
 /sbin/route add -net xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz
 # Hostroute
 /sbin/route add -host xxx.xxx.xxx.xxx zzz.zzz.zzz.zzz


Legende:

xxx.xxx.xxx.xxx <- Netzwerkaddresse

yyy.yyy.yyy.yyy <- Subnetzmaske

zzz.zzz.zzz.zzz <- Gateway IP

Features

Dynamic DNS

DSL Zugang

Bridging

Wireless

Firewalling

Einführung PF

NAT

Paketfilter

Loadbalancing

Traffic Shaping / QoS

FTP

Beispiele

Asterisk / SIP

Webseiten

VPN

IPSEC

Laden von Konfigurationen

isakmpd -K
ipsecctl -f /etc/ipsec.conf

Beenden von IPSEC

Damit Sie den IPSEC Prozess neu initialisieren können, müssen Sie als erstes die ProcessID (PID) ermitteln:

# ps auxwww | grep isakmpd
root     23911  0.0  0.4   992   468 ??  I     11:47AM    0:00.01 isakmpd: monitor [priv] (isakmpd)
_isakmpd 10585  0.0  1.9  2360  2424 ??  S     11:47AM    0:01.66 isakmpd -K -DA=40 -d

Die PID finden Sie in der zweiten Spalte (hier 23911 und 10585). Nun beenden Sie bitte den Prozess mit:

kill <PID>

Es ist dabei egal, ob Sie die PID aus Zeile 1 oder Zeile 2 nutzen, wenn wir also Zeile 1 nutzen, lautet der Aufruf wie folgt:

kill 23911

Nun ist der Prozess beendet.

Neustarten von IPSEC

Um IPSEC neuzustarten, müßen Sie den isakmpd beenden und ihn dann erneut starten. Siehe Abschnitt Beenden von IPSEC und Laden von Konfigurationen.

Einrichten von Tunneln

Grundlagen IPSEC:

Unterstütze Modi:

Main-Mode

Authentication      Key Length
hmac-md5            128 bits
hmac-sha1           160 bits
hmac-sha2-256       256 bits
hmac-sha2-384       384 bits
hmac-sha2-512       512 bits
Cipher              Key Length
des                 56 bits
3des                168 bits
aes                 128 bits
blowfish            160 bits
cast                128 bits
skipjack            80 bits

Quick-Mode:

Authentication      Key Length
hmac-md5            128 bits
hmac-ripemd160      160 bits
hmac-sha1           160 bits
hmac-sha2-256       256 bits
hmac-sha2-384       384 bits
hmac-sha2-512       512 bits
Cipher              Key Length
des                 56 bits
3des                168 bits
aes                 128 bits
aesctr              160 bits
blowfish            160 bits
cast                128 bits
skipjack            80 bits


Struktur:

für passives IKE (eingehende Verbindungen):

ike passive esp from <QUELL_NETZ>/<CIDR> to <ZIEL_NETZ>/<CIDR> \
        local <EIGENE_IP> peer <IP_GEGENSEITE> \
        main auth <AUTH_ALG> enc <CRYPTO_ALG> group <DH_GROUP> \
        quick auth <AUTH_ALG> enc <CRYPTO_ALG> group <DH_GROUP> \
        psk <PRESHARED_KEY>


für IKE (wir etablieren die Verbindung):

ike esp from <QUELL_NETZ>/<CIDR> to <ZIEL_NETZ>/<CIDR> \
        local <EIGENE_IP> peer <IP_GEGENSEITE> \
        main auth <AUTH_ALG> enc <CRYPTO_ALG> group <DH_GROUP> \
        quick auth <AUTH_ALG> enc <CRYPTO_ALG> group <DH_GROUP> \
        psk <PRESHARED_KEY>


Beispiel:


ike passive esp from 10.0.0.0/16 to 10.1.0.0/16 \
        local 1.2.3.4 peer 5.6.7.8 \
        main auth hmac-sha1 enc 3des group modp1536 \
        quick auth hmac-sha1 enc 3des group none \
        psk XXXXXXXXX

Anzeigen von Tunneln

das Anzeigen von etablierten Tunneln erfolgt mit dem Befehl:

netstat -rn -f encap

Fehleranalyse

den ISAKMPD Prozess im Debugging Mode starten:

isakmpd -K -DA=40 -d

Nun wird auf der Kommandozeile gelogt.

Bitte beachten, dass das IPSEC Regelwerk noch via

ipsecctl -f /etc/ipsec.conf

geladen werden sollte.

Client Installation

Windows

OpenBSD

Linux

OpenVPN

Anzeigen der etablierten Tunnel

Exkurs: X.509 Zertifikate

Inkurs: Lieber PGP benutzen.

Generieren von Zertifikaten

Sperren von Zugängen

Client Installation

Windows

OpenBSD

Linux

Ciphwall Management

Assoziieren der Ciphwall zum Ciphwall Management

  • Das System muss über einen festen Hostnamen (besser: feste IP-Adresse) erreichbar sein
  • Damit das Management Center die CiphWall verwalten kann, muss der Management-SSH-Key auf dem Zielsystem authorisiert werden:
 $ ssh root@ZIELSYSTEM "mkdir -p /root/.ssh"
 $ scp /var/ciphwall-mgn/manager_key/manager.pub root@ZIELSYSTEM:/root/.ssh/authorized_keys
  • Ausserdem muss die ciphos.cfg auf dem Zielsystem entsprechend angepasst werden:
openvpn="yes"
httpd="yes"
CWMGM="yes"
  • Damit ein Kunde eine IP aus dem Transfernetz (192.168.19.0/24) bekommt, muss der DHCPd in /etc/ciphos.cfg und /etc/dhcpd.conf konfiguriert sein.
  • Damit ein Kunde surfen kann, müssen DNS-Client (/etc/resolv.conf) und DNS-Server (DNSSRV="" in /etc/ciphos.cfg) auf der Mini konfiguriert sein.


Ciphwall Management spezifische Befehle

Webservices

Lastverteilung auf Webserver

HTTPS auf HTTP Reverse Proxy

Die Konfiguration eines HTTPS/HTTP Reverse Proxy erfolgt in der Datei /etc/pound.conf.

Hier wird folgendes Szenario exemplarisch geschildert:


 INTERNET   ------------     CiphWall ------------- Interner Webserver (HTTP)

Die Ciphwall hat die externe IP 81.1.2.3 der Interne Webserver hat die IP 10.10.10.10

Um nun die Webseite vom Internen Webserver, die via HTTP bereitgestellt wird, ins Internet unter HTTPS zu publizieren, muss folgendes beachtet werden:

- ein gültiges SSL Zertifikat inklusive Privatekey im PEM Format in einer Datei muss vorhanden sein. Dieses muss zB mit WinSCP unter /etc/pound/server.pem gespeichert werden.

- der Zugriff auf die Ciphwall via HTTPS muss moeglich sein (/etc/pf.conf):

  pass in quick on $Ext_if from any to 81.1.2.3 port 443 keep state

- der Interne Webserver muss Anfragen der CiphWall auf Port 80 bearbeiten können:

 - Test mittels telnet 10.10.10.10 80 auf der CiphWall 

Konfigurationsdatei /etc/pound/pound.cfg:

# debugging only:
#Daemon 0
#LogFacility -
#LogLevel 5

ListenHTTPS
  Address 81.1.2.3
  Port    443
  Cert    "/etc/pound/server.pem"

  Service
      BackEnd
          Address 10.10.10.10
          Port    80
      End
  End
End


Starten von Pound:

pound -f /etc/pound/pound.conf

Pound Start beim Booten:

echo "/usr/local/sbin/pound -f /etc/pound/pound.conf" >> /etc/rc.local

Beenden von pound:

ps auxwww | grep pound 
kill <PID_VON_POUND>

oder

pkill pound

Weiterfuehrende Literatur:

Pound Webseite: http://www.apsis.ch/pound/

Anmerkungen:

ACHTUNG! Fuer Pound Version 1 (CiphOS < 4.3.4) gilt eine andere Konfigurationssyntax:

Version ist erkennbar, dadurch, dass pound -V keine Ausgabe bzw Fehler liefert.

Obiges Beispiel in pound V1:

LogLevel 3

ListenHTTPS 81.1.2.3,443 /etc/pound/server-test.pem

UrlGroup ".*"
BackEnd 10.10.10.10,80,1
EndGroup

HTTP Proxy

Netzwerkanalyse

Antwortzeiten und Erreichbarkeit

ping

ping ist ein Programm mit dem man sehr einfach testen kann ob ein Gerät über Netzwerk zu erreichen ist. Dazu öffnen Sie ein Terminal und geben Sie ping -c3 und die IP-Adresse des Gerätes ein. Die Zeile muss in etwa so aussehen.

ping -c3 10.0.0.40

Wenn Sie Windows benutzen lassen Sie das -c3 weg also

ping 10.0.0.40

Wenn Ausgabe von ping wie folgt aussieht ist das Gerät erreichbar. Die Zahl hinter time= ist die Antwortzeit in millisekunden.

PING 10.0.0.40 (10.0.0.40) 56(84) bytes of data.
64 bytes from 10.0.0.40: icmp_seq=1 ttl=64 time=2.58 ms
64 bytes from 10.0.0.40: icmp_seq=2 ttl=64 time=2.14 ms
64 bytes from 10.0.0.40: icmp_seq=3 ttl=64 time=2.11 ms

--- 10.0.0.40 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 2.111/2.277/2.580/0.221 ms

Falls die Ausgabe so aussieht ist das Gerät garnicht oder unter einer andern IP-Adresse zu erreichen.

PING 10.0.0.40 (10.0.0.10) 56(84) bytes of data.
From 10.0.0.49 icmp_seq=1 Destination Host Unreachable
From 10.0.0.49 icmp_seq=2 Destination Host Unreachable
From 10.0.0.49 icmp_seq=3 Destination Host Unreachable

--- 10.0.0.10 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 1999ms , 
pipe 3

Bandbreitenmessung

Trafficanalyse

FAQ

Logfile Analyse über Reboots hinweg

Um die Logfiles von zum Beispiel Ihrer CiphWall auch nach einem Neustart noch analysieren zu können gibt es die Möglichkeit die Logs auf einem Server (Host) speichern zu lassen. Dazu müssen Sie auf dem der Ciphwall in der Datei /etc/syslog.conf die folgende Zeile hinzufügen.

*.*                                                 @ip-Adresse-des-Hosts

Auf der Host muss der Syslog jetzt noch so eingestellt werden dass er die Logs der CiphWall annimmt.

OpenBSD Host

Unter OpenBsd muss der syslogd mit dem Parameter -u gestartet werden.

Linux Host

Unter Linux muss der syslogd mit dem Parameter -r gestartet werden.

Windows Host

Unter Windows kann der "Kiwi Syslog Daemon" die Logs von Ihrer CiphWall empfangen. [[1]]

DSL Verbindung neu initialisieren

OpenVPN Client unter Windows Vista

Password vergessen

Persönliche Werkzeuge