If you have a VPS or a Dedicated Server with /64 IPv6 subnet and want to use it on your device at home to make it accessible from the internet directly, you can make a tunnel through the Yggdrasil network.

Yggdrasil network is already end to end encrypted, so we can use vxlan over it for this purpose.

On the server with IPv6 subnet we have to install bridge-utils and configure bridge to our external interface:
apt install bridge-utils
brctl addbr br0
brctl addif br0 eth0

then we need to add a vxlan to the server and connect it to the bridge also:
ip link add vxlan0 type vxlan id 42 local $YGGDRASIL_SERVER_IP remote $YGGDRASIL_HOME_IP dstport 4789

where $YGGDRASIL_SERVER_IP and $YGGDRASIL_HOME_IP – your server’s IP in the Yggdrasil network, and home device’s IP in the Yggdrasil network accordingly.

Making the interfaces up:
ip link set up br0
ip link set up vxlan0

Now we are going to the home device:
ip link add vxlan0 type vxlan id 42 local $YGGDRASIL_HOME_IP remote $YGGDRASIL_SERVER_IP dstport 4789
ip link set up vxlan0
ip a a $your_real_ip_from_the_servers_subnet/64 dev vxlan0
route -6 add default gw $your_servers_ipv6_gateway

Thats it.

How to install and configura Yggdrasil network read on the developer’s website. Maybe I’ll write an article later.

Мануал этот — полностью отсебятина, по-моему ничего не забыл. На момент написания версия FreeBSD 8.2

Создаём нового пользователя

adduser
И заполняем необходимые поля (пока так), не забываем добавить его в группу wheel чтобы он мог выполнять sudo
те поля, что не знаете как заполнить — оставлять по умолчанию.

Делаем резервную копию файла автозапуска
cp /etc/rc.conf /etc/rc.conf.bak

начинаем его редактировать
ee /etc/rc.conf

добавляем строку, которая будет запускать демон sshd при старте системы
sshd_enable=”YES”

КАК НАСТРОИТЬ ПОДКЛЮЧЕНИЕ ПО SSH для Root в среде FreeBSD

Для начала делаем резервную копию файла конфига sshd:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

теперь редактируем сам конфиг
ee /etc/ssh/sshd_config

Раскомментируем строки
Port 22
PasswordAuthentication yes
PermitEmptyPasswords no

запускаем службу sshd
/etc/rc.d/sshd start
Обновляем порты:
portsnap fetch extract
Перейдем к установке sudo из портов FreeBSD. Выполняем:
cd /usr/ports/security/sudo

Устанавливаем:
make install clean

После того как встало, редактируем файлик конфигурации:
ee /usr/local/etc/sudoers

подробнее про установку прав в sudoers можно почитать на сайте http://www.nibbl.ru/freebsd/sudo

Создание каталога для исходниковft
mkdir -p /usr/local/src
-p <- этот параметр создаёт недостающие каталоги по пути к конечному

Переходим в созданную директорию
cd /usr/local/src

Скачиваем proftpd исходник
fetch ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4a.tar.gz
Распаковываем
tar xfz proftpd-1.3.4a.tar.gz
Переходим в директорию куда распаковались исходники
cd proftpd-1.3.4a
Запускаем конфигурирование
./configure
Запускаем компиляцию
make
Запускаем установку в директории
make install clean

Создаём группу для proftpd
pw groupadd ftp
Создаём пользователя для proftpd
pw useradd ftp -c “FTP Server” -d /dev/null -g ftp -s /sbin/nologin
-c создаёт комментарий
-d домашняя директория пользователя /dev/null — её нету
-g группа, к которой будет принадлежать пользователь
-s шелл, /sbin/nologin не позволит залогиниваться под этим пользователем

указываем что нужно запускать proftpd при старте системы
ee /etc/rc.conf

добавляем строчку
proftpd_enable=”YES”

редактируем конфиг proftpd
ee /usr/local/etc/proftpd.conf

находим строки
User nobody
Group nogroup

изменяем на
User ftp
Group ftp

Сделаем чтобы каждый пользователь мог попадать в свою домашнюю директорию при подключении — раскомментируем
#DefaultRoot ~
меняем на
DefaultRoot ~

