*NIX

Подписаться на эту рубрику по RSS

Проброс портов в ядерном IPFW NAT

Октябрь, 24th 2011

Проброс портов в ядерном IPFW NAT

Обещанное продолжение статьи про настройку IPFW NAT в FreeBSD 8, работающего на уровне ядра системы. Из заголовка не трудно понять, что речь сегодня пойдет о том, как организовать проброс портов. Рассказывать, для чего вообще используется перенаправление портов здесь не стану - раз тема заинтересовала, то и определенные знания есть. Возможно, позже и напишу небольшой обзор для начинающих.

В сети достаточно много подробных инструкций, как настроить NAT во FreeBSD, используя демон natd. А вот про настройку ядерного NAT информацию найти достаточно сложно. Как-то эта тема обходится вниманием, видимо кто настраивал сам не спешит делиться своими наработками. Вообще, последнее время, замечаю мало интересных технических статей... так что буду, по мере сил, продолжать вносить свой маленький вклад в дело продвижения Open Source и FreeBSD в частности.

Для простоты продолжим настраивать открытый firewall - чтобы не загромождать пример правилами блокировки. Первым делом проверим в конфиге rc.conf следующие строки (интерфейс, смотрящий в интернет vr0):

firewall_enable="YES"
firewall_nat_enable="YES"
firewall_nat_interface="vr0"
firewall_type="OPEN"

Синтаксис написания правил ядерного IPFW NAT следующий:

ipfw [-q] nat number config config-options

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

Консольный оконный менеджер Screen. Работаем в терминале с удобством.

Сентябрь, 30th 2011

Было время, когда параллельно основному месту работы, я подрабатывал удаленно в техподдержке у одного хостинг-провайдера (занимались в основном выделенными серверами на FreeBSD). Так вот там я узнал и стал активно использовать одну замечательную консольную программу - screen.

Screen – это полноэкранный оконный менеджер, который позволяет разделить физический терминал между несколькими независимыми процессами (обычно интерактивными облочками)

Да уж... определение из man звучит несколько заумно и вовсе не способствует приливу энтузиазма для изучения. Значит придется самому раскрыть некоторые прелести этой, без сомнения, нужной и удобной программы.

Чем может помочь screen при работе на удаленных серверах по ssh?

Наверное самым удобным, лично для себя, считаю возможность в любой момент покинуть активную ssh-сессию и в дальнейшем возобновить её.

Поясню на примере - допустим вы начали пересобирать ядро, или запустили какой-то длительный процесс, но дождаться его завершения нет возможности. Screen позволяет отключиться от текущего сеанса не прерывая выполняемой работы. В любой момент вы имеете возможность продолжить работу так, как будто вы и не отключались. Кроме того, при внезапном разрыве ssh соединения с сервером screen-сессия не прерывается, что очень удобно при работе по слабым каналам связи (к примеру GSM модемы).

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

Делаем резервную копию системы FreeBSD

Август, 17th 2011

клонирование HDD FreeBSD

Удивительно, аномально жаркое лето прошлого года, сервера организаций, с которыми сотрудничаю, пережили спокойно. В этом году техника решила испытать моё терпение - за не полных 2 месяца (июль и август) посыпалось три винта в разных серверах. Для любителей искать закономерности замечу, что все винты разных производителей. Два их них удалось поднять средствами FreeBSD. Для реанимации было достаточно запуска команды fsck в однопользовательском режиме для каждого раздела диска.

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

Сборка ядра FreeBSD. Если что-то пошло не так...

Август, 12th 2011
# make installkernel KERNCONF=NEW_KERNEL

В основном, процесс сборки, обновления и установки нового ядра FreeBSD проходит довольно гладко. Однако иногда бывает что-то пойдет не так, (увлёкшись чисткой лишнего, можно исключить и что-то нужное из состава ядра). Кстати, и на моей практике такое случалось пару раз. Ситуация осложнялась тем, что сервера находились удаленно и физического доступа к консоли сервера для принятия мер по оживлению системы нет.

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

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

