Апр 022014
 

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

 uname -a
FreeBSD slik.loc 9.2-RELEASE FreeBSD 9.2-RELEASE #1: Tue Feb 18 12:08:12 EET 2014     slik@slik.loc:/usr/obj/usr/src/sys/SLIK  i386

Приступаем к установке openvpn

cd /usr/ports/security/openvpn/ && make install clean

После установки OpenVPN приступаем к конфигурации.

cd /usr/local/share/doc/openvpn/easy-rsa/2.0/

Для начала сделаем правку в файле vars, приводим его к такому состоянию.

# Меняем export KEY_DIR="$EASY_RSA/keys" на
export KEY_DIR="$EASY_RSA/keys/server"
# меняем export KEY_SIZE=1024 на 2048
# (увеличим размер ключей с 1024 бит до 2048 бит)
export KEY_SIZE=2048

Немного поправим права на скрипты.

chmod 544 *

Создадим директорию для хранения ключей и сертификатов

mkdir -p keys/server

Запускаем shell

#sh
#. ./vars

Нам сказали что необходимо все почистить в папке server, что мы и делаем.
Один очень важный момент, команда ./clean-all удаляет все ранее созданные ключи и сертификаты, будьте осторожны!

./clean-all

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

# ./build-ca
Generating a 2048 bit RSA private key
......................................................................................+++
....................+++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [US]:UA
State or Province Name (full name) [CA]:Kyiv
Locality Name (eg, city) [SanFrancisco]:Kyiv
Organization Name (eg, company) [Fort-Funston]:server
Organizational Unit Name (eg, section) [changeme]:server
Common Name (eg, your name or your server's hostname) [changeme]:server
Name [changeme]:
Email Address [mail@host.domain]:admin@slik45.kiev.ua
#

Continue reading »

Фев 172014
 

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

FreeBSD slik45.kiev.ua 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255985: Wed Oct  2 05:59:14 UTC 2013     root@reotest2.reotest:/usr/obj/usr/src/sys/GENERIC  i386

Систему поставил 2 недели назад, старая была 9.1, там посыпался системный винт, рейда не было и нет, так как это домашний роутер + тестовая машина для пары сайтов.

Для начала нам необходимо обновить исходные коды системы.
Переходим в директорию

cd /usr/share/examples/cvsup/
# ls -ll
total 24
-r--r--r--  1 root  wheel  1136 Sep 27 07:02 README
-r--r--r--  1 root  wheel  3390 Sep 27 07:02 cvs-supfile
-r--r--r--  1 root  wheel  2108 Sep 27 07:02 gnats-supfile
-r--r--r--  1 root  wheel  3164 Sep 27 07:02 stable-supfile
-r--r--r--  1 root  wheel  2855 Sep 27 07:02 standard-supfile

Укажем необходимую нам версию FreeBSD
В файле конфигурации по умолчанию видим следующие

 cat standard-supfile|grep defa
*default host=CHANGE_THIS.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_9
*default delete use-rel-suffix
*default compress

Копируем и немного правим файл
Continue reading »

Фев 082013
 

Начииная с 7-й ветки в FreeBSD появилась TMPFS, она портированна с NetBSD. Приступим к настройке.
Есть два способа ее включить, первый собрать ядро с поддержкой tmpfs добавляя в конфигурационный файл ядра опцию

options TMPFS

Второй способ, загрузить модулем.

echo 'tmpfs_load="YES"'>> /boot/loader.conf

Далее правим наш fstab

#/dev/ada2d     /tmp            ufs     rw,userquota,groupquota         2       2
tmpfs           /tmp            tmpfs   rw,mode=01777,size=2147483648   0       0

После перезагрузки системы проверяем.

tmpfs           2.0G     16k      2G     0%    /tmp

При ручном монтировании раздела команда будет выглядеть так

mount -t tmpfs -o mode=01777,size=2147483648 tmpfs /tmp

Где размер раздела равен 2 гб.
Tmpfs дает ощутимый прирост при больших нагрузках, если очень много временных файлов хранится в разделе /tmp, ранее раздел располагался на жестком диске, сейчас же в оперативной памяти, что дает больший прирост при чтении и записи.

Окт 022012
 

Обновлял на одном сервере софт, тестовый сервер, перестал запускаться Proftpd, вылетал с ошибкой

Fatal: unknown configuration directive 'SQLBackend'

Теперь для работы Proftpd с поддержкой mysql необходимо дополнительно устанавливать порт databases/proftpd-mod_sql_mysql
При этом необходимо в конфиг добавить следующее

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

Перезапустить сервис Proftpd и радоваться его работе.

Сен 212012
 

Вот столкнулся с одной проблемой на одном из будущих серверов после обновления дерева портов.
Пытался поставить mc а в ответ получил такое

cd /usr/ports/misc/mc && make install clean
Unknown modifier 'u'

Unknown modifier 'u'

Variable NO_OPTIONS is recursive.

Загуглив, нашел решение, решение выглядит следующим образом.

Edit file /usr/ports/Mk/bsd.options.mk (and, if needed, other files in /usr/ports/Mk/) removing all ":u" (case sensitive, without quotes) from the file.
It is probably not good doing this, but works.

После всех махинаций все начало собираться 🙂

Авг 102012
 

Искал я себе панельку управления хостингом для локальных сайтов, тестов и т.д. Так как я хостингом профессионально не занимаюсь, не вижу смысла покупать панельку за деньги, типа ISPmanager и т.д.
Ранее пробовал панельку syscp, но проект закрылся, вместо него появился froxlor, мне он не сильно понравился, и мое внимание привлекла панелька ispCP Omega.
Имеем на данный момент только что установленную систему FreeBSD

FreeBSD test.slik.loc 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 08:49:13 UTC 2009     root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

Побыстрому обновил систему через portsnap и приступил к работе.

test# cd /usr/ports/ports-mgmt/portmaster/ && make install clean && rehash

В меню был выбор оболочки, я выбрал bash


                                │                  Options for portmaster 3.13.13                    │
                                │ ┌────────────────────────────────────────────────────────────────┐ │
                                │ │      [X] BASH  Install programmable completions for Bash       │ │
                                │ │      [ ] ZSH   Install programmable completions for zsh        │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                │ │                                                                │ │
                                ├─└────────────────────────────────────────────────────────────────┘─┤
                                │                       [  OK  ]       Cancel                        │
                                └────────────────────────────────────────────────────────────────────┘


и приступил к установке.
Далее необходимо скачать саму панельку, последней версии, и распаковать ее, что собственно мы и сделаем.

# mkdir -p /usr/local/src/ispcp/
# cd /usr/local/src/ispcp/
# fetch http://ignum.dl.sourceforge.net/project/ispcp/ispCP%20Omega/ispCP%20Omega%201.0.7/ispcp-omega-1.0.7.tar.bz2
# tar -xjvf ispcp-omega-1.0.7.tar.bz2

Далее согласно мануалу разработчиков необходимо поправить makefile в апаче, что мы и делаем.

vi /usr/ports/www/apache22/Makefile

Меняем с prefork на worker

WITH_MPM?=      worker # or prefork, event, itk

Continue reading »

Мар 122012
 

Очередное обновление proftpd вылезло боком. Перестали логиниться юзеры которые проходят авторизацию через mysql.
Через режим отладки было видно что, не модуль mysql не подключен. Оказалось разработчики изменили некоторые функции, теперь необходимо в конфиги писать следующее

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

И после это перезапустить proftpd.
Мне помогло.

Фев 122012
 

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

cd /etc/

и правим файлик

ee nsmb.conf

до такого состояния.

# First, define a workgroup.
[default]
workgroup=HOME - <strong>Ваша рабочая группа, обязательно указывать имя с заглавных букв</strong>

# The 'FSERVER' is an NT server.
[UPLOAD] - Имя вашей машины под виндой, обязательно указывать имя с заглавных букв
charsets=koi8-r:cp866
addr=192.168.0.3 - IP Вашей машины под виндой

[UPLOAD:SLIK] - тут указывается имя машины и локальная учетная запись на виндовой машине.
# use persistent password cache for user 'joe'
password=$$1767877DF - Это пароль для вашей учетной записи под виндой в зашифрованном виде.

Пароль шифруется такой командой

smbutil crypt 1234567

, где 1234567 Ваш пароль, на выходе он получает такое значение $$12a1a06767a6a5e
Почле чего можем приступать к монтированию шары, для это пишем такую команду в консоли:

mount_smbfs -E koi8-r:cp866 -W HOME //SLIK@upload/e$ /mnt/

У меня все прошло отлично, все при монтировалось, пароль не запрашивало, теперь имеем такой вывод

//SLIK@UPLOAD/E$    932G    885G     46G    95%    /tmp

Дальше можно написать простенький скрипт, и положить его в автозагрузку системы 🙂

Сен 272011
 

Имеется у меня дома хороший брендовый сервер, в tower корпусе, две головы по два ядра.
Вот только незадача, жрет электричества как дурной, поэтому по ночам я его выключаю, 13 — 15 киловатт в сутки получается 🙁
В последнее время я начал забывать его по утрам включать, и тут назрел вопрос включения его по сети. Для винды програмка нашлась очень быстро, для FreeBSD тоже 🙂
Значит идем в порты

cd /usr/ports/net
make search name='wol'
Port:   wol-0.7.1_2
Path:   /usr/ports/net/wol
Info:   Tool to wake up Wake-On-LAN compliant computers
Maint:  cm@therek.net
B-deps: gettext-0.18.1.1 libiconv-1.13.1_1 perl-5.10.1_3
R-deps: gettext-0.18.1.1 libiconv-1.13.1_1
WWW:    http://ahh.sourceforge.net/wol/

Программа поставилась с пол пинка 🙂 Далее пошли у меня другие танцы. Сначала сетевая на сервере не хотела правильно конфигурироваться, там у меня венда стоит. Потом не хотела будиться с FreeBSD хотя с ноута с венды будился сервак на ура.
В общем нашел правильную комбинацию 🙂

wol -v 00:0e:0c:3e:93:e0 -i 192.168.0.3

Сначала идет мак адресс, потом ip адресс, без IP не хотел просыпаться.
Вот и все 🙂

Июл 022011
 

Как и любому админу захотелось мониторить свои сервера, чтобы рисовались красивые графики и т.д.
На домашнем сервере cacti стоит уже довольно таки давно, сейчас я его раскатывать буду на рабочем сервере, точнее на файлопомойке 🙂
Делаем

cd /usr/ports/net-mgmt/cacti/ &amp;&amp; make install clean

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

=======================================================================
Cacti is now installed. If you intall it for the first time,
you may have to follow this steps to make it work correctly:

1. Create the MySQL database:
# mysqladmin --user=root create cacti
2. Create a mysql user/password for cacti:
   (change user and/or password if requered)
# echo "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';
FLUSH PRIVILEGES;" | mysql
3. Import the default cacti database:
# mysql cacti < /usr/local/share/cacti/cacti.sql
4. Edit /usr/local/share/cacti/include/db-settings.php.
5. Add a line to your /etc/crontab file similar to:
*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php >
/dev/null 2>&1
6. Add alias in apache config for the cacti dir:
Alias /cacti "/usr/local/share/cacti/"
7. Open a cacti login page in your web browser and login with admin/admin.

If you update cacti, open a login page right now. An updating process
will run automatically.
=======================================================================

Согласно инструкции приступаем к настройке.
Continue reading »