Устанавливаем pfSense на VPS/VDS

Предыстория

В определенный момент мне понадобился pfSense, установленный на VPS хостинге. pfSense не требователен к ресурсам, поэтому я остановил свой выбор на хостингах, работающих с KVM.

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

Что делать?

В итоге я решил развернуть у себя виртуальную машину на KVM c параметрами как у VPS-хостинга, а затем просто перенести образ жесткого диска на VPS.

Конфигурация KVM в моем случае была такая: 256 RAM, 1 процессорное ядро, 5ГБ жесткий диск. HDD и Network — через VirtIO.

При создании виртуалки очень важно, чтобы тип хранилища был Raw. QCOW2, VDI и иже с ними не подойдут. Создал виртуалку, поставил pfSense, теперь самое главное перенести ее образ на VPS.

Делаем…

Выбранный нами VPS хостинг должен поддерживать доступ к консоли виртуальной машины напрямую, а не только по SSH. На VPS устанавливаем шаблонную Ubuntu 16.04. Как правило это чистая система с родным загрузчиком GRUB. Скачиваем туда образ любой Ubuntu/Debian netinstall CD, извлекаем ядро и initrd, например в папку boot, а дальше подсовываем GRUB это ядро и initrd. Обязательно ядру при загрузке указываем параметр rescue/enable=true. Попадаем в Ubuntu/Debian recovery mode, запускаем консоль без подключения к восстанавливаемой системе, а дальше

wget [АДРЕС НАШЕГО ОБРАЗА, ВЫЛОЖЕННОГО НА ЛЮБОЙ WEB-ХОСТИНГ] -q -O - | dd of=/dev/vda bs=10M

Ждем. (можно ждать долго, у кого то и 2-3 часов не хватит). По окончании работы команды перезагружаем нашу VPS виртуалку, и видим успешную загрузку pfSense.

Исходник

 

Синхронизация времени между Windows, macOS и Linux

Самым простым способом исправления ситуации, чтобы время больше не сбивалось после перезагрузки из одной ОС в другую – это внести пару изменений в системном реестре ОС Windows.

  1. Нажмите одновременно на клавиатуре кнопки “Win” + “R” и введите в открывшееся окно “Выполнить” команду “regedit
  2. Перейдите по пути: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
  3. После чего справа создайте новый параметр:
    • DWORD – для 32 битных ОС Windows
    • QWORD – для 64 битных ОС Windows  (90% всех современных компьютеров)

Присвоить имя RealTimeIsUniversal созданному параметру

После чего добавить ему значение 1

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

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