read (subshell_pty…): No such file or directory (2)

Июнь, 08th 2011

При запуске mc (Midnight Commander) выскочило сообщение:

read (subshell_pty…): No such file or directory (2)

Отправим процессу сигнал продолжения работы (CONT). При получении сигнала CONT процесс возобновит свою работу с того момента как он был остановлен. В качестве shell у меня используется bash как в примере ниже.

killall -CONT bash

В результате этой манипуляции MC благополучно ожил.

FATAL: xcalloc: Unable to allocate 1 blocks of 4120 bytes!

Апрель, 28th 2011

После сборки нового SQUID (в моем случае 3.1.10) и запуска его в работу, в логах стал замечать такую неприятную вещь:

FATAL: xcalloc: Unable to allocate 1 blocks of 4120 bytes!

Причем такая ситуация происходила с завидной регулярностью, пару часов работает и привет - перезапускаемся с такой ошибкой. В общем проблему удалось решить уменьшив параметр cache_mem в конфиге. Заодно поправил и maximum_object_size_in_memory.

cache_mem 64 MB
maximum_object_size_in_memory 32 KB

Аварийный запуск системы из командной строки GRUB

Апрель, 25th 2011

Краткая инструкция по загрузке Windows и Linux из командной строки GRUB на случай каких-либо неполадок. Сразу оговорюсь, что сам grub2 должен запускаться, если же вы не можете попасть в консоль grub2, то вам скорее всего потребуется переустановка grub.

Запуск Linux с помошью командной строки GRUB

Нам понадобится написать всего 3 строчки: "set root", "linux" и "initrd" и в конце дать команду "boot".

set root=(hd0,5)
linux /boot/vmlinuz-2.6.32-generic root=/dev/sda5
initrd /boot/initrd.img-2.6.32-generic
boot

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

Почему FreeBSD а не Linux

Апрель, 08th 2011

FreeBSD

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

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

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

Cтатическая маршрутизация в FreeBSD

Апрель, 07th 2011

Не так давно нужно было объединить 2 сети - обеспечить видимость серверов. Как-то до этого времени задач по маршрутизации не стояло. Эта небольшая статья о том как сделать статическую маршрутизацию на FreeBSD. Пример сети возьмем из хендбука:

статическая маршрутизация FreeBSD

RouterA - наш компьютер с FreeBSD, он же является маршрутизатором в Интернет. Его маршрут по умолчанию для связи с внешним миром 10.0.0.1. Собственно на его примере и покажу настройку маршрутизации.

RouterB в качестве шлюза использует 192.168.1.1, что видно из схемы.

Для начала посмотрим таблицу маршрутизации на RouterA (команда netstat -nr):

% netstat -nr
Routing tables
Internet:
Destination        Gateway         Flags    Refs      Use  Netif  Expire
default            10.0.0.1        UGS         0    49378    xl0
127.0.0.1          127.0.0.1       UH          0        6    lo0
10.0.0/24          link#1          UC          0        0    xl0
192.168.1/24       link#2          UC          0        0    xl1

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

IPFW NAT в FreeBSD 8

Март, 27th 2011

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

Февраль, 04th 2011

О настройке 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

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

Настройка почтового веб-интерфейса RoundCube

Январь, 11th 2011

RoundCube

В новогодние праздники настраивал очередной сервер на FreeBSD. В этот раз уже на 8-ой стабильной ветке этой системы... как же быстро бежит время... Но речь не об этом. Т.к. времени было достаточно, решил в качестве бонуса заказчику установить web-интерфейс для работы с почтовым сервером внутри предприятия.

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

Подключение второго HDD во FreeBSD

Ноябрь, 24th 2010

