Access jails by name

The jails on my FreeBSD root server are configured like this:

#
#TEST jail
#
jail_TEST_rootdir="/usr/jail/TEST
jail_TEST_name="IM"
jail_TEST_hostname="TEST.pcspinnt.de"
jail_TEST_ip="192.168.1.47,abcd:1234:ef12:5678::47/64"

jls gives the following output:Accessing the jail by it’s

   JID  IP Address      Hostname                Path
     2  192.168.1.47    TEST.pcspinnt.de        /usr/jail/TEST
     3  192.168.1.42    TEST2.pcspinnt.de       /usr/jail/TEST2
...

Till now i only was able to access the jails by their jid. Running jexec with the jail name gives the following error:

[root@server:~] jexec TEST tcsh
jexec: jail "TCSH" not found

After adding the following line to the rc.conf it’s possible to access the jail by it’s name.

...
jail_TEST_flags="-n TEST"
...

Umstieg Root Server (2.Teil: make.conf, tcsh, tmux, vim, ssh, kernel sources, fstab )

make.conf

show

Auf dem frisch installierten Server dann erst mal ein paar Einstellugen, um alles etwas bunter / schöner / besser zu machen:

.tcshrc

show

Damit die Farben sauber angezeigt werden, muss das Terminal, von dem aus man sich verbindet auch 256 Farben unterstützen. In meinem Fall musste ich für x11-terms/rxvt-unicode das Use-Flag 256-color aktivieren.

.tmux.conf

show

Vim Config musste ich auch anpassen:

.vimrc

show

Ein paar SSH Einstellunge habe ich ebenfalls angepasst:

sshd_config

show

Außerdem werden auch noch die Kernel Sources benötigt. Dazu kopiert man sich erst die Standardvorlage für das supfile:

cp /usr/share/examples/cvsup/standard-supfile /etc/source-supfile
chmod u+w /etc/source-supfile

Diese Datei wird dann auch noch angepasst:

source-supfile

show

Der initiale Download kann dann mitfolgendem Befehl gestartet werden:

csup /etc/source-supfile

Der Befehl ps benötigt ein funktionierendes procfs. Dazu muss in der fstab folgendes eingetragen werden:

fstab

show

Umstieg Root Server (1. Teil Installation)

