Сервер под FreeBSD. Установка и настройка сети

Наконец-то нашлось у меня время разобраться с FreeBSD. Сейчас, по-быстрому, поднимем сервер под FreeBSD и настроим необходимые сервисы. Это не будет инструкцией для новичков, я не буду разъяснять назначение команд и параметров - исключительно информация о том "как это было".
В этой статье описан процесс установки и настройки сети. Чтобы не засорять большим количеством текстов, начальную конфигурацию, пересобирание ядра и обновление системы - то что называется "насетапить" - опишу отдельно. Все проверено на моем домашнем сервере и работает. В дальнейшем поднимем службы нашего сервера: gate&proxy, mail, web, IP-PBX и др.
Почему под FreeBSD?
Установка системы
Настройка сети
Почему под FreeBSD?
Я не буду спорить и доказывать почему именно FreeBSD, а не Linux и уж никак не Windows - каждому свое. Тем более, тот кто это читает свой выбор уже сделал. Единственное что хотелось бы сказать об этом - это почему FreeBSD я выбрал для себя. Был я администратором офиса в мире проприетарного (ломаного, естественно) ПО. Но так как я всегда учусь и развиваюсь, решил выбрать изучить UNIX-like систему. Это и бесплатно, и, как мне показалось, круто - ведь в винде может разобраться (на том низком уровне, который был на то время у меня) даже школьник. Выбрал я FreeBSD, а не Linux. Потому что Linux-ов много, и как выбрать конкретный дистрибутив я не придумал. Тем более, разбираясь в одном из дистрибутивов Linux совсем не значит что можно также успешно разобраться в другом. А FreeBSD - она одна!
Установка FreeBSD
Установку детально описывать не вижу смысла. Нет там ничего сложного. Последовательность такая:
- качаем Disc1 с офф. сайта (вся коллекция дисков или DVD не нужна, софт лучше собирать из портов)
- грузимся с него
- метод установки выбираем, конечно же, Custom
- в Options ничего менять не будем
- в Partition создаем раздел ("C", "Q", Standart - если будет единственной ОСью)
- в Label создаем точки монтирования:
1G - / RAM * 1.5 - swap 3G - /var/tmp 2-4G * N - /var/cache # ТОЛЬКО ЕСЛИ БУДУТ proxy servers! сколько надо - /var/ftp # ТОЛЬКО ЕСЛИ БУДЕТ file server ! сколько надо - /var/mail # ТОЛЬКО ЕСЛИ БУДЕТ mail server ! сколько надо - /var/db # ТОЛЬКО ЕСЛИ БУДЕТ database server ! 10-20G - /usr 1G или более - /home остальное - /var
- в Distributions - custom выбираем:
base kernels dict doc info man catman proflibs src (тут откроются подпункты, выбрать all) ports local
- запускаем установку
- после установки можно и понастраивать (имя, ip). Но мы то любители консоли...
Настройка сети на FreeBSD
После перезагрузки войдем под рутом и выполним минимальные настройки сети и запустим sshd (за консолью сидеть не всегда удобно).
Если настройки сети (по ifconfig смотрим имя сетевого адаптера) статические, то выполняем:
echo 'hostname="rublin"' >> /etc/rc.conf echo 'ifconfig_de0_name="net0"' >> /etc/rc.conf echo '# ifconfig_net0="DHCP"' >> /etc/rc.conf echo 'ifconfig_net0="inet 192.168.67.99 netmask 255.255.252.0"' >> /etc/rc.conf echo 'defaultrouter="192.168.67.100"' >> /etc/rc.conf
Если вдруг у нас DHCP (для серверов рекомендую, все-таки, статику):
echo 'hostname="rublin"' >> /etc/rc.conf echo 'ifconfig_de0_name="net0"' >> /etc/rc.conf echo 'ifconfig_net0="DHCP"' >> /etc/rc.conf echo '# ifconfig_net0="inet 192.168.67.99 netmask 255.255.252.0"' >> /etc/rc.conf echo '# defaultrouter="192.168.67.100"' >> /etc/rc.conf
Комментарии по настройкам сети: переименовывать интерфейс - хорошая практика. Это позволяет избежать путаницы в интерфейсах (когда на разных серверах установлены разные типы сетевок). Если сервер работает шлюзом, т.е. имеет две сетевухи, то удобно называть их in0 и out0.
Важно! Если у нас FreeBSD устанавливается на виртуальную машину Hyper-V, то сетевой адаптер должен быть Legacy (Устаревший сетевой адаптер).
Для работы сети еще нужно указать сервера DNS:
echo "nameserver 192.168.67.61" >> /etc/resolv.conf echo "nameserver 192.168.67.24" >> /etc/resolv.conf
Теперь включим ssh (по дефолту, 22 порт):
echo 'sshd_enable="YES"' >> /etc/rc.conf
Но под рутом по ssh не пустит. Нужно создать пользователя и добавить его в группу wheel:
adduser
Username: rublin Full name: Sheremet Ruslan Uid (Leave empty for default): Login group [rublin]: Login group is rublin. Invite rublin into other groups? []: wheel Login class [default]: Shell (sh csh tcsh bash rbash nologin) [sh]: tcsh Home directory [/home/rublin]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : rublin Password : ***** Full Name : Sheremet Ruslan Uid : 1023 Class : Groups : rublin wheel Home : /home/rublin Home Mode : Shell : /bin/tcsh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (rublin) to the user database. Add another user? (yes/no): no Goodbye!
Также нужно установить пароль суперпользователю:
passwd
Ребутаемся
shutdown -r now
В итоге, мы получили доступ по ssh (под пользователем, и с su - суперпользователем).
Файл /etc/rc.conf на данном этапе у меня такой:
# less /etc/rc.conf
hostmane="rublin" ifconfig_de0_name="net0" #ifconfig_net0="DHCP media 100baseTX mediaopt full-duplex" ifconfig_net0="inet 192.168.67.99 netmask 255.255.252.0" defaultrouter="192.168.67.100" sshd_enable="YES"
Post new comment