Communitygate

0

Eine Installationsbeschreibung der Debian Pakete aus dem Wiregate Repository auf einem Debian/Ubuntu System.

Entstanden aus der Diskussion in diesem Thread hier.

Achtung:

Das hier ist kein Wiregate und wird auch keins werden!
Es ist und bleibt ein Bastelprojekt. Dazu muss man Zeit haben und den Spaß/Willen sich in Linux einzuarbeiten.
Wer das nicht will soll sich bitte ein Wiregate kaufen. Da ist alles mehrfach getestet, und mit Netz und doppeltem Boden versehen.
Die Plattform mit der Debian Installation des Wiregate wird hier nur annähernd nachgebildet. Da steckt viel KnowHow hinter.

Es wird ein installiertes Debian Lenny vorausgesetzt, sollte aber auf Debian Squeeze oder Ubuntu x.y auch funktionieren.
Instalationsanleitungen gibt es im Thread (PXE Install von Debian Lenny) bzw. genügend im Netz.
Ich habe für ein Debian Squeeze einige Anmerkungen hinzugefügt, bitte also einmal vorher komplett die Anleitung lesen.
Ein Installation mit Debian Squeeze kann ich nicht empfehlen, die unten aufgeführten Probleme mit Webmin und anderen Dingen führen zu einem nicht zuverlässigem System.

Diese Anleitung beschreibt nur die Grundkonfiguration. Feinheiten lassen sich zum Schluss bequem über die Webmin Oberfläche machen.

Als erstes ein
[CODE]apt-get update
apt-get upgrade
[/CODE]

sshd
Dann installieren wir ssh damit wir von einem beliebigen PC per ssh auf unser CommunityGate kommen.
[CODE]apt-get install ssh[/CODE]
jetzt kann man per Putty oder WinSCP auf das CommunityGate zugreifen.

Repositoriys einbinden

An das Ende der /etc/apt/sources.list
[CODE]#Wiregate
deb http://repo.wiregate.de/wiregate wiregate-0.1 main

#Eibd
deb http://www.auto.tuwien.ac.at/~mkoegler/debian eib main
deb-src http://www.auto.tuwien.ac.at/~mkoegler/debian eib main
[/CODE] hinzufügen.
Danach folgendes ausführen:
[CODE]wget http://repo.wiregate.de/wiregate/wiregate-apt-pubkey
apt-key add wiregate-apt-pubkey[/CODE]Für das Repo von der TU Wien die Datei tuwien-apt-pubkey erstellen und in Ihr den Inhalt ab „—–BEGIN…“ und „—–END…“ von der Website hier einfügen.

Mit [CODE]apt-key add tuwien-apt-pubkey[/CODE] wird auch deren Schlüssel eingetragen.

Jetzt ein [CODE]apt-get update[/CODE] damit die neuen Repositories eingelesen werden.

Installation lighttpd mit php5.

Hier ist die Reihenfolge wichtig!
Installiert man das Packet php5 vor php5-cgi bekommt man auch noch einen apache mit installiert! 😡
Die Pakete portmap und fam braucht man nicht deshalb gleich wieder entfernt.

[CODE]
apt-get install lighttpd php5-cgi php5
apt-get purge portmap fam
[/CODE]

Damit der lightty perl und php ausführt (shebang) die Datei /etc/lighttpd/conf-available/10-cgi.conf editieren
[CODE]cgi.assign = (
„.pl“ => „/usr/bin/perl“,
„.php“ => „/usr/bin/php-cgi“,
# „.py“ => „/usr/bin/python“,
)[/CODE]

Bei Debian Squeeze kommentiert man so aus:
[CODE]cgi.assign = (
„.pl“ => „/usr/bin/perl“,
„.py“ => „/usr/bin/python“,
)[/CODE]

jetzt noch
[CODE]
lighty-enable-mod
-> cgi auswählen
/etc/init.d/lighttpd force-reload[/CODE]

Webmin installation
[CODE]
apt-get install webmin
[/CODE]

Bei Debian Squeeze funktioniert das nicht da folgende Fehlermeldung kommt:
[CODE]Die folgenden Pakete haben unerfüllte Abhängigkeiten:
webmin : Hängt ab von: libmd5-perl ist aber nicht installierbar
E: Beschädigte Pakete[/CODE]

Daher installieren wir Webmin manuel. Mit Version 1.45 wie aus dem Wiregate Repo gibt es die gleiche Fehlermeldung, daher nehme ich Version 1.60.
[CODE]
cd /usr/src
wget
apt-get install libnet-ssleay-perl openssl libauthen-pam-perl libio-pty-perl apt-show-versions python
dpkg -i webmin_1.600_all.deb[/CODE]

OWFS Server
Für den OWFS Server muss die Datei /etc/owfs_alias.conf erstellt werden:
[CODE]
touch /etc/owfs_alias.conf
apt-get install libfuse2 owfs-fuse owfs-httpd owfs-server
[/CODE]