Итак, требуется подключить к установленой ОС FreeBSD дополнительный жесткий диск, будь то, для резервного копирования важной информации, либо, как в моём случае, сделать файл-сервер на SAMBA. Хоть и можно задействовать квоты в SAMBA, но уж лучше пусть расшареные ресурсы живут физически на отдельном винте. Так спокойнее.

Производимые действия не зависят от версии FreeBSD. У меня, на момент написания статьи, была установлена ветка 8.1.

Полагаю, что HDD физически уже подключен. FreeBSD предоставляет нам простой инструмент, известный Вам по установке системе. В консоли запускаем sysinstall, далее заходим в Configure, запускаем Fdisk.

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

Настройка Skype на MeeGO. Решение проблемы с микрофоном

Октябрь, 22nd 2010

Многие владельцы нетбуков (ноутов) возможно столкнулись с неработающим встроенным микрофоном в Skype в Linux. В моём случае это было проблемой как на Ubuntu, так и на свежем MeeGO.

Для начала расскажу как установить Skype на MeeGO. Для начала запускаем терминал.

Заходим в директорию, куда хотите скачать rpm-пакет Skype:

cd директория_загрузки

Скачиваем rpm-пакет Skype:

wget http://www.skype.com/go/getskype-linux-beta-fc10

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

sudo yum localinstall skype-2.1.0.81-fc10.i586.rpm --nogpgcheck

Skype теперь установлен. Осталось запустить встроенный микрофон. В этом нам поможет утилита pavucontrol. Если таковой нет в системе устанавливаем:

sudo yum install pavucontrol

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

MeeGO на нетбуке. Первые впечатления

Октябрь, 20th 2010

MeeGO на нетбуке

Долгие ожидания новой версии Ubuntu 10.10 Netbook Edition закончились разочарованием. И в первую очередь в этом виноваты тормоза новой оболочки Unity. Сюда же стоит записать и корявость глобального меню на данном этапе. Конечно будут исправления, и кое-что уже стало лучше работать, но ощущение недоработанности новой версии Ubuntu угнетает...

Не Ubuntu единым жив нетбук. Решил поискать, что же предлагается из альтернатив на нетбуки на данный момент. Выбор остановился на новом (ну уж совсем пока новом) совместном детище Intel, Nokia и The Linux Foundation - MeeGo

Честно говоря привлекла внимание заточенность данной ОС под процессоры Atom, обещанная высочайчайшая скорость работы и совершенно не изъезженный интерфейс. На данной момент можно скачать версию MeeGo v1.0 for Netbooks. В середине ноября должна выйти новая версия операционной системы MeeGo с индексом 1.1, чего и буду ждать с нетерпением.

MeeGO интерфейс

MeeGO интерфейс

Система поставилась, что называется "с лёту", сразу подключил Wi-Fi, пробный серфинг с Google Chrome Browser поразил своей быстротой. Интерфейс MeeGo на голову выше того, что предлагается в новой версии Ubuntu, выглядит очень стильно и современно. Причем всё это хозяйство действительно не тормозит и не вызывает негативных эмоций. В общем по дизайну ставлю системе 10 из 10.

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

Установка Ubuntu 10.04 на нетбук с флешки

Август, 12th 2010

Ubuntu Netbook Edition на нетбуке Acer AspireOne 533

Решение установить на нетбук второй системой Ubuntu 10.04 пришло практически сразу с покупкой самого нетбука. Windows 7 Starter более-менее уже настроил для работы, но хочется чего-то большего, уж очень он урезаный. Да и сравнить производительность тоже не помешает.

Сказано - сделано. Благо дистрибутив (образ диска) Ubuntu 10.04 i386 уже был скачан.

Понадобится нам флешка, имеющая не менее 2Gb свободного пространства на борту, во всяком случае так на сайте ubuntu значится. На самом деле занято оказывается 700 Mb. Вероятно остальное место нужно для тех, кто захочет использовать флешку как LiveCD. Процесс создания загрузочной флешки очень прост. Будем полагать, что создаете вы её из Windows. Потребуется скачать и установить маленькую программу Universal USB Installer.

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

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

