Bearbeiten von „StuRa:Server/Hauptsystem

Zur Navigation springen Zur Suche springen
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
== [[dicke Berta]] ==
Der [[Server/Hauptsystem | Artikel ''Server/Hauptsystem'']] dient zur Dokumentation des hauptsächlichen Systems des [[Server]]s (unseres [[StuRa]]).
Der [[Server/Hauptsystem | Artikel ''Server/Hauptsystem'']] dient zur Dokumentation des hauptsächlichen Systems des [[Server]]s (unseres [[StuRa]]).


= [[dicke Berta]] =
Die ''<''eingegrenzten Bereiche''>'' sind Inhalte, die variabel sind oder hier nicht angegeben werden können.


{{:Server/dicke Berta}}
=== Software ===
[http://de.wikipedia.org/wiki/FreeBSD FreeBSD]


= [[fette Elke]] =
=== Installation ===
[[PT]] und [[Benutzer:FrankHebold | Frank Hebold]] orientierte 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''].


{{:Server/fette_Elke}}
==== 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/ada0
: gpart create -s gpt /dev/ada1
: gpart create -s gpt /dev/ada2
</code>
 
===== Partitionierung der Festplatten zur Installation des Betriebssystems =====
Festplatten partitionieren
<code>
: gpart add -s 512k -t freebsd-boot ada0
: gpart add -s 512k -t freebsd-boot ada1
: gpart add -s 512k -t freebsd-boot ada2
: gpart add -s 3G -t freebsd-swap ada0
: gpart add -s 3G -t freebsd-swap ada1
: gpart add -s 3G -t freebsd-swap ada2
: gpart add -t freebsd-zfs ada0
: gpart add -t freebsd-zfs ada1
: gpart add -t freebsd-zfs ada2
</code>
 
===== Bootloader zur Installation des Betriebssystems =====
<code>
: gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
: gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
: gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada2
</code>
 
===== Spiegeln des SWAP zur Installation des Betriebssystems =====
SWAP spiegeln (Redundanz erzeugen)
<code>
: gmirror label -v -b round-robin swap0 ada0p2 ada1p2 ada2p2
: gmirror load
</code>
 
===== Anlegen des Pools für ZFS zur Installation des Betriebssystems =====
Pool für ZFS anlegen
<code>
: zpool create storerich mirror ada0p3 ada1p3 ada2p3
: zfs set mountpoint=/mnt storerich
: zpool export storerich
: zpool import -o cachefile=/var/tmp/zpool.cache storerich
: zfs set checksum=fletcher4 storerich
</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 storerich/tmp
: chmod 1777 /mnt/tmp
: zfs create storerich/usr
: zfs create storerich/usr/home
: cd /mnt/
: ln -s /usr/home home
: zfs create -o compression=lzjb -o setuid=off storerich/usr/ports
: zfs create -o compression=off -o exec=off -o setuid=off storerich/usr/ports/distfiles
: zfs create -o compression=off -o exec=off -o setuid=off storerich/usr/ports/packages
: zfs create -o compression=off -o exec=off -o setuid=off storerich/usr/src
: zfs create storerich/var
: zfs create -o compression=off -o exec=off -o setuid=off storerich/var/crash
: zfs create -o exec=off -o setuid=off storerich/var/empty
: zfs create -o compression=lzjb -o exec=off -o setuid=off storerich/var/log
: zfs create -o compression=gzip -o exec=off -o setuid=off storerich/var/mail
: zfs create -o exec=off -o setuid=off storerich/var/run
: zfs create -o compression=lzjb -o exec=on -o setuid=off storerich/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/doc.txz
: tar -xf /usr/freebsd-dist/kernel.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 storerich/var/empty
</code>
 
===== Konfiguration des FreeBSD nach der Installation des Betriebssystems =====
 
====== Änderung des Rootverzeichnisses nach der Installation des Betriebssystems ======
 
----
 
