StuRa:Server/FreeBSD: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
K (ArturasMiller verschob die Seite Server/FreeBSD nach StuRa:Server/FreeBSD)
 
(42 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Dies ist die [[Server/Dokumentation | Dokumentation für den Betrieb der]] [[Server]] mit [[FreeBSD]].
Dies ist die Dokumentation für den Betrieb der [[Server]] mit [[FreeBSD]].
{{Achtung|
Diese Artikel bezieht sich auf den Betrieb von [[srs2342]] mindestens einschließlich 2015.<br />Er gilt nicht für den Betrieb von [[srs1337]], wo seit 2015 [[FreeNAS]] betrieben wird und daher durch die [[Intern:Server/Aktualisierung/2015|Aktualisierung]] wesentliche Änderungen vorgenommen wurden.
}}


= Sicherheit =
== Sicherheit ==
* ports aktuell halten:
; Ports aktuell halten:
** portsnap /var/db/portsnap/INDEX
: <code>portsnap /var/db/portsnap/INDEX</code>
** edit /etc/crontab:
: <code>/etc/crontab</code> anpassen
<code>0 13 * * * root portsnap -I cron fetch && portsnap update && pkg_version -vIL=</code>
<pre>
* tägliches Audit der (installierten) Ports:
0 13 * * * root portsnap -I cron fetch && portsnap update && pkg_version -vIL=
** portaudit /var/db/portaudit/auditfile.tbz
</pre>
** edit /etc/crontab:
; tägliches Audit der (installierten) Ports:
<code>0 14 * * * root portaudit -Fda</code>
: <code>portaudit /var/db/portaudit/auditfile.tbz</code>
: <code>/etc/crontab</code> anpassen
<pre>
0 14 * * * root portaudit -Fda
</pre>
 
; sich (Mensch) auf dem aktuellen Stand halten:
* [http://www.vuxml.org/freebsd/ VuXML] abonnieren
* [http://www.vuxml.org/freebsd/ VuXML] abonnieren
* [http://security.freebsd.org/ http://security.freebsd.org/] mal durchlesen
* [http://security.freebsd.org/ http://security.freebsd.org/] mal durchlesen
* [http://nvd.nist.gov/ National Vulnerability Database] [http://nvd.nist.gov/download/nvd-rss.xml (NVD RSS)] abonnieren
* [http://nvd.nist.gov/ National Vulnerability Database] [http://nvd.nist.gov/download/nvd-rss.xml (NVD RSS)] abonnieren


== Paketfilter ==
=== Paketfilter ===
* [http://www.openbsd.org/faq/pf/ OpenBSD pf]
; [http://www.openbsd.org/faq/pf/ OpenBSD pf]
* in /etc/rc.conf:
* Paketfilter einrichten
pf_enable="YES"
*: <code>/etc/rc.conf</code> anpassen
pf_rules="/etc/pf.conf"
<pre>
pflog_enable="YES"
pf_enable="YES"
# host system is gateway for jails
pf_rules="/etc/pf.conf"
gateway_enable="YES"
pflog_enable="YES"
# host system is gateway for jails
gateway_enable="YES"
</pre>
* syslogd an Hauptmaschine binden
* syslogd an Hauptmaschine binden
** in /etc/rc.conf: (evtl. -ss flag?)
*: <code>/etc/rc.conf</code> anpassen
<code>syslogd_flags="-b $MAIN_IP"</code>
<pre>
syslogd_flags="-b $MAIN_IP"
</pre>
*:: (Eventuell) funktioniert auch eine andere (alternative) Möglichkeit.
<pre>
syslogd_flags="-ss"
</pre>
* Paketfilter starten:
* Paketfilter starten:
<code># /etc/rc.d/pf start
*: <code>/etc/rc.d/pf start</code>
# /etc/rc.d/pflog start</code>
*: <code>/etc/rc.d/pflog start</code>
* pf.config: (check via <code>pfctl -vnf /etc/pf.conf</code>) (inzwischen veraltet)
* <code>/etc/pf.conf</code> (Konfigurationsdatei für den Paketfilter) anpassen
### MAKROS
<pre>
thishost = "$MAIN_IP"
### MAKROS
# portsnap5 204.9.55.80
thishost = "$MAIN_IP"
portsnap_freebsd = "{ 204.109.56.116 204.9.55.80 }"
# portsnap5 204.9.55.80
# auditfile.tbz is beeing fetched from portaudit.freebsd.org
portsnap_freebsd = "{ 204.109.56.116 204.9.55.80 }"
portaudit_freebsd = "69.147.83.36"
# auditfile.tbz is beeing fetched from portaudit.freebsd.org
# dnsserver from resolv.conf
portaudit_freebsd = "69.147.83.36"
dnsserver = "{ 85.214.73.63 217.79.186.148 27.110.120.30 204.152.184.76 194.150$
# dnsserver from resolv.conf
### RULES
dnsserver = "{ 85.214.73.63 217.79.186.148 27.110.120.30 204.152.184.76 194.150$
# default deny
### RULES
block in all
# default deny
block out all
block in all
# lokales interface darf ohne einschränkungen
block out all
pass in quick on lo0 all
# lokales interface darf ohne einschränkungen
pass out quick on lo0 all
pass in quick on lo0 all
## HOST
pass out quick on lo0 all
# allow ssh
## HOST
pass in on bce0 proto tcp from any to $thishost port $SSH_PORT
# allow ssh
pass out on bce0 proto tcp from $thishost port $SSH_PORT to any
pass in on bce0 proto tcp from any to $thishost port $SSH_PORT
## allow outbound icmp
pass out on bce0 proto tcp from $thishost port $SSH_PORT to any
# echo request
## allow outbound icmp
pass out inet proto icmp icmp-type 8 code 0 keep state
# echo request
# echo reply
pass out inet proto icmp icmp-type 8 code 0 keep state
pass in inet proto icmp icmp-type 0 code 0 keep state
# echo reply
# destination unreachable
pass in inet proto icmp icmp-type 0 code 0 keep state
pass in inet proto icmp icmp-type 3 keep state
# destination unreachable
# allow DNS lookups {also via tcp?} port 53
pass in inet proto icmp icmp-type 3 keep state
# what about traversal???
# allow DNS lookups {also via tcp?} port 53
pass out on bce0 proto udp from $thishost to $dnsserver port 53 keep state
# what about traversal???
# allow portsnap to fetch from freebsd.org (ports?)
pass out on bce0 proto udp from $thishost to $dnsserver port 53 keep state
pass in on bce0 proto tcp from $portsnap_freebsd to $thishost
# allow portsnap to fetch from freebsd.org (ports?)
pass out on bce0 proto tcp from $thishost to $portsnap_freebsd
pass in on bce0 proto tcp from $portsnap_freebsd to $thishost
# allow portaudit to fetch auditfile.tbz via http
pass out on bce0 proto tcp from $thishost to $portsnap_freebsd
pass in on bce0 proto tcp from $portaudit_freebsd port 80 to $thishost
# allow portaudit to fetch auditfile.tbz via http
pass out on bce0 proto tcp from $thishost to $portaudit_freebsd port 80
pass in on bce0 proto tcp from $portaudit_freebsd port 80 to $thishost
## JAIL Beispiel (uneingeschränkt -> '''dumme Idee''', ports dienstabhänging freigeben
pass out on bce0 proto tcp from $thishost to $portaudit_freebsd port 80
pass in on bce0 proto { tcp udp icmp } from any to $jail_srs14
## JAIL Beispiel (uneingeschränkt -> '''dumme Idee''', ports dienstabhänging freigeben
pass out on bce0 proto { tcp udp icmp } from $jail_srs14 to any
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>
</pre>
** prüfen (lassen) der eingetragene Regeln (aka "sanity check") (inzwischen veraltet)
**: <code>pfctl -vnf /etc/pf.conf</code>


=== Paketfilter bedienen ===
==== Paketfilter bedienen ====
* anschalten: <code>pfctl -e</code>
* anschalten
* ausschalten: <code>pfctl -d</code>
*: <code>pfctl -e</code>
* sanity check: <code>pfctl -vnf /etc/pf.conf</code>
* ausschalten
* alte Regeln ins Klo und neue in die Auslage: <code>pfctl -Fa -f /etc/pf.conf</code>
*: <code>pfctl -d</code>
* sanity check
*: <code>pfctl -vnf /etc/pf.conf</code>
* alte Regeln ins Klo und neue Regeln in die Auslage
*: <code>pfctl -Fa -f /etc/pf.conf</code>


=== Verweise ===
==== Paketfilter Weblinks ====
* [[FreeBSD-Handbuch:firewalls.html | Das FreeBSD-Handbuch: Kapitel 31. Firewalls]]
** [[FreeBSD-Handbuch:firewalls-pf.html | Das FreeBSD-Handbuch: 31.4. Paket Filter (PF) von OpenBSD und ALTQ]]
* [http://openbsd.org/faq/pf/de/index.html PF: Der OpenBSD Packet Filter]
* [http://openbsd.org/faq/pf/de/index.html PF: Der OpenBSD Packet Filter]
* [http://www.amazon.com/Building-Firewalls-OpenBSD-PF-2nd/dp/8391665119 Jacek Artymiak - Building Firewalls with OpenBSD and PF, 2nd edition]
* [http://www.amazon.com/Building-Firewalls-OpenBSD-PF-2nd/dp/8391665119 Jacek Artymiak - Building Firewalls with OpenBSD and PF, 2nd edition]
* [http://www.nostarch.com/pf2.htm Peter N. M. Hansteen: The Book of PF, 2nd Edition - A No-Nonsense Guide to the OpenBSD Firewall]
* [http://www.nostarch.com/pf2.htm Peter N. M. Hansteen: The Book of PF, 2nd Edition - A No-Nonsense Guide to the OpenBSD Firewall]


== FreeBSD audit ==
=== FreeBSD audit ===
* faschistoides Logging von Systemcalls
* faschistoides Logging von Systemcalls
* präventiv wirkungslos, aber in der post-mortem Analyse extrem hilfreich
* präventiv wirkungslos, aber in der post-mortem Analyse extrem hilfreich
* [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/audit.html FreeBSD Kapitel 17. Security Event Auditing]
* [[FreeBSD-Handbuch:audit.html | Das FreeBSD-Handbuch: Kapitel 17. Security Event Auditing]]
* in /etc/rc.conf
* <code>/etc/rc.conf</code> anpassen
<code> auditd_enable="YES" </code>
<pre>
* start auditd:
auditd_enable="YES"
** <code># /etc/rc.d/auditd start</code>
</pre>
* in /etc/security/audit_control:
* auditd starten:
flags:lo,aa,ex
*: <code>/etc/rc.d/auditd start</code>
policy:cnt,argv
* <code>/etc/security/audit_control</code> anpassen
synchronize config: audit -s
<pre>
* cronjob für die logs: /etc/crontab
flags:lo,aa,ex
<code>0    */12      *      *      *      root    /usr/sbin/audit -n</code>
policy:cnt,argv
synchronize config: audit -s
</pre>
* cronjob für die logs
*: <code>/etc/crontab</code> anpassen
<pre>
0    */12      *      *      *      root    /usr/sbin/audit -n
</pre>


= Jails =
== [[port:sudo|sudo]] ==
Jails dienen der Virtualisierung von Betriebssysteminstanzen. Näheres dazu im [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/jails.html FreeBSD Handbuch Kapitel 15 - Jails].


== Jail Verzeichnis mit ZFS anlegen ==
===== <code>sudo</code> höchstens sorgfältig verwenden =====
Durch den Mainstream wird <code>sudo</code> häufig inflationär und grob verwendet. Es gibt ja aber Tutorials <!--<ref>-->[https://www.bsdcan.org/2014/schedule/attachments/283_2014-04-29%20sudo%20tutorial%20-%20bsdcan%202014.pdf]<!--</ref>-->. Anwendungsfälle für <code>sudo</code>, die eine gewisse Absicht haben, sollten entsprechend dokumentiert sein.


*beim erstenmal
=== Rechenzentrum ===


<code>
* Port 25 geschlossen
# zfs create zpool/jails
* Port 135 geschlossen
# zfs set mountpoint=/usr/home/jails zpool/jails
* Port 137-139 geschlossen
</code>


*ansonsten reicht es
== Jails ==
Jails dienen der Virtualisierung von Betriebssysteminstanzen. Näheres dazu im [[FreeBSD-Handbuch:jails.html | Das FreeBSD Handbuch: Kapitel 15 - Jails].


<code>
=== Jail Verzeichnis mit ZFS anlegen ===
# zfs create zpool/jails/$JAILNAME
* beim ersten Mal
</code>
*: <code>zfs create zpool/jails</code>
*: <code>zfs set mountpoint=/usr/home/jails zpool/jails</code>


== Anlegen eines Jails ==
* ansonsten reicht es
*: <code>zfs create zpool/jails/$JAILNAME</code>


* <code># cd /usr/src</code>
=== Anlegen einer Jail ===
* evtl. erst Sourcen installieren: sysinstall-> configure -> distributions
; auf dem Hauptsystem
* evtl. <code># make buildworld</code>
*: <code>cd /usr/src</code>
* Jails liegen unter /home/jails/$JAILNAME
* falls notwendig, müssen erst Sources installiert werden
* System für jail bauen:
*: <code>sysinstall</code>
<code>
*:* <code>Configure</code> wählen
# make installworld DESTDIR=/home/jails/$JAILNAME
*:* <code>Distributions</code> wählen
# make distribution DESTDIR=/home/jails/$JAILNAME
*:* <code>Sources</code> anwählen
</code>
* falls notwendig, müssen die Systemanwendungen neu erstellt werden
* device nodes ins jail packen
*: <code>make buildworld</code>
** <code># mount -t devfs devfs /home/jails/$JAILNAME/dev</code>
* Jails liegen unter <code>/home/jails/''$JAILNAME''</code>
* resolv.conf vom Host kopieren
* System für Jail bauen:
** <code># cp /etc/resolv.conf /home/jails/$JAILNAME/etc/resolv.conf</code>
*: <code>make installworld DESTDIR=/home/jails/''$JAILNAME''</code>
* rc.conf editieren:
*: <code>make distribution DESTDIR=/home/jails/''$JAILNAME''</code>
jail_enable="YES"
* device nodes ins Jail packen
jail_list="$JAILNAME"
*: <code>mount -t devfs devfs /home/jails/''$JAILNAME''/dev</code>
ifconfig_bce0_alias0="$JAIL_IP netmask 255.255.255.0"
* <code>/etc/resolv.conf</code> kopieren
jail_$JAILNAME_rootdir="/usr/home/jails/$JAILNAME"
*: <code>cp /etc/resolv.conf /home/jails/''$JAILNAME''/etc/resolv.conf</code>
jail_$JAILNAME_hostname="$JAILNAME.stura.htw-dresden.de"
* Vermerk (der Existenz) der Jails im Hauptsystem
jail_$JAILNAME_ip="$JAIL_IP"
** <code>/etc/rc.conf</code> anpassen
jail_$JAILNAME_devfs_enable="YES"
<pre>
jail_$JAILNAME_devfs_ruleset="devfsrules_jail"
jail_enable="YES"
* jail starten  
jail_list="$JAILNAME"
** <code># /etc/rc.d/jail start</code>
ifconfig_bce0_alias0="$JAIL_IP netmask 255.255.255.0"
* Prozess im jail starten  
jail_$JAILNAME_rootdir="/path/to/jails/$JAILNAME"
** <code># jexec $JAIL_ID tcsh</code>
jail_$JAILNAME_hostname="$JAILNAME.domain.tld"
** $JAIL_ID ermitteln mit
jail_$JAILNAME_ip="$JAIL_IP"
*** <code># jls</code>
jail_$JAILNAME_devfs_enable="YES"
jail_$JAILNAME_devfs_ruleset="devfsrules_jail"
</pre>
* Jail starten
*: <code>/etc/rc.d/jail start</code>
*:* Es wurde eine Jail gestartete, die eine ''$JAIL_ID'' erzeugte.
*:* Die ''$JAIL_ID'' kann ermittelt werden.
*:*: <code>jls</code>
* Shell (tcsh), als Prozess, in der Jail starten
*: <code>jexec ''$JAIL_ID'' tcsh</code>
; in der Jail
* Defaultrouting einstellen
** <code>/etc/rc.conf</code> anpassen
**: ''$IP'' ist dabei eine ''IP'' oder ein ''interfacename''.
<pre>
defaultrouting="<$IP:network>"
</pre>
* portscollection installieren
* portscollection installieren
** <code># portsnap fetch extract </code>
** <code>portsnap fetch extract </code>
* portscollection updaten
* portscollection updaten
** <code># portsnap fetch update </code>
** <code>portsnap fetch update </code>
* evtl. ssh anschalten (in rc.conf)
* falls noch notwendig, ssh (erstmal einmalig) anschalten
<code>sshd_enable="YES"</code>
*: <code>service sshd onestart</code>
* /etc/host
* falls noch notwendig, ssh (dauerhaft) anschalten
<code> #.#.#.#  JAILNAME.stura.htw-dresden.de </code>
** <code>/ect/rc.conf</code> anpassen
<pre>
sshd_enable="YES"
</pre>
*
** <code>/etc/hosts</code> anpassen
<pre>
#.#.#.#  $JAILNAME.stura.htw-dresden.de
</pre>


== Löschen eines Jails ==
=== Löschen eines Jails ===
* ins jailroot wechseln (/home/jails/$JAILNAME)
; auf dem Hauptsystem
<code>
* in (Root-)Verzeichnis der Jail wechseln
# chflags -R noschg *
*: <code>cd /home/jails/''$JAILNAME''</code>
# rm -rf *
* alles in der Jail '''kaputt''' machen
# cd .. && rm -r $JAILNAME
*: <code>chflags -R noschg *</code>
</code>
*: <code>rm -rf *</code>
* Jail '''kaputt''' machen
** ohne ZFS
**: <code>cd .. && rm -r ''$JAILNAME''</code>
** mit ZFS
**: <code>cd .. && zfs destroy tank/PATH/''$JAILNAME''</code>


== Tricks, Probleme etc. ==
=== Tricks, Probleme etc. ===
* sich evtl. ezjail mal anschauen (war damals kaputt)
* sich evtl. [http://svnweb.freebsd.org/ports/head/sysutils/ezjail/ ezjail] mal anschauen (war damals kaputt)
* ping aus jails heraus erlauben
* ping aus jails heraus erlauben
** host: allow_raw_socket=1 via
** host: allow_raw_socket=1 via
*** <code># sysctl security.jail.allow_raw_sockets=1</code>
**: <code>sysctl security.jail.allow_raw_sockets=1</code>
*** bzw. in /etc/sysctl.conf setzen
*** bzw. in <code>/etc/sysctl.conf</code> setzen
*** [http://www.cyberciti.biz/faq/freebsd-jail-allow-ping-tracerouter-commands/ Quelle]
*** [http://www.cyberciti.biz/faq/freebsd-jail-allow-ping-tracerouter-commands/ Quelle]
* ssh:
* ssh
** etc/ssh/sshd_config:
** <code>etc/ssh/sshd_config</code> anpassen
<code>ListenAddress 0.0.0.0</code>
<pre>
ListenAddress 0.0.0.0
</pre>
* [http://www.freebsd.org/cgi/url.cgi?ports/ports-mgmt/jailaudit/pkg-descr jailaudit]
* [http://www.freebsd.org/cgi/url.cgi?ports/ports-mgmt/jailaudit/pkg-descr jailaudit]
* Apache [http://www.freebsd.org/cgi/url.cgi?ports/www/mod_jail/pkg-descr mod_jail] als Alternative zu mod_chroot
* Apache [http://www.freebsd.org/cgi/url.cgi?ports/www/mod_jail/pkg-descr mod_jail] als Alternative zu mod_chroot
Zeile 177: Zeile 243:
** [http://wiki.freebsd.org/Image/Linux/CentOS55 CentOS]
** [http://wiki.freebsd.org/Image/Linux/CentOS55 CentOS]


= ssh =
== ssh ==
* [http://openssh.com/ openssh]
; [http://openssh.com/ openssh]
* ssh auf anderen port legen
* ssh auf anderen Port legen
* Vorschläge für /etc/ssh/sshd_config:
* Vorschläge  
<code>
** <code>/etc/ssh/sshd_config</code> anpassen
VersionAddendum
<pre>
Port $SSH_PORTNUMMER
VersionAddendum
ListenAddress $JAIL_IP
Port $SSH_PORTNUMMER
Protocol 2
ListenAddress $JAIL_IP
SyslogFacility AUTH
Protocol 2
LogLevel INFO
SyslogFacility AUTH
LoginGraceTime 1m
LogLevel INFO
PermitRootLogin no
LoginGraceTime 1m
StrictModes yes
PermitRootLogin no
MaxAuthTries 4
StrictModes yes
MaxSessions 5
MaxAuthTries 4
AllowUsers $DER_COOLE_LEUTE_CLUB
MaxSessions 5
PermitEmptyPasswords no
AllowUsers $DER_COOLE_LEUTE_CLUB #einzelne user nur mit leerzeichen trennen
X11Forwarding no
PermitEmptyPasswords no
Banner none
X11Forwarding no
</code>
Banner none
* immer schön manpage lesen und mit dem Feinkamm durchgehen
</pre>
* keys + passwörter zur Authentifizierung
* immer schön manpage [[freebsd-man:ssh|ssh]] (und ähnliche [[man:ssh]]) lesen und mit dem Feinkamm durchgehen
* in jails:<code>ListenAddress 0.0.0.0</code>
* keys + Passwörter zur Authentifizierung
* in Jails:
** <code>/etc/ssh/sshd_config</code> anpassen
<pre>
ListenAddress 0.0.0.0
</pre>
 
==== ssh Weblinks ====
* [http://openssh.com/ Homepage OpenSSH] <small>[http://openssh.com/de/index.html (deutschsprachig)</small>]
* [[FreeBSD-Handbuch:openssh.html | Das FreeBSD-Handbuch: 15.10. OpenSSH]]


= Email =
== Email ==
* MTA: [http://www.postfix.org/ postfix]
* MTA: [http://www.postfix.org/ postfix]
* MDA: [http://www.courier-mta.org/maildrop/ maildrop]
* MDA: [http://www.courier-mta.org/maildrop/ maildrop]
Zeile 235: Zeile 310:
  set mime_forward_rest=yes
  set mime_forward_rest=yes


 
=== MTA: postfix ===
== MTA: postfix ==
* in the email jail
* in the email jail
* <code># cd /usr/ports/mail/postfix</code>
* <code># cd /usr/ports/mail/postfix</code>
Zeile 257: Zeile 331:
  mail_spool_directory = /var/spool/mail
  mail_spool_directory = /var/spool/mail
  relay_domains = stura.htw-dresden.de
  relay_domains = stura.htw-dresden.de
smtpd_sender_restrictions = reject_unknown_sender_domain,
        reject_non_fqdn_sender
  smtpd_recipient_restrictions = reject_invalid_hostname,
  smtpd_recipient_restrictions = reject_invalid_hostname,
         reject_unknown_recipient_domain,
         reject_unknown_recipient_domain,
Zeile 267: Zeile 343:
  smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net
  smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net


== IMAP-Server dovecot ==
==== Links ====
* [http://www.postfix.org/ The Postfix Home Page]
* [http://chains.ch/docs/postfix-UCE-HOWTO-de.html Postfix UCE HOWTO] (Spamkontrolle)
 
=== IMAP-Server dovecot ===
* dovecot
* dovecot
** optionen: kqueue, ssl, managesieve, mysql
** optionen: kqueue, ssl, managesieve, mysql
Zeile 292: Zeile 372:
* '''Krypto drankleben (imap -> imaps, pop3 -> pop3s)'''
* '''Krypto drankleben (imap -> imaps, pop3 -> pop3s)'''


== MDA: maildrop ==
=== MDA: maildrop ===
* maildir in users homeverzeichnis anlegen
* maildir in users homeverzeichnis anlegen
  maildirmake Mail
  maildirmake Mail
* im homeverzeichnis die Datei .mailtiler anlegen:
* im homeverzeichnis die Datei .mailfilter anlegen:
  MAILBOX="$HOME/Mail"
  MAILBOX="$HOME/Mail"
  DEFAULT="$MAILBOX"
  DEFAULT="$MAILBOX"
Zeile 302: Zeile 382:
  mailbox_command = /usr/local/bin/maildrop -d ${USER}
  mailbox_command = /usr/local/bin/maildrop -d ${USER}


== Tricks etc. ==
=== Tricks etc. ===
* alias-Adressen anlegen
* alias-Adressen anlegen
** edit: /usr/local/etc/postfix/main.cf:
** edit: /usr/local/etc/postfix/main.cf:
Zeile 324: Zeile 404:
  # .
  # .
  # QUIT</code>
  # QUIT</code>
* SMTP über mehrere eMails testen:
<code>
# num=0
# for ABSENDER in <user>@stura.htw-dresden.de  noreplay@stura.htw-dresden.de test@stura.htw-dresden.de; do
# ABSENDERDOMAIN=`echo "${ABSENDER#*@}"`
# for EMPFAENGER in test@stura.htw-dresden.de; do
# num=$((num + 1))
# nc $JAIL_IP 25
# HELO $ABSENDERDOMAIN
# MAIL FROM:<$ABSENDER>
# RCPT TO:<$EMPFAENGER>
# DATA
# From: <$ABSENDER>
# To: <$EMPFAENGER>
# Subject: TEST$num
# Dies ist die Testmail.
# Nummer $num
# von    $ABSENDER
# ueber  $ABSENDERDOMAIN
# an    $EMPFAENGER
# .
# QUIT
# done
# done
</code>


= Plone =
== Plone ==
* JoSch damals gebaut, zwischenzeitlich grundsaniert
* JoSch damals gebaut, zwischenzeitlich grundsaniert
* [http://www.freebsdforums.org/how-to-install-apache-for-freebsd/ Apache] installiert
* [http://www.freebsdforums.org/how-to-install-apache-for-freebsd/ Apache] installiert
Zeile 337: Zeile 442:
* [http://plone.org/products/plone/releases http://plone.org/documentation/kb/freebsdploneapache/preparefreebsd]
* [http://plone.org/products/plone/releases http://plone.org/documentation/kb/freebsdploneapache/preparefreebsd]


= DNS =
== [[freebsd-handbuch:updating-upgrading.html | FreeBSD aktualisieren]] ==
 
=== [[FreeBSD-Handbuch:updating-upgrading-freebsdupdate.html | Aktualisierungen an Haupt- und Unterversionen]] ===
 
Dieser Prozess entfernt alte Objekt-Dateien und Bibliotheken, was dazu führt, dass die meisten Anwendungen von Drittherstellern nicht mehr funktionieren. Es wird empfohlen, dass alle installierten Ports entweder entfernt und neu installiert oder zu einem späteren Zeitpunkt mittels ports-mgmt/portupgrade aktualisiert werden. Die meisten Anwender werden wahrscheinlich einen Testlauf mittels des folgenden Kommandos durchführen wollen:
 
: <code>portupgrade -af</code>
 
Dies sorgt dafür, dass alles korrekt neu installiert wird. Beachten Sie, dass das Setzen der BATCH-Umgebungsvariable auf yes während dieses Prozesses auf jede Eingabe mit ja antwortet, was es nicht mehr notwendig macht, manuell eingreifen zu müssen.
 
; weiter Informationen
: [[FreeBSD-Handbuch:updating-upgrading-freebsdupdate.html | Das FreeBSD-Handbuch: 25.2.3. Aktualisierungen an Haupt- und Unterversionen]]
 
== DNS ==
* genutzt werden DNS Server des [https://www.foebud.org/ FoeBuD] und des CCC
* genutzt werden DNS Server des [https://www.foebud.org/ FoeBuD] und des CCC
* zusätzlich (für [http://www.opennicproject.org/ OpenNIC])
* zusätzlich (für [http://www.opennicproject.org/ OpenNIC])
Zeile 343: Zeile 462:
** NZ 27.110.120.30 ns1.nz.dns.opennic.glue Dean Gardiner yes (24 hrs)
** NZ 27.110.120.30 ns1.nz.dns.opennic.glue Dean Gardiner yes (24 hrs)


= Tipps, Tricks etc. =
== Tipps, Tricks etc. ==
* die Änderungen an Konfigurationsdateien (z.b. in /etc) via [http://git-scm.com/ git] tracken
* die Änderungen an Konfigurationsdateien (z.b. in /etc) via [http://git-scm.com/ git] tracken
* disk quotas für jails einrichten
* disk quotas für jails einrichten
Zeile 356: Zeile 475:
  # /etc/rc.d/netif restart && /etc/rc.d/routing restart
  # /etc/rc.d/netif restart && /etc/rc.d/routing restart


== USB-Stick bauen ==
=== USB-Stick bauen ===
* auf einem FreeBSD
* auf einem FreeBSD
* Image runterladen:
* Image runterladen
wget ftp://ftp.de.freebsd.org/pub/FreeBSD/ISO-IMAGES-amd64/8.2/FreeBSD-8.2-RELEASE-amd64-memstick.img
*:<code>wget ftp://ftp.de.freebsd.org/pub/FreeBSD/ISO-IMAGES-amd64/9.2/FreeBSD-9.2-RELEASE-amd64-memstick.img</code>
* Image auf Stick dumpen
* Image auf Stick dumpen
dd if=FreeBSD-8.2-RELEASE-amd64-memstick.img of=/dev/da0 bs=64k
*:<code>dd if=FreeBSD-9.2-RELEASE-amd64-memstick.img of=/dev/da0 bs=64k</code>
 
=== Troubelshooting ===
 
* In order to fix this, you should reboot from the installer CD, and choose the "Live CD" option. You first need to mount the zpool under /mnt. First list the available pools:
*:<code>zpool list</code>
*:
<pre>
no pools available
</pre>
* and
*:<code>zpool import</code>
<pre>
  pool: zroot
    id: 128742958409357345692345
state: ONLINE
action: The pool can be imported using its name of numeric identifier.
config:
        zroot      ONLINE
          ada1p2    ONLINE
</pre>
* Now import the zroot pool, and mount under <code>/mnt</code>:
*: <code>zpool import -R /mnt zroot</code>
 
==== System neubauen ====
* Von Live-CD oder stick booten!
* System unter <code>/mnt</code> einmounten (vollständig, also '''alle'' datasets)!
*:<code>zpool import</code>
*:<code>zpool import -R /mnt zroot</code>
* Mit nullfs mounten!
** <code>/mnt/usr/obj</code> an <code>/usr/obj</code>
**:<code>mount_nullfs /mnt/usr/obj /usr/obj</code>
** <code>/mnt/usr/src</code> an <code>/usr/src/</code>
**:<code>mount_nullfs /mnt/usr/src /usr/src</code>
* Update!
*:<code>cd /usr/src</code>
*:<code>make installkernel DESTDIR=/mnt</code>
*:<code>make installworld DESTDIR=/mnt</code>
*:<code>mergemaster -UFi -D /mnt/</code>
* Neustaren!
*:<code>reboot</code>
 
==== Siehe auch fuer weitere Tips & Tricks ====
 
* http://daemon-notes.com/tips


= Server Setup Beschreibung =
== Server Setup Beschreibung ==
* /boot UFS, der Rest ZFS
* /boot UFS, der Rest ZFS
* irgendwas zum booten nehmen (USB, DVD) und ab in die Fixit shell
* irgendwas zum booten nehmen (USB, DVD) und ab in die Fixit shell
Zeile 381: Zeile 544:
  gpart set -a active -i 1 ad0
  gpart set -a active -i 1 ad0


= Verweise etc. =
== Siehe auch ==
* [http://www.freebsd.org FreeBSD.org] - [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/ Handbuch]
* [[Server/Hauptsystem]]
 
== Weblinks ==
* [http://www.freebsd.org FreeBSD.org] - [http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/ Handbuch] (auch durch [[Spezial:Interwikitabelle]] per <nowiki>[[</nowiki><code>freebsd-handbuch:</code>Bezeichnung (URL) der Seite<nowiki>]]</nowiki> als Namensraum verfügbar)
* [http://www.freebsdwiki.net/ FreeBSD-wiki]
* [http://www.freebsdwiki.net/ FreeBSD-wiki]
* [http://cb.vu/unixtoolbox.xhtml Unix Toolbox]
* [http://cb.vu/unixtoolbox.xhtml Unix Toolbox]
* [http://openbsd.org/faq/pf/de/index.html PF: Der OpenBSD Packet Filter]
* [http://openbsd.org/faq/pf/de/index.html PF: Der OpenBSD Packet Filter]


== Intern ==
=== Weblinks für Bücher ===
* [[Server/Hauptsystem]]
 
== Bücher ==
* [http://nostarch.com/abs_bsd2.htm Absolute FreeBSD, 2nd Edition]
* [http://nostarch.com/abs_bsd2.htm Absolute FreeBSD, 2nd Edition]
* [http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470376031.html BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD]
* [http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470376031.html BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD]

Aktuelle Version vom 23. Februar 2020, 18:29 Uhr

Dies ist die Dokumentation für den Betrieb der Server mit FreeBSD.

Achtung

Diese Artikel bezieht sich auf den Betrieb von srs2342 mindestens einschließlich 2015.
Er gilt nicht für den Betrieb von srs1337, wo seit 2015 FreeNAS betrieben wird und daher durch die Aktualisierung wesentliche Änderungen vorgenommen wurden.

Sicherheit[Bearbeiten]

Ports aktuell halten
portsnap /var/db/portsnap/INDEX
/etc/crontab anpassen
0 13 * * * root portsnap -I cron fetch && portsnap update && pkg_version -vIL=
tägliches Audit der (installierten) Ports
portaudit /var/db/portaudit/auditfile.tbz
/etc/crontab anpassen
0 14 * * * root portaudit -Fda
sich (Mensch) auf dem aktuellen Stand halten

Paketfilter[Bearbeiten]

OpenBSD pf
  • Paketfilter einrichten
    /etc/rc.conf anpassen
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
# host system is gateway for jails
gateway_enable="YES"
  • syslogd an Hauptmaschine binden
    /etc/rc.conf anpassen
syslogd_flags="-b $MAIN_IP"
  • (Eventuell) funktioniert auch eine andere (alternative) Möglichkeit.
syslogd_flags="-ss"
  • Paketfilter starten:
    /etc/rc.d/pf start
    /etc/rc.d/pflog start
  • /etc/pf.conf (Konfigurationsdatei für den Paketfilter) anpassen
### 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
    • prüfen (lassen) der eingetragene Regeln (aka "sanity check") (inzwischen veraltet)
      pfctl -vnf /etc/pf.conf

Paketfilter bedienen[Bearbeiten]

  • anschalten
    pfctl -e
  • ausschalten
    pfctl -d
  • sanity check
    pfctl -vnf /etc/pf.conf
  • alte Regeln ins Klo und neue Regeln in die Auslage
    pfctl -Fa -f /etc/pf.conf

Paketfilter Weblinks[Bearbeiten]

FreeBSD audit[Bearbeiten]

auditd_enable="YES"
  • auditd starten:
    /etc/rc.d/auditd start
  • /etc/security/audit_control anpassen
flags:lo,aa,ex
policy:cnt,argv
synchronize config: audit -s
  • cronjob für die logs
    /etc/crontab anpassen
0     */12       *       *       *       root    /usr/sbin/audit -n

sudo[Bearbeiten]

sudo höchstens sorgfältig verwenden[Bearbeiten]

Durch den Mainstream wird sudo häufig inflationär und grob verwendet. Es gibt ja aber Tutorials [1]. Anwendungsfälle für sudo, die eine gewisse Absicht haben, sollten entsprechend dokumentiert sein.

Rechenzentrum[Bearbeiten]

  • Port 25 geschlossen
  • Port 135 geschlossen
  • Port 137-139 geschlossen

Jails[Bearbeiten]

Jails dienen der Virtualisierung von Betriebssysteminstanzen. Näheres dazu im [[FreeBSD-Handbuch:jails.html | Das FreeBSD Handbuch: Kapitel 15 - Jails].

Jail Verzeichnis mit ZFS anlegen[Bearbeiten]

  • beim ersten Mal
    zfs create zpool/jails
    zfs set mountpoint=/usr/home/jails zpool/jails
  • ansonsten reicht es
    zfs create zpool/jails/$JAILNAME

Anlegen einer Jail[Bearbeiten]

auf dem Hauptsystem
  • cd /usr/src
  • falls notwendig, müssen erst Sources installiert werden
    sysinstall
    • Configure wählen
    • Distributions wählen
    • Sources anwählen
  • falls notwendig, müssen die Systemanwendungen neu erstellt werden
    make buildworld
  • Jails liegen unter /home/jails/$JAILNAME
  • System für Jail bauen:
    make installworld DESTDIR=/home/jails/$JAILNAME
    make distribution DESTDIR=/home/jails/$JAILNAME
  • device nodes ins Jail packen
    mount -t devfs devfs /home/jails/$JAILNAME/dev
  • /etc/resolv.conf kopieren
    cp /etc/resolv.conf /home/jails/$JAILNAME/etc/resolv.conf
  • Vermerk (der Existenz) der Jails im Hauptsystem
    • /etc/rc.conf anpassen
jail_enable="YES"
jail_list="$JAILNAME"
ifconfig_bce0_alias0="$JAIL_IP netmask 255.255.255.0"
jail_$JAILNAME_rootdir="/path/to/jails/$JAILNAME"
jail_$JAILNAME_hostname="$JAILNAME.domain.tld"
jail_$JAILNAME_ip="$JAIL_IP"
jail_$JAILNAME_devfs_enable="YES"
jail_$JAILNAME_devfs_ruleset="devfsrules_jail"
  • Jail starten
    /etc/rc.d/jail start
    • Es wurde eine Jail gestartete, die eine $JAIL_ID erzeugte.
    • Die $JAIL_ID kann ermittelt werden.
      jls
  • Shell (tcsh), als Prozess, in der Jail starten
    jexec $JAIL_ID tcsh
in der Jail
  • Defaultrouting einstellen
    • /etc/rc.conf anpassen
      $IP ist dabei eine IP oder ein interfacename.
defaultrouting="<$IP:network>"
  • portscollection installieren
    • portsnap fetch extract
  • portscollection updaten
    • portsnap fetch update
  • falls noch notwendig, ssh (erstmal einmalig) anschalten
    service sshd onestart
  • falls noch notwendig, ssh (dauerhaft) anschalten
    • /ect/rc.conf anpassen
sshd_enable="YES"
    • /etc/hosts anpassen
#.#.#.#  $JAILNAME.stura.htw-dresden.de

Löschen eines Jails[Bearbeiten]

auf dem Hauptsystem
  • in (Root-)Verzeichnis der Jail wechseln
    cd /home/jails/$JAILNAME
  • alles in der Jail kaputt machen
    chflags -R noschg *
    rm -rf *
  • Jail kaputt machen
    • ohne ZFS
      cd .. && rm -r $JAILNAME
    • mit ZFS
      cd .. && zfs destroy tank/PATH/$JAILNAME

Tricks, Probleme etc.[Bearbeiten]

  • sich evtl. ezjail mal anschauen (war damals kaputt)
  • ping aus jails heraus erlauben
    • host: allow_raw_socket=1 via
      sysctl security.jail.allow_raw_sockets=1
      • bzw. in /etc/sysctl.conf setzen
      • Quelle
  • ssh
    • etc/ssh/sshd_config anpassen
ListenAddress 0.0.0.0

ssh[Bearbeiten]

openssh
  • ssh auf anderen Port legen
  • Vorschläge
    • /etc/ssh/sshd_config anpassen
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 #einzelne user nur mit leerzeichen trennen
PermitEmptyPasswords no
X11Forwarding no
Banner none
  • immer schön manpage ssh (und ähnliche man:ssh) lesen und mit dem Feinkamm durchgehen
  • keys + Passwörter zur Authentifizierung
  • in Jails:
    • /etc/ssh/sshd_config anpassen
ListenAddress 0.0.0.0

ssh Weblinks[Bearbeiten]

Email[Bearbeiten]

set mbox_type=Maildir
set folder="~/Mail"
set mask="!^\\.[^.]"
set mbox="~/Mail"
set spoolfile="~/Mail"
set editor="mg"
set charset="utf-8"
set realname="XXX (StuRa HTW Dresden)"
set from="XXX@stura.htw-dresden.de"
set use_from=yes
set mime_forward=yes
set mime_forward_rest=yes

MTA: postfix[Bearbeiten]

  • in the email jail
  • # cd /usr/ports/mail/postfix
  • # make install clean
    • postfix added to group mail -> y
    • Would you like to activate Postfix in /etc/mail/mailer.conf -> y
  • Einstellungen (Auszug + aliases)
    • edit /usr/local/etc/postfix/main.cf:
local_recipient_maps = $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8
myhostname = mail.stura.htw-dresden.de
mydomain = stura.htw-dresden.de
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
inet_interfaces = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
mail_spool_directory = /var/spool/mail
relay_domains = stura.htw-dresden.de
smtpd_sender_restrictions = reject_unknown_sender_domain,
       reject_non_fqdn_sender
smtpd_recipient_restrictions = reject_invalid_hostname,
       reject_unknown_recipient_domain,
       reject_unauth_destination,
       reject_rbl_client sbl.spamhaus.org,
       permit
smtpd_helo_restrictions = reject_invalid_helo_hostname,
       reject_non_fqdn_helo_hostname,
       reject_unknown_helo_hostname
smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net

Links[Bearbeiten]

IMAP-Server dovecot[Bearbeiten]

  • dovecot
    • optionen: kqueue, ssl, managesieve, mysql
# echo 'dovecot_enable="YES"' >> /etc/rc.conf
# cp /usr/local/share/examples/dovecot/dovecot.conf /usr/local/etc/dovecot/dovecot.conf
# cp /usr/local/share/examples/dovecot/dovecot-sql.conf /usr/local/etc/dovecot/dovecot-sql.conf
  • dovecot2
    • optionen: kqueue, ssl, mysql

# cp /usr/local/share/doc/dovecot/example-config/dovecot.conf /usr/local/etc/dovecot/dovecot.conf
# cp /usr/local/share/doc/dovecot/example-config/dovecot-sql.conf /usr/local/etc/dovecot/dovecot-sql.conf

  • in /usr/local/etc/dovecot.conf: (vorerst zum testen)
 
protocols = imap pop3
disable_plaintext_auth = no
ssl = no
mail_location = mbox:~/mail/:INBOX=/var/mail/%u
mail_privileged_group = mail
protocol imap {
  imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}
  • Krypto drankleben (imap -> imaps, pop3 -> pop3s)

MDA: maildrop[Bearbeiten]

  • maildir in users homeverzeichnis anlegen
maildirmake Mail
  • im homeverzeichnis die Datei .mailfilter anlegen:
MAILBOX="$HOME/Mail"
DEFAULT="$MAILBOX"
  • chmod 600 .mailfilter
  • maildrop in postfix main.cf einarbeiten
mailbox_command = /usr/local/bin/maildrop -d ${USER}

Tricks etc.[Bearbeiten]

  • alias-Adressen anlegen
    • edit: /usr/local/etc/postfix/main.cf:
alias_maps = hash:/etc/aliases, hash:/etc/aliases.stura
alias_database = hash:/etc/aliases,hash:/etc/aliases.stura
  • edit /etc/aliases.stura
  • in das Postfix laden:
# newaliases
# postfix reload
# usr/local/etc/rc.d/postfix restart
  • SMTP testen:
# nc $JAIL_IP 25
# HELO microsoft.com
# MAIL FROM:<bill@microsoft.com>
# RCPT TO:<test@stura.htw-dresden.de>
# DATA
# From: <bill@microsoft.com>
# To: <stest@stura.htw-dresden.de>
# Subject: hui
# das hätte nicht passieren sollen
# .
# QUIT
  • SMTP über mehrere eMails testen:

  1. num=0
  2. for ABSENDER in <user>@stura.htw-dresden.de noreplay@stura.htw-dresden.de test@stura.htw-dresden.de; do
  3. ABSENDERDOMAIN=`echo "${ABSENDER#*@}"`
  4. for EMPFAENGER in test@stura.htw-dresden.de; do
  5. num=$((num + 1))
  6. nc $JAIL_IP 25
  7. HELO $ABSENDERDOMAIN
  8. MAIL FROM:<$ABSENDER>
  9. RCPT TO:<$EMPFAENGER>
  10. DATA
  11. From: <$ABSENDER>
  12. To: <$EMPFAENGER>
  13. Subject: TEST$num
  14. Dies ist die Testmail.
  15. Nummer $num
  16. von $ABSENDER
  17. ueber $ABSENDERDOMAIN
  18. an $EMPFAENGER
  19. .
  20. QUIT
  21. done
  22. done

Plone[Bearbeiten]

FreeBSD aktualisieren[Bearbeiten]

Aktualisierungen an Haupt- und Unterversionen[Bearbeiten]

Dieser Prozess entfernt alte Objekt-Dateien und Bibliotheken, was dazu führt, dass die meisten Anwendungen von Drittherstellern nicht mehr funktionieren. Es wird empfohlen, dass alle installierten Ports entweder entfernt und neu installiert oder zu einem späteren Zeitpunkt mittels ports-mgmt/portupgrade aktualisiert werden. Die meisten Anwender werden wahrscheinlich einen Testlauf mittels des folgenden Kommandos durchführen wollen:

portupgrade -af

Dies sorgt dafür, dass alles korrekt neu installiert wird. Beachten Sie, dass das Setzen der BATCH-Umgebungsvariable auf yes während dieses Prozesses auf jede Eingabe mit ja antwortet, was es nicht mehr notwendig macht, manuell eingreifen zu müssen. …

weiter Informationen
Das FreeBSD-Handbuch: 25.2.3. Aktualisierungen an Haupt- und Unterversionen

DNS[Bearbeiten]

  • genutzt werden DNS Server des FoeBuD und des CCC
  • zusätzlich (für OpenNIC)
    • DE,NRW 217.79.186.148 ns1.nrw.de.dns.opennic.glue Günter Grodotzki yes (no logs kept)
    • NZ 27.110.120.30 ns1.nz.dns.opennic.glue Dean Gardiner yes (24 hrs)

Tipps, Tricks etc.[Bearbeiten]

  • die Änderungen an Konfigurationsdateien (z.b. in /etc) via git tracken
  • disk quotas für jails einrichten
  • systemweite make.conf bauen
  • rc.conf bzw. /etc/rc neu laden ohne reboot
    • Achtung: über Konsole direkt am Gerät (single user mode verliert Netzwerkzugriff!)
# shutdown now
(Note: without -r or -h)
# return
# exit
  • netzwerk (services) über ssh neu starten:
# /etc/rc.d/netif restart && /etc/rc.d/routing restart

USB-Stick bauen[Bearbeiten]

Troubelshooting[Bearbeiten]

  • In order to fix this, you should reboot from the installer CD, and choose the "Live CD" option. You first need to mount the zpool under /mnt. First list the available pools:
    zpool list
no pools available
  • and
    zpool import
  pool: zroot
    id: 128742958409357345692345
 state: ONLINE
 action: The pool can be imported using its name of numeric identifier.
 config:
        zroot       ONLINE
          ada1p2    ONLINE
  • Now import the zroot pool, and mount under /mnt:
    zpool import -R /mnt zroot

System neubauen[Bearbeiten]

  • Von Live-CD oder stick booten!
  • System unter /mnt einmounten (vollständig, also 'alle datasets)!
    zpool import
    zpool import -R /mnt zroot
  • Mit nullfs mounten!
    • /mnt/usr/obj an /usr/obj
      mount_nullfs /mnt/usr/obj /usr/obj
    • /mnt/usr/src an /usr/src/
      mount_nullfs /mnt/usr/src /usr/src
  • Update!
    cd /usr/src
    make installkernel DESTDIR=/mnt
    make installworld DESTDIR=/mnt
    mergemaster -UFi -D /mnt/
  • Neustaren!
    reboot

Siehe auch fuer weitere Tips & Tricks[Bearbeiten]

Server Setup Beschreibung[Bearbeiten]

  • /boot UFS, der Rest ZFS
  • irgendwas zum booten nehmen (USB, DVD) und ab in die Fixit shell
  • MBR Geometrie baun
gpart create -s mbr ad4
  • nachschauen, ob es geklappt hat
gpart show ad4
  • den Rest der Platte mit FreeBSD belegen
gpart add -s (aus gpart show Größe -1 )GB -t freebsd ad4
  • riesigen BSD-slice anlegen
gpart create -s BSD ad4s1
  • partitionen anlegen
gpart add -s 1G -t freebsd-ufs ad4s1
gpart add -s 4G -t freebsd-swap ad4s1
gpart add -t freebsd-zfs ad4s1
  • Partition als aktiv markieren (falls andere schon drauf sind und von denen gebootet werden soll)
gpart set -a active -i 1 ad0

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Weblinks für Bücher[Bearbeiten]