Качаем дистрибутив
В первую очередь необходимо определится с какого источника будем брать дистрибутив.
Идем самым ресурсоемким путем - качаем образ с интернета :) (для жителей крайнего севера)
ftp://ftp1.ru.freebsd.org
ftp://ftp2.ru.freebsd.org
ftp://ftp3.ru.freebsd.org
ftp://ftp4.ru.freebsd.org
Качаем 4.8 Release (почему именно он - будет много вопросов напишу, а пока поверим что это оптимальный вариант на начало лета 2003 года)
/pub/FreeBSD/ISO-IMAGES-i386/4.8/4.8-RELEASE-i386-disc1.iso
Забираю только первый диск (с моим ограничением по трафику нехватало еще второй забрать для того чтобы меня с работы выгнали :D )
Первого диска достаточно для того чтобы поставить полноценную систему. На втором диске содержатся дополнительные порты, которые в дальнейшем можно будет скачать непосредственно из дерева портов (порт - это программа, типа MS Office или CorelDRW в случае MS Windows).
С помощью программы Alcohol 120% записываем диск. Беглый осмотр диска показывает, что от версии к версии колличество портов помещающихся на первом диске сокращается и как правило там нет ничего что бы могло пригодится.
Преследуемые цели:
Необходимые на сервере службы:
- NAT
- Firewall (на безе встроенного ipfw)
- Почта для домена (sendmail)
- Сервер HTTP (apache)
- FTP доступ (ftpd)
- Доступ к разделу Share для Windows клиентов а так же печать одного из сетевых принтеров (samba)
- DNS primary для домена.
Исходные данные (реальные адреса изменены из соображения конфеденциальности):
- IP Адрес сервера во внутренюю сеть 192.168.10.1
- IP Адрес интерфейса в интернет (выдается провайдером) 195.195.95.5
- IP Адрес шлюза (выдается провайдером) 195.195.95.100
- IP Адрес DNS1, DNS2 (выдается провайдером) 195.195.95.50, 195.190.90.9
- Доменное имя сервера myd.ru
Подготавливаем компьютер.
Чем проще будет конфигурация - тем лучше.
Мне нравится черно-белая консоль, а по этому ни каких X-Win, никакой графики, а значит видеокарта любая самая простая S3 Trio 8Mb. Процессор в зависимости от поставленных задач и работающих процессов. Мне достался Intel P2 266 (тоже неплохо), для минимальных целей хватило бы 486 машинки. Памяти (оперативной) чем больше тем лучше поставил 256 думаю хватит пока :) , Жесткий диск 20Gb будет использоватся на 50%. Мышь не нужна (мне :) )
Итак. Приступаем к установке.
- Устанавливаем загрузочный диск FreeBSD 4.8 Release
Загружаемся до менюшки из трех пунктов. Если железо выбрано самое элементарное, то используем 1 Skip kernel configuration and continue with installation пункт меню все драйверы подцепятся автоматически. (Особенно важен драйвер сетевой карты, чтобы на этапе установки прописать настройки сети, можно конечно потом, но для начала так удобнее у меня Realtek 10/100).
- По окончанию всех инициализаций перед вами появится цветное меню из которого мы выбираем 2 пункт Standard для инсталяции в полном режиме со всеми предупреждениями и вопросами.
- Если диск чистый на предложение создать слайс нажимаем "A" = Use Enter Disk затем "Q" = Finish. Этим самым указав инсталяции использовать весь диск для FreeBSD
- Далее предлагается создать БУт менеджер или отказатся от него - мы отказываемся - у нас один диск весь под ФРЮ 2 пункт меню Standard
- Следующий этап самый ответственный - создание разделов на диске - просто создавайте в зависимости от найденых рекомендаций. Если у кого то возникнет возражение по поводу оптимальности моего способа создания разделов пусть пишет свою статью :D Ну а для сомневающихся всегда есть кнопка "A" - Автоматически создать разделы :D.
Немного помучаясь вы должны получить такую табличку (128Mb надо писать при вводе - "128Mb"):
| part | Mount | Size | Newfs |
| ad1s1a | / | 128Mb | UFS Y |
| ad1s1b | swap | 1000Mb | SWAP |
| ad1s1e | /var | 3000Mb | UFS+S Y |
| ad1s1f | /tmp | 1000Mb | UFS+S Y |
| ad1s1g | /usr | 7000Mb | UFS+S Y |
| ad1s1h | /arhive | 6964Mb | UFS+S Y |
Последний раздел будем использовать для Samba чтобы второй сервер мог писать туда свои архивы :) и скрипты могли передавать информацию для бухгалтерии.
"Q" - Finish
- Пункт Choose Distributions предлагает выбрать а что же мы будем копировать на винт в ходе установки - копируем всё кроме Х-ов - 4 - Developer -
для продолжения - 1 - Exit
- Указываем источник для инсталяции CD/DVD
...после непродолжительного копирования на хард.....
Кстати все что начинается с этого поста можно пропустить и настроить вручную через конфиги, но уж раз пошли этим путем - доустановим...
- Ethernet or PPP
Выбираем свою(и) сетевую(ые) карту(ы) - в нашем случае это rl0 и rl1 (модем настроим потом)
Для rl0 (внешний интерфейс)
host - bsd (потом автоматом допишется доменный суффикс)
domain - myd.ru
IPv4 Gateway - 195.195.95.100
Name Server - 195.195.95.50
IPv4 adress - 195.195.95.5
NetMask - 255.255.255.0 (выдается провайдером вместе с IP)
Для rl1 (в локальную сеть)
Первые четыре пункта должны быть уже заполнены как в предидущем случае
IPv4 adress - 192.168.10.1
NetMask - 255.255.255.0
- поднимать карту при запуске - ДА
- Использовать данную машину как Gateway - ДА
- Хотите подредактировать (и использовать) inetd.conf - YES
Находим строчку начинающуюся с #ftp stream tcp превращаем в #ftp stream tcp
Выходим из редактора vi с сохранением :wq
- Хотите анонимный доступ по FTP? - Нет
- Сконфигурировать машину как NFS server? - NO
- Сконфигурировать машину как NFS client? - NO
- Повысить уровень встроенной защиты? - НЕТ
- Установки системной консоли - НЕТ
- Установки тайм зоны - ДА
Предлагается на выбор изменить время таймера в ЦМОС или делать поправки соответственно установленной зоны - мне нравится второе (NO)
8 - Europa, 33 - Russian Federation, 2 - +00
- Conformation -> MSD -> YES
- Потдержка совместимости с линкс приложениями - абсолютно всеравно - я таких приложений не использую - NO
- Система имеет мышь не USB ? - NO
- Установка портов - на данном этапе не требуется - сразу жмем кнопку Install на вопрос - "так ничего же не выбрано???" - отвечаем ОК
- Отказываемся от USB (если конечно не планируем использовать)
Отказываемся от редактирования групп и пользователей (потом...)
Как оказалось впоследствии лучше на этом этапе создать хотя бы одного пользователя, у меня почему то в пост инсталяции не создала ярлык в корне /home ссылающийся на /usr/home, а залепила в корневой раздел папку home что неправельно.... как создавать пользователей и группы - смотрите ниже.
- Пароль рута вводим сейчас - не помешает сразу ввести сложный, потому как после перезагрузки машина станет сразу видна в интернете. (в FreeBSD 5 версии с консоли можно зайти с пустым паролем даже если пароль введен)
- менять еще что нибудь дополнительно - хватит уже - остальное потом.
PS: Если по дороге вы где то ошиблись - не надо судорожно нажимать reset - все настройки есть в Configure через комманду /stand/sysinstall :)
- Exit install
Reboot (не забудте достать CD)
Первые шаги в системе после перезагрузки
Отступление для Продвинутых пользователей, изрядно подзабывших процесс установки :)
Для тех кто столкнулся с системой впервые просьба пропустить этот абзац (для начала надо шишек набить).
Общие рекомендации после установки. 1) Ставим cvsup-without-gui (где лежит - ниже), обновляем с его помощью исходные тексты,
обновляем дерево портов, а затем уже устанавливаем необходимые программы.
После перезагрузки первое что делаем - пингуем все извесные адреса
# ping 195.195.95.100
закончить пинг Ctrl-C
Для того, чтобы обеспечить функционирование системы на начальном уровне создадим пользователя, который
заменит нам рута (root). Поскольку запись root используется в системе повсемесно - удалить ее нельзя, но оставлять этого пользователя с shell достаточно опасно.
# ee /etc/master.passwd
root:$1$7lfghjklkjhgfdserFCBwJ5.ZwAYg/:0:0::0:0:Charlie &:/root:/bin/sh
меняем на:
root:*:0:0::0:0:Charlie &:/nonexistent:/sbin/nologin
(в FreeBSD 5 версии при компоновке pwd_mkdb ругнулся на отсутствие такого shell-а. Вообщем то это не принципиально, если вместо пароля стоит * - пришлось вернуть)
Добавляем своего пользователя - например lamer
lamer:*:0:0::0:0:Charlie &:/root:/bin/sh
(поставим bash - будет у него нормальный шелл :). А пока так)
# pwd_mkdb /etc/master.passwd
# passwd lamer
Заносим пароль для нового рута
# pwd_mkdb /etc/master.passwd
В дальнейшем для административных целей используем именно его.
Теперь если вы сделали все правельно - можно подключится через учетную запись - lamer по FTP к нашему серверу.
Как подключатся к FTP знают нынче даже дети, так что на этом моменте заострять внимание не будем :).
(если что то не пойдет - прочитайте про файлы hosts ниже по тексту)
Установка портов
Далее я перечислю каталоги портов, после входа в которые нужно запустить две команды
# make all
# make install
| LWP для PERL | /usr/ports/www/p5-libwww |
| SUDO | /usr/ports/security/sudo |
| cvsupit | /usr/ports/net/cvsup-without-gui (очень долго, но нужно для обновления системы. 30 минут качались исходники + час - компиляция) |
| deco | /usr/ports/misc/deco |
| wget | /usr/ports/ftp/wget |
| bash | /usr/ports/shells/bash2 |
Для полноценной работы сервера предлагается ряд вспомогательных этапов
- Заполним файлы hosts на всех компьютерах локальной сети информацией о соответствии статических адресов ИП их именам в домене:
127.0.0.1 localhost
192.168.10.1 bsd.myd.ru bsd
192.168.10.1 bsd.myd.ru.
192.168.10.2 petya
192.168.10.3 kolya
Во FreeBSD файл должен находится в /etc
Windows98 - c:\windows
Win2K - c:\windows\system32\drivers\etc
(был один прикольный трабл - создал файл хост на Виндовой машине и записал его по ФТП на сервер БСД - через какое то время почта с моего домена перестала проходить через провайдера hot.ee - как оказалось в конце каждого имени в файле хостс стоял управляющий символ перевода строки ^M а эстонцы рассматривали мои письма как спам и отбрасывали без предупреждения - будте внимательны!!!)
- Теперь возможно подключение к серверу из локальной сети - ftp, telnet...
Рекомендую выполнить несложную настройку удаленных сервисов по SSH Если же вы хотите использовать стандартные сервисы:
ee /etc/inetd.conf
Разкоментировать строчки ftp, telnet (tcp6 не трогать)
Пересобираем ядро.
Первый раз этот этап напоминает головоломку - даже при внимательном изучении обильной инфы на эту тему голова идет кругом. Многие вещи не понятны до конца даже гуру, но при определенных мучениях понимаешь, что много не мало и на каждую машину (железо) находится свой компромис.
Приведу ссылку на эту тему и не буду долго останавливатся на вопросе выбора нужных строк конфигурации ядра.
http://www.opennet.ru/docs/BSD/pascal/index.html
Собственно - /usr/src/sys/i386/conf/myd1
machine i386
cpu I586_CPU
cpu I686_CPU
ident myd1
maxusers 512
options MATH_EMULATE
options INET
options FFS
options FFS_ROOT
options SOFTUPDATES
options MFS
options MD_ROOT
options NFS
options NFS_ROOT
options MSDOSFS
options CD9660
options CD9660_ROOT
options PROCFS
options COMPAT_43
options SCSI_DELAY=15000
options UCONSOLE
options USERCONFIG
options VISUAL_USERCONFIG
options KTRACE
options SYSVSHM
options SYSVMSG
options SYSVSEM
options P1003_1B
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM
options KBD_INSTALL_CDEV
options IPFILTER
options IPFILTER_LOG
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
options TCP_DROP_SYNFIN
device isa
device eisa
device pci
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk
device atapicd
device atapifd
device atapist
options ATA_STATIC_ID
device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?
device ncv
device nsp
device stg
device scbus
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12
device vga0 at isa?
pseudo-device splash
device sc0 at isa? flags 0x100
device npx0 at nexus? port IO_NPX irq 13
device apm0 at nexus? disable flags 0x20
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9
device ppc0 at isa? irq 7
device ppbus
device lpt
device plip
device ppi
device miibus
device rl
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
pseudo-device loop
pseudo-device ether
pseudo-device sl 1
pseudo-device ppp 1
pseudo-device tun
pseudo-device pty
pseudo-device md
pseudo-device gif
pseudo-device faith 1
pseudo-device bpf
device uhci
device ohci
device usb
Теперь пересборка.
# cd /usr/src/sys/i386/conf
# config myd1
# cd /usr/src/sys/compile/myd1
# make depend
# make all (Эта процедура занимает много времени .....)
# make install
Она переименует старое ядро в kernel.old и поместит в корневую директорию ваш новый kernel.
После этого можно (и нужно) перегрузить компьютер. Если загрузка нового ядра не получилась (такое тоже возможно), вы можете загрузится со старым ядром. Для этого, в начале загрузки на подсказку Boot: надо быстро сказать kernel.old
Не забывайте, что после запуска с новым ядром по умолчанию файрвол блокирует все запросы. Для удаленного доступа к системе можно временно набрать в командной строке
# ipfw add pass all from any to any
NAT + Firewall
На начальном этапе приводится описание "оживления" работы сервера а не рабочие настройки.
В этом режиме файрвол не фильтрует пакеы!!!
rc.conf
defaultrouter="195.195.95.100"
gateway_enable="YES"
hostname="bsd.myd.ru"
ifconfig_rl0="inet 195.195.95.5 netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.10.1 netmask 255.255.255.0"
inetd_enable="YES"
kern_securelevel_enable="NO"
nfs_reserved_port_only="YES"
sshd_enable="YES"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/etc/ipnat.rules"
ipnat_flags=""
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
rc.firewall
#
# IPFW RULES
# /etc/ipfw.rules
#
fwcmd="/sbin/ipfw"
${fwcmd} -q -f flush
${fwcmd} -q add pass all from any to any
ipnat.rules
map rl0 192.168.10.0/24 -> 195.195.95.5/24
На этом начальная настройка сервера закончена.
SergeyKa |