close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

FreeBSD: Mal was anderes!

EinbettenHerunterladen
Einleitung
Technologien
Anwendungen
FreeBSD: Mal was anderes!
Eine Einfuhrung
¨
Johannes M. Dieterich
Computational Chemistry and Biochemistry
Institut fur
¨ Physikalische Chemie
¨ Gottingen
¨
Georg-August-Universitat
jmd@ogolem.org
Source Talk 2012
Zusammenfassung
1/ 34
Einleitung
Technologien
Anwendungen
Disclaimer
• ausschliesslich Nutzer
• Rechnerumgebung dominiert von Linux (SuSE)
• Privatmeinungen und -erfahrungen
• kein Training sondern Einfuhrung
und Startpunkt
¨
• Advocacy
• The power to serve
• ...
Zusammenfassung
2/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
FreeBSD: Ein Linux mit lustigem Maskottchen?
Was ist FreeBSD?
1
Beastie: http://www.capsule2.net/wp- content/uploads/2009/01/beastie.png
3/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
FreeBSD: Historie und Abstammung
*---------- 4.3BSD NET/2
|
|
386BSD 0.0
|
|
|
386BSD 0.1 ------------>+
|
\
|
|
386BSD 1.0
|
|
|
|
|
|
|
|
NetBSD
|
|
FreeBSD 1.0
NetBSD
-------------------+-------------*
|
|
|
BSD/386
|
|
|
BSD/386
4.4BSD Alpha
|
|
BSD/386
4.4BSD
|
/ |
|
4.4BSD-Encumbered |
|
0.8
|
BSD/386
|
|
0.9
|
BSD/386
ALPHA
0.3.[13]
0.9.[34]
1.0
1.1
• direkter Nachfolger von AT&T Unix (via 4.3BSD Unix)1
• erster Release 1993 (FreeBSD 1.0)
• Prozess um AT&T Code vs Unix Systems Laboratories 19942
• komplett Neuentwickelung der Codepassagen (FreeBSD 2.0 1995)
• Stand Marz
¨ 2010: 400 aktive Entwickler, mehrere Tausend Contributors3
• freigibige Lizenz (daher in anderen Projekten Code enthalten)
1
2
3
BSD Stammbaum: /usr/src/share/misc/bsd- family- tree
Wikipedia http://en.wikipedia.org/wiki/FreeBSD
FBSD Entwickler: www.freebsd.org/doc/en/articles/contributors/staff- committers.html
4/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Die BSD Lizenz
Copyright 1992-2012 The FreeBSD Project. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
1. Redistributions of source code must retain the above
copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer
in the documentation and/or other materials provided with the
distribution. THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT
‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.
5/ 34
Einleitung
Technologien
Anwendungen
*BSD5
NetBSD
• Fork von 4.3BSD 1993
• Portabilitat:
¨ 57 Architekturen, 15 Prozessorarchs, 1 Toaster
• Virtualisation, SMP, Kompatibilitat
¨ Kernthemen
• 16.3% user base4
OpenBSD
• Fork von NetBSD 1995
• Sicherheitsfokus
• open-source Treiber (Anti-BLOB)
• u.a. Maintainer von pf und OpenSSH
• 32.8% user base
4
5
2005 BSD Usage Survey Report
Stammbaum: /usr/src/share/misc/bsd- family- tree
Zusammenfassung
6/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Forks und (entfernte) Verwandte
• D RAGONFLY BSD:
¨ HammerFS)
Fork aus FreeBSD 4.X (enthalt
• PC-BSD und D ESKTOP BSD:
Vereinfachte Installation und Benutzbarkeit
• T RUSTED BSD:
Erweiterungen von FreeBSD fur
¨ sicherheiskritische Anwendungen
• G ENTOO /F REE BSD:
Experimentelles Projekt fur
¨ Gentoo Tools auf FBSD
• P ICO BSD/N ANO BSD/T INY BSD:
Distributionen mit besonders geringem Footprint (embedded systems)
• D EBIAN GNU/ K F REE BSD:
FreeBSD Kernel mit GNU Userland und Debian Paketen6
6
1
kFreeBSD: http://www.debian.org/ports/kfreebsd- gnu/
Myths of FreeBSD: http://www.freebsd.org/advocacy/myths.html
7/ 34
Einleitung
Technologien
Anwendungen
FreeBSD in der Businessumgebung
FreeBSD als Basis
• Apple ....
• Cisco CiscoOS auf Routern
• Juniper Junos
• NetApp Data ONTAP 8.x
• Netflix OpenConnect content delivery network
• Panasas und Isilon Cluster storage operating systems
FreeBSD als Server
• Yahoo! Traditionell enge Beziehung zu FBSD
• Apache
• Yandex / Rambler
• Sina
• Sony Japan
• Netcraft / Experts Exchange
• ...
1
FreeBSD users: http://www.freebsd.org/doc/en_US.ISO8859- 1/books/handbook/nutshell.html
Zusammenfassung
8/ 34
Einleitung
Technologien
Anwendungen
Was ist FreeBSD eigentlich?
Kernel
• monolithisch
• hohe API und ABI Stabilitat
¨
• Auslieferung: GENERIC
• Customizing, Tuning, Kompilation einfach
World
• Userland
• auch Importe anderer Hersteller (Shells, BIND,...)
• alles in einem svn-Repository (svn.freebsd.org/base/)
FreeBSD ist ein komplettes Betriebssystem
Zusammenfassung
9/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Unterstutzte
Architekturen
¨
Tier-17
¨
Vollstandig
unterstutzte
Architekturen
¨
• amd64
• i386
Tier-2
Entwicklungsarchitekturen
• arm
• ia64
• pc98
• powerpc
• sparc64
Tier-3
Experimentelle Architekturen
• mips
• S/390
7
FBSD Architekturen: www.freebsd.org/doc/en_US.ISO8859- 1/articles/committers-guide/archs.html
10/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Entwicklungsprinzipien und Visionen
DISCLAIMER!
• Stabilitat
¨
• einfache Konfiguration
• Sicherheit
• wenige, dafur
¨ durchdachte Alternativen
• API/ABI Stabilitat
¨
• POLA/kein PITA fur
¨ kommerzielle und nichtkommerzielle Benutzer
• Release Engineering Team trifft Entscheidungen
• Dokumentation genauso wichtig wie Code
• My system, how I want it!8
8
http://www.freebsd.org/advocacy/whyusefreebsd.html
11/ 34
Einleitung
Technologien
Anwendungen
Erste Schritte mit FreeBSD
1. Download ISOs: www.freebsd.org/where.html
• CURRENT: Bleeding edge (z.Z. 10-CURRENT)
Snapshots
• STABLE: Backports und Weiterentwicklungen der Zweige
(z.Z. 7/8/9-STABLE) Snapshots
• RELEASE: Stabile Version mit Sicherheitspatches
(z.Z. 7.4/8.3/9.0-RELEASE)
2. Installation
• sysinstall oder bsdinstall
• letzteres in Zukunft, komplett skriptbar
• Auswahl von Images (src, ports, doc...)
3. Konfiguration
• /boot/loader.conf
• /etc/rc.conf
Zusammenfassung
12/ 34
Einleitung
Technologien
Anwendungen
Erste Probleme: Wie gehts?
• Handbuch: www.freebsd.org/handbook/
• hervorragende Referenz
• immer aktuell
• deckt Standardprobleme gut ab
• Forum: http://forums.freebsd.org/
• viele interessante Threads
• sehr hilfreiche Community
• Mailinglisten
• freebsd-questions@: Fragen und Probleme
• freebsd-stable@: RELEASE und STABLE
• freebsd-current@: CURRENT
• freebsd-$XXX@: spezielle Themen
• Volumen unterschiedlich
• typischerweise sehr freundlicher Ton
Zusammenfassung
13/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Weitere Ressourcen
• von Installation uber
Konfiguration hin zu
¨
Mail- und HTTP-Servern
• das Standardwerk
• potentiell leicht veraltet
• Fokus auf nutzliche
Tips und Tricks zur
¨
Einrichtung und Administration
14/ 34
Einleitung
Technologien
Anwendungen
BSD Userland
Motivation
• GPL2 zu GPL3 Lizensierung der GNU Tools
• GPL-freie Base9
• moderne, POSIX-kompatible Tools
• gemeinsame Anstrengung der *BSDs
Projekte10
• done: bc, cpio
• in work: binutils, sort, grep, groff
• to-be-done: dtc Compiler
• LLVM...
9
10
GPL3 Concerns: http://www.freebsdfoundation.org/press/2007Aug- newsletter.shtml
GPL in base: http://wiki.freebsd.org/GPLinBase
Zusammenfassung
15/ 34
Einleitung
Technologien
Anwendungen
LLVM Infrastruktur
Was ist LLVM?
• Compilerinfrastruktur (C++)
• BSD lizensiert, Entwicklung bei Apple
• clang C/C++ Compiler (C99 Support, C++11 fast unterstutzt)
¨
• lldb Debugger, llvm-as, llvm-ar,...
FreeBSD und LLVM
• 2009: clang ubersetzt
FreeBSD Kernel korrekt
¨
• erste Integration 2010, voller Ersatz in CURRENT Mai 2012
• aktuell: Tier-1 Kernel und World OK, Tier-2 in development
Zusammenfassung
16/ 34
Einleitung
Technologien
Anwendungen
Das Ports-System
Was und wo sind Ports?
• Third-Party-Software, die nicht in Base ist
• aktuell 23847 Ports11
• unterstutzt
¨ CURRENT und RELEASE Zweige
• klassisch in /usr/ports/
• aktuelle Informationen in ports/UPDATING
• interessant: www.freshports.org
Wichtige Tools
• make config && make && make install
• ports/ports-mgmt/portmaster:
Vereinfachte Installation und Updating von Ports
• ports/ports-mgmt/portaudit:
Sicherheitswarnungen zu installierten Ports
11
FreeBSD Ports: http://www.freebsd.org/ports/
Zusammenfassung
17/ 34
Einleitung
Technologien
Anwendungen
¨
Damonisch
gutes Java
Natives Java
• Diablo-JDK
¨
Java 5 und 6, native (binare)
FreeBSD-Version, weiterhin zum
Bootstrappen benutzt
• openJDK
Java 6 und 7. Java 7 durch Mac OS X Port quasi offizieller
Oracle-Support
Emuliertes Java
• Linux SUN JDK
Versionen 5-7, ueber
den Linuxulator
¨
¨ Java
Des weiteren Netbeans, eclipse und viele weitere populare
Anwendungen in ports/java/.
Mailingliste: freebsd-java@freebsd.org
Zusammenfassung
18/ 34
Einleitung
Technologien
Anwendungen
Firewalls und Redundanz
Firewalls
• IPFILTER Klassiker auf *BSD, HPUX, Solaris
• IPFW FreeBSD Eigenbau
• PF OpenBSD Projekt
Redundanz
• CARP12 : Common Address Redundancy Protocol
• mehrere Hosts teilen sich eine IP
• erlaubt erhohte
¨
Serververfugbarkeit
(ausfallsicherer)
¨
• Einsatzgebiet: Firewalls
• HAST13 : Highly Available Storage
12
13
http://www.freebsd.org/doc/handbook/carp.html
http://wiki.freebsd.org/HAST
Zusammenfassung
19/ 34
Einleitung
Technologien
Anwendungen
ZFS: Das letzte Wort
Features
• CDDL-Entwicklung von SUN Microsystems
• kombiniertes FS und Volume Manager
• 264 maximale Große
¨
• Datenintegritat
¨ mittels Checksums
• Kompression, Snapshots, Quotas,...
• RAID0, RAID1, RAIDZ1, RAIDZ2
• viele Filesysteme gewunscht
(Overhead wie Verzeichnis)
¨
• und vieles mehr :-)
FreeBSD und ZFS
• ZFSv28 aktuell unterstutzt
¨
• ab 9.0-RELEASE ohne Tuning stabil
• Root-on-ZFS moglich
¨
• aktive Entwicklergruppe
Zusammenfassung
20/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Virtualisation
User
• XEN
HVM (GENERIC/XENHVM Configs) und PV (XEN Config) DomU14
• KVM
durch Kernelmodule 15
• VMWARE, Virtualbox et al.
Provider
• Qemu ports/emulators/qemu
• Virtualbox ports/emulators/virtualbox-ose
• Jails Base
14
15
http://wiki.freebsd.org/FreeBSD/Xen
http://www.freebsd.org/news/status/report- 2007- 07- 2007- 10.html
21/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Kryptographie und Sicherheit
Kryptographie
• Unterstutzung
von verschlusselten
GEOM-Providern (HDDs, Partionen)
¨
¨
• GBDE: altere
¨
Implementation
• GELI: modernere Implementation, einfache Verwendung, schnell
• Hardwarebeschleuniger mittels crypto Framework, z. B. aesni
Sicherheit
• Jails: Jails sind virtuelle, sichere Umgebungen fur
¨ z.B. Trennung von
¨
Serverfunktionalitaten,
einfache Administration mit ezjail
• Capsicum: Neue Sandboxing Technologie (Robert Watson, Cambridge
University, Google)
22/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
Sicherheit II
Inhalt
• Einfuhrung
in alle relevanten Sicherheitsaspekte und -werkzeuge
¨
• Anwendungen auf Serverfunktionalitaten
¨
• Auswertung und Reaktion auf Risiken/Angriffe
23/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
¨
Serverfunktionalitaten:
HOWTOs
• kurze HOWTOs fur
¨ viele
¨
Serverfunktionalitaten
• wichtige Config-Dateien
• wichtige Kommandos
• guter Einstieg
Webpages
• www.freebsddiary.org/
¨
Ausfuhrlichere,
spezielle HOWTOs. Potentiell alter.
¨
• www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/
Die Quelle fur
¨ alle Base-enthaltenen Server.
24/ 34
Einleitung
Technologien
Anwendungen
¨
Webserver mit erweiterten Funktionalitaten
Anforderungen
• Webserver fur
¨ Gruppenhomepage
• VCS fur
¨ Quellcode und Paperdrafts
• Gruppenwiki
• Diverses
Hardware
• AMD Opteron Quad 1356@2.3GHz
• 8 GB ECC RAM
• 3ware RAID-Controller
• RAID1 750GB
Zusammenfassung
25/ 34
Einleitung
Technologien
Anwendungen
¨
Webserver mit erweiterten Funktionalitaten
II
Implementation
• FreeBSD 9.0-RELEASE
• DNS Slave: Bind (Base)
• Webserver: apache (ports/www/apache22)
• Wiki: Mediawiki (ports/www/mediawiki)
• VCS: Subversion (ports/devel/subversion)
Git (ports/devel/git)
/etc/rc.conf:
sshd enable="YES"
apache22 enable="YES"
apache22 http accept enable="YES"
mysql enable="YES"
syslogd flags="-c"
denyhosts enable="YES"
ntpd enable="YES"
named enable="YES"
Zusammenfassung
26/ 34
Einleitung
Technologien
Anwendungen
Routerbox
Anforderungen
• AccessPoint (WLAN, DHCP)
• kleiner Fileserver
• hohe Betriebsdauer
Hardware
• Intel Atom 330@1.60GHz
• 2GB RAM
• 2x 1TB HDD
Zusammenfassung
27/ 34
Einleitung
Technologien
Anwendungen
Routerbox II
Implementation
• FreeBSD 9.0-RELEASE (+pf, +11n)
• ZFSv28 RAID1 (Tuning16 ) + NFSv3 Export
• DHCP: ports/net/isc-dhcp42-server
ifconfig_re0="DHCP"
wlans_ath0="wlan0"
ifconfig_wlan0="inet 192.168.0.2/24"
create_args_wlan0="wlanmode hostap "
gateway_enable="YES"
hostapd_enable="YES"
dhcpd_enable="YES"
dhcpd_ifaces="wlan0"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_program="/sbin/pfctl"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
16
ZFS Tuning Guide: wiki.freebsd.org/ZFSTuningGuide
Zusammenfassung
28/ 34
Einleitung
Technologien
Anwendungen
¨
Geharteter
Server
Anforderungen
• Einfacher periodischer Buildbot (kein Jenkins :-) )
• VCS fur
¨ Paper und Source
• ...
• sichere Trennung von Funktionalitaten
¨
Hardware
• v-Server (TransIP)
• 2 Intel X5650@2.67GHz
• 1GB RAM
Zusammenfassung
29/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
30/ 34
¨
Geharteter
Server II
Implementation
• FreeBSD 9.0-RELEASE
• alle Funktionalitaten
¨
in einzelnen Jails (mit ports/sysutils/ezjail)
• pf-basiertes NAT’ing
• VCS: Subversion mit ssh-key Login
• Buildbot: crontab und sh-Skripte
sshd_enable="YES"
ezjail_enable="YES"
cloned_interfaces="tap0 tap1 tap2 tap3 tap4 tap5 tap6"
ifconfig_tap0="192.168.1.100 netmask 255.255.255.0"
ifconfig_tap1="192.168.1.101 netmask 255.255.255.0"
pf_enable="YES"
pf_rules="/etc/pf.conf"
rpcbind_enable="NO"
cron_flags="$cron_flags -J 15"
syslogd_flags="-ss"
sendmail_enable="NONE"
clear_tmp_enable="YES"
sshd_enable="NO" # disable sshd
#
#
#
#
#
Disable the RPC daemon
Prevent jails running conc. cron
Disable syslogd listen for incoming
Completely disable sendmail
Clear /tmp at startup
Einleitung
Technologien
Anwendungen
Zusammenfassung
31/ 34
¨
Geharteter
Server III
/etc/pf.conf:
ext_if="vtnet0" # The external interface
int_if="tap0" # The internal interface
external_addr="XXX.XXX.XXX.XXX"
# Your public IP address
internal_net="192.168.1.0/24" # Your internal subnet
# bewirkt das "routing", korrekter NAT
nat on $ext_if from $internal_net to any -> ($ext_if)
rdr on $ext_if proto tcp from any to $external_addr/32 port 2200 ->
192.168.1.102 port 22
pass in all
pass out all
Einleitung
Technologien
Anwendungen
(Cluster)-Fileserver
Anforderungen
• 4 TB Daten per NFSv3 verteilen
• 30 Nutzer (verschiedenste Profile)
• 20 Clusternodes (Gigabit)
• 15 Workstations (Gigabit)
Hardware
• Intel Xeon Quad X3430@2.40GHz
• 8 GB ECC RAM
• Areca 1222 RAID-Controller
• 8 HDDs (1TB) HW-RAID6
Zusammenfassung
32/ 34
Einleitung
Technologien
Anwendungen
(Cluster)-Fileserver II
Implementation
• FreeBSD 8.2-RELEASE
• ZFSv28 Storage-Pool
• individuelle ZFS-Filesysteme pro User (Quota,..)
• NFSv3 Exports
/etc/rc.conf:
nfs server enable="YES"
nfs server flags="-u -t -n 128 "
/etc/zfs/exports:
-maproot=nobody -network XXX.XXX.XXX.0 -mask
255.255.255.0
• NIS slave Server
nisdomainname="mynisdomain"
nis server enable="YES"
nis client enable="YES"
nis client flags="-S mynisdomain,myhostname"
Zusammenfassung
33/ 34
Einleitung
Technologien
Anwendungen
Zusammenfassung
• FreeBSD ist ein echtes UNIX
• modernes Betriebssystem
• interessante Features
• aktive Community
• grossartiges Server-OS
• und Desktop (nachstes
¨
Jahr?)
• Ausprobieren! :-)
Danke fur
¨ die Aufmerksamkeit! Fragen?
Zusammenfassung
34/ 34
Document
Kategorie
Technik
Seitenansichten
17
Dateigröße
1 224 KB
Tags
1/--Seiten
melden