FreeBSD - это современная операционная система для x86-совместимых систем (в том числе Pentium ® и Athlon ™), amd64 (включая Opteron ™, Athlon ™ 64 и EM64T), ARM, IA-64, PowerPC, ПК-98 и UltraSPARC ®. Происходит от BSD, версии UNIX, разработанной в Университете Калифорнии, Беркли. Она разрабатывается и поддерживается большой группой лиц. Дополнительные платформы находятся на различных стадиях развития.

FreeBSD является отличной системой для Интернет- или Интранет- сервера. Это обеспечивает надежность сети под большими нагрузками и эффективно использует память, чтобы поддерживать хорошее время отклика для тысяч одновременно пользовательских процессов.

Более 20.000 портированных библиотек и приложений, FreeBSD поддерживает приложения для настольных компьютеров, серверов, устройств и встраиваемых устройств.

FreeBSD может быть установлена с различных носителей, включая CD-ROM, DVD, либо непосредственно по сети с помощью FTP или NFS. FreeBSD является свободной операционной системой. Доступна бесплатно и поставляется с полным исходным кодом.

FreeBSD Foundation является некоммерческой организацией, для которой прямые взносы полностью облагается налогом.

Адрес компании: Free[BSD] Foundation, PO Box 20247, Boulder, CO 80308, США.

логотип freebsd

Работа с системой

Ошибка

pkg_add: Command not found.

Теперь так:

pkg install

Сетевая в Hyper-V

У меня она не появлялась, пришлось в

/boot/loader.conf

добавить

hv_netvsc_load=“YES”

Просмотр открытых портов (не программного обеспечения)

sockstat -4

или

netstat -an|grep LIST

Ставим правильное время

cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Перезагрузка службы на примере SSH

Порты

Создание базы портов:

portsnap fetch extract

Обновление базы портов:

portsnap fetch update

Приблизительный поиск

cd /usr/ports

make search key=mysql-server

Ошибки

gunzip: can’t stat: /var/db/portsnap

Решение:

1
2
3
4
 rm /var/db/portsnap/tag
 rm -rf /var/db/portsnap/files
 rm -rf /usr/ports
 portsnap fetch extract

Установка приложений из разряда рекомендуемых

  • portaudit Проверка портов на безопасность. Рекомендуется поставить в первую очередь. Установка:

pkg_add -r portaudit

Обновление информации и проверка портов и пакетов:

/usr/local/sbin/portaudit -Fda

Вы должны увидеть такую строку в конце:

0 problem(s) in your installed packages found.

Screen

Виртуальный терминал, позволяющий существенно удобнее сделать вашу работу в консоли. Установка:

1
2
3
 cd /usr/ports/sysutils/screen
 make
 make install

Запуск очень просто:

screen

Выйти без уничтожения:

Ctrl+A D

Выйти с уничтожением окна:

Ctrl+D D

Более подробно на странице Screen.

Архиваторы

Установить пакеты для разархивирования различных файлов просто:

pkg_add -r unrar unzip zip unarj zoo

TrafShow

TrafShow - пакет для удобного просмотра трафика. Установка:

1
2
 pkg_add -r trafshow
 rehash #не всегда необходимо

Запустить просто:

trafshow

В этой программе выбирайте нужную вам сетевую карту и проверяйте!

MC (Midnight commander)

pkg_add -r mc

или

1
2
3
 cd /usr/ports/misc/mc
 make config
 make install clean

Сканер портов nmap

1
2
 cd /usr/ports/security/nmap
 make install

Использование nmap

nmap -vv -n -F TARGET_IP

Если нужно проверить диапазон портов, задаем их с помощью -p

nmap -vv -n -p 1-1024 TARGET_IP

Установка htop в FreeBSD

Дело в том, что эту удобную программу для мониторинга системных процессов просто так поставить из портов нельзя. Для начала нужно провести несколько действий. Сначала включить режим совместимости с Linux и linprocfs. Для этого нужно

Добавить в /etc/rc.conf следующую строку:

linux_enable=“YES”

В файл /etc/sysctl.conf добавьте это значение:

compat.linux.osrelease=2.6.16

В /etc/fstab эту строку:

linproc /usr/compat/linux/proc linprocfs rw 0 0

А теперь выполните последовательно следующие команды:

1
2
3
4
 mkdir -p /usr/compat/linux/proc
 mount /usr/compat/linux/proc
 /etc/rc.d/abi start
 /etc/rc.d/sysctl start

Теперь мы можем зайти в порты и поставить HTOP

1
2
 cd /usr/ports/sysutils/htop
 make install clean

В FreeBSD 9 при компиляции постоянно вываливается ошибка, что не найден linproc или proc. Сделайте это:

ln -s /usr/compat/ /compat

проблема исчезнет.

Webmin

Перейдем в соответствующий порт:

cd /usr/ports/sysutils/webmin

Даем команду на установку, конфигурировать тут нечего:

make install clean

Потом нужно настроить сервис:

/usr/local/lib/webmin/setup.sh

И запускаем его:

/usr/local/etc/webmin/start

Проверяем работу с помощью команды sockstat -4. У вас должна быть такая картинка, если вы не меняли порты:

1
2
3
 USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
 root     perl       71204 6  tcp4   *:10000               *:*
 root     perl       71204 7  udp4   *:10000               *:*

Обновление FreeBSD

Бинарное обновление

Для начала нужно скачать обновления:

freebsd-update fetch

Далее установить их:

