Jail frissítés
Bármennyire is szeretnénk elkerülni, el fog érkezni az a pont, amikor a meglévő jail rendszereinket frissíteni kell. Ennek oka lehet racionalizálás, illetve lehet biztonsági hiba kijavítása is. Most egyszerűen csak racionalizálni fogjuk az eddigi megoldást:
Mint látni, itt minden egyes jail kapott egy snapshot-ot, de az öt system jail elkészítése után minden változást visszavezettünk a template jail-be. Nos, induljunk el újra a nulláról, hozzunk létre egy üres jail-t:
Lépjünk bele és telepítsünk fel pár alap csomagot:
Állítsuk be a megfelelő értékeket a /etc/rc.conf fájlban:
Mivel itt már feltelepítettük a syslog-ng csomagot, állítsuk be a kliens módot:
Ellenőrizzük a resolv.conf tartalmát (a 192.168.2.3 címről majd később):
Szerkesszük az aliases állományt:
Generáljunk új aliases adatbázist, majd kliens módban konfiguráljuk a sendmail programot, generáljunk neki új konfigot:
A belépéskor megadott hostname alapján kell szerkesztenünk az mc állományt:
Telepítsük az új konfigot:
Ellenőrizzük, hogy megfelelő-e:
Állítsuk be az időzónát:
Telepítsünk fel pár hasznos csomagot:
- portaudit
- autoconf (2.6.*)
- expat (2.*)
- libxml2 (2.6.*)
- postgresql-client (8.3.*)
- mysql-client (5.1.*)
- wget
- screen
- nmap
Takarítsunk ki magunk után, majd hozzuk létre a @base snapshot-ot:
Kész az új template, ami minden földi jót tartalmaz... most már csak minimális leállással frissíteni kell az egyes jail-eket. ![]()
Logserver migráció
Célszerű abban a sorrendben megoldani a migrációt, amelyben létrehoztuk az egyes szolgáltatások jail-jét, ezért a syslogserv migrálásával kezdünk.
Első körben klónozunk egy új fájlrendszert, majd megadjuk a hostname értékét, illetve átmásoljuk az egyetlen konfigurációs fájlt:
Ezen a ponton le kell állítanunk a syslogserv jail-t, hogy átnevezhessük, illetve racionalizálhassuk a felhasznált fájlrendszereket:
Első közelítésben egyszerű átnevezéssel megoldható probléma:
Nos, nem egészen így terveztük, a logfiles a fájlrendszer hierarchia része, ezért ezzel problémák lesznek, készítsünk egy új fájlrendszer ágat az adatoknak:
Majd migráljuk át az adatokat, és csatoljuk fel az új fájlrendszert:
Töröljük ki a küldéskor létrejött snapshot-ot, majd nézzük meg, miképpen állunk:
Van mit takarítani:
Most már indulhat a naplózó szolgáltatás:
LDAP migráció
root@freebsd:~$ zfs clone dpool/jails/template_new@base dpool/jails/system/ldap_new
root@freebsd:~$ zfs set mountpoint=/jails/system/ldap_new/usr/ports dpool/jails/ports/system/ldap
root@freebsd:~$ mount -t devfs devfs /jails/system/ldap_new/dev
root@freebsd:~$ jail /jails/system/ldap_new ldap_new 192.168.1.254 /usr/local/bin/bash
root@ldap_new:/$ portinstall -i openldap-server
root@ldap_new:/$ echo 'slapd_enable="YES"' >>/etc/rc.conf
root@ldap_new:/$ echo 'hostname="ldap.system.jails.javaforum.hu"' >>/etc/rc.conf
root@ldap_new:/$ exit
root@freebsd:~$ mkdir /jails/system/ldap_new/usr/local/etc/openldap/schema/own
root@freebsd:~$ cp /jails/system/ldap/usr/local/etc/openldap/schema/own/dnsdomain2.schema /jails/system/ldap_new/usr/local/etc/openldap/schema/own
root@freebsd:~$ cp /jails/system/ldap/usr/local/etc/openldap/slapd.conf /jails/system/ldap_new/usr/local/etc/openldap/
root@freebsd:~$ zfs create dpool/jails/data/system/ldap
root@freebsd:~$ umount /jails/system/ldap_new/dev
root@freebsd:~$ /etc/rc.d/jail stop sysldap
Stopping jails: ldap.system.jails.javaforum.hu.
root@freebsd:~$ zfs set mountpoint=none dpool/jails/system/ldap/dbfiles
root@freebsd:~$ zfs snapshot dpool/jails/system/ldap/dbfiles@send
root@freebsd:~$ zfs send dpool/jails/system/ldap/dbfiles@send | zfs receive dpool/jails/data/system/ldap/db
root@freebsd:~$ zfs destroy dpool/jails/data/system/ldap/db@send
root@freebsd:~$ zfs destroy dpool/jails/system/ldap/dbfiles@send
root@freebsd:~$ zfs rename dpool/jails/system/ldap dpool/jails/system/ldap_old
root@freebsd:~$ zfs rename dpool/jails/system/ldap_new dpool/jails/system/ldap
root@freebsd:~$ zfs set mountpoint=/jails/system/ldap/usr/ports/ dpool/jails/ports/system/ldap
root@freebsd:~$ zfs set mountpoint=/jails/system/ldap/var/db/openldap-data/ dpool/jails/data/system/ldap/db
root@freebsd:~$ /etc/rc.d/jail start sysldap
Configuring jails:.
Starting jails: ldap.system.jails.javaforum.hu.
root@freebsd:~$ zfs destroy dpool/jails/system/ldap_old/dbfiles
root@freebsd:~$ zfs destroy dpool/jails/system/ldap_old
root@freebsd:~$ zfs destroy dpool/jails/template@sysldap
root@freebsd:~$ zfs list | grep ldap
dpool/jails/data/system/ldap 2.10M 190G 18K /jails/data/system/ldap
dpool/jails/data/system/ldap/db 2.09M 190G 2.09M /jails/system/ldap/var/db/openldap-data/
dpool/jails/ports/system/ldap 0 190G 153M /jails/system/ldap/usr/ports/
dpool/jails/system/ldap 59.2M 190G 518M /jails/system/ldap
DNS migráció
root@freebsd:~$ zfs clone dpool/jails/template_new@base dpool/jails/system/dns_new
root@freebsd:~$ zfs set mountpoint=/jails/system/dns_new/usr/ports dpool/jails/ports/system/dns
root@freebsd:~$ mount -t devfs devfs /jails/system/dns_new/dev
root@freebsd:~$ jail /jails/system/dns_new dns_new 192.168.1.254 /usr/local/bin/bash
root@dns_new:/$ portinstall -i powerdns
root@dns_new:/$ portinstall -i powerdns-recursor
root@dns_new:/$ echo 'pdns_enable="YES"' >>/etc/rc.conf
root@dns_new:/$ echo 'hostname="dns.system.jails.javaforum.hu"' >>/etc/rc.conf
root@dns_new:/$ exit
root@freebsd:~$ cp /jails/system/dns/usr/local/etc/pdns/pdns.conf /jails/system/dns_new/usr/local/etc/pdns/
root@freebsd:~$ /etc/rc.d/jail stop sysdns
Stopping jails: dns.system.jails.javaforum.hu.
root@freebsd:~$ zfs rename dpool/jails/system/dns dpool/jails/system/dns_old
root@freebsd:~$ zfs set mountpoint=none dpool/jails/ports/system/dns
root@freebsd:~$ umount /jails/system/dns_new/dev
root@freebsd:~$ zfs rename dpool/jails/system/dns_new dpool/jails/system/dns
root@freebsd:~$ zfs set mountpoint=/jails/system/dns/usr/ports dpool/jails/ports/system/dns
root@freebsd:~$ /etc/rc.d/jail start sysdns
Configuring jails:.
Starting jails: dns.system.jails.javaforum.hu.
root@freebsd:~$ nslookup 192.168.1.3 192.168.1.3
Server: 192.168.1.3
Address: 192.168.1.3#53
3.1.168.192.in-addr.arpa name = dns.system.jails.javaforum.hu.
root@freebsd:~$ zfs destroy dpool/jails/system/dns_old
root@freebsd:~$ zfs destroy dpool/jails/template@sysdns
root@freebsd:/var/run$ zfs list | grep dns
dpool/jails/ports/system/dns 0 190G 153M /jails/system/dns/usr/ports
dpool/jails/system/dns 81.6M 190G 540M /jails/system/dns
mail migráció
root@freebsd:/var/run$ zfs clone dpool/jails/template_new@base dpool/jails/system/mail_new
root@freebsd:/var/run$ zfs set mountpoint=/jails/system/mail_new/usr/ports dpool/jails/ports/system/mail
root@freebsd:/var/run$ mount -t devfs devfs /jails/system/mail_new/dev
root@freebsd:/var/run$ jail /jails/system/mail_new mail_new 192.168.1.254 /usr/local/bin/bash
root@mail_new:/$ echo 'sendmail_enable="NONE"' >>/etc/rc.conf
root@mail_new:/$ echo 'hostname="mail.system.jails.javaforum.hu"' >>/etc/rc.conf
root@mail_new:/$ portinstall -i postfix
root@mail_new:/$ portupgrade -i dovecot
root@mail_new:/$ export MAIL_GID=nobody
root@mail_new:/$ portinstall -i mailman
root@mail_new:/$ portinstall -i apache
root@mail_new:/$ portinstall -i squirrelmail
root@mail_new:/$ portinstall -i postgrey
root@mail_new:/$ portinstall -i amavisd-new clamav
root@mail_new:/$ echo 'postfix_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ echo 'postgrey_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ echo 'dovecot_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ echo 'amavisd_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ echo 'clamav_clamd_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ echo 'clamav_freshclam_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ echo 'mailman_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ echo 'apache22_enable="YES"' >>/etc/rc.conf
root@mail_new:/$ exit
root@freebsd:~$ cp /jails/system/mail/etc/mail/aliases /jails/system/mail_new/etc/mail/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/ldap-dovecot.conf /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/javaforum.hu.unsecured.key /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/javaforum.hu.crt /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/dovecot.conf /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/freshclam.conf /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/amavisd.conf /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/clamd.conf /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/php.ini /jails/system/mail_new/usr/local/etc/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/postfix/main.cf /jails/system/mail_new/usr/local/etc/postfix/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/postfix/master.cf /jails/system/mail_new/usr/local/etc/postfix/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/postfix/ldap-aliases.cf /jails/system/mail_new/usr/local/etc/postfix/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/postfix/ldap-domains.cf /jails/system/mail_new/usr/local/etc/postfix/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/postfix/ldap-mailbox.cf /jails/system/mail_new/usr/local/etc/postfix/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/apache22/Includes/php5.conf /jails/system/mail_new/usr/local/etc/apache22/Includes/
root@freebsd:~$ cp /jails/system/mail/usr/local/etc/apache22/Includes/mailman.conf /jails/system/mail_new/usr/local/etc/apache22/Includes/
root@freebsd:~$ cp /jails/system/mail/usr/local/www/squirrelmail/config/config.php /jails/system/mail_new/usr/local/www/squirrelmail/config/
root@freebsd:~$ cp /jails/system/mail_old/usr/local/mailman/Mailman/mm_cfg.py /jails/system/mail/usr/local/mailman/Mailman/
root@freebsd:~$ jail /jails/system/mail_new mail_new 192.168.1.254 /usr/local/bin/bash
root@mail_new:/$ newaliases
root@mail_new:/$ exit
root@freebsd:~$ zfs create dpool/jails/data/system/mail
root@freebsd:~$ zfs set compression=on dpool/jails/data/system/mail
root@freebsd:~$ zfs snapshot dpool/jails/system/mail/mails@send
root@freebsd:~$ zfs send dpool/jails/system/mail/mails@send | zfs receive dpool/jails/data/system/mail/mails
root@freebsd:~$ zfs destroy dpool/jails/data/system/mail/mails@send
root@freebsd:~$ zfs destroy dpool/jails/system/mail/mails@send
root@freebsd:~$ zfs set mountpoint=none dpool/jails/system/mail/mails
root@freebsd:~$ zfs set mountpoint=none dpool/jails/ports/system/mail
root@freebsd:~$ umount /jails/system/mail_new/dev
root@freebsd:~$ zfs rename dpool/jails/system/mail dpool/jails/system/mail_old
root@freebsd:~$ zfs rename dpool/jails/system/mail_new dpool/jails/system/mail
root@freebsd:~$ zfs set mountpoint=/jails/system/mail/mails dpool/jails/data/system/mail/mails
root@freebsd:~$ zfs set mountpoint=/jails/system/mail/usr/ports dpool/jails/ports/system/mail
/etc/group:
vscan + clamav
root@freebsd:~$ zfs destroy dpool/jails/system/mail_old
root@freebsd:~$ zfs destroy dpool/jails/template@sysmail
PostgreSQL migrálás
root@freebsd:~$ zfs clone dpool/jails/template_new@base dpool/jails/system/postgresql_new
root@freebsd:~$ zfs set mountpoint=/jails/system/postgresql_new/usr/ports dpool/jails/ports/system/postgresql
root@freebsd:~$ mount -t devfs devfs /jails/system/postgresql_new/dev/
root@freebsd:~$ jail /jails/system/postgresql_new/ postgresql_new 192.168.1.254 /usr/local/bin/bash
root@postgresql_new:/$ echo 'hostname="postgresql.system.jails.javaforum.hu"' >>/etc/rc.conf
root@postgresql_new:/$ portinstall -i postgresql-server
root@postgresql_new:/$ exit
root@freebsd:~$ zfs create dpool/jails/data/system/postgresql
root@freebsd:~$ zfs create dpool/jails/data/system/postgresql/pgdata
root@freebsd:~$ zfs rename dpool/jails/system/postgresql dpool/jails/system/postgresql_old
root@freebsd:~$ umount /jails/system/postgresql_new/dev/
root@freebsd:~$ zfs set mountpoint=none dpool/jails/ports/system/postgresql
root@freebsd:~$ zfs rename dpool/jails/system/postgresql_new dpool/jails/system/postgresql
root@freebsd:~$ zfs set mountpoint=/jails/system/postgresql/usr/ports/ dpool/jails/ports/system/postgresql
root@freebsd:~$ zfs set mountpoint=/jails/system/postgresql/usr/local/pgsql dpool/jails/data/system/postgresql/pgdata

Add Comment