![]() |
Биллинговая система NoDeny. Пример установки FreeBSD |
Данная инструкция представляют собой «заметки на полях» и рекомендации в очень сжатом виде, которые вы вправе не принять, а настроить систему исходя из своих знаний и соображений. Этот документ не поможет вам установить FreeBSD, если ранее вы этого не делали - читайте соответствующие книги/статьи. Более того, необходимо учитывать, что информация актуальна на момент написания документации и в настройке системы со временем могут могут появиться отличия. Вообще, в последнее время FreeBSD стала значительно дружелюбней, так что автору иногда приходится выкидывать куски документации - все меньше и меньше тонкостей и проблем возникает при работе с FreeBSD.
1. Подбор объема HDD
Объем HDD подбирается исходя из выполняемых сервером задач. Наиболее требовательны к объемам дискового пространства сервера под базы данных, все остальные узлы NoDeny (ядро, шлюз, сервер администрирования) имеют минимальные требования т.к будут хранить фактически только операционную систему.
Расходы на базы данных определяются в основном параметрами сохранения трафика - чем больше детализации и чем дольше она хранится, тем, естественно, бОльшие затраты дисковой памяти. Под детализацией понимается полное сохранение всех обращений клиентов на каждый ip адрес в интернете. Эта информация вспомогательная т.к предназначена для разруливания спорных ситуаций, но очень «жадная» к ресурсам. Вы можете вообще отказаться от детализации, тогда вам надолго хватит скромного по современным меркам винчестера (10-20 Гб на сеть из нескольких тысяч человек).
Ориентировочно, детализация трафика для 1000 абонентов требует примерно 200-300 Мб дискового пространства в сутки. При подборе дискового массива учитывайте, что детализацию обычно не требуется хранить очень долго, например, 2-3 месяца вполне достаточно.
Если в вашей системе планируется разделение баз данных на основную и дополнительную - не забывайте, что статистика трафика, в том числе детализированная, сохраняется только в дополнительной базе данных. Поэтому для основной базы данных нет необходимости использовать HDD больших объемов. С запасом хватит даже 10Гб.
Для баз данных больших сетей рекомендовано использование аппаратных рейд-контроллеров.
2. При установке системы для сервера БД, учитывайте, что базы mysql будут находиться в разделе /var, поэтому бОльшую часть дискового пространства отведите ему. Не устанавливайте никакие пакеты (apache и т.д) - пакеты часто обновляются и вы установите устаревший вариант. Кроме того, рекомендуем устанавливать все из портов (/usr/ports) т.к. там хорошо работает система зависимостей, т.е. при установке требуемого пакета автоматически будут установлены все, от которых данный зависит. Более того, update производится также с зависимостями.
После установки системы (после первой перезагрузки) залогиньтесь под root-ом и настройте rc.conf (если забыли настроить сетевые параметры при установке):
Команда bash
ee /etc/rc.conf
(ee - удобный редактор, пришедший на замену трудновоспринимаемому Vi)
Редактирование rc.conf
ifconfig_fxp0="inet 10.0.0.2 netmask 255.255.225.0" hostname="nodeny.com.gg" defaultrouter="10.0.0.1" sshd_enable="YES" firewall_enable="YES" fsck_y_enable="YES" background_fsck="NO"
background_fsck="NO" отключает проверку дисков в бекграунде, для серверов лучше это сделать при старте, fsck_y_enable="YES" говорит "yes" на все вопросы при проверке.
Если вы настраиваете шлюз, то добавьте:
Редактирование rc.conf
gateway_enable="YES"
Команда bash
ee /etc/rc.firewall
Редактирование rc.firewall
#!/bin/sh - f='/sbin/ipfw' ${f} add 100 allow ip from any to any
DNS-сервер:
Команда bash
ee /etc/resolv.conf
Редактирование resolv.conf
nameserver 10.0.0.1
Делаем reboot либо применяем сетевые параметры без перезагрузки: /etc/netstart. Пока будущий сервер загружается, переключаем монитор на рядом стоящий компьютер с настроенной графической оболочкой и ssh клиентом. Заходим по ssh на настраиваемый сервер.
Обновляем систему:
Команды bash
freebsd-update fetch freebsd-update install
Обновляем дерево портов:
Команда bash
portsnap fetch
Компилируем ядро пока загружается дерево портов, запускаем еще один ssh и:
Команды bash
cd /usr/src/sys/i386/conf/ cp GENERIC NODENY ee NODENY
Редактирование файла NODENY. В конце дописываем
options IPFIREWALL options IPDIVERT options IPFIREWALL_FORWARD options DUMMYNET
В FreeBSD 7.x планировщик SCHED_ULE :
Редактирование файла NODENY
options SCHED_ULE
Если есть желание облегчить ядро - убираем все упоминания о SCSI, IPV6, принтере, SLIP и т.д. Не перестарайтесь - в будущем это оборудование у вас может появится, в частности не комментируйте дорогие сетевые карты, возможно в скором времени они у вас появятся. Рекомендуем отключить все ISA-сетевые, их век безвозвратно ушел.
Трудно представить, что для биллинга у вас будут устаревшие типы процессоров, поэтому комментируем:
Редактирование файла NODENY
#cpu I486_CPU #cpu I586_CPU
Команды bash
config NODENY cd ../compile/NODENY make depend make make install
Пока компилируется ядро, возвращаемся к первому окну с ssh-сессией и смотрим закончилась ли загрузка дерева портов, как только она завершится:
Команда bash
portsnap extract
/usr/ports/shells/bash /usr/ports/misc/mc-light /usr/ports/ports-mgmt/portupgrade /usr/ports/net/trafshow /usr/ports/net/mtr
Команда bash
cd /usr/ports/shells/bash && make install clean
После установки bash, назначаем его дефолтным для своей учетной записи:
Команда bash
pw usermod efendy -s /usr/local/bin/bash
Не ставьте пакеты параллельно т.к. у них могут быть общие зависимости. Для экономии времени загрузки с интернета вы можете во время компиляции пакета для других выполнить make fetch - только загрузка исходников. Еще большая экономия времени будет при установке скомпиленных паккаджей, но они есть не на все пакеты. mtr лучше компилить так: make -DWITHOUT_X11 install clean - не будут устанавливаться модули для работы в «иксах». Либо:
Команда bash
ee /etc/make.conf
Редактирование make.conf
WITHOUT_X11=yes WITHOUT_GUI=yes WITHOUT_IPV6=yes
В будущем всегда следите за безопасностью вашего сервера: держите порты в актуальном состоянии (portsnap, portupgrade), закройте сервисы для доступа «из мира» (к примеру оставьтся «в мир» только 22й порт), не устанавливайте шлюз и файловый/видео/samba архив сети (тем более хостинг) на одном компьютере - это неудобно и небезопасно. Регулярно просматривайте логи.
Не забывайте, что система для повышения производительности должна «тюнинговаться». В разделе настройки фаервола указано какие параметры sysctl стоит подкрутить. По совету админов крупных сетей, попробуйте установить драйверы на сетевые карты em «от Yandex», на момент написания документации находились здесь.