*NIX

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

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, основанную на собственном опыты внедрения. Но придется немного набраться терпения, т.к. статья будет довольно объемная, а времени свободного катастрофически не хватает...

OpenVPN клиент для Windows

Август, 17th 2009

Как и было обещано в предыдущей статье, сегодня речь пойдет о GUI оболочке для клиентской части OpenVPN на Windows. Запуск OpenVPN в консольном окне для конечных пользователей, работающих в ОС Windows - это нонсенс. Да и выглядит такое решение мягко говоря не законченным.

Для реализации нащей задачи существует open source проект под GPL лицензией - OpenVPN GUI. Последний стабильный выпуск: 1.0.3 с OpenVPN 2.0.9 (2006-10-17) (Русский выпуск еще не выходил) можно скачать здесь.

После установки OpenVPN GUI в системном трее (область на правой стороне панели задач) можно увидеть пиктограммку, похожую на подключение к сети. С её помощью получаем возможность управлять OpenVPN соединениями, запускать/останавливать туннели VPN, выполнять регистрацию, изменять пароль к ключу и массу других полезных вещей.

gui_vpn

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

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

Июль, 08th 2009

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

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

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

cd /usr/ports/security/openvpn
make install

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

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

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

Июнь, 29th 2009

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

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

Защита корпоративной почты от СПАМа и вирусов.

Июнь, 28th 2009

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

Наравне с вирусами, СПАМ снижает производительность труда сотрудников и пропускную способность каналов связи, а также увеличивает общие ИТ-расходы на «обслуживание» электронных писем, не имеющих отношения к рабочей деятельности компании, а их, поверьте, очень не мало.

За прошедшую неделю доля спама в почтовом трафике Рунета в среднем составила 84,9%. Вот статистика одного моего почтового сервера за месяц (количество почтовых ящиков около 300 штук).

Kaspersky Antispam - отчет за месяц

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

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

Free-SA, Squid и FreeBSD. Считаем Internet-траффик

Июнь, 22nd 2009

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

Существует сножество анализаторов журналов прокси-серверов как под Windows, так под *NIX. Squid, на сегодняшний день наиболее гибок из свободных прокси-серверов в настройке и богат по возможностям, хотя и у него есть недостатки. Имея большой опыт организации корпоративного доступа в Интернет, и опробовав разные анализаторы, для себя остановился на двух готовых решениях Free-SA и SARG + одном самописном. Используются для различных решений.

В основном ставлю заказчикам Free-SA. Какие же у него преимущества?

  • более внятная архитектура и код (C/HTML/CSS);
  • скорость формирования отчетов в 7-20 раз выше по сравнению с SARG (7х — для файла access.log объемом в 50 Мб, 20x — для 1 Гб);
  • поддержка различных форматов файлов журналов (Squid, CLF, Postfix, QMail, CommuniGate Pro);
  • дополнительные отчеты (в т.ч. для оценки эффективности сервера);
  • изменяемые «на-лету» темы оформления. возможность делать свои, при наличии даже начальных знаний CSS

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

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

Июнь, 19th 2009

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

Июнь, 16th 2009

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

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