суббота, 22 февраля 2020 г.

Перенос OpenVPN в lxd

Настройка OpenVPN c stunnel Ubuntu 16.04 хостера DO  
 
lxc launch ubuntu:16.04 ovpn 
lxc stop ovpn 
 
lxc config device add ovpn myport2194 proxy listen=tcp:0.0.0.0:2194 \
connect=tcp:localhost:2194 
 
lxc config set ovpn raw.lxc 'lxc.cgroup.devices.allow = c 10:200 rwm' 
lxc config device add ovpn tun unix-char path=/dev/net/tun 
lxc start ovpn 
lxc exec ovpn -- sudo --user ubuntu --login 
 
sudo nano /etc/hosts
Изменить:
127.0.0.1 localhost ovpn
Сохранить. 
 
mknod /dev/net/tun c 10 200 
sudo apt update 
sudo apt upgrade -y 
sudo apt install mc cadaver -y 
sudo locale-gen en_US ru_RU en_US.UTF-8 ru_RU.UTF-8 
sudo timedatectl set-timezone Europe/Moscow 
sudo apt install openvpn -y 
 
#Центр сертификации ставить не будем, но поскольку не переносим старый
#больше сертификатов мы выпустить тоже не сможем
#sudo apt install openvpn easy-rsa -y
 
 
Скачать настройки OpenVPN
  
cadaver https://web2.domen.info/remote.php/webdav/
dav:/remote.php/webdav/> get openvpn.tar.gz
dav:/remote.php/webdav/> get openvpn.tar.gz
dav:/remote.php/webdav/> quit 
 
Скопируем из архива:


ccd ca.crt  ca.key  ccd  dh2048.pem  ipp.txt
server.conf  server.crt  server.key  ta.key  update-resolv-conf


в /etc/openvpn/
 
 
sudo nano /lib/systemd/system/openvpn@.service
Закомментируем:
#LimitNPROC=10
Сохранить.
sudo systemctl daemon-reload
sudo systemctl enable openvpn@server.service
sudo systemctl start openvpn@server.service
 
 
nano start.sh
#!/bin/bash
#Небольшой тюнинг:
sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo  /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
sudo sysctl -p
sudo  systemctl restart networking.service
Сохранить.

sudo sh start.sh

Делаем сеть 10.8.20.0/24 
 
Если нужна маршрутизация интернета делаем nat 
sudo nano /etc/rc.local

добавляем строки до exit 0

iptables -A FORWARD -s 10.8.20.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.20.0/24 -o eth0 -j MASQUERADE

сохраняем

sudo nano/etc/openvpn/server.conf

Заменить:
port 2194
server 10.8.20.0 255.255.255.0

Для проброса интернета:

Раскомментировать:
push "redirect-gateway def1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Сохранить.

Для задания статического ip
в файлах клиентов:
sudo nano /etc/openvpn/ccd/client1
заменить ip
ifconfig-push 10.8.20.2 255.255.255.0
Сохранить.

sudo poweroff

lxc start ovpn

В файле клиента
remote 188.130.240.10 2194
dev-node 'Ethernet 5' 


mkdir ~/backup/
nano ~/backup_ovpn_lxd.sh 

Добавить:

#!/usr/bin/env bash
set -ex
lxc stop ovpn
BACKUP_DIR=/home/user/backup
#HOSTS=$(lxc list -c n --format csv)
HOSTS=ovpn
for HOST in ${HOSTS}

do
    BACKUP_NAME=${HOST}-$(date +"%Y-%m-%d")

    lxc snapshot ${HOST} auto-backup
    lxc publish ${HOST}/auto-backup --alias ${BACKUP_NAME}
    #lxc image export ${BACKUP_NAME} ${BACKUP_DIR}/${BACKUP_NAME}.tar.gz
    lxc image export ${BACKUP_NAME} ${BACKUP_DIR}/${BACKUP_NAME}
    lxc image delete ${BACKUP_NAME}
    lxc delete ${HOST}/auto-backup
done
lxc start ovpn

Сохранить.

chmod +x ~/backup_ovpn_lxd.sh
./backup_ovpn_lxd.sh


backup контейнера
ovpn-2020-02-22.tar.gz
 
Теперь на другой сервер будет переноситься очень просто:
 
Перенос на другой сервер
lxc image import ovpn-2020-02-22.tar.gz --alias ovpn-ip
lxc launch ovpn-ip ovpn-ip
lxc image delete ovpn-ip
lxc stop ovpn-ip
lxc config device add ovpn-ip myport2194 proxy listen=tcp:0.0.0.0:2194 connect=tcp:localhost:2194
lxc config set ovpn-ip raw.lxc 'lxc.cgroup.devices.allow = c 10:200 rwm'
lxc config device add ovpn-ip tun unix-char path=/dev/net/tun
lxc start ovpn-ip
 

Установка и настройка Pure-FTPD (Pure FTP) внутри контейнера

 
sudo apt install pure-ftpd -y
sudo groupadd ftpgroup
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser
sudo passwd ftpuser
12345
12345
sudo mkdir /home/ftpuser/
sudo chown -R ftpuser:ftpgroup /home/ftpuser
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure
sudo mkdir -p /home/ftpuser/test/client
sudo mkdir -p /home/ftpuser/test/buh
sudo mkdir -p /home/ftpuser/test1
sudo chown -R ftpuser:ftpgroup /home/ftpuser
sudo pure-pw useradd test -u ftpuser -d /home/ftpuser/test
sudo pure-pw useradd test1 -u ftpuser -d /home/ftpuser/test1
#FTP, порты пассивного режима (иначе случайные):
#указать два порта на одного клиента. 
sudo su -c 'echo "50000 50010" > /etc/pure-ftpd/conf/PassivePortRange'
#Порты открываются независимо от ufw! (и iptables? )
#Работаем только по ip4
sudo su -c 'echo "yes" > /etc/pure-ftpd/conf/IPV4Only'
#"Человеческий лог после отладки убрать"
sudo su -c 'echo "yes" > /etc/pure-ftpd/conf/VerboseLog'
#В логе ip адреса вместо имен.
sudo su -c 'echo yes > /etc/pure-ftpd/conf/DontResolve'
!!! # echo "YOUR_EXTERNAL_IP_HERE" > /etc/pure-ftpd/conf/ForcePassiveIP 
sudo pure-pw mkdb
sudo service pure-ftpd restart
netstat -ln | grep :21
#копируем файлы на ftp
sudo chown -R ftpuser:ftpgroup /home/ftpuser  
 

Комментариев нет:

Отправить комментарий