Die Fehlermeldungen bei Squeeze kann man ignorieren:
[CODE]update-rc.d: warning: owfs-fuse stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (S 0 1 6)[/CODE]
In den Init-Scripts ist bei den Stop-Scripten der Level „S“ mit angegeben, das mag Squeeze nicht.

RRDtools
[CODE]
apt-get install rrdtool
[/CODE]
Für cometvisu muss man die Version der rrdtools installieren, sonst werden keine graphen angezeigt:
[CODE]apt-get install rrdtool=1.3.1-4+nmu1[/CODE]

Eibd Server und Client
Der zweite Befehl verhindert ein Update des eibd-clients auf Version 0.0.5, siehe hier.

[CODE]
apt-get install bcusdk eibd-clients=0.0.4+nmu18 eibd-server
echo „eibd-clients hold“ | dpkg –set-selections
[/CODE]

Dateien für die Gruppenadressen anlegen:
[CODE]
mkdir /etc/wiregate
touch /etc/wiregate/eibga.conf
touch /etc/wiregate/eibga_mg.conf
touch /etc/wiregate/eibga_hg.conf
chmod 555 /etc/wiregate/eibga.conf
chmod 555 /etc/wiregate/eibga_hg.conf
chmod 555 /etc/wiregate/eibga_mg.conf
[/CODE]

