This aims to collect our wisdom in setting up a FreeBSD system.
Make sure no problems arise:
killall sendmail inetd ntpdate ntp1.ptb.de pool.ntp.org /usr/libexec/locate.updatedb &
Use only one tmp directory, instead of two as usually on FreeBSD. Also secure permissions somewhat.
mv /var/tmp/* /tmp/ rm -rf /var/tmp ln -s /tmp /var/tmp chmod 600 /root
Get current ports:
portsnap fetch portsnap extract
Install basic infrastructure
mkdir /usr/ports/packages (cd /usr/ports/sysutils/lsof; make package-recursive) (cd /usr/ports/shells/bash; make package-recursive) (cd /usr/ports/editors/joe; make package-recursive) (cd /usr/ports/security/sudo; make package-recursive) (cd /usr/ports/editors/vim-lite; make package-recursive) (cd /usr/ports/sysutils/screen; make install) (cd /usr/ports/sysutils/pwgen2; make package-recursive) (cd /usr/ports/net/rsync; make package-recursive) (cd /usr/ports/sysutils/pstree; make package-recursive) (cd /usr/ports/sysutils/service-config; make install) (cd /usr/ports/security/nmap; make package-recursive) (cd /usr/ports/net/socat; make package-recursive) (cd /usr/ports/ftp/wget; make package-recursive) (cd /usr/ports/ftp/curl; make package-recursive) (cd /usr/ports/ftp/lftp; make package-recursive) (cd /usr/ports/devel/subversion; make package-recursive) (cd /usr/ports/net-mgmt/net-snmp; make package-recursive) (cd /usr/ports/sysutils/ucspi-tcp; make package-recursive) (cd /usr/ports/net/jwhois; make package-recursive) (cd /usr/ports/lang/python25; make package-recursive) (cd /usr/ports/databases/py-gdbm; make package-recursive) (cd /usr/ports/databases/py-sqlite3; make package-recursive) (cd /usr/ports/databases/py-bsddb; make package-recursive) (cd /usr/ports/devel/py-setuptools; make package-recursive) (cd /usr/ports/www/py-httplib2; make package-recursive) (cd /usr/ports/devel/py-pyutil; make package-recursive) (cd /usr/ports/devel/py-ro; make package-recursive) (cd /usr/ports/devel/py-simplejson; make package-recursive) (cd /usr/ports/lang/py-mx-base; make package-recursive) (cd /usr/ports/net/py-ldap2; make package-recursive) (cd /usr/ports/graphics/py-imaging; make WITHOUT_TKINTER=yes package)
Set up basic Services
pw groupadd -n service -g 200 pw groupadd -n servicel -g 300 echo "service:coredumpsize-cur=0:openfiles-cur=512:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin:priority=3:host.allow=localhost:tc=default:" >> /etc/login.conf echo "servicel:coredumpsize-cur=0:openfiles-cur=512:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin:priority=3:host.allow=localhost:tc=default:" >> /etc/login.conf cap_mkdb /etc/login.conf (cd /usr/ports/sysutils/daemontools; make install) mkdir /var/service mkdir /service echo '#!/bin/sh' > /usr/local/bin/svlog echo "gtail --follow=name -n 25 /service/$1/log/main/current | tai64nlocal" >> /usr/local/bin/svlog chmod 755 /usr/local/bin/svlog echo "svscan_enable=YES" >> /etc/rc.conf sh /usr/local/etc/rc.d/svscan.sh start
NTP
(cd /usr/ports/net/openntpd; make package clean) echo "servers de.pool.ntp.org" > /usr/local/etc/ntpd.conf echo 'openntpd_enable="YES"' >> /etc/rc.conf ntpdate ntp1.ptb.de pool.ntp.org sh /usr/local/etc/rc.d/openntpd start
DNS
(cd /usr/ports/dns/djbdns; make package) pw useradd -n dnsc -u 200 -c dnscache -d /var/service/dnscache -g service -s /nonexistent -L service pw useradd -n dnscl -u 300 -c dnscache -d /var/service/dnscache -g servicel -s /nonexistent -L servicel dnscache-conf dnsc dnscl /var/service/dnscache ln -s /var/service/dnscache /service echo "nameserver 127.0.0.1" > /etc/resolv.conf echo "nameserver 192.168.0.1" >> /etc/resolv.conf
