среда, 2 марта 2011 г.

Работа с FreeBSD Jail

Установка jail окружения.

# mkdir -p /jails/jail_dir
# cd /usr/src
# make world DESTDIR=/jails/jail_dir
# make distribution DESTDIR=/jails/jail_dir
# mkdir -p /jails/jail_dir/dev
# mount -t devfs devfs /jails/jail_dir/dev/ (или mount_devfs devfs /jails/jail_dir/dev/)
# mount -t procfs proc /jails/jail_dir/proc
Подключаемся к jail, задаем пароль для суперпользователя, создаем пользователя.

# jail /jails/jail_dir [jail_hostname] [jail_ip] /bin/sh
# passwd root
# adduser
# touch /etc/fstab
# mkdir /usr/ports
# echo "sshd_enable=YES" >> /etc/rc.conf
Создаем псевдонимы для сетевого интерфейса.

# ifconfig xl0 inet alias 192.168.0.1/32
# ifconfig xl0 inet alias 192.168.0.2/32
Редактируем /etc/rc.conf.

ifconfig_xl0="inet 192.168.0.254  netmask 255.255.255.0"
#
ifconfig_xl0_alias0="inet 192.168.0.1  netmask 255.255.255.0"
ifconfig_xl0_alias1="inet 192.168.0.2  netmask 255.255.255.0"
#
# ### jails ###
jail_enable="YES"
jail_list="jail1 jail2"
#
jail_jail1_rootdir="jail1_dir"
jail_jail1_hostname="jail1.domain"
jail_jail1_ip="192.168.0.1"
jail_jail1_interface="sk0"
jail_jail1_devfs_enable="YES"
jail_jail1_mount_enable="YES"
jail_sysvipc_allow="YES"
#
jail_jail2_rootdir="jail2_dir"
jail_jail2_hostname="jail2.domain"
jail_jail2_ip="192.168.0.2"
jail_jail2_interface="sk0"
jail_jail2_devfs_enable="YES"
jail_jail2_mount_enable="YES"
jail_sysvipc_allow="YES"
# ### jails ###


Основные команды для управления jail.
Посмотреть список запущенных jail:
jls
Подключиться к одному из них:
jexec [JID] sh
Для перезагрузки/выключения выполняем:
# /etc/rc.d/jail [jailname] restart
# /etc/rc.d/jail [jailname] stop
Usage: /etc/rc.d/jail [fast|force|one](start|stop|restart|rcvar)

Обновление jail.
После обновления основной системы проделываем следующее:

# cd /usr/src
# make installworld DESTDIR=/jails/jail_dir
# mergemaster -D /jails/jail_dir

Удаление каталога jail.
Нужно изменить флаги для каталога:
# chflags -R noschg /jails/jail_dir
После этого можно удалить:
# rm -rf /jails/jail_dir

понедельник, 17 января 2011 г.

Настройка сетевой корзины в Samba

Для каждой шары в smb.conf нужно установить параметры:
vfs object = recycle
    recycle:repository = .recycle/%U
    recycle:keeptree = Yes
    recycle:touch = Yes
    recycle:versions = Yes
    recycle:maxsize = 0
    recycle:exclude = ?~$*,~$*,*.tmp,*.TMP,index*.pl,index*.htm*,*.temp
    recycle:exclude_dir = /tmp,/temp,/cache
    recycle:noversions = *.doc,*.docx,*.xls,*.xlsx,*.ppt
Так же нужно позаботиться об автоматической очистке каталога.

Настройка SSL в Apache2 с самоподписанным сертификатом

Создание самоподписанного сертификата.
# mkdir -p /usr/local/etc/apache22/sslkey


# openssl req -new -x509 -days 365 -sha1 -newkey rsa:1024 -nodes -keyout /usr/local/etc/apache22/sslkey/server.key -out /usr/local/etc/apache22/sslkey/server.crt -subj '/C=RU/ST=AreaName/L=CityName/O=CompanyName/OU=ServiceName/CN=SiteName'

Настройки SSL в Apache22.
/usr/local/etc/apache22/httpd.conf:
LoadModule ssl_module libexec/apache22/mod_ssl.so


<Directory /usr/local/www/SiteName>
    Options FollowSymLinks
    AllowOverride All
    Order Deny,Allow
    Allow from all
#    Deny from all
#    Allow from 192.168.0
    DefaultLanguage ru
    AddDefaultCharset UTF8
</Directory>


Include etc/apache22/Includes/*.conf

/usr/local/etc/apache22/Includes/httpd-ssl.conf:
Listen 443


AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl


SSLPassPhraseDialog  builtin


#SSLSessionCache         "dbm:/var/run/ssl_scache"
SSLSessionCache        "shmcb:/var/run/ssl_scache(512000)"
SSLSessionCacheTimeout  300


SSLMutex  "file:/var/run/ssl_mutex"

/usr/local/etc/apache22/Includes/httpd-vhosts.conf:
NameVirtualHost *:80


<VirtualHost *:80>
    ServerAdmin webmaster@SiteName
    ServerName SiteName
#    DocumentRoot "/usr/local/www/SiteName"
#    ErrorLog "/var/log/httpdmailerrorlog"
#    CustomLog "/var/log/httpdmailaccesslog" common
Redirect / https://SiteName
</VirtualHost>


NameVirtualHost *:443


<VirtualHost *:443>
    ServerAdmin webmaster@SiteName
    ServerName SiteName:443
    DocumentRoot "/usr/local/www/SiteName"
    CustomLog "/var/log/httpdmailsslaccesslog" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


    SSLEngine on
    SSLVerifyClient none
    SSLProxyEngine off


    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "/usr/local/etc/apache22/sslkey/server.crt"
    SSLCertificateKeyFile "/usr/local/etc/apache22/sslkey/server.key"


    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "/usr/local/www/apache22/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>


    BrowserMatch ".*MSIE.*"  nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>