Monit
-> ändern bzw einfügen
[CODE]
apt-get install monit
nano /etc/default/monit
-> startup=1
nano /etc/monit/monitrc
-> include /etc/monit/enable/*
mkdir /etc/monit/disable
[/CODE]

Bei Squeeze habe ich den include Eintrag auf /etc/monit/conf.d/* gelassen und statt dessen
einen Symbolischen Link erstellt:

[CODE]cd /etc/monit/
ln -s conf.d enable[/CODE]

Pakete die nicht automatisch mit installiert werden
[CODE]
apt-get install ntp beep psmisc python-ownet libownet-php libownet-perl libconfig-general-perl libmath-round-perl libmath-basecalc-perl libconfig-std-perl libproc-daemon-perl libproc-pid-file-perl liblog-log4perl-perl libhtml-parser-perl libxml-simple-perl collectd unzip openvpn
[/CODE]

Für openvpn eine Datei anlegen damit das Installscript durchläuft:
[CODE]
touch /etc/openvpn/wiregate-central.conf
[/CODE]

root Zugang sichern
Auf dem Wiregate wird standardmässig der root Zugang deaktiviert. Ich möchte das nicht, daher folgende Vorbereitung:
[CODE]
mkdir /root/backup/
cp /etc/webmin/miniserv.users /root/backup/miniserv.users
[/CODE]

ResetScript /usr/local/bin/Remove_Wiregate_Rest.sh
[CODE]
#!/bin/sh
# enable&start ssh
update-rc.d ssh defaults
/etc/init.d/ssh start
# reset webmin root-user
cp /root/backup/miniserv.users /etc/webmin/miniserv.users
[/CODE]
[CODE]
chmod 755 /usr/local/bin/Remove_Wiregate_Rest.sh
[/CODE]

Config Datei für Webmin erzeugen.
[CODE]
mkdir /etc/webmin/wiregate
[/CODE]
folgendes in die /etc/webmin/wiregate/config eintragen:
[CODE]
owfs_path=/usr/sbin/owfs
eibd_bcuaddrtab_resetcount=/var/log/eibd_bcuaddrtab_resetcount
owserver_start_cmd=/etc/init.d/owfs-server start
read_sensors=1
owserver_restart_cmd=/etc/init.d/owfs-server restart
owhttpd_stop_cmd=/etc/init.d/owfs-httpd stop
owhttpd_conf=/etc/default/owfs-httpd
stop_cmd=/etc/init.d/eibd stop
owfs_restart_cmd=/etc/init.d/owfs-fuse restart
pid_file=/var/run/eibd.pid
restart_cmd=/etc/init.d/eibd restart
owhttpd_start_cmd=/etc/init.d/owfs-httpd start
owfs_start_cmd=/etc/init.d/owfs-fuse start
eibd_conf=/etc/default/eibd
owfs_pid_file=/var/run/owfs.pid
owserver_pid_file=/var/run/owserver.pid
owhttpd_restart_cmd=/etc/init.d/owfs-httpd restart
start_cmd=/etc/init.d/eibd start
eibd_path=/usr/bin/eibd
owserver_path=/usr/sbin/owserver
owserver_conf=/etc/default/owfs-server
owfs_conf=/etc/init.d/owfs-fuse
owhttpd_pid_file=/var/run/owhttpd.pid
owfs_stop_cmd=/etc/init.d/owfs-fuse stop
owhttpd_path=/usr/sbin/owhttpd
owserver_stop_cmd=/etc/init.d/owfs-server stop
owsensors_conf=/etc/wiregate/owsensors.conf
[/CODE]

Default Config für den Eibd erstellen.
Hier als Beispiel eine Konfig für eine serielle TP-UART Schnittstelle.
Die wirkliche Konfiguration erfolgt später über die Webmin Oberfläche.

/etc/default/eibd
[CODE]
EIBD_PORT_SERIAL = /dev/ttyS0
EIBD_BACKEND_ADDR = 1.1.62
EIBD_BACKEND = tpuarts
[/CODE]

Datei /tmp/eib anlegen
[CODE]
touch /tmp/eib
chmod a+w /tmp/eib
[/CODE]

Wiregated installieren
[CODE]
apt-get install wiregated webmin-openvpn
update-rc.d eibd defaults
[/CODE]

Jetzt Remove_Wiregate_Rest.sh und einige Anpassungen durchführen.

Da kein Rescue system existiert, kann folgendes in der /etc/monit/enable/wg-base auskommentiert werden:
[CODE]
check device rescue_fs with path /mnt/rescue_fs
if space usage > 98% for 5 times within 15 cycles then alert
if inode usage > 75% then alert[/CODE]

In der /etc/monit/enable/wg-base sollte man noch die Mailadresse und Server an die eigenen Bedürfnisse anpassen.

[CODE]
Remove_Wiregate_Rest.sh
cd /etc/monit/
mv enabled/xplhub/xplhub enable/
rm -r enabled
cd
/etc/init.d/monit restart
[/CODE]

Auf der Console rauschen evtl. einige Fehler in folgender Art durch:

[CODE]
INIT: Id „log9“ respawning too fast: disabled for 5 minutes
[/CODE]
bzw. im Log /var/log/syslog
[CODE]
/bin/sh: /usr/bin/vbusmonitor1time: No such file or directory
/bin/sh: line0: exec: /usr/bin/vbusmonitor1time: Cannot execute: No such file or directory[/CODE]

In der /etc/inittab die folgende Zeile suchen und auskommentieren:
[CODE]
log9:2345:respawn:/usr/bin/vbusmonitor1time local:/tmp/eib >/dev/tty9[/CODE]

Den Befehl /usr/bin/vbusmonitor1time gibt es nicht.

Oder durch diese Zeile ersetzen:
[CODE]
log9:2345:respawn:/usr/bin/vbusmonitor1poll local:/tmp/eib >/dev/tty9[/CODE]

Einrichten von Webmin:

Webmin anmelden http://IP_CommunityGate:10000 Benutzer root

Sprache im Webmin muss man hier einstellen:
Webmin -> Change Language and Theme -> Webmin-Spracheinstellung: German (DE)
„Müssen“, weil sonst einige Beschriftungen fehlen.
Wenn das Menu links jetzt nicht in Deutsch erscheint vom Webmin ab- und wieder anmelden.

Webmin Menu links -> Webmin -> Webmin-Benutzer
Webmingruppe „CommunityGate“ anlegen, bei „Ändern der Sprache und des Designs,WireGate Konfiguration“ Haken setzen
Erstellen anklicken

Konvertiere Unix- zu Webminbenutzern
Nur Benutzer auswählen, hier den User auswählen der bei der Grundinstallation angelegt wurde.
Gruppe „CommunityGate“ ist ausgewählt
Benutze zukünftig das gleiche Passwort wie Unixbenutzer? Haken setzen
Konvertiere jetzt

Webmin-Konfiguration
Indexseitenoptionen -> Nach der Anmeldung gehe immer zum Modul Wiregate-Konfiguration auswählen und speichern

User-Einstellungen sichern:[CODE]cp /etc/webmin/miniserv.users /root/backup/miniserv.users[/CODE]

An dieser Stelle noch der Hinweis das die Meldung auf der Eingangsseite des Webmin:
„Es wurde ein Problem … Wartungs-VPN … festgestellt!“

normal ist.
Die Keys sind nicht vorhanden, da wir hier kein original Wiregate haben!
Wenn das stört bitte /usr/share/webmin/wiregate/index.cgi editieren und die folgenden Zeilen auskommentieren:

[CODE]# check VPN-Keys
#foreach (qw(ca.crt ta-wiregate.key wiregate-central.crt wiregate-central.key)) {
# if (-s „/etc/openvpn/keys/“.$_

“ . $text{‚contact_support_vpn‘}.“ ($_)

\n“;
# }
#}
[/CODE]

Ab jetzt sollte sich das Wiregate komplett über die Webmin Oberfläche durch den Standarduser administrieren lassen.

Wenn makki Updates zur Verfügung stellt, kann man mit:
[CODE]
apt-get update
apt-get upgrade
Remove_Wiregate_Rest.sh
[/CODE]
diese installieren.
Das Remove_Wiregate_Rest.sh aktiviert den ssh-Server wieder, der wird durch das Update Script deaktiviert. Voraussetzung man hat diese Anleitung befolgt. :biglaugh:

Durch eingespielte Updates kann es sein, dass man die Wartungs VPN Warnungen nach einem Update nochmal erneut in der /usr/share/webmin/wiregate/index.cgi auskommentieren muss, s.o.

Viel Erfolg!