unbound unter Ubuntu / Debian (Linux) kompilieren

unbound ist ein rekursiver caching DNS Resolver. Es ist im Linuxbereich “state-of-the-art” um entweder ein Public DNS Resolver zu betreiben, oder um es als internen DNS-Resolver für die eigene Server zu verwenden um unabhängig vom Provider Domainnamen aufzulösen.

Es wurde in C geschrieben und ist vor allem stabil, schnell und einfach in der Benutzung. Es unterstützt u.a. folgende Features:

  • Plugin für Munin
  • eigene Lokale Zonen verwalten
  • unterstüzt “prefetching” (ähnlich wie beim Google-DNS, d.h. bevor der TTL eines Records ausläuft, wird dieser im Hintergrund vom Deamon abgefragt, damit der Client keine Wartezeit mehr hat)

Da unbound sehr am Anfang der Entwicklung steht, und sich im DNS Bereich (gerade wegen DNSSEC oder sonstige Sicherheitsfunktionen) momentan einiges tut, ist es sehr zu empfehlen unbound lieber selber zu kompilieren, anstatt sich auf die Debian / Ubuntu Repositories zu verlassen.

1) Benötigte Pakete installieren

# apt-get install make gcc libssl-dev libevent-dev libexpat1-dev libldns-dev

2) Kompilieren

# cd /usr/src
# wget http://www.unbound.net/downloads/unbound-1.4.16.tar.gz
# tar xvfz unbound-1.4.16.tar.gz
# cd unbound-1.4.16
# ./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-conf-file=/etc/unbound/unbound.conf \
--with-libevent \
--with-ldns \
--with-ssl
(optional, wenn OpenSSL Version
# make && make install

3) Konfiguration

# nano /etc/unbound/unbound.conf

server:
	verbosity: 0

	# don't thread
	num-threads: 1

	interface: 127.0.0.1
	interface: 192.168.2.1

	do-ip4: yes
	do-ip6: yes
	do-udp: yes
	do-tcp: yes
	do-daemonize: yes

	access-control: 192.168.2.0/24 allow

	pidfile: "/var/run/unbound.pid"
	username: nobody

	# file to read root hints from.
	# get one from ftp://FTP.INTERNIC.NET/domain/named.cache
	root-hints: "/etc/unbound/named.cache"

	hide-identity: yes
	hide-version: yes

	# optimisations for high traffic (ist für 1GB RAM Auslegung optimiert, entsprechend anpassen)
	rrset-cache-size: 512m
	msg-cache-size: 256m
	outgoing-range: 8192
	num-queries-per-thread: 4096
	so-rcvbuf: 4m
	so-sndbuf: 4m

	# optimisations for client speed (google-dns wannabe)
	prefetch: yes
	prefetch-key: yes

	# Harden against very small EDNS buffer sizes.
	harden-short-bufsize: yes
	# Harden against unseemly large queries.
	harden-large-queries: yes
	# Harden against out of zone rrsets, to avoid spoofing attempts.
	harden-glue: yes

	# A suggested value is 10000000, the default is 0 (turned off).
	unwanted-reply-threshold: 10000000

4) Starten

# unbound

Time Machine und Fileserver via netatalk für Mac OSX (10.7) Lion unter Debian / Ubuntu

Wer sich lieber eine “freie” Alternative zum “Time Capsule” bauen möchte ist mit Debian bzw. Ubuntu und netatalk sehr gut bedient. Damit lässt sich ein Linux-Server nicht nur via afp zum Fileserver für diverse Apple-Mac Hardware machen, sondern auch zum Time Capsule Ersatz für Backups über die Time Machine App.

Vorteile:

  • volle Kontrolle über eure Daten (z.B. Daten / Backup nochmal direkt über cryptsetup verschlüsseln)
  • Möglichkeit von Diagnosetools (z.B. via smartmon erkennen wenn die Festplatte den Geist aufgibt und entsprechend handeln)
  • Backups backuppen – denn nur weil die Daten auf dem Time Capsule liegen, heisst es ja noch lange nicht, dass die auch dort ewig bleiben, ne?
  • Performance + Speicherplatz (z.B. mehrere Festplatte im Raid)

Nachteile:

  • Linux Kenntnisse erforderlich
  • Zeit und Arbeit muss investiert werden

Leider sind die Versionen unter Debian Squeeze und Wheezy (sowie Ubuntu bis 11.10) veraltet und unterstützen Mac OSX Lion + Time Machine nicht mehr vollständig bzw. nicht perfekt. Abhilfe schafft das Kompilieren der Sourcen – was auch kein Problem ist, da netatalk schon von Hause aus Debian Unterstützung (z.B. init-Skripte) mit sich bringt.

