Фев 142018
 

Странно что я не добавил запись о IPNat’е, хотя на многих серверах с небольшой нагрузкой его использую.

Начиная с 10-й ветки FreeBSD IPNat работает только с поддержкой IPV6 в ядре.

Для работы IPNat добавляем в rc.conf следующие строки.

# IPNat 
ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/etc/ipnat.rules"


Сам файл <strong>ipnat.rules</strong>


map em0 (внешний интерфейс) Local IP -> WAN IP

map em0 (внешний интерфейс) Local IP -> WAN IP proxy port ftp ftp/tcp

Так же через IPNat можно легко организовать проброс портов во внутреннюю сеть, делается это так.

rdr em0 WAN IP port 1234 -> Local IP port 1234

Перезапус IPNat после редактирования правил.

ipnat -CF -f /etc/ipnat.rules

На этом всё =)

Фев 102018
 

Если мне не изменяет память, начиная с 10-й ветки FreeBSD немного изменилась логика в настройке OpenVpn.

На старой работе был сервер под FreeBSD 8.1 вроде, для этих целей, сейчас же понадобилось поднять на FreeBSD 11.1.

И так, имеем FreeBSD 11.1

FreeBSD ***.kiev.ua 11.1-STABLE FreeBSD 11.1-STABLE #0 r328830: Sat Feb  3 19:26:16 EET 2018     root@***.kiev.ua:/usr/obj/usr/src/sys/AMG  amd64

OpenVpn собираю с такими опциями

 make showconfig
===> The following configuration options are available for openvpn-2.4.4:
     DOCS=on: Build and/or install documentation
     EASYRSA=on: Install security/easy-rsa RSA helper package
     EXAMPLES=on: Build and/or install examples
     LZ4=on: LZ4 compression support
     PKCS11=on: Use security/pkcs11-helper
     SMALL=off: Build a smaller executable with fewer features
     TEST=on: Build and/or run tests
     TUNNELBLICK=off: Tunnelblick XOR scramble patch (READ HELP!)
     X509ALTUSERNAME=on: Enable --x509-username-field (OpenSSL only)
====> SSL protocol support: you have to select exactly one of them
     OPENSSL=on: SSL/TLS support via OpenSSL
     MBEDTLS=off: SSL/TLS via mbedTLS
===> Use 'make config' to modify these settings

После сборки OpenVpn переходим к настройкам.

mkdir /usr/local/etc/openvpn

Continue reading »

Фев 022018
 

Взял себе новый VPS, залили мне на него мою любимую FreeBSD, но хостнейм меня не привелкал вообще =)

[root@vm227775 /var/mail]# hostname
vm227775.***.***

Мне этот VPS необходим под хостинг, почту и еще по мелочи, где хостнейм имеет не последнюю роль. Да и перезагружать сервер не сильно хотелось, так как софт компилиться =)

Сначала мы меняем хостнейм в rc.conf

hostname="указываем хостнейм" 

Далее прописываем хостнейм в /etc/hosts

127.0.0.1               указываем хостнейм

И на последок делаем следующее

hostname указываем хостнейм

Перепроверяем командой hostname, в ответ мы получим новое имя хоста машины.
Все.

Дек 272017
 

Заметка больше всего для себя.

ifconfig vlan304 create
ifconfig vlan304 vlan 304 vlandev re0

Или же одной командой

ifconfig vlan304 create vlan 304 vlandev re0 up

cloned_interfaces="vlan304 vlan500 vlan4000"
ifconfig_vlan304="inet x.x.x.x/24 vlan 304 vlandev re0 mtu 1500"
ifconfig_vlan500="inet x.x.x.x/28 vlan 500 vlandev re0 mtu 1500"
ifconfig_vlan4000="inet x.x.x.x/30 vlan 4000 vlandev re0 mtu 1500"
ifconfig_re0="up mtu 1504"

Вот собственно и все.

Апр 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 »