pfSense на vps

pfSense на vps можно использовать для получения статического внешнего (белого) ip адреса, и даже нескольких, при том что провайдер предоставляет только внутренний (серый) ip адрес или внешний динамический.

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

ifconfig em0 inet x.x.x.x netmask 255.255.255.255
route add -host y.y.y.y -interface em0
route add default y.y.y.y

x.x.x.x – внешний ip адрес
y.y.y.y – шлюз
em0 – сетевой интерфейс (может быть другим)

После этого заходим в интерфейс и прописываем шлюз в разделе Система / Маршрутизация / Шлюзы.
Так же нужно поставить галку на строке “Используйте нелокальный шлюз” в расширенных настройках.
Далее нужно прописать статический ip в разделе Интерфейсы / WAN с указанием шлюза который прописали ранее.

Увеличение дискового пространства в pfSense 2.4

    1. Откройте терминал под пользователем root и введите следующие команды:
    2. Выбираем пункт меню “Shell”
      Enter an option: 8
    3. Отключаем Swap
      swapoff /dev/label/swap0
    4. Удаляем раздел со Swap
      gpart delete -i 2 vtbd0s1
    5. Расширяем первый слайс диска
      gpart resize -i 1 vtbd0
    6. Применяем изменения
      gpart commit vtbd0s1
    7. Расширяем первый раздел диска (вместо X конечный объем диска в гигабайтах)
      gpart resize -i 1 -s XG vtbd0s1
    8. Добавляем раздел со Swap
      gpart add -t freebsd-swap vtbd0s1
    9. Ставим метку на раздел со Swap
      glabel label swap0 /dev/vtbd0s1b
      sed -i \"\" 's/dev\/ufsid\/[a-z0-9]*/dev\/vtbd0s1a/g' /etc/fstab
    10. Перезагружаем сервер
      reboot
    11. Расширяем файловую систему раздела
      growfs -y /dev/vtbd0s1a

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

      gpart show -p

Основные команды ZFS

Создать пул raidz:

$ zpool create -f -o ashift=12 tank raidz /dev/sda /dev/sdb /dev/sdc

Добавить диски в пул:

$ zpool add -f tank raidz /dev/sda /dev/sdb /dev/sdc
$ zpool attach tank /dev/sda /dev/sdb

Создать фс:

$ zfs create tank/storage

Включить сжатие:

$ zfs set compression=on tank/storage

Изменить точку монтирования:

$ zfs set mountpoint=/media/storage tank/storage

Добавить кэш диск l2arc:

$ zpool add tank cache /dev/sda -f

Добавить ZIL:

$ zpool add tank log /dev/sda -f

Если диск отпал (проблемы с кабелем) или специально его отключили можно подключить его обратно:

$ zpool online tank /dev/sda

Создать блочное устройство:

$ zfs create -V 5gb tank/vol

tun в lxc

В конфиге контейнера /etc/pve/lxc/[ID].conf добавить строку

Для tun устройства:

lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file

Дополнительно для openvpn

lxc.cgroup.devices.allow = c 10:200 rwm

Для fuse устройства:

lxc.mount.entry = /dev/fuse dev/fuse none bind,create=file

Для ppp устройства (для работы ppp требуется CAP_NET_ADMIN):

lxc.mount.entry = /dev/ppp dev/ppp none bind,create=file

настройка openvpn

Установка утилиты Easy-RSA

Все операции по созданию ключей и сертификатов можно выполнить с помощью утилиты openssl. Однако проще воспользоваться специально созданной для этого программой Easy-RSA, которая использует openssl для выполнения действий с ключами и сертификатами.

Ранее утилита Easy-RSA поставлялась вместе с OpenVPN, но теперь это отдельный проект.

Все операции с удостоверяющим центром и сертификатами можно (и нужно) проводить от имени непривилегированного пользователя.

$ ./easyrsa init-pki

На втором шаге с помощью команды build-ca создайте удостоверяющий центр CA:

$ ./easyrsa build-ca

Читать далее «настройка openvpn»

Проблема с ключами в Arch Linux

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

Такая-же проблема появляется иногда при обновлении отдельных пакетов.

Например:

vdpauinfo-0.9.tar.gz ... СБОЙ (неизвестный открытый ключ 1BEF3D8401A68861)

Решение оказалось довольно простым, хотя и пришлось перепробовать несколько вариантов.

$ gpg --keyserver keys.gnupg.net --recv-keys <не найденный ключ>

Пример:

$ gpg --keyserver keys.gnupg.net --recv-keys 1BEF3D8401A68861
gpg: ключ 09BA9635: импортирован открытый ключ "Aaron Plattner "
gpg: абсолютно доверенных ключей не найдено
gpg: Всего обработано: 1
gpg:                  импортировано: 1

Базовые операции в PostgreSQL

Запуск psql под пользователем postgres:

sudo -u postgres psql

Создать базу данных и пользователя:

postgres=# CREATE DATABASE test_database;
CREATE DATABASE

postgres=# CREATE USER test_user WITH password 'qwerty';
CREATE ROLE

postgres=# GRANT ALL privileges ON DATABASE test_database TO test_user;
GRANT

Удалить базу данных и пользователя:

postgres=# DROP DATABASE test_database;
DROP DATABASE

postgres=# DROP USER test_user;
DROP USER

Читать далее «Базовые операции в PostgreSQL»

Монтирование образов qcow2

Образ виртуалки qcow2 можно примонтировать локально. Это может понадобиться чтобы вытащить или изменить нужные файлы даже если виртуалка не может сама загрузиться.
Для монтирования нужно выполнить несколько команд:

modprobe nbd max_part=8
qemu-nbd -c /dev/nbd0 название_образа.qcow2
mkdir /mnt/qemu
mount /dev/nbd0p1 /mnt/qemu

Диск монтируется в режиме чтения-записи. Чтобы отмонтировать диск и освободить ресурсы выполним обратную операцию:

umount /mnt/qemu
rm -R /mnt/qemu
qemu-nbd -d /dev/nbd0
modprobe -r nbd