freebsd-update install

И перезагрузить систему

reboot

или

shutdown -r now

Сборка ядра, переконфигурирование

Сразу после установки системы рекомендуется переконфигурировать ядро в соответствии со своими предпочтениями и аппаратным обеспечением. Для начала нужно установить исходники ядра, т.к. они могут и отсутствовать в вашей системе. Запустите ‘’‘sysinstall’‘’, далее зайдите в ‘’‘Configure’‘’, потом ‘’‘Distributions’‘’, потом ‘’‘src’‘’, и после всего выбирайте ‘’‘All’‘’. Далее вам нужно будет выбрать откуда ставить исходные коды ядра. При наличии сети можно смело указывать FTP и брать их непосредственно с сервера.

Теперь зайдите в нужный каталог с конфигурацией:

cd /usr/src/sys/i386/conf/

Там будет находится файл под названием GENERIC. Сделайте копию конфигурации.

cp GENERIC NEW_KERNEL

Теперь редактируйте ядро с нужными вам параметрами любым удобным для вас редактором. Например, mcedit.

mcedit NEW_KERNEL

Перейдите на 3 уровня вверх в /usr/src:

cd ../../../

или

cd /usr/src

И собираем новое ядро (долгий процесс…):

make buildkernel KERNCONF=NEW_KERNEL

И устанавливаем его:

make installkernel KERNCONF=NEW_KERNEL

Новое ядро будет скопировано в каталог /boot/kernel как /boot/kernel/kernel. Если при загрузке возникла проблема, вы можете в самом начале загрузки операционной системы вернутся к прежнему ядру. Вам нужно будет в стартовом меню выбрать режим командной строки (Escape to a loader prompt) и там ввести следующую команду: boot kernel.old

Как открыть порт 22 (sshd) после пересборки ядра с включением ipfw

Для начала стоит добавить в /etc/rc.conf такие строки:

1
2
 firewall_enable="YES"
 firewall_script="/usr/local/etc/ipfw.rules"

И теперь содержимое /usr/local/etc/ipfw.rules

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 IPF="ipfw -q add"
 ipfw -q -f flush #сброс правил
 
 #внутренний интерфейс
 $IPF 10 allow all from any to any via lo0
 $IPF 20 deny all from any to 127.0.0.0/8
 $IPF 30 deny all from 127.0.0.0/8 to any
 $IPF 40 deny tcp from any to any frag
 
 # удержание уже соединившехся
 $IPF 50 check-state
 $IPF 60 allow tcp from any to any established
 $IPF 70 allow all from any to any out keep-state
 $IPF 80 allow icmp from any to any
 
 # открываем ftp (20,21), ssh (22), mail (25) http (80), dns (53) и т.д.
 $IPF 110 allow tcp from any to any 21 in
 $IPF 120 allow tcp from any to any 21 out
 $IPF 130 allow tcp from any to any 22 in
 $IPF 140 allow tcp from any to any 22 out
 $IPF 150 allow tcp from any to any 25 in
 $IPF 160 allow tcp from any to any 25 out
 $IPF 170 allow udp from any to any 53 in
 $IPF 175 allow tcp from any to any 53 in
 $IPF 180 allow udp from any to any 53 out
 $IPF 185 allow tcp from any to any 53 out
 $IPF 200 allow tcp from any to any 80 in
 $IPF 210 allow tcp from any to any 80 out 
 
 # закрываем и логируем остальных для дальнейшего разбора...
 $IPF 500 deny log all from any to any

Как на одну сетевую карту указать несколько IP

Это можно сделать командой:

1
2
 ifconfig em0 inet 10.0.0.1 netmask 255.255.255.0 
 ifconfig em0 inet 10.0.0.2 netmask 255.255.255.0 alias 0 

И можно сразу же прописать в /etc/rc.conf

1
2
3
 ifconfig_fxp0="inet 10.0.0.1  netmask 255.255.255.0" 
 ifconfig_fxp0_alias0="inet 10.0.0.2  netmask 255.255.255.0" 
 ifconfig_fxp0_alias1="inet 10.0.0.3  netmask 255.255.255.0" 

Отключение sendmail

  • Добавляем в /etc/rc.conf:
1
2
3
4
 sendmail_enable="NO"
 sendmail_submit_enable="NO"
 sendmail_outbound_enable="NO"
 sendmail_msp_queue_enable="NO"
  • Говорим “периодику” не запускать sendmail. Для этого копируем конфиг:

cp /etc/defaults/periodic.conf /etc/periodic.conf

И меняем в /etc/periodic.conf следующие строки (изначально там стоит root)

1
2
3
 daily_output="/var/log/daily.log"
 weekly_output="/var/log/weekly.log"
 monthly_output="/var/log/monthly.log"
  • Добавим в make опцию по сборке без sendmail:

echo “NO_SENDMAIL=true” >> /etc/make.conf

  • Перезагрузка и sockstat -4. В вывод этой команды sendmail быть не должно…

Ставим Xorg и IceWM

1
2
 pkg install xorg
 pkg install icewm

Создаём конфиг

1
2
 Xorg -configure
 cp /root/xorg.conf.nev /usr/local/etc/X11/xorg.conf

Добавляем в /etc/rc.conf

1
2
3
4
 dbus_enable="YES"
 hald_enable="YES"
 moused_enable="NO"
 moused_nondefault_enable="NO"

Перегружаемся и потом после логина запускаем

xinit /usr/local/bin/icewm-session