FreeBSD

Почему FreeBSD а не Linux

Пятница, 8 апреля 2011 г.
Рубрика: *NIX
Метки:
Просмотров: 9777
Подписаться на комментарии по RSS

FreeBSD

Некоторые читатели моего блога интересуются почему я пишу в основном о FreeBSD и мало уделяю внимания Linux. Видимо пришло время рассказать чем мне так нравится FreeBSD на серверах. Данная статья не коим образом не умаляет достоинств Linux систем, я лишь попытаюсь изложить некоторые моменты, которые, возможно, кому-то помогут определиться с выбором ОС для своего сервера.

Первой системой, доставшейся мне "в наследство" от прежнего сиcадмина была Red Hat 6. В то время я ещё совершенно не был знаком ни с Linux, ни тем более с FreeBSD. Вернее знания мои заканчивались пробной установкой какого-то дистрибутива Linux на десктоп... а тут сразу рабочий сервер завода в полное распоряжение и крутись как знаешь.

читать полностью →

IPFW NAT в FreeBSD 8

Воскресенье, 27 марта 2011 г.
Рубрика: *NIX
Метки: | |
Просмотров: 11337
Подписаться на комментарии по RSS

nat freebsd

Сегодня речь пойдет о NAT, а точнее о kernel nat (IPFIREWALL_NAT). На новом сервере решил опробовать свеженькую FreeBSD 8 для организации выхода в интернет.

Изначально о встроенном в ядро NAT не помышлял и cделал по старинке, использую демон NATD. Всё замечательно заработало, однако при запуске сервера в реальную работу вылезло одно не приятное "но".

При подключении по SSH на сервер наблюдались жуткие тормоза программ, использующих псевдографику, например MC прорисовывал панельки в течение минуты! Такая же ситуация наблюдалась и в sysinstall. Медленный заход в MC мог наблюдаться например, если не правильно указаны или не верно настроены DNS адреса, но здесь был не тот случай, да и характер прорисовки экрана иной. Причем локально с консоли всё работало шустро. Выяснилось, что при отключении NATD скорость работы по SSH восстанавливается.

Честно говоря природу данного явления так и не выяснил. Зато решил опробовать встроенный в ядро NAT (эта возможность появилась начиная c 7 версии FreeBSD).

читать полностью →

Настройка PPPoE-соединения во FreeBSD

Пятница, 4 февраля 2011 г.
Рубрика: *NIX
Метки: |
Просмотров: 8150
Подписаться на комментарии по RSS

О настройке PPP соединения в FreeBSD я уже писал на страницах блога - настройка ADSL PPPoE соединения в FreeBSD. Данная статья во многом её повторяет и создана с одной лишь целью - помощь в подключении к новому региональному провайдеру Мега-НН.

Впрочем, подойдет и для любого другого провайдера, предоставляющего доступ к Интернет посредством PPPoE-соединения по имени и паролю.

Для начала следует привести файл /etc/ppp/ppp.conf к такому виду:

default:
  set log Phase tun command
megann:
  set device PPPoE:msk0
  set authname ISP_login
  set authkey ISP_password
  set dial
  set login
  enable dns
  add default HISADDR

читать полностью →

Контроль переписки в Postfix («большой брат» следит за тобой)

Воскресенье, 31 января 2010 г.
Рубрика: *NIX
Метки: | | | |
Просмотров: 29506
Подписаться на комментарии по RSS

Задача - требуется контролировать переписку определенных сотрудников (официальная версия - создать backup почтовой переписки с возможностью последующего просмотра). Другими словами необходимо, чтобы при отправке письма пользователем (например, user@mydomain.ru), доставлял его почту как обычно адресату, а также дублировал это письмо в определенный ящик (например, big_brother@mydomain.ru).

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

  • always_bcc = address
  • Доставляет копии ВСЕХ сообщений (входящих и исходящих) на указанный адрес (поддерживается с Postfix v.2.1). Например, указав в /usr/local/etc/postfix/mail.cf строку always_bcc = backup@mydomain.ru можно сделать полный бэкап всей почты на адрес backup@mydomain.ru, вот только не повезет тому, кто это всё разгребать будет.

  • sender_bcc_maps = type:table и recipient_bcc_maps = type:table
  • Таблицы соответствия отправителя/получателя с адресами доставки копий сообщений (функция доступна в Postfix 2.1 и выше.) То что нам и нужно.

Рассмотрим 2 варианта реализации - на основе файлов (индексированных карт hash) и базы данных MySQL.

читать полностью →

Настройка OpenVPN сервера в режиме моста на FreeBSD 6.x и FreeBSD 7.x

Среда, 8 июля 2009 г.
Рубрика: *NIX
Метки: | |
Просмотров: 15434
Подписаться на комментарии по RSS

Имеем задачу - организовать безопасный доступ из внешнего мира к внутренней корпоративной сети. Данная статья не претендует на исчерпывающее повествование по данной теме. В ней не раскрываются все возможности и опции настройки OpenVPN - это пример из личной практики, где я берусь описать процесс создания OpenVPN сервера на системе FreeBSD, с возможностью подключения к нему удаленных пользователей (с различных операционных систем: Windows, Linux, MacOS etc.).

За более подробной информацией рекомендуется обратится на сайты разработчиков openvpn.net, www.openvpn.se и man-страницы.

