За основу легла книга Корнея Корниенко, "FreeBSD 9 Корпоративный интернет-сервер".
Мне довелось лично познакомиться с ним и получить аж 2 одинаковые книги.
Однозначно книга хорошая, 2013 года. Рекомендую к чтению, да и стоит она не дорого.
Это первая часть, которая посвящена установке FreeBSD 9, настройке сети, шлюза и некоторых программ. Постепенно, по мере изучения FreeBSD и чтения книги, сервер будет все больше разрастаться, и он будет выполнять свои функции по максимуму.
Что имеем:
Машина на virtualbox;
Две сетевые карты;
Образ FreeBSD 9.1.
Будем считать, что система установлена.
Особых проблем возникнуть не должно, установщик псевдографический, пунктов выбора немного.
У меня возник один подводный камень, установщик вылетал посреди установки системы.
Я загрузился с подробным выводом информации при инсталляции системы и обнаружил, что проблема с памятью. У меня по умолчанию на виртуалке было выделено 128М памяти, после того, как я поставил 512М, все заработало.
Обязательно создать юзера и добавить его в группу wheel. Он же и будет администратором. Ведь это сервер, а наличие только одного рута это очень плохо.
Создать юзера можно командой adduser.
По хорошему надо пересобрать полностью ядро, но меня дефолтное почти устраивает. Внесем небольшие изменения.
# cd /usr/src/sys/i386/conf
# cp GENERIC GATEWAY
# vi GATEWAY
#options INET6
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
Все это нужно для того, чтобы сервер мог функционировать в качестве шлюза.
Компилим ядро.
# config GATEWAY
# cd ../compile/GATEWAY
# make cleandepend && make depend
# make && make install
Пока ядро компилится, можно заняться настройкой сети.
У меня две сетевые карты, em0 и em1.
em0 смотрит в интернет, em1 - в сеть.
Кто не знает, что такое шлюз - welcome.
Плюс я сижу за роутером.
Схема примерно такая:
провайдер -> роутер -> em0-em1 -> сеть
Настраиваем:
# ifconfig em0 inet 10.0.X.15 netmask 255.255.255.0 broadcast 10.0.2.255
# ifconfig em1 inet 192.168.0.13 netmask 255.255.255.0 broadcast 192.168.0.255
где 10.0.X.15 - первая сетевуха, на интернет;
192.168.0.13 - вторая сетевуха, в сеть.
# route add default 192.168.0.1
# vi /etc/resolv.conf
domain Dlink
nameserver 10.0.X.3
nameserver 192.168.0.1
# ping ya.ru
Это все до перезагрузки. Добавим все в автозагрузку.
# vi /etc/rc.conf
hostname="freebsd"
sshd_enable="YES"
ntpd_enable="YES"
dumpdev="NO"
ifconfig_em0="inet 10.0.X.15 netmask 255.255.255.0 broadcast 10.0.2.255"
ifconfig_em1="inet 192.168.0.13 netmask 255.255.255.0 broadcast 192.168.0.255"
defaultrouter="192.168.0.1"
firewall_enable="YES"
firewall_type="open"
Устанавливаю привычный для себя софт.
# cd /usr/ports/security/sudo
# make install clean
# visudo
%wheel ALL=(ALL) NOPASSWD: ALL
# cd /usr/ports/shells/bash
# make install clean
# chsh myuser
Class: russian
Shell: /usr/local/bin/bash
# cd /usr/ports/editors/vim
# make install clean
Локализация:
У меня возник еще один подводный камень, мне не удалось прикрутить UTF-8, пока временно поставил KOI8-R, буду думать дальше.
# vi /etc/login.conf
russian|Russian Users Accounts :\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:lc_all=ru_RU.KOI8-R:\
:tc=default:
# cap_mkdb /etc/login.conf
# pw usermod -n myuser -L russian
Мне довелось лично познакомиться с ним и получить аж 2 одинаковые книги.
Однозначно книга хорошая, 2013 года. Рекомендую к чтению, да и стоит она не дорого.
Это первая часть, которая посвящена установке FreeBSD 9, настройке сети, шлюза и некоторых программ. Постепенно, по мере изучения FreeBSD и чтения книги, сервер будет все больше разрастаться, и он будет выполнять свои функции по максимуму.
Что имеем:
Машина на virtualbox;
Две сетевые карты;
Образ FreeBSD 9.1.
Будем считать, что система установлена.
Особых проблем возникнуть не должно, установщик псевдографический, пунктов выбора немного.
У меня возник один подводный камень, установщик вылетал посреди установки системы.
Я загрузился с подробным выводом информации при инсталляции системы и обнаружил, что проблема с памятью. У меня по умолчанию на виртуалке было выделено 128М памяти, после того, как я поставил 512М, все заработало.
Обязательно создать юзера и добавить его в группу wheel. Он же и будет администратором. Ведь это сервер, а наличие только одного рута это очень плохо.
Создать юзера можно командой adduser.
По хорошему надо пересобрать полностью ядро, но меня дефолтное почти устраивает. Внесем небольшие изменения.
# cd /usr/src/sys/i386/conf
# cp GENERIC GATEWAY
# vi GATEWAY
#options INET6
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
Все это нужно для того, чтобы сервер мог функционировать в качестве шлюза.
Компилим ядро.
# config GATEWAY
# cd ../compile/GATEWAY
# make cleandepend && make depend
# make && make install
Пока ядро компилится, можно заняться настройкой сети.
У меня две сетевые карты, em0 и em1.
em0 смотрит в интернет, em1 - в сеть.
Кто не знает, что такое шлюз - welcome.
Плюс я сижу за роутером.
Схема примерно такая:
провайдер -> роутер -> em0-em1 -> сеть
Настраиваем:
# ifconfig em0 inet 10.0.X.15 netmask 255.255.255.0 broadcast 10.0.2.255
# ifconfig em1 inet 192.168.0.13 netmask 255.255.255.0 broadcast 192.168.0.255
где 10.0.X.15 - первая сетевуха, на интернет;
192.168.0.13 - вторая сетевуха, в сеть.
# route add default 192.168.0.1
# vi /etc/resolv.conf
domain Dlink
nameserver 10.0.X.3
nameserver 192.168.0.1
# ping ya.ru
Это все до перезагрузки. Добавим все в автозагрузку.
# vi /etc/rc.conf
hostname="freebsd"
sshd_enable="YES"
ntpd_enable="YES"
dumpdev="NO"
ifconfig_em0="inet 10.0.X.15 netmask 255.255.255.0 broadcast 10.0.2.255"
ifconfig_em1="inet 192.168.0.13 netmask 255.255.255.0 broadcast 192.168.0.255"
defaultrouter="192.168.0.1"
firewall_enable="YES"
firewall_type="open"
Устанавливаю привычный для себя софт.
# cd /usr/ports/security/sudo
# make install clean
# visudo
%wheel ALL=(ALL) NOPASSWD: ALL
# cd /usr/ports/shells/bash
# make install clean
# chsh myuser
Class: russian
Shell: /usr/local/bin/bash
# cd /usr/ports/editors/vim
# make install clean
Локализация:
У меня возник еще один подводный камень, мне не удалось прикрутить UTF-8, пока временно поставил KOI8-R, буду думать дальше.
# vi /etc/login.conf
russian|Russian Users Accounts :\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:\
:lc_all=ru_RU.KOI8-R:\
:tc=default:
# cap_mkdb /etc/login.conf
# pw usermod -n myuser -L russian
# vi /etc/rc.conf
keymap="ru.koi8-r"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"
Далее планирую настроить Squid, DNS, DHCP, ipwf , proftpd, sendmail/postfix+dovecot, антиспам, ssl, apache и т.д.
В общем сделать полноценный веб-сервер, в домашних условиях.
UPD: 26.07.2013
Вторая часть находится тут.
keymap="ru.koi8-r"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"
Далее планирую настроить Squid, DNS, DHCP, ipwf , proftpd, sendmail/postfix+dovecot, антиспам, ssl, apache и т.д.
В общем сделать полноценный веб-сервер, в домашних условиях.
UPD: 26.07.2013
Вторая часть находится тут.
Доброго времени суток, я в этом деле новичок и у меня в процессе настройки по вышеизложенному описанию возник вопрос. О ядре сказано, что вас и дефолт устраивает, и дабы не собирать новое, вы вносите в него некие изменения. Как я понимаю, создаётся некий GATEWAY, который мы редактируем, далее собираем и вроде бы все хорошо. С внесёнными изменениями мы имеем новоиспеченное ядро, с необходимыми коррективами. Если я правильно понимаю, то в роли текущего ядра выступает GATEWAY, с заложенными в него опциями. Однако, при попытке получить информацию о текущем ядре, командой uname -i, он выдает, что мы все ещё используем GENERIC вместо собранного и настроенного GATEWAY. Мы ведь конфигурируем "гатевэй", собираем его, а в качестве ядра по умолчанию "генерик". Обьясните, коллеги, будьте добры :)
ОтветитьУдалитьПрошу прощения, разобрался сам, оказывается нужно было выполнять с -a.
ОтветитьУдалить