1) Erforderliche Debian Pakete installieren

# apt-get install avahi-daemon make gcc libdb-dev libcrack2-dev libssl-dev libgcrypt11-dev libkrb5-dev libavahi-client-dev libpam0g-dev libwrap0-dev

2) Kompilierung

# cd /usr/src
# wget http://downloads.sourceforge.net/project/netatalk/netatalk/2.2.2/netatalk-2.2.2.tar.gz
# tar xvfz netatalk-2.2.2.tar.gz
# cd netatalk-2.2.2
# ./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-debian \
--enable-pgp-uam \
--enable-krb4-uam \
--enable-krbV-uam \
--with-cnid-cdb-backend \
--with-cracklib

# make && make install

3) Avahi Konfiguration

Damit der Fileserver direkt über Finder sichtbar ist und auch ein schönes Icon bekommt

# nano /etc/avahi/services/afpd.service
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>

4) Netatalk Konfiguration

# nano /etc/default/netatalk
ATALKD_RUN=no
PAPD_RUN=no
TIMELORD_RUN=no
A2BOOT_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes

# nano /etc/netatalk/afpd.conf
- -transall -noddp -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword

# nano /etc/netatalk/AppleVolumes.default
~                       "$u" allow:KOMMA-SEPARIERTE-USERLISTE cnidscheme:cdb options:usedots,upriv
~/.TimeMachine          "$u TimeCapsule" allow:KOMMA-SEPARIERTE-USERLISTE cnidscheme:dbd options:usedots,upriv,tm

5) Starten :)

# /etc/init.d/netatalk restart
# /etc/init.d/avahi-daemon restart

*Update 14.03.2012:* danke frank242 für die Verbesserungen

lighttpd unter Ubuntu / Debian (linux) kompilieren

Wer den schnellen Webserver “lighttpd” lieber selber kompilieren will (z.B. um möglichst die aktuellste Version zu verwenden) kann sich nach folgendem Tutorial richten:

gilt für Debian 6.0 (Squeeze)

1) Benötigte Pakete installieren:

# apt-get install make gcc libev-dev libpcre3-dev zlib1g-dev libbz2-dev libgamin-dev liblua5.1-0-dev

2) Kompilieren:

# cd /usr/src
# wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.30.tar.gz
# tar xvfz lighttpd-1.4.30.tar.gz
# cd lighttpd-1.4.30
# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-libev --with-pcre --with-zlib -with-bzip2 --with-fam --with-lua
# make && make install

3) Finalisierung

# wget http://static.123ubuntu.de/lighttpd.init.txt -O /etc/init.d/lighttpd
# chmod 755 /etc/init.d/lighttpd
# mkdir /etc/lighttpd && mkdir /var/log/lighttpd && mkdir /var/cache/lighttpd
# chmod 777 /var/log/lighttpd/ && chmod /var/cache/lighttpd/
# chmod 777 /var/log/lighttpd/ && chmod 777 /var/cache/lighttpd/
# wget http://static.123ubuntu.de/lighttpd.conf.txt -O /etc/lighttpd/lighttpd.conf
# wget http://static.123ubuntu.de/mimetypes.conf.txt -O /etc/lighttpd/mimetypes.conf
# update-rc.d lighttpd defaults

4) Starten

# /etc/init.d/lighttpd start

Wem das zu kompliziert ist, kann es auch selbstverständlich via apt-get install lighttpd machen ;)

2ping unter Ubuntu / Debian (Linux) installieren

2ping ist ein bidirektionales Ping-Hilfswerkzeug. Es verwendet 3-Weg-Pings
(akin zu TCP SYN, SYN/ACK, ACK) und nachträglichen Statusvergleich zwischen
einem 2ping-Empfänger und einem 2ping-Client, um zu bestimmen, in welcher
Richtung der Paketverlust auftritt.

Um 2ping unter Ubuntu bzw. Debian (Linux) zu installieren, gibt es folgende drei Möglichkeiten:

Direktlink (via “Software Centre”): 2ping direkt installieren

Alternativ via Konsole (vorher “Terminal” starten):

$ sudo apt-get install 2ping

Oder via Aptitude

$ sudo aptitude install 2ping

nach der Installation kannst du mit dpkg den Paketinhalt von 2ping anzeigen

$ dpkg -L 2ping