wsx
Модератор раздела
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1074 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 27 октября 2006 21:53
Tips and triks защиты сервера under FreeBSD!
Честно говоря пишу для себя, а то вдруг забуду 
Так вот
Sysctl правила
kern.polling.user_frac=50
kern.polling.enable=1
kern.ipc.somaxconn=32768
kern.ipc.somaxconn=1024
security.bsd.see_other_uids=0
net.inet.icmp.icmplim=50
net.inet.tcp.msl=7500
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=32768
net.link.ether.inet.max_age=1200
net.inet.icmp.maskrepl=0
Kernel options:
Так же можно или даже нужно собирать с опцией nomodules=YES.
options IPFIREWALL
options IPDIVERT
options IPFIREWALL_VERBOSE
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options ACCEPT_FILTER_HTTP
options SMP
options DEVICE_POLLING
options TCP_DROP_SYNFIN
device vlan
Так же не следует забывать про шифрование файла с паролями
В /etc/login.conf:
:passwd_format=blf:\
cap_mkdb /etc/login.conf
Не забывайте, что некоторые разделы требуется монтировать с опцией noexec. Как минимум /tmp и раздел с пользовательскими файлами(например с сайтами)
Далее в php.ini отключаем функции:
disable_functions = ini_get_all, curl_version, phpversion, curl_init,curl_exec,dir, safe_dir, getenv, shell_exec, posix_getegid, getmygid, posix_getgrgid, php_uname, ini_get, disk_total_space, disk_free_space, diskfreespace, system, passthru, exec, popen, fsockopen, pfsockopen, socket_accept, socket_bind, socket_close, socket_create, socket_listen, socket_read, socket_recv, socket_select, socket_send, socket_sendto, socket_write,ftp_connect,phpinfo
знайте, что для работы например почтового клиента horde требуются: ini_get и функции работы с сокетами. Кстати говоря надстройка(а точнее серия патчей) Hardened-PHP позволяет настраивать black-list функций для каждого виртуального хоста.
Далее не забываем включить safe_mode и openbase_dir. А так же используйте команды chown, chmod, chgrp 
Далее следует настроить фаерволл (ipfw) и MAC.
Кстати говоря опции для MAC в файле настроек ядра:
options MAC
options MAC_BIBA
options MAC_BSDEXTENDED
options MAC_IFOFF
options MAC_LOMAC
options MAC_MLS
options MAC_PARTITION
options MAC_PORTACL
options MAC_SEEOTHERUIDS
options MAC_STUB
options MAC_TEST
Если у вас одна из последних версий FreeBSD (на данный момент FreeBSD-Current (RELENG_7)), то вы так же можете прикрутить систему аудита:
options AUDIT
Если вы используете SSH, то авторизация должна происходит по ключам, а не по паролям.
Не забудьте время от времени проверять целостность файлов(как бинарных, так и конфигурационных).
Всё выше описанное не претендует на полноту. Это просто шпаргалка для меня любимого. официальная документация, а так же соответствующие списки рассылки ознакомят вас более детально.
p/s: Немного паранойи никогда не повредит.
|