*envis som man är* :OO
Hittade ett lite program som hjälper mig att sätta upp flera jails som använder samma grundfiler. Så för att sätta upp de olika jails jag vill ha kör jag:
> cd /usr/ports/sysutils/ezjail && make install clean
> ezjail-admin install
> ezjail-admin update -i
> ezjail-admin create -f default www 192.168.0.103
Det jag gjort här är att installera ezjail, låtit programmet hämta de filer som behövs för just min fbsd version. Jag har även skapat min första jail som heter www (på ip 192.168.0.103) och använder grundmallen default. Programet skapar nya jails i /usr/jails. Där ligger även grundfilerna och mallar.
Eftersom jag vill ha lite mer kontroll över det hela än att låta det programmet sköta allt lägger jag till följande i min /etc/rc.conf:
# Starta jail automatiskt vid uppstart
jail_enable=”YES”
# Standardvärden som alla jails kommer använda
jail_interface="re0" # Mitt nätverkskort
jail_exec_start="/bin/sh /etc/rc"
jail_exec_stop=”/bin/sh /etc/rc.shutdown”
jail_mount_enable="YES"
jail_devfs_enable="YES"
jail_devfs_ruleset="devfsrules_jail"
jail_procfs_enable="YES"
jail_fdescfs_enable="YES"
# Lista med alla jails som ska startas
jail_list="www"
# JAIL: www
jail_www_rootdir="/usr/jails/www"
jail_www_hostname="www.nicci.neta"
jail_www_ip="192.168.0.103"
Jag vill även ha ports i min jails men jag vill inte ha dubbla uppsättningar av ports på min server. Därför lägger jag till följande kod i filen /etc/fstab.www (som skapades av programet).
/usr/ports /usr/jails/jailname/usr/ports nullfs ro 0 0
För att det ska fungera måste vi först ta bort länken 'ports' som ligger i /usr/jails/www/usr/ och skapa en mapp som heter ports istället.
Efter det vill jag även att vanliga meddeladen ska sparas i en loggfil istället för till konsolen (vilken jag normalt sett inte kommer se om jailen enbart körs som t.ex. webbserver). Detta gör jag genom att ändra följande i /usr/jails/www/etc/syslog.conf:
*.err;kern.warning;auth.notice;mail.crit /dev/console
Mot:
*.err;kern.warning;auth.notice;mail.crit /var/log/messages
Det som jag har problem med just nu (och jobbar på) är att få nätverket att fungera korrekt från min jail. Jag kör en Ipfilter-brandvägg på servern och det verkar lite som om den ställer till den. Jag har lagt till detta i min jails rc.conf:
hostname="www.nicci.neta"
ifconfig_re0="inet 192.168.0.103 netmask 255.255.255.255"
defaultrouter="192.168.0.1"
Men det hjälper då inte. Med brandväggen avstängd (och lite annat smått och gott i sysctl.conf bortkommenterat). Jag kan pinga mina jails från både servern och andra datorer i mitt nätverk. Men inne i jailen kan jag inte göra mycket. Försöker jag med ping får jag:
ping: socket: Operation not permitted
Det blir även fel om jag försöker köra något mot internet, t.ex. ports. Min ifconfig ger detta:
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:1d:60:74:86:98
inet 192.168.0.103 netmask 0xffffffff broadcast 192.168.0.103
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
Jag har lagt till mina dns-servrar i resolv.conf samt uppdaterat hosts-filen. Känns nästan som om det är något i själva säkerheten för jails som blockerar mig. :l
Någon som har några idéer? :birp
/r Tydligen kan man inte köra ping i jails.
google skrev:
jails don't support ICMP...
Men det förklarar fortfarande inte varför mitt nätverk ut från jailen inte fungerar.
/r2 Med security.jail.socket_unixiproute_only=1 i /etc/sysctl.conf kan jag nu pinga både min server och andra datorer i nätverket. Men att försöka nå ut mot internet (kan bara testa med ports då jag inte har några program installerade ännu) går inget vidare, då får jag bara "No address record". Med andra ord så verkar det vara något fel på dnsbiten..