|
|
Zeile 32: |
Zeile 32: |
| == Software == | | == Software == |
| [[w:de:FreeBSD]] | | [[w:de:FreeBSD]] |
|
| |
| == Installation ==
| |
| [[PT]] und [[Benutzer:FrankHebold | Frank Hebold]] orientierten sich ergänzend an der [http://www.commander1024.de/wordpress/2012/01/freebsd-9-mit-root-on-zfs/ "Anleitung" ''FreeBSD 9 mit Root on ZFS''].
| |
|
| |
| === Installation des Betriebssystems ===
| |
|
| |
| ==== Starten mit dem Startmedium ====
| |
| * mit Speicherabbild für den USB-Stick
| |
|
| |
| ==== Einrichtung der Festplatten zur Installation des Betriebssystems ====
| |
| Festplatten einrichten
| |
| <code>
| |
| : gpart create -s gpt /dev/da0
| |
| : gpart create -s gpt /dev/da1
| |
| : gpart create -s gpt /dev/da2
| |
| </code>
| |
|
| |
| ==== Partitionierung der Festplatten zur Installation des Betriebssystems ====
| |
| Festplatten partitionieren
| |
| <code>
| |
| : gpart add -s 512k -t freebsd-boot da0
| |
| : gpart add -s 512k -t freebsd-boot da1
| |
| : gpart add -s 512k -t freebsd-boot da2
| |
| : gpart add -s 3G -t freebsd-swap da0
| |
| : gpart add -s 3G -t freebsd-swap da1
| |
| : gpart add -s 3G -t freebsd-swap da2
| |
| : gpart add -t freebsd-zfs da0
| |
| : gpart add -t freebsd-zfs da1
| |
| : gpart add -t freebsd-zfs da2
| |
| </code>
| |
|
| |
| ==== Bootloader zur Installation des Betriebssystems ====
| |
| <code>
| |
| : gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
| |
| : gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da1
| |
| : gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da2
| |
| </code>
| |
|
| |
| ==== Spiegeln des SWAP zur Installation des Betriebssystems ====
| |
| SWAP spiegeln (Redundanz erzeugen)
| |
| <code>
| |
| : gmirror label -v -b round-robin swap0 da0p2 da1p2 da2p2
| |
| : gmirror load
| |
| </code>
| |
|
| |
| ==== Anlegen des Pools für ZFS zur Installation des Betriebssystems ====
| |
| Pool für ZFS anlegen
| |
| <code>
| |
| : zpool create storich mirror da0p3 da1p3 da2p3
| |
| : zfs set mountpoint=/mnt storich
| |
| : zpool export storich
| |
| : zpool import -o cachefile=/var/tmp/zpool.cache storich
| |
| : zfs set checksum=fletcher4 storich
| |
| </code>
| |
|
| |
| ==== Anlegen der Datasets von ZFS zur Installation des Betriebssystems ====
| |
| Datasets von ZFS anlegen
| |
| <code>
| |
| : zfs create -o compression=on -o exec=on -o setuid=off storich/tmp
| |
| : chmod 1777 /mnt/tmp
| |
| : zfs create storich/usr
| |
| : zfs create storich/usr/home
| |
| : cd /mnt/
| |
| : ln -s /usr/home home
| |
| : zfs create -o compression=lzjb -o setuid=off storich/usr/ports
| |
| : zfs create -o compression=off -o exec=off -o setuid=off storich/usr/ports/distfiles
| |
| : zfs create -o compression=off -o exec=off -o setuid=off storich/usr/ports/packages
| |
| : zfs create -o compression=off -o exec=off -o setuid=off storich/usr/src
| |
| : zfs create storich/var
| |
| : zfs create -o compression=off -o exec=off -o setuid=off storich/var/crash
| |
| : zfs create -o exec=off -o setuid=off storich/var/empty
| |
| : zfs create -o compression=lzjb -o exec=off -o setuid=off storich/var/log
| |
| : zfs create -o compression=gzip -o exec=off -o setuid=off storich/var/mail
| |
| : zfs create -o exec=off -o setuid=off storich/var/run
| |
| : zfs create -o compression=lzjb -o exec=on -o setuid=off storich/var/tmp
| |
| : chmod 1777 /mnt/var/tmp
| |
| </code>
| |
|
| |
| ==== Installation des Betriebssystems<!-- :-D --> zur Installation des Betriebssystems ====
| |
| Installation FreeBSD 9.X
| |
| <code>
| |
| : tar -xf /usr/freebsd-dist/base.txz
| |
| : tar -xf /usr/freebsd-dist/kernel.txz
| |
| : tar -xf /usr/freebsd-dist/doc.txz
| |
| : tar -xf /usr/freebsd-dist/lib32.txz
| |
| : tar -xf /usr/freebsd-dist/ports.txz
| |
| : tar -xf /usr/freebsd-dist/src.txz
| |
| : zfs set readonly=on storich/var/empty
| |
| </code>
| |
|
| |
| ==== Konfiguration des FreeBSD nach der Installation des Betriebssystems ====
| |
|
| |
| ===== Änderung des Rootverzeichnisses nach der Installation des Betriebssystems =====
| |
|
| |
| ----
| |
|
| |
| [[wikipedia:de:chroot | Änderung des Rootverzeichnisses]]
| |
| <code>
| |
| : chroot /mnt
| |
| </code>
| |
|
| |
| ===== Setzen des Passwortes für ''root'' nach der Installation des Betriebssystems =====
| |
| root-Passwort setzen
| |
| <code>
| |
| : passwd
| |
| </code>
| |
|
| |
| ===== Anpassung zum Einhängen des SWAP-Mirror für jeden Boot-Vorgang nach der Installation des Betriebssystems =====
| |
| SWAP beim Hochfahren einhängen
| |
| <code>
| |
| : ee /etc/fstab
| |
| </code>
| |
| <code>
| |
| #Device Mountpoint FStype Options Dump Pass#
| |
| /dev/mirror/swap0 none swap sw 0 0
| |
| </code>
| |
|
| |
| ===== Anpassung zur Aktivierung von ZFS für jeden Boot-Vorgang nach der Installation des Betriebssystems =====
| |
| Aktivierung des ZFS
| |
| <code>
| |
| : ee /etc/rc.conf
| |
| </code>
| |
| <code>
| |
| zfs_enable="YES"
| |
| </code>
| |
| Laden der benötigten Kernel-Module
| |
| <code>
| |
| : ee /boot/loader.conf
| |
| </code>
| |
| <code>
| |
| zfs_load="YES"
| |
| vfs.root.mountfrom="zfs:storich"
| |
| geom_mirror_load="YES"
| |
| </code>
| |
|
| |
| ===== Anpassung zur Aktivierung der Netzwerkeinstellungen für jeden Boot-Vorgang nach der Installation des Betriebssystems =====
| |
| Grundkonfiguration der Netzwerkeinstellungen
| |
| <code>
| |
| : ee /etc/rc.conf
| |
| </code>
| |
| <code>
| |
| hostname="''hostname der Maschine''"
| |
| defaultrouter="''IP des Defaultrouters''"
| |
| ifconfig_bce0="''IP der Maschine'' netmask 255.255.255.0"
| |
| </code>
| |
|
| |
| ===== Anpassung zur Festlegung der Dauer vom Bootscreen für jeden Boot-Vorgang nach der Installation des Betriebssystems =====
| |
| Festlegung (Reduzierung) der Dauer vom Bootscreen
| |
| <code>
| |
| : ee /boot/loader.conf
| |
| </code>
| |
| <code>
| |
| autoboot_delay="1"
| |
| </code>
| |
|
| |
| ===== Anpassung zur Festlegung der Zeitzone nach der Installation des Betriebssystems =====
| |
| Änderung der Zeitzone
| |
| <code>
| |
| : tzsetup
| |
| </code>
| |
| <code>
| |
| Europe
| |
| Germany
| |
| </code>
| |
|
| |
| ===== Abmelden aus dem Rootverzeichnisses nach der Installation des Betriebssystems =====
| |
| <code>
| |
| : exit
| |
| </code>
| |
|
| |
| ----
| |
|
| |
| ===== Kopieren der Informationen zum Pool für ZFS für jeden Boot-Vorgang nach der Installation des Betriebssystems =====
| |
| Informationen zum Pool für ZFS kopieren (oder verschieben)
| |
| <code>
| |
| : cp /var/tmp/zpool.cache /mnt/boot/zfs/
| |
| </code>
| |
|
| |
| ===== einmaliges Aushängen und Festlegung der zukünftige Einhängepunkte der Datasets von ZFS für jeden Boot-Vorgang nach der Installation des Betriebssystems =====
| |
| Datasets von ZFS aushängen und zukünftige Einhängepunkte festlegen
| |
| <code>
| |
| : cd /
| |
| : zfs unmount -a
| |
| : zfs set mountpoint=legacy storich
| |
| : zfs set mountpoint=/tmp storich/tmp
| |
| : zfs set mountpoint=/usr storich/usr
| |
| : zfs set mountpoint=/var storich/var
| |
| </code>
| |
|
| |
| ==== Neustarten nach der Installation des Betriebssystems ====
| |
| FERTIG! (Neustart!)
| |
| <code>
| |
| : reboot
| |
| </code>
| |
|
| |
| === Anpassungen und Ergänzungen nach der Installation des Betriebssystems ===
| |
|
| |
| ==== Anpassung zur Festlegung der Adressen für die Weiterleitung der Mails des Betriebssystems ====
| |
|
| |
| Erstellung und Weiterleitung von Adressen für Mails vom Betriebssystem
| |
| <code>
| |
| : cd /etc/mail
| |
| : ee alias
| |
| : make aliases
| |
| </code>
| |
|
| |
| ==== Erstellung der Liste für Nameserver ====
| |
|
| |
| <code>
| |
| : ee /etc/resolv.conf
| |
| </code>
| |
| <code>
| |
| domain ''domain.tld''
| |
| nameserver "''IP''"
| |
| nameserver "''IP''"
| |
| </code>
| |
|
| |
| ==== Installation der Portscollection ====
| |
|
| |
| <code>
| |
| : portsnap fetch extract
| |
| </code>
| |
|
| |
| ==== Bereitstellung von [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/openssh.html SSH] ====
| |
|
| |
| ===== Konfiguration von OpenSSH =====
| |
|
| |
| * [http://openssh.com/ openssh]
| |
| * ssh auf anderen port legen
| |
| * Vorschläge für sshd_config
| |
|
| |
| <code>
| |
| : ee /etc/ssh/sshd_config
| |
| </code>
| |
| <code>
| |
| VersionAddendum
| |
| Port $SSH_PORTNUMMER
| |
| ListenAddress $JAIL_IP
| |
| Protocol 2
| |
| SyslogFacility AUTH
| |
| LogLevel INFO
| |
| LoginGraceTime 1m
| |
| PermitRootLogin no
| |
| StrictModes yes
| |
| MaxAuthTries 4
| |
| MaxSessions 5
| |
| AllowUsers $DER_COOLE_LEUTE_CLUB
| |
| PermitEmptyPasswords no
| |
| X11Forwarding no
| |
| Banner none
| |
| </code>
| |
|
| |
| * immer schön manpage lesen und mit dem Feinkamm durchgehen
| |
| * keys + passwörter zur Authentifizierung
| |
| * in jails:'''ListenAddress 0.0.0.0'''
| |
|
| |
| ===== Aktivierung von OpenSSH für jeden Boot-Vorgang =====
| |
|
| |
| <code>
| |
| : ee /etc/rc.conf
| |
| </code>
| |
| <code>
| |
| sshd_enable="YES"
| |
| </code>
| |
|
| |
| ==== Anpassung der Sicherheitseinstellungen ====
| |
|
| |
| ===== Festlegung zur Automatisierung der Updates =====
| |
|
| |
| * Automatische Portscollection updaten
| |
| * Mailinfo zusenden zu
| |
| * nicht aktuellen Ports
| |
| * verbugten Ports
| |
|
| |
| <code>
| |
| : ee /etc/crontab
| |
| </code>
| |
| <code>
| |
| 0 13 * * * root portsnap -I cron fetch && portsnap update && pkg_version -vIL=
| |
| 0 14 * * * root portaudit -Fda
| |
| 0 */12 * * * root /usr/sbin/audit -n
| |
| </code>
| |
|
| |
| ===== [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/audit-install.html Installation der Audit-Unterstützung] =====
| |
|
| |
| * auditd starten
| |
| <code>
| |
| : /etc/rc.d/auditd start
| |
| </code>
| |
|
| |
| ====== Festlegen der Grundeinstellungen der Audit-Unterstützung ======
| |
|
| |
| * flags setzen
| |
| <code>
| |
| : ee /etc/security/audit_control
| |
| </code>
| |
| <code>
| |
| flags:lo,aa,ex
| |
| </code>
| |
| * synchronize config:
| |
| <code>
| |
| : audit -s
| |
| </code>
| |
|
| |
| ====== Anpassung zur Aktivierung der Audit-Unterstützung für jeden Boot-Vorgang ======
| |
|
| |
| <code>
| |
| : ee /etc/rc.conf
| |
| </code>
| |
| <code>
| |
| # Audit Deamon aktivieren
| |
| auditd_enable="YES"
| |
| </code>
| |
|
| |
| ===== [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/firewalls-pf.html Installation des Paket Filters (PF) von OpenBSD und ALTQ] =====
| |
|
| |
| * Paketfilter starten
| |
| <code>
| |
| : /etc/rc.d/pf start
| |
| : /etc/rc.d/pflog start
| |
| </code>
| |
|
| |
| ====== Festlegen der Regeln für den Paket Filter ======
| |
|
| |
| <code>
| |
| : ee /etc/pf.conf
| |
| </code>
| |
| <code>
| |
| ### MAKROS
| |
| thishost "$MAIN_IP"
| |
| # portsnap5 204.9.55.80
| |
| portsnap_freebsd "{ 204.109.56.116 204.9.55.80 }"
| |
| # auditfile.tbz is beeing fetched from portaudit.freebsd.org
| |
| portaudit_freebsd "69.147.83.36"
| |
| # dnsserver from resolv.conf
| |
| dnsserver "{ 85.214.73.63 217.79.186.148 27.110.120.30 204.152.184.76 194.150$
| |
| ### RULES
| |
| # default deny
| |
| block in all
| |
| block out all
| |
| # lokales interface darf ohne einschränkungen
| |
| pass in quick on lo0 all
| |
| pass out quick on lo0 all
| |
| ## HOST
| |
| # allow ssh
| |
| pass in on bce0 proto tcp from any to $thishost port $SSH_PORT
| |
| pass out on bce0 proto tcp from $thishost port $SSH_PORT to any
| |
| ## allow outbound icmp
| |
| # echo request
| |
| pass out inet proto icmp icmp-type 8 code 0 keep state
| |
| # echo reply
| |
| pass in inet proto icmp icmp-type 0 code 0 keep state
| |
| # destination unreachable
| |
| pass in inet proto icmp icmp-type 3 keep state
| |
| # allow DNS lookups {also via tcp?} port 53
| |
| # what about traversal???
| |
| pass out on bce0 proto udp from $thishost to $dnsserver port 53 keep state
| |
| # allow portsnap to fetch from freebsd.org (ports?)
| |
| pass in on bce0 proto tcp from $portsnap_freebsd to $thishost
| |
| pass out on bce0 proto tcp from $thishost to $portsnap_freebsd
| |
| # allow portaudit to fetch auditfile.tbz via http
| |
| pass in on bce0 proto tcp from $portaudit_freebsd port 80 to $thishost
| |
| pass out on bce0 proto tcp from $thishost to $portaudit_freebsd port 80
| |
| ## JAIL Beispiel (uneingeschränkt -> '''dumme Idee''', ports dienstabhänging freigeben
| |
| pass in on bce0 proto { tcp udp icmp } from any to $jail_srs14
| |
| pass out on bce0 proto { tcp udp icmp } from $jail_srs14 to any
| |
| </code>
| |
| * Regeln überprüfen
| |
| <code>
| |
| : pfctl -vnf /etc/pf.conf
| |
| </code>
| |
| * alte Regeln durch die neuen Regeln ersetzen
| |
| <code>
| |
| : pfctl -Fa -f /etc/pf.conf
| |
| </code>
| |
|
| |
| ====== Anpassung zur Aktivierung des Paket Filters für jeden Boot-Vorgang ======
| |
|
| |
| <code>
| |
| : ee /etc/rc.conf
| |
| </code>
| |
| <code>
| |
| # Packet Filter aktivieren
| |
| pf_enable="YES"
| |
| # auf die erstellte Datei mit den Regeln für den Packet Filter verweisen
| |
| pf_rules="/etc/pf.conf"
| |
| # Log für den Packet Filterlog aktivieren
| |
| pflog_enable="YES"
| |
| </code>
| |
|
| |
| ==== Anpassung zur Aktivierung des Durchroutens aller Jails für jeden Boot-Vorgang ====
| |
|
| |
| <code>
| |
| : ee /etc/rc.conf
| |
| </code>
| |
| <code>
| |
| # host system is gateway for jails
| |
| gateway_enable="YES"
| |
| </code>
| |
|
| |
| ==== Anpassung zur Aktivierung der Systemlog-Informationen für jeden Boot-Vorgang ====
| |
|
| |
| <code>
| |
| : ee /etc/rc.conf
| |
| </code>
| |
| <code>
| |
| # syslogd an Hauptmaschine binden
| |
| syslogd_flags="-b $MAIN_IP"
| |
| </code>
| |
|
| |
| ==== Anpassung zur Sprache und Zeichensatz ====
| |
|
| |
| <code>
| |
| : ee /etc/login.conf
| |
| </code>
| |
| <code>
| |
| # deutsch einstellen
| |
| default:\
| |
|
| |
| :charset=ISO-8859-1:\
| |
| :lang=de_DE.ISO8859-1:\
| |
|
| |
| </code>
| |
| <code>
| |
| : cap_mkdb /etc/login.conf
| |
| </code>
| |
|
| |
| === Zusammenfassung der Einträge und Anpassung nach der Installation des Betriebssystems ===
| |
|
| |
| ; Hinweis:
| |
| : Bei einer Mehrzahl von Einträgen sollte die Datei hier als Zusammenfassung abgebildet werden.
| |
| : Bei einmaligen Einträgen kann auf den entsprechende Abschnitt verwiesen werden.
| |
|
| |
| ==== /mnt/etc/fstab ====
| |
| siehe [[#Anpassung zum Einhängen des SWAP-Mirror für jeden Boot-Vorgang nach der Installation des Betriebssystems]]
| |
|
| |
| ==== /boot/loader.conf ====
| |
|
| |
| <code>
| |
| zfs_load="YES"
| |
| vfs.root.mountfrom="zfs:storich"
| |
|
| |
| geom_mirror_load="YES"
| |
|
| |
| autoboot_delay="1"
| |
| </code>
| |
|
| |
| ==== /etc/rc.conf ====
| |
|
| |
| <code>
| |
| zfs_enable="YES"
| |
|
| |
| keymap="german.iso"
| |
| hostname="''Name des Servers''"
| |
| defaultrouter="''IP(v4)-Adresse des nächsten Routers (im C[https://de.wikipedia.org/wiki/IPv4#Netzklassen -Netz])''"
| |
| ifconfig_em0="''IP(v4)-Adresse des Servers (host)'' netmask 255.255.255.0"
| |
|
| |
| sshd_enable="YES"
| |
|
| |
| # Audit Deamon aktivieren
| |
| auditd_enable="YES"
| |
|
| |
| # Packetfilter aktivieren
| |
| pf_enable="YES"
| |
|
| |
| # Packetfilter Datei
| |
| pf_rules="/etc/pf.conf"
| |
|
| |
| # Packetfilterlog aktivieren
| |
| pflog_enable="YES"
| |
|
| |
| # host system is gateway for jails
| |
| gateway_enable="YES"
| |
|
| |
| # syslogd an Hauptmaschine binden
| |
| syslogd_flags="-b ''IP(v4)-Adresse des Servers (host)''"
| |
| </code>
| |
|
| |
| * Wenn IPv6 verfügbar ist, müssen noch weitere Anpassung für die Nutzung von IPv6 eingetragen werden.
| |
| * [https://www.davidandrzejewski.com/2010/03/04/freebsd-ipv6-tunnel-and-gateway-configuration/ Hilfreiche Seite für das Tunneln von ipv6 zu 4 Adressen]
| |
| <code>
| |
| #Aktivierung des IPv6 Supports
| |
| ipv6_enable="YES"
| |
| ipv6_defaultrouter="'''<IPv6-Adresse des nächsten Routers>'''"
| |
| ipv6_ifconfig_em0="'''<IPv6-Adresse des Servers (host)>''' prefixlen 128"
| |
|
| |
| # host system is gateway for jails with ipv6
| |
| ipv6_gateway_enable="YES"
| |
| </code>
| |
|
| |
| ==== /etc/resolv.conf ====
| |
| siehe [[#Erstellung der Liste für Nameserver]]
| |
| * Aus Sicherheitsgründen wurde hier nicht der orginale Dateiinalt hingeschrieben
| |
|
| |
| ==== /etc/ssh/sshd_config ====
| |
| siehe [[#Konfiguration von OpenSSH]]
| |
|
| |
| ==== /etc/crontab ====
| |
| siehe [[#Festlegung zur Automatisierung der Updates]]
| |
|
| |
| ==== /etc/security/audit_control ====
| |
| sieh [[#Festlegen der Grundeinstellungen der Audit-Unterstützung]]
| |
|
| |
| ==== /etc/pf.conf ====
| |
| siehe [[#Festlegen der Regeln für den Paket Filter]]
| |
|
| |
| * Aus Sicherheitsgründen wurde hier nicht der orginale Dateiinalt hingeschrieben
| |
|
| |
| ==== /etc/login.conf ====
| |
| siehe [[#Anpassung zur Sprache und Zeichensatz]]
| |
|
| |
|
| == Siehe auch == | | == Siehe auch == |