Administrera jails via bastille i FreeBSD

From Peters wiki
Jump to navigation Jump to search


Denna guide visar hur man kan köra nginx i ett jail via bastille i FreeBSD 13.2.

Installation

Installera bastille genom kommandot:

root # pkg install bastille


Konfiguration

Vi kommer köra bastille på en ZFS pool som heter trunk och vår router har IP adress 192.168.0.1. Editera filen /usr/local/etc/bastille/bastille.conf och se till att följande är konfigurerat:

bastille_tzdata="Europe/Stockholm"
bastille_zfs_enable="YES"
bastille_zfs_zpool="trunk"
bastille_network_gateway="192.168.0.1"

Nätverk

Vi kommer köra jails i privata nätverk och öppna upp access till nginx genom att göra port-forwarding av port 8080 på host:en till nginx. Kör följande kommandon:

root # sysrc cloned_interfaces+=lo1
root #
sysrc ifconfig_lo1_name="bastille0"
root #
service netif cloneup

Editera filen /etc/pf.conf:

ext_if="igb0"

set block-policy return
scrub in on $ext_if all fragment reassemble
set skip on lo

table <jails> persist
nat on $ext_if from <jails> to any -> ($ext_if:0)
rdr-anchor "rdr/*"

block in all
pass out quick keep state
antispoof for $ext_if inet
pass in inet proto tcp from any to any port ssh flags S/SA keep state

Start pf genom att köra:

root # sysrc pf_enable=YES
root #
service pf start

Skapa ett jail med nginx

Hämta FreeBSD 13.2-RELEASE och även alla patchar:

root # bastille bootstrap 13.2-RELEASE update

Skapa ett jail som heter nginx med IP adress 10.0.0.1:

root # bastille create nginx 13.2-RELEASE 10.0.0.1

Installera sen nginx och se till att servicen startar när jailet startar:

root # bastille pkg nginx install -y nginx
root #

bastille sysrc nginx nginx_enable=YES
root #

bastille service nginx nginx start