Server/srs1337/2015: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
[[Server/SRS1337 | SRS1337]] ist die Bezeichnung für das System auf dem [[Server/dicke Berta | Server ''dicke Berta'']].
[[Server/srs1337 | srs1337]] ist die Bezeichnung für das System auf dem [[Server/dicke Berta | Server ''dicke Berta'']].


== Installation ==
== Installation ==

Version vom 11. Mai 2014, 23:06 Uhr

srs1337 ist die Bezeichnung für das System auf dem Server dicke Berta.

Installation

PT und Frank Hebold orientierten sich ergänzend an der "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

gpart create -s gpt /dev/da0
gpart create -s gpt /dev/da1
gpart create -s gpt /dev/da2

Partitionierung der Festplatten zur Installation des Betriebssystems

Festplatten partitionieren

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

Bootloader zur Installation des Betriebssystems

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

Spiegeln des SWAP zur Installation des Betriebssystems

SWAP spiegeln (Redundanz erzeugen)

gmirror label -v -b round-robin swap0 da0p2 da1p2 da2p2
gmirror load

Anlegen des Pools für ZFS zur Installation des Betriebssystems

Pool für ZFS anlegen

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

Anlegen der Datasets von ZFS zur Installation des Betriebssystems

Datasets von ZFS anlegen

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

Installation des Betriebssystems zur Installation des Betriebssystems

Installation FreeBSD 9.X

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

Konfiguration des FreeBSD nach der Installation des Betriebssystems

Änderung des Rootverzeichnisses nach der Installation des Betriebssystems

Änderung des Rootverzeichnisses

chroot /mnt

Setzen des Passwortes für root nach der Installation des Betriebssystems

root-Passwort setzen

passwd

Anpassung zum Einhängen des SWAP-Mirror für jeden Boot-Vorgang nach der Installation des Betriebssystems

SWAP beim Hochfahren einhängen

ee /etc/fstab


#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

ee /etc/rc.conf


zfs_enable="YES"

Laden der benötigten Kernel-Module

ee /boot/loader.conf


zfs_load="YES"
vfs.root.mountfrom="zfs:storich"
geom_mirror_load="YES"

Anpassung zur Aktivierung der Netzwerkeinstellungen für jeden Boot-Vorgang nach der Installation des Betriebssystems

Grundkonfiguration der Netzwerkeinstellungen

ee /etc/rc.conf


hostname="hostname der Maschine"
defaultrouter="IP des Defaultrouters"
ifconfig_bce0="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

ee /boot/loader.conf


autoboot_delay="1"

Anpassung zur Festlegung der Zeitzone nach der Installation des Betriebssystems

Änderung der Zeitzone

tzsetup


Europe
Germany

Abmelden aus dem Rootverzeichnisses nach der Installation des Betriebssystems

exit


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)

cp /var/tmp/zpool.cache /mnt/boot/zfs/

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

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

Neustarten nach der Installation des Betriebssystems

FERTIG! (Neustart!)

reboot

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

cd /etc/mail
ee alias
make aliases

Erstellung der Liste für Nameserver

ee /etc/resolv.conf


domain domain.tld
nameserver "IP"
nameserver "IP"

Installation der Portscollection

portsnap fetch extract

Bereitstellung von SSH

Konfiguration von OpenSSH
  • openssh
  • ssh auf anderen port legen
  • Vorschläge für sshd_config

ee /etc/ssh/sshd_config


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

ee /etc/rc.conf


sshd_enable="YES"

Anpassung der Sicherheitseinstellungen

Festlegung zur Automatisierung der Updates
  • Automatische Portscollection updaten
  • Mailinfo zusenden zu
  • nicht aktuellen Ports
  • verbugten Ports

ee /etc/crontab


0	13	*	*	*	root	portsnap -I cron fetch && portsnap update && pkg_version -vIL=
0	14	*	*	*	root	portaudit -Fda
0	*/12	*	*	*	root	/usr/sbin/audit -n

Installation der Audit-Unterstützung
  • auditd starten

/etc/rc.d/auditd start

Festlegen der Grundeinstellungen der Audit-Unterstützung
  • flags setzen

ee /etc/security/audit_control


flags:lo,aa,ex

  • synchronize config:

audit -s

Anpassung zur Aktivierung der Audit-Unterstützung für jeden Boot-Vorgang

ee /etc/rc.conf


# Audit Deamon aktivieren
auditd_enable="YES"

Installation des Paket Filters (PF) von OpenBSD und ALTQ
  • Paketfilter starten

/etc/rc.d/pf start
/etc/rc.d/pflog start

Festlegen der Regeln für den Paket Filter

ee /etc/pf.conf


### 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

pfctl -vnf /etc/pf.conf

  • alte Regeln durch die neuen Regeln ersetzen

pfctl -Fa -f /etc/pf.conf

Anpassung zur Aktivierung des Paket Filters für jeden Boot-Vorgang

ee /etc/rc.conf


# 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

ee /etc/rc.conf


# host system is gateway for jails
gateway_enable="YES"

Anpassung zur Aktivierung der Systemlog-Informationen für jeden Boot-Vorgang

ee /etc/rc.conf


# syslogd an Hauptmaschine binden
syslogd_flags="-b $MAIN_IP"

Anpassung zur Sprache und Zeichensatz

ee /etc/login.conf


# deutsch einstellen
default:\

   :charset=ISO-8859-1:\
   :lang=de_DE.ISO8859-1:\


cap_mkdb /etc/login.conf

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


zfs_load="YES"
vfs.root.mountfrom="zfs:storich"
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-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)"


#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

weitere Konfigurationen

loader.conf

  • für den apache 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

Siehe auch