Январь, 31st 2010

Задача - требуется контролировать переписку определенных сотрудников (официальная версия - создать 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.

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

Rejik — блокируем нежелательный контент

Декабрь, 12th 2009

доступ к ресурсу ограничен

Вам надоело бесконтрольно пускать юзеров на любые сайты и позволять им качать что ни попадя? Или раздражают рекламные баннеры? А может и то и другое? В общем, сегодня речь пойдет о высокопроизводительном контент-фильтре для Squid или по-другому редиректоре - Rejik.

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

Squid, наверное самый популярный на сегодня прокси-сервер, позволяет использовать внешнюю программу редиректор для фильтрации запросов клиентов. Принцип действия редиректора таков: любой запрос клиентского браузера поступает на прокси-сервер, где данные о запросе передаются на стандартный вход редиректора. Редиректор анализирует поступившие данные и при соблюдении соответствующих условий перенаправляет на требуемый ресурс.

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

Отзыв пользовательских сертификатов OpenVPN

Декабрь, 09th 2009

В предыдущих статьях на тему OpenVPN я рассказывал как настроить openVPN сервер и клиентов для него с использованием личных сертификатов пользователей. Остался не раскрытым вопрос, что делать в случае если требуется отказать какому-либо клиенту в доступе по его сертификату. Причины могут разными - закрытый ключ, связанный с сертификатом скомпрометирован или украден, пользователь забыл пароль на ключ, либо просто хотите прекратить доступ данного человека в вашу сеть. Решением этой задачи является создание списка отзыва сертификатов (Certificate Revocation List - CRL), в котором перечисляются отозванные вами клиентские сертификаты и руководствуясь которым сервер будет отклонять запросы.

В качестве примера, отзовём сертификат пользователя client2. Пример будет для Linux/BSD/Unix.

cd /usr/local/etc/openvpn
. ./vars
./revoke-full client2

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

3proxy как альтернатива Squid

Ноябрь, 16th 2009

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

Любой Unix администратор знает о таком замечательном и авторитетном прокси-сервере, как Squid. Да и любители продуктов от Мелкомягких наверняка о нём наслышаны, вот только сегодня поговорим о другом, но не менее интересном продукте отечественного разработчика - свободном сервере 3proxy.

Возможно, первый вопрос, который сразу напрашивается у специалистов - чем меня не устраивает Squid? Всем устраивает, но есть один существенный недостаток - он до сих пор не научился писать логи напрямую в базы данных, например MySQL. А в том проекте, с которым пришлось работать, данное требование было определяющим.

На моё счастье, в сети наткнулся на сайт разработчика (Vladimir Dubrovin), известного под ником 3APA3A - http://3proxy.ru. Возможности этого маленького прокси-сервера просто впечатляют - лимиты на пользователей и группы, порт-мапперы, ограничения скорости, SOCKS, различные ACL и конечно же ведение журналов работы через ODBC. Для покорителей окон есть версия под Windows, сам не пробовал, однако на форуме разработчика широко обсуждается этот вариант. Кроме того вы полностью можете изменить формат создаваемых логов, так чтобы их можно было "скармливать" вашему любимому лог-анализатору.

Единственное чего не хватает - кэширования, вот чего нет, того нет... Поэтому пришлось использовать связку 3proxy + Squid, в качестве кеша и подключенного к нему удобного редиректора Rejik, для блокировки нежелательного контента (уже готовится статья на эту тему). Такая связка успешно работает уже более 3-х лет и спокойно "тянет" 300+ пользователей на довольно скромной машине под FreeBSD 6.3.

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

Обещаю подготовить в скором времени статью по настройке 3proxy под FreeBSD, основанную на собственном опыты внедрения. Но придется немного набраться терпения, т.к. статья будет довольно объемная, а времени свободного катастрофически не хватает...