Для начала установим сам OpenVPN из портов:

cd /usr/ports/security/openvpn
make install

Во время установки будет предложено включить PW_SAVE? Данная опция дает возможность чтения текущих паролей из файла. Хотите включайте - хотите нет (сам эту опцию не включаю). Это не самый критичный параметр :)

читать полностью →

Сборка ядра в FreeBSD

Понедельник, 29 июня 2009 г.
Рубрика: *NIX
Метки: | | |
Просмотров: 6707
Подписаться на комментарии по RSS

freebsd_daemon

Зачем нужно пересобирать ядро (kernel)?

При инсталляции FreeBSD мы сразу же имеем вполне работоспособное ядро. Зачем его переделывать? Дело в том, что это ядро (GENERIC конфигурация) предназначено для того, чтобы система успешно развернулась на "железе" любой конфигурации (из поддерживаемых, конечно). В эту конфигурацию встроена поддержка ВСЕХ типов накопителей (HDD и CD) и БОЛЬШИНСТВА сетевых карт, которые на данный момент поддерживаются FreeBSD. Это вполне логично - вы должны иметь возможность поставить свой Unix и дополнительные программы на тот HDD, который имеется у вас в машине и суметь войти в сеть, какой бы сетевой карточкой вы ни пользовались, хотя на новом железе это далеко не всегда так даже на FreeBSD 7.1 (могу привести кучу примеров тому в подтверждение).

Наряду с этим, в ядро не включены полезные опции, которые обязательно вам понадобятся в дальнейшем, если вы хотите использовать вашу машину в качестве сервера. (Например - поддержка firewall, PPP, VPN и т.п.).

Итак, первым делом обновим или установим дерево портов и исходные коды операционной системы (если их не ставили во время первичной установки FreeBSD). Для поддержания дерева портов в актуальном состоянии, FreeBSD использует утилиту cvsup. Посредством CVSup можно обновлять не только порты, исходные коды в каталоге /usr/src, но и документацию в каталоге /usr/share/doc.

Устанавливаем CVSup:

# cd /usr/ports/net/cvsup-without-gui
# make install clean

Далее создаем sup-файл, в котором описываем: что обновлять, откуда и какую версию использовать. Пример такого можно посмотреть в директории /usr/share/examples/cvsup

читать полностью →

SSH — авторизация по ключу

Пятница, 19 июня 2009 г.
Рубрика: *NIX
Метки: | |
Просмотров: 8547
Подписаться на комментарии по RSS

SSH предоставляет 3 способа аутентификации клиента: по ip адресу клиента(небезопасно), по публичному ключу клиента и стандартный парольный метод. В данной статье рассмотрим аутентификацию удалённого пользователя по ключу с полным запретом доступа по паролю на FreeBSD используя OpenSSH. Публичный ключ пользователя хранится на сервере, секретный ключ у клиента.

Для начала, нужно сгенерировать ключи, используя программу ssh-keygen, например:

ssh-keygen -t rsa #создаст пару ключей RSA длиной 1024 бита.
  • -t указывает тип ключа (RSA DSA)
  • -f указывает файл, в котором следует сохранить ключи (по умолчанию используются файлы $HOME/.ssh/id_rsa и $HOME/.ssh/id_dsa для ключей rsa и dsa соответственно)
  • -b указание длины ключа в битах
ssh-keygen -t rsa -b 2048 -f $HOME/.ssh/id_rsa

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

В итоге мы получим пару ключей: один секретный id_rsa (зашифрованный паролем, если уго указывали при создании), а второй публичный с расширением pub(id_rsa.pub).

Публичный ключ необходимо будет скопировать в домашнюю директорию сервера $HOME/.ssh/authorized_keys. только в этом случае сервер будет знать ключ данного пользователя и сможет аутентифицировать его без пароля. Файл authorized_keys может содержать несколько публичных ключей.

читать полностью →

Настройка ADSL PPPoE соединения в FreeBSD

Вторник, 16 июня 2009 г.
Рубрика: *NIX
Метки: | |
Просмотров: 6916
Подписаться на комментарии по RSS

О настройке PPP соединения в FreeBSD написано не мало, но некоторые моменты пришлось додумывать самому. Начну с того, что склоняюсь всё-таки к настройке соединения с интернет на самом ADSL модеме. Здесь есть ряд плюсов, вернее он только один - при разрыве связи или какой-то нестабильной работе, нажать на кнопочку модема может любой не компетентный пользователь. Что, собственно, крайне важно, когда вы единственный человек, который занимается IT в организации...

Но бывают такие случаи, когда нужно, чтобы внешний IP адрес, принадлежал именно компьютеру, являющемуся шлюзом в Internet. Вот и появилась у нас такая программа, ключ которой строго привязывался к IP аресу, т.е. простым пробросом портов на модеме тут проблему не решишь. В итоге ADSL модем пришлось перевести в режим моста.

Пример моего конфига для установления ADSL соединения:

cat /etc/ppp/ppp.conf
# Общие настройки
default:
  set log phase tun command
  set timeout 0
  set redial 10+10-5.3 20
  set reconnect 3 5
# Настройки Вобла-Телеком
VT:
  disable lqr
  deny lqr
  set device PPPoE:vr1:VT
  set authname username
  set authkey password
  set dial
  set login
  add default HISADDR

читать полностью →