[http://de.wikipedia.org/wiki/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 /mnt/etc/fstab
</code>
#Device Mountpoint FStype Options Dump Pass#
/dev/mirror/swap0 none swap sw 0 0
 
====== Anpassung zur Aktivierung von ZFS für jeden Boot-Vorgang nach der Installation des Betriebssystems ======
Aktivierung des ZFS
<code>
: ee /etc/rc.conf
</code>
zfs_enable="YES"
 
Laden der benötigten Kernel-Module
<code>
: ee /boot/loader.conf
</code>
zfs_load="YES"
vfs.root.mountfrom="zfs:storerich"
geom_mirror_load="YES"
 
====== Anpassung zur Aktivierung der Netzwerkeinstellungen für jeden Boot-Vorgang nach der Installation des Betriebssystems ======
Grundkonfiguration der Netzwerkeinstellungen
<code>
: ee /etc/rc.conf
</code>
hostname="<hostname der Maschine>"
defaultrouter="<IP des Defaultrouters>"
ifconfig_em0="<IP der Maschine> netmask 255.255.255.0"
 
====== 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>
autoboot_delay="1"
 
====== Anpassung zur Festlegung der Zeitzone nach der Installation des Betriebssystems ======
Änderung der Zeitzone
<code>
: tzsetup
</code>
Europe
Germany
 
====== 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 storerich
: zfs set mountpoint=/tmp storerich/tmp
: zfs set mountpoint=/usr storerich/usr
: zfs set mountpoint=/var storerich/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>
domain <domain.tld>
nameserver "<IPNummer>"
nameserver "<IPNummer>"
 
===== 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>
  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
 
* 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>
sshd_enable="YES"
 
===== Anpassung der Sicherheitseinstellungen =====
 
====== Festlegung zur Automatisierung der Updates ======
 
* Automatische Portscollection updaten
* Mailinfo zusenden zu
* nicht aktuellen Ports
* verbugten Ports
 
<code>
: ee /etc/crontab
</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
 
====== [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>
flags:lo,aa,ex
 
* synchronize config:
<code>
: audit -s
</code>
 
======= Anpassung zur Aktivierung der Audit-Unterstützung für jeden Boot-Vorgang =======
 
<code>
: ee /etc/rc.conf
</code>
# Audit Deamon aktivieren
auditd_enable="YES"
 
====== [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>
### 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
 
* 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>
# 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"
 
===== Anpassung zur Aktivierung des Durchroutens aller Jails für jeden Boot-Vorgang =====
 
<code>
: ee /etc/rc.conf
</code>
# host system is gateway for jails
gateway_enable="YES"
 
===== Anpassung zur Aktivierung der Systemlog-Informationen für jeden Boot-Vorgang =====
 
<code>
: ee /etc/rc.conf
</code>
# syslogd an Hauptmaschine binden
syslogd_flags="-b $MAIN_IP"
 
===== Anpassung zur Sprache und Zeichensatz =====
 
<code>
: ee /etc/login.conf
</code>
# deutsch einstellen
default:\
    …
    :charset=ISO-8859-1:\
    :lang=de_DE.ISO8859-1:\
    …
 
<code>
: cap_mkdb /etc/login.conf
</code>
 
==== Zusammenfassung der Einträge und Anpassung nach der Installation des Betriebssystems ====
 
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 =====
 
zfs_load="YES"
vfs.root.mountfrom="zfs:storerich"
geom_mirror_load="YES"
autoboot_delay="1"
 
===== /etc/rc.conf =====
 
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)>'''"
 
* 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]
 
#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"
 
===== /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]]
 
== [[fette Elke]] ==
 
=== loader.conf ===
 
* für den apache22 Eintrag anlegen
 
accf_data_load=”YES” # Wait for data accept filter
accf_http_load=”YES” # Wait for full HTTP request accept filter
 
=== sysctl.conf ===
 
kern.ipc.somaxconn=1024  #mögliche Verbindungen erhöhen
security.jail.allow_raw_sockets=1  # Jail kann raw-socket
 
=== Ports ===
 
==== installierte Ports ====
 
* autoconf
* autoconf-wrapper
* automake
* automake-wrapper
* db41
* emacs-nox11
* [[#gdbm |gdbm]]
* gettext
* gmake
* [[#help2man | help2man]]
* libevent
* [[#libevent2 | libevent2]]
* [[#libiconv | libiconv]]
* libidn
* libsigsegv
* libtool
* [[#m4 | m4]]
* nano
* p5-Locale-gettext
* [[#pcre | pcre]]
* [[#perl | perl-threaded]]
* pkgconf
* portaudit
* [[#portupgrade | portupgrade]]
* [[#python27 | python27]]
* [[#ruby | ruby]]
* ruby18-bdb
* [[#tmux | tmux]]
* [[#wget | wget]]
* [[#zsh | zsh]]
 
==== konfigurierte Ports ====
 
===== gdbm =====
 
<code>
WITH_COMPAT=true
</code>
 
===== help2man =====
 
<code>
OPTIONS_FILE_SET+=NLS
</code>
 
===== libevent2 =====
 
<code>
OPTIONS_FILE_SET+=OPENSSL
OPTIONS_FILE_SET+=THREADS
</code>
 
===== libiconv =====
 
<code>
WITH_EXTRA_ENCODINGS=true
WITHOUT_EXTRA_PATCHES=true
</code>
 
===== m4 =====
 
<code>
WITH_LIBSIGSEGV=true
</code>
 
===== pcre =====
 
<code>
OPTIONS_FILE_SET+=JIT
</code>
 
===== perl =====
 
<code>
WITHOUT_DEBUGGING=true
WITH_GDBM=true
WITH_PERL_MALLOC=true
WITH_PERL_64BITINT=true
WITH_THREADS=true
WITH_PTHREAD=true
WITH_MULTIPLICITY=true
WITHOUT_SITECUSTOMIZE=true
WITH_USE_PERL=true
</code>
 
===== portupgrade =====
 
<code>
OPTIONS_FILE_SET+=DOCS
OPTIONS_FILE_SET+=DB_OVERRIDE
OPTIONS_FILE_SET+=BDB4
OPTIONS_FILE_UNSET+=BDB1
</code>
 
===== python27 =====
 
<code>
OPTIONS_FILE_SET+=EXAMPLES
OPTIONS_FILE_UNSET+=FPECTL
OPTIONS_FILE_SET+=IPV6
OPTIONS_FILE_SET+=NLS
OPTIONS_FILE_UNSET+=PTH
OPTIONS_FILE_SET+=PYMALLOC
OPTIONS_FILE_UNSET+=SEM
OPTIONS_FILE_SET+=THREADS
OPTIONS_FILE_UNSET+=UCS2
OPTIONS_FILE_SET+=UCS4
</code>
 
===== ruby =====
 
<code>
OPTIONS_FILE_UNSET+=ONIGURUMA
OPTIONS_FILE_SET+=RDOC
OPTIONS_FILE_UNSET+=DEBUG
</code>
 
===== tmux =====
 
<code>
OPTIONS_FILE_SET+=BACKSPACE
OPTIONS_FILE_SET+=LIBEVENT2
OPTIONS_FILE_SET+=LIBEVENT_STATIC
</code>
 
===== wget =====
 
<code>
WITHOUT_GNUTLS=true
WITH_IPV6=true
WITH_NLS=true
WITH_OPENSSL=true
WITH_IDN=true
</code>
 
===== zsh =====
 
<code>
OPTIONS_FILE_UNSET+=DEBUG
OPTIONS_FILE_SET+=DOCS
OPTIONS_FILE_UNSET+=GDBM
OPTIONS_FILE_SET+=MAILDIR
OPTIONS_FILE_SET+=MEM
OPTIONS_FILE_SET+=MULTIBYTE
OPTIONS_FILE_SET+=PCRE
OPTIONS_FILE_SET+=SECURE_FREE
OPTIONS_FILE_UNSET+=STATIC
</code>
 
{{:Server/Jails}}


== Siehe auch ==
== Siehe auch ==
* [[Server/Jails | Alle vorhandenden Jails]]


[[Kategorie:Rechentechnik]]
[[Kategorie:Rechentechnik]]
[[Kategorie:Server]]
[[Kategorie:Server]]

Bitte beachte, dass alle Beiträge zu Wiki StuRa HTW Dresden von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können. Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.

Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast (weitere Einzelheiten unter StuRa HTW Dresden:Urheberrechte). ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Folgende Vorlagen werden auf dieser Seite verwendet: