Inhaltsverzeichnis
OpenNetAdmin
OpenNetAdmin bietet ein via Datenbank unterstütztes System zum Verwalten der IP-Adressen in einem oder mehreren Netzwerken. Jeder Rechner kann mithilfe einer durch AJAX unterstützten Web-Oberfläche erfasst werden, was zu einer starkt verminderten Fehleranfälligkeit und zu einer stabilen Netzwerk-Architektur führt. Ein voll unterstütztes CLI interface ist ebenfalls verfügbar, um Scripte für Massenaufgaben zu generieren.
Die Möglichkeit für ISC BIND und ISC DHCP Konfigurationsdateien via Scripting zu erstellen, kann mithilfe von Stand alone utilities realisiert werden!
Voraussetzungen
Als Voraussetzung für die Installation von OpenNetAdmin sind folgende Komponenten erforderlich:
- Lauffähiger Web-Server z.B. Apache HTTP Server
- PHP in der Version 4 oder höher PHP Net
- MySQL-Datenbank MySQL
- Perl Perl
Als weiterer Verweis können unter OpenNetAdmin Installation und OpenNetAdmin Installation - dcm.pl Installationsanweisungen eingesehen werden!
Herunterladen
Bevor mit der Installation von OpenNetAdmin begonnen werden kann, sollte eine „stabile“ Version von OpenNetAdmin - Download heruntergeladen werden.
Die hier verwendete und besprochene Version ist die Version ona-v09.05.02.tar.gz
.
Zusätzlich ist es sinnvoll das Perl-Script dcm.pl
ebenfalls zu installieren, welches von OpenNetAdmin - dcm.pl heruntergeladen werden kann.
WICHTIG - Da aktuell der entsprechende Link evtl. nur eingeschränkt bzw. schwierig im Internet zu finden ist, habe ich die Datei auch unter
hinterlegt!
Installation
Nach dem herunterladen einer Version von OpenNetAdmin in z.B. das Verzeichnis /tmp
auf den lokalen Rechner, sollte sich folgende Datei
ona-v09.05.02.tar.gz
im Verzeichnis /tmp
befinden.
Das heruntergeladene Archiv mit dem Namen ona-v09.05.02.tar.gz
kann mit folgendem Befehl entpackt werden:
$ tar -C /opt -zxvf ona-v09.05.02.tar.gz
Anschließend sollte sich ein Verzeichnis mit dem Namen ona
im Verzeichnis /opt
befinden:
Abschließend kann das heruntergeladene Archiv ona-v09.05.02.tar.gz
mit folgendem Befehl gelöscht werden:
$ rm /tmp/ona-v09.05.02.tar.gz
Mit nachfolgendem Befehl kann kontrolliert werden, ob sich das Verzeichnis ona
wirklich im Verzeichnis /opt
befindet:
$ ll /opt total 4 drwxr-xr-x 5 1000 1000 4096 May 2 20:59 ona
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Als letzter Schritt muss noch für das Verzeichnis /opt/ona
der Benutzer root
und die Gruppe root
als entsprechende Besitzer mit nachfolgendem Befehl gesetzt werden:
# chown -R root.root /opt/ona
Konfiguration
Die Konfiguration teilt sich in mehrere Bereiche auf, die nachfolgend dargestellt werden.
Konfiguration Webserver
HINWEIS - Bevor mit der eigentlichen Konfiguration von OpenNetAdmin begonnen werden soll, soll die Einrichtung des Webservers, hier der Apache HTTP Server, statt finden.
Hier soll die Konfiguration eines virtuellen Host für den Apache HTTP Server beschrieben werden. Der Aufruf von OpenNetAdmin soll über die URL
ermöglicht werden.
Falls Sie noch keine Erfahrungen mit virtuellen Hosts in Verbindung mit dem Apache HTTP Server haben sollten, lesen Sie bitte die Dokumentation des Apache HTTP Server Projektes, da hier nur die grundlegenden Schritte erläutert werden.
Falls noch nicht geschehen wird im Verzeichnis /etc/httpd/conf.d
eine Datei mit dem Namen vhosts.conf
erstellt. Der Inhalt dieser Datei sollte minimal für einen virtuellen Host für OpenNetAdmin wie folgt aussehen:
# This configuration file enables the vhosts to this # Server # NameVirtualHost *:80 # # opennetadmin.tachtler.net # <VirtualHost *:80> ServerAdmin webmaster@tachtler.net ServerName opennetadmin.tachtler.net ServerAlias www.opennetadmin.tachtler.net ServerPath / DocumentRoot "/opt/ona/www/" Alias /ona "/opt/ona/www/" <Directory "/opt/ona/www/"> Options Indexes MultiViews FollowSymLinks AllowOverride AuthConfig Order allow,deny Allow from all AddType application/x-httpd-php .php </Directory> DirectoryIndex index.htm index.php ErrorLog logs/opennetadmin_error.log CustomLog logs/opennetadmin_access.log combined </VirtualHost>
Zusätzlich ist noch der Besitzer und die Gruppe für das das Verzeichnis /opt/ona/www/local/config
mit nachfolgendem Befehl wie folgt auf den Benutzernamen vom Apache HTTP Server zu setzen:
# chown -R apache.apache /opt/ona/www/local/config
WICHTIG - Um bei der Standard-Pfadvergabe von OpenNetAdmin zu bleiben, jedoch trotzdem einen virtuellen Host zu nutzen sind noch einige Angaben notwendig!
Zuerst muss das Verzeichnis /var/www/html/ona
mit folgendem Befehl angelegt werden:
# mkdir /var/www/html/ona
Anschließend wird eine Datei mit dem Namen /var/www/html/ona/index.htm
mit folgendem Befehl und nachfolgendem Inhalt angelegt:
# touch /var/www/html/ona/index.htm
Inhalt der Datei /var/www/html/ona/index.htm
sollte folgender sein:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="refresh" content="0; url=http://www.opennetadmin.tachtler.net/ona/" /> </head> </html>
Zum Abschluss müssen die Besitzrechte für das entstandene Verzeichnis mit folgendem Befehl korrigiert werden:
# chown -R root.apache /var/www/html/ona
Konfiguration /var/log/ona.log
Um das Logging für OpenNetAdmin zu aktivieren, ist es erforderlich eine Log-Datei anzulegen, was mit folgendem Befehl durchgeführt werden kann:
# touch /var/log/ona.log
Abschließend müssen noch die entsprechenden Rechte für die Log-Datei /var/log/ona.log
mit nachfolgendem Befehl gesetzt werden:
# chmod 666 /var/log/ona.log
Starten von OpenNetAdmin
Um zur Web-Oberfläche von OpenNetAdmin zu gelangen, geben Sie bitte folgenden Link ein:
Anschließend sollte folgende Lizenz-Bedingungsseite erscheinen:
Nach einem Klick mit der linken Maustaste auf „I Agree!“, sollte nachfolgende Seite erscheinen:
Hier müssen die entsprechenden Eintragungen gemacht werden!
Nach einem Klick mit der linken Maustaste auf „Create my database!“, sollte nachfolgende Seite erscheinen:
Nach einem Klick mit der linken Maustaste auf „CLICK HERE TO START“, sollte die Startseite erscheinen:
Nach dem Start von OpenNetAdmin ist der Benutzer „guest“ angemeldet!
WICHTIG - Um eine Anmeldung als „admin“ durchzuführen, ist ein Klick in das Feld mit dem aktuell angemeldeten Benutzer notwendig und die Angabe des Benutzernamens „admin“. Das Standardpasswort für den Benutzer „admin“ ist ebenfalls „admin“!
Einbinden von dcm.pl
Zur Darstellung von Konfigurationsdateien in OpenNetAdmin als Text-Format (meist unterhalb der Definitionen), ist es erforderlich das Plugin dcm.pl
(Ein Perl-Script) zu installieren.
Installation dcm.pl
Nach dem herunterladen einer Version von OpenNetAdmin - dcm.pl in z.B. das Verzeichnis /tmp
auf den lokalen Rechner, sollte sich folgende Datei
dcm-v1.17.tar.gz
im Verzeichnis /tmp
befinden.
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Das heruntergeladene Archiv mit dem Namen dcm-v1.17.tar.gz
kann mit folgendem Befehl entpackt werden:
# tar -C /opt/ona -zxvf dcm-v1.17.tar.gz
Anschließend sollte sich ein Verzeichnis mit dem Namen dcm-v1.17
im Verzeichnis /opt/ona
befinden:
Abschließend kann das heruntergeladene Archiv dcm-v1.17.tar.gz
mit folgendem Befehl gelöscht werden:
# rm /tmp/dcm-v1.17.tar.gz
WICHTIG es ist erforderlich, dass mit folgendem Befehl das Verzeichnis mit dem Namen /opt/ona/dcm-v1.17
mit nachfolgendem Befehl in /opt/ona/bin
umbenannt wird:
# mv /opt/ona/dcm-v1.17 /opt/ona/bin
Mit nachfolgendem Befehl kann kontrolliert werden, ob sich das Verzeichnis wirklich im Verzeichnis
/tmp
befindet:
# ll /opt/ona/bin total 52 -rw-rw-r-- 1 root root 2162 Mar 8 2007 dcm.conf -rwxrwxr-x 1 root root 47584 Mar 8 2007 dcm.pl
Konfiguration dcm.conf
Zur Konfiguration des Perl-Scripts dcm.pl
muss die Konfigurationsdatei /opt/ona/bin/dcm.conf
wie folgt angepasst werden:
Die relevanten Änderungen gegenüber der Standard-Konfiguration, sind mit folgendem Kommentar
## Tachtler
versehen!
##################################################################################### ## ## This is the configuration file for dcm.pl ## ## Overview: ## Hopefully the options available are self-explanitory. ## ## Syntax: ## The syntax of this file is fairly tolerant. Each section starts with [section] ## and configuration settings are specified in "key => value" pairs. ## Comments are permitted anywhere in the file - see the comments section below. ## ## Comments: ## Comments either begin with a pound (#) or double slashes (//) and continue ## to the end of the line, or they can be C's block style comments (/* */). ## Pounds can be escaped with a backslash. ## ##################################################################################### [networking] ## Web server to connect to. Examples: ## http://caspian.dotconf.net/dcm.php ## https://caspian.dotconf.net/dcm.php ## http://caspian.dotconf.net:4433/dcm.php ## Tachtler ## Default: url => http://caspian.dotconf.net/dcm.php url => http://www.opennetadmin.tachtler.net/dcm.php ## If an https:// url is specified above, this option will allow ## dcm.pl to fallback to an http connection if your perl installation ## doesn't support ssl, or the web server doesn't accept https ## connections. Note that when this fallback occurs a warning ## message is printed to STDERR. ## (1 = yes, 0 = no) allow-http-fallback => 1 ## Basic HTTP Authentication // login => username // passwd => password ## timeouts for any/all network connections (360 seconds) timeout => 360 [logging] ## print to STDOUT (can work in conjunction with "syslog" and "logfile") stdout => 1 ## log to syslogd (can work in conjunction with "stdout" and "logfile") syslog => 0 ## syslog facility (1/USER is the default) facility => 1 ## enable logging to the specified file (can work in conjunction with "syslog" and "stdout") // logFile => /var/log/dcm
Einbinden von build_dhcpd
Zur Erstellung von Konfigurationsdateien in OpenNetAdmin als Text-Format bzw. als Konfigurationsdatei, ist es erforderlich das Plugin build_dhcpd
(Ein Shell-Script) zu installieren.
Installation build_dhcpd
Nach dem herunterladen einer Version von OpenNetAdmin - build_dhcpd.tar.gz in z.B. das Verzeichnis /tmp
auf den lokalen Rechner, sollte sich folgende Datei
build_dhcpd.tar.gz
im Verzeichnis /tmp
befinden.
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Das heruntergeladene Archiv mit dem Namen build_dhcpd.tar.gz
kann mit folgendem Befehl entpackt werden:
# tar -zxvf build_dhcpd.tar.gz
Anschließend sollte sich ein Verzeichnis mit dem Namen build_dhcpd
im Verzeichnis /tmp
befinden:
Abschließend kann das heruntergeladene Archiv build_dhcpd.tar.gz
mit folgendem Befehl gelöscht werden:
# rm build_dhcpd.tar.gz
WICHTIG es ist erforderlich, dass mit folgendem Befehl den Inhalt des Verzeichnises mit dem Namen /tmp/build_dhcpd
mit nachfolgendem Befehl in /opt/ona
zu verschieben:
# mv /tmp/build_dhcpd/* /opt/ona/*
Folgende Dateien sind zum Verzeichnis /opt/ona
hinzugekommen, welche mit nachfolgenden Befehlen überprüft werden können:
# ll /opt/ona/bin | grep build -rwxr-xr-x 1 1000 1000 6689 Nov 17 17:08 build_dhcpd
# ll /opt/ona/docs | grep build -rw-r--r-- 1 1000 1000 2777 Nov 17 17:00 build_dhcpd.README
# ll /opt/ona/www/modules | grep build -rw-r--r-- 1 root root 26037 Nov 17 17:00 build_dhcpd.inc.php
WICHTIG - Leider ist die Installation nicht ganz korrekt, so dass nachfolgende Verschiebungen von Dateien notwendig sind
Zuerst muss das Verzeichnis /opt/ona/www/modules/build
mit nachfolgendem Befehl angelegt werden:
# mkdir /opt/ona/www/modules/build
Anschließend verschieben wir die Datei build_dhcpd.inc.php
in das neu angelegte Verzeichnis mit nachfolgendem Befehl:
# mv /opt/ona/www/modules/build_dhcpd.inc.php /opt/ona/www/modules/build
Abschließend können mit folgendem Befehl alle noch nicht korrekten Benutzerrechte an den neuen Verzeichnis und Dateien angepasst werden:
# chown -R apache.apache /opt/ona
Einrichtung im Webinterface
Folgende Schritte sind ebenfalls durchzuführen, damit das Erstellen einer DHCP-Konfigurationsdatei möglich ist.
Ein Benutzer mit der Bezeichnung sys_build
, welcher nur mit Leserechten ausgestattet sein muss, muss angelegt werden:
Einen Eintrag mit Namen build_dhcp_type
im System Config Editor mit den Parameter:
build_dhcp_type
isc
Build DHCP Config
Anpassung: /opt/ona/bin/build_dhcpd
Im Verzeichnis /opt/ona/bin/
gibt es das eigentliche shell
-Script mit dem Namen /build_dhcpd
, welches ein wenig für den Einsatz angepasst werden muss.
Alle Änderungen sind mit
# Tachtler
gekennzeichnet.
Hier das Komplette shell
-Script /opt/ona/bin/build_dhcpd
:
#!/bin/sh # # build_dhcpd.sh -- v1.0 # # Written by: Matt Pascoe <matt@opennetadmin.com> # # License: # build_dhcpd.sh (hereafter referred to as "program") is free software; # you can redistribute it and/or modify it under the terms of the GNU General # Public License as published by the Free Software Foundation; either version # 2 of the License, or (at your option) any later version. # Note that when redistributing modified versions of this source code, you # must ensure that this disclaimer and the above coder's names are included # VERBATIM in the modified code. # # Disclaimer: # This program is provided with no warranty of any kind, either expressed or # implied. It is the responsibility of the user (you) to fully research and # comprehend the usage of this program. As with any tool, it can be misused, # either intentionally (you're a vandal) or unintentionally (you're a moron). # THE AUTHOR(S) IS(ARE) NOT RESPONSIBLE FOR ANYTHING YOU DO WITH THIS PROGRAM # or anything that happens because of your use (or misuse) of this program, # including but not limited to anything you, your lawyers, or anyone else # can dream up. And now, a relevant quote directly from the GPL: # # NO WARRANTY # # 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY # FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN # OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES # PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED # OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS # TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE # PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, # REPAIR OR CORRECTION. # # The GNU GPL can be found at http://www.fsf.org/copyleft/gpl.html # # ----------------------------------------------------------------------- # Description # Subversion info: $Id: build_dhcpd 26 2008-10-19 21:36:30Z hornet $ # # # THIS IS A REFERENCE DESIGN BUILD SCRIPT, IT WORKS FOR ME BUT MAY NOT FOR YOU # IT IS INTENDED TO GIVE AN EXAMPLE OF HOW A SCRIPT LIKE THIS COULD BE BUILT. IF IT WORKS # FOR YOU, GREAT! IF NOT THEN MAKE WHATEVER ADJUSTMENTS TO IT YOU NEED TO GET IT WORKING! # ASK FOR HELP IN THE FORUMS IF NEEDED. # # REQUIRES: dcm.pl, build_dhcpd_conf module, working ISC dhcpd for the local server, # # Since this script must restart the dhcpd daemon, it should be ran as the dhcp user or as root. # # dcm.pl should be working on your system and either in your path or you will need to put the full path to it in the DCM_PATH variable below. # You will need to have a user in the ONA system defined as "sys_build".. that user should have only read permissions and not update permissions. # # Remember that the checks done by dhcpd -t are only syntax checks. They will not ensure that the content of your files is correct. # If you have missing records or incorrect data it could impact your environment. # # The local host name as determined using "hostname -f" must match the FQDN of the server in ONA. It must be the PRIMARY name, not an CNAME # or alternate A record. # # For ease of use, it is recommended to add /opt/ona/bin to your $PATH environment variable # # Add the following line to your system dhcpd.conf file. Probably in /etc/dhcpd3/dhcpd.conf depending on your system. # You may need to configure directives like "authoritative", ddns-update-style, or logging statements etc in the main config file as these are # out of scope for the ONA system to manage at this point. # The placement of this line could vary depending on how your distro organizes dhcpd. /etc/dhcpd3/dhcpd.conf should be used for ubuntu/debian based systems. # # include "/opt/ona/etc/dhcpd/dhcpd.conf.ona"; # # You will need to execute the following dcm command to automatically create the appropriate module entries: # # dcm.pl -r add_module name=build_dhcpd_conf desc="Build ISC DHCPD config file" file=build/build_dhcpd.inc.php # # NOTE: this script was developed and tested on an ubuntu box. Your mileage may vary on other distros. # NOTE: Some distros use the Linux Terminal Server Project (LTSP) version of dhcp config file instead, be aware of that. # NOTE: to view example configs in the GUI you need to set build_dhcp_type to "isc" or "dhcpd" in the sys_config table # # ----------------------------------------------------------------------- [ ! -r /etc/onabase ] && echo "[$0] ERROR: Unable to read /etc/onabase." && exit 1 ONABASE=`cat /etc/onabase` # Print an error message and exit with a status of 1 abend () { echo "ERROR => $1" exit 1 } # this will default to placing data files in /opt/ona/etc/dhcpd, you can update the following for your system as needed ONA_PATH="${ONABASE}/etc/dhcpd" # Get the local hosts FQDN. It will be an assumption!! that it is the same as the hostname in ONA # Also, the use of hostname -f can vary from system type to system type. be aware! SRV_FQDN=`hostname -f` # Path to the dcm.pl command. Also include any options that might be needed # this uses the sys_build user to process this task. # Tachtler # default: DCM_PATH="${ONABASE}/bin/dcm.pl -l sys_build" DCM_PATH="${ONABASE}/bin/dcm.pl -l sys_build" ###################### No need to change anything below here ################################ # check that $ONA_PATH directory exists test -d $ONA_PATH || abend "Unable to find directory '$ONA_PATH', please create it." echo `date`": Building ISC DHCPD config for $SRV_FQDN..." # build the conf file # Note, I cut the first / off due to the DCM issue with paths $DCM_PATH -r build_dhcpd_conf server=$SRV_FQDN > $ONA_PATH/dhcpd.conf.ona || abend "Unable to build ISC dhcpd config file." echo "Testing new config files for SYNTAX only..." # Test that our new config is syntacticaly correct # this assumes dhcpd3 is in your path and that you are using the standard dhcpd.conf file path of /etc/dhcpd3/dhcpd.conf # Tachtler # default: if ! dhcpd3 -t > /dev/null 2>&1 if ! dhcpd -t > /dev/null 2>&1 then # Tachtler # default: dhcpd3 -t 2>&1 dhcpd -t 2>&1 abend "The resulting config files have a syntax error." fi # refresh the ISC dhcpd server # Tachtler # default:/etc/init.d/dhcpd3 reload || abend "Unable to reload the dhcpd daemon using the system init.d command." service dhcpd reload || abend "Unable to reload the dhcpd daemon using the system init.d command." # Tachtler # default: echo `date`": Completed ISC dhcpd configuration extraction and daemon reload." echo `date`": Completed ISC dhcpd configuration extraction."
WICHTIG - Folgende Einbindung in dcm.pl
ist ZWINGEND erforderlich, da sonst das shell
-Script NICHT funktionsfähig ist !!!
# dcm.pl -r add_module name=build_dhcpd_conf desc="Build ISC DHCPD config file" file=build/build_dhcpd.inc.php
Folgende Verzeichnisse müssen ebenfalls noch angelegt werden, da sonst die Konfigurationsdatei nicht in das Dateisystem geschrieben werden kann:
# mkdir /opt/ona/etc/
# mkdir /opt/ona/etc/dhcpd
Abschließend können mit folgendem Befehl wieder alle noch nicht korrekten Benutzerrechte an den neuen Verzeichnis und Dateien angepasst werden:
# chown -R apache.apache /opt/ona
Aufruf: /opt/ona/bin/build_dhcpd
Mit nachfolgendem Befehl wird der Aufrud des shell
-Scriptes /opt/ona/bin/build_dhcp
relaisiert:
# /opt/ona/bin/build_dhcp
HINWEIS - Es sollte dann eine Datei im Verzeichnis /opt/ona/etc/dhcpd
mit dem Namen dhcpd.conf.ona
erzeugen sollte, was mit nachfolgendem Befehl überprüft werden kann:
# ll /opt/ona/etc/dhcpd total 4 -rw-r--r-- 1 root root 2366 Nov 17 17:08 dhcpd.conf.ona
Nützliche Links
Upgrade
Um auf eine neuere Version von OpenNetAdmin zu installieren sind folgende Schritte notwendig:
1. Entpacken des neuen Archives - hier mit dem Namen ona-v09.07.15.tar.gz
mit folgenden Befehl, über die bereits installierte Version von OpenNetAdmin mit nachfolgendem Befehl:
# tar -C /opt -zxvf /tmp/ona-v09.07.15.tar.gz
2. Berichtigen der Besitzrechte für das Verzeichnis /opt/ona
mit nachfolgendem Befehl:
# chown -R apache.apache /opt/ona
3. Ausführen der Web-Oberfläche von OpenNetAdmin durch folgendem Aufruf im Browser:
HINWEIS - Bitte den Anweisungen der Web-Oberfläche am Bildschirm folgen!