в файл /etc/shells добавляем строчку чтобы не могли логиниться по ssh фтп-пользователи
/ftponly

создаём директорию для нового пользователя
mkdir -p /home/test

создаём пользователя для доступа по фтп
pw user add test -s /ftponly -d /home/test

меняем владельца каталога пользователя, чтобы он мог туда записать файлы
chown test:test /home/test
где 1-ый test — логин
test после знака двоеточия — группа пользователя (как и везде в никсах).

задаём созданному пользователю пароль
passwd test

запускаем сервер proftpd
/usr/local/sbin/proftpd

Сервер может выдать ошибку о том, что не может определить IP адрес для localhost.localdomain (или другого доменного имени вашей машины), для этого мы просто пропишем его в файле /etc/hosts
ee /etc/hosts
дописываем строку
нужный айпи (например 127.0.0.1) имя_хоста.имя_домена, например
127.0.0.1 localhost.localdomain
но если установлен на адрес 127.0.0.1, то из внешнего мира виден сервер не будет. поэтому я например сделал так:
myvhost.localdomain 192.168.32.132 (это айпи этой машины, на которой крутится бсд)

 

УСТАНОВКА ВЕБ СЕРВЕРА APACHE

переходим в директорию для исходников
cd /usr/local/src

запускаем скачивание
fetch http://apache.strygunov.com//httpd/httpd-2.2.21.tar.gz
http://mirrors.besplatnyeprogrammy.ru/apache//httpd/httpd-2.2.21.tar.gz
tar xfz httpd-2.2.21.tar.gz
cd httpd-2.2.21
ee apache.sh
добавляем строки для конфигурирования
./configure -prefix=/usr/local/apache2
-enable-so
-with-mpm=prefork
make
make install clean
сохраняемся, запускаем ./apache.sh

Добавляем демон httpd в автозагрузку
ee /etc/rc.conf
apache_enable=”YES”

Создаём группу и пользователя от имени которго будет запущен apache.
pw groupadd apache
pw useradd apache -c “Apache Server” -d /dev/null -g apache -s /sbin/nologin

ee /usr/local/apache2/conf/httpd.conf
User daemon
Group daemon
изменяем на
User apache
Group apache

для нормальной установки PHP требуется библиотеки mysql-client
mysql устанавливаем из портов:

cd /usr/ports/databases/mysql51-server
make install clean

ee /etc/rc.conf
Прописываем в /etc/rc.conf следующие строчки для автоматического запуска mysql-сервера

mysql_enable=”YES”

Создаём таблицы
cd /usr/local; mysql_install_db

Присваиваем каталогу с базами данных mysql права пользователя mysql
chown -R mysql:mysql /usr/home/mysql

запускаем мускл-сервер
/usr/local/etc/rc.d/mysql-server start

Устанавливаем базовый пароль на рута
mysqladmin -u root password ‘p@$$w0rd’

подключаемся к мускл-серверу
mysql -p

создаём базу данных
create database test_wp;

создаём пользователя и даём ему все привелегии на эту базу данных
GRANT ALL PRIVILEGES ON test_wp.* TO ‘test_user_wp’@’localhost’ IDENTIFIED BY ‘TeST1234’ WITH GRANT OPTION;

Дальше устанавливаем сам PHP

fetch http://ua2.php.net/get/php-5.3.8.tar.gz/from/this/mirror
tar xfz
cd php-5.3.8.tar.gz
ee php.sh

./configure —prefix=/usr/local/php5
-with-mysql=/usr/local
-with-apxs2=/usr/local/apache2/bin/apxs
sh php.sh
make
make install

Редактируем конфиг апача

Изменяем
DirectoryIndex index.html index.php

добавляем тип пхп
AddHandler php5-script .php
AddType text/html .php
AddType application/x-httpd-php-source phps

раскоментируем
include conf/extra/httpd-vhosts.conf

закомментируем все <Directory …>

И пишем свой
<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory>

That’s all folks!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

 

Алоха!

Здесь я буду записывать всякое околокомпьютерное, а возможно и не только, на случай, чтобы не забыть, т.к. часто приходится бороться с какой-либо новой проблемой, при этом успешно забываешь о решении старых проблем, которые также периодически приходится вспоминать как решать.