Nachdem ich die ersten Erfolge zu vermelden habe, hier nun ein paar Infos (weitere werden nach und nach folgen). Auf dem Root Server soll FreeBSD 9.0 mit ZFS laufen und folgenden Dienste sind quasi das “Minimum”, bevor ich alles umstelle:

  • Apache (mit PHP, mySQL, SSL etc.)
  • IMAP-Server (vermutlich Dovecot)
  • Spam Filter
  • IPv6
  • Außerdem natürlich noch diverse Admin Tools (z.B. tmux) und auch ein Backup soll eingerichtet werden.

    Die Grundinstallation ist recht simpel. Da mein Server bei Hetzner steht, boote ich über deren robot System zunächst ein Rescuesystem mit Freebsd x64. Per ssh logge ich mich dann als root ein und starte mein erstes Script:

    show

    Die ersten paar Zeilen zerstören einen vorhandenen ZFS Pool. Da ich dieses Script mehrfach ausgeführt habe, ganz praktisch 😉
    Anschließend wird der ZFS Pool eingerichtet. Das FreeBSD Archiv nehme ich direkt von Hetzner. Meine Versuche dies mit öffentlichen Archiven zu machen sind leider immer gescheitert.
    Die Datei rc.conf wird danach mit ein paar initialen Einstellungen gefüllt. (IP Adressen müssen angepasst werden)
    Die IPv6 Einstellungen sind ein wenig crazy. Am besten das hier anschauen.

    Nun kann man in die neue Umgebung wechseln:

    show

    Installation abschliessen und durch booten.

     

    EDIT:

    Hier eine Liste der Programme, die ich installiert habe. Die Installation erfolgt jeweils mit:

    show

  • /usr/ports/security/sudo
  • /usr/ports/editors/vim
  • /usr/ports/sysutils/tmux
  • /usr/ports/sysutils/lsof
  • /usr/ports/sysutils/htop
  • /usr/ports/www/apache22
  • /usr/ports/ports-mgmt/portmanager
  • /usr/ports/mail/dovecot
  • /usr/ports/devel/php5-json
  • /usr/ports/archivers/php5-zip
  • /usr/ports/graphics/php5-gd
  • /usr/ports/converters/php5-mbstring
  • /usr/ports/textproc/php5-xml
  • /usr/ports/ftp/php5-curl
  • /usr/ports/databases/php5-pdo
  • /usr/ports/databases/mysql55-server
  • /usr/ports/databases/php5-mysql
  • /usr/ports/security/php5-hash
  • /usr/ports/databases/php5-pdo_mysql
  • /usr/ports/textproc/php5-simplexml
  • /usr/ports/textproc/php5-ctype
  • /usr/ports/www/php5-session
  • /usr/ports/textproc/php5-xmlwriter
  • /usr/ports/textproc/php5-xmlreader
  • EDIT2:

    Mittlerweile kann man auch sehr bequem über den von Hetzner angebotenen Befehl imageinstall FreeBSD 9 mit ZFS installieren.

    Delete specific line from a file

    After a remote installation through ssh the fingerprint of a system changed. This happend, because a new RSA key during the setup process was generated. Now you want connect to the system and you get the following error:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    f1:9d:1f:fg:7c:ad:ad:43:6e:8f:c9:fd:86:d0:78:ce.
    Please contact your system administrator.
    Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
    Offending RSA key in /home/user/.ssh/known_hosts:371
    RSA host key for 127.0.0.1 has changed and you have requested strict checking.
    Host key verification failed.

    So you have to delete line 371 from your known_hosts file. You can do this with your fravorite editor, or just run the following command:

    sed -i ‘371d’ /home/user/.ssh/known_hosts

    pfsense and active ftp

    I had the problem, that i had to run an active FTP server behind my pfsense box. Who ever dealed with FTP and firewall knows, that it is very painfull.

    So first, i configured a vitrtual IP:

    After that the NAT Rule:

    Then a 1:1 NAT Rule for the outgoing traffic:

    Till now, it was easy. But for the next option i searched hours and hours. First thanks to Commander for the hint. I don’t know why i had to deactivate “debug.pfftpproxy”, but after disabling this, it worked.

    pfsense und ipsec

    Beim Versuch eine rsa ipsec Verbindung einzurichten bekam ich von der Gegenstelle immer die Fehlermeldung:

    we require peer to have ID 'C=DE, ST=NRW, L=Telgte, O=Company,  E=myemail@address.com, CN=some.cn.name',  but peer declares '127.212.145.123'

    Kleiner Netzwerkerspass am Rande 😉

    Schuld an dieser Meldung ist der PFsense. Er sendet als Identifier in der Phase 1 immer seine eigene IP. Erste Idee war, dann einfach den CN den er haben will zu kopieren und auf dem PFsense einzutragen. In der   Phase 1 des ipsec habe ich dann ‘My identifier’ umgestellt auf  ‘ASN.1 distinguished name’ und dort den oben genannten DN eingetragen (copy & paste).

    Die Idee war so weit ganz gut. Das Ergebnis waren dann aber wilde Fehlermeldung. Zuerst kryptische PHP Syntax-Meldungen und anschleissend Meldungen über das komplette Versagen des ipsec Tunnels.

    Nach mehreren Stunden Suchens und Rumbastelns habe ich dann endlich den Fehler gefunden. Eigentlich nur ein ganz simpler Syntaxfehler. Der DN muss in bestimmter Reihenfolge eingetragen werden und die Felder müssen auch richtig betitelt sein. Letzendlich war es das E-Mail Feld, welchse ihm nicht passte. Habe nun den ‘My identifier‘ auf ‘ASN.1 distinguished name‘ gestellt und dort folgendes eingetragen:

    C=DE,ST=NRW,L=Telgte,O=Company,emailAddress=myemail@address.com,CN=some.cn.name