Верифицировано 15.01.2018 г. !!!
Бывает необходимо подключить к вебсерверу на котором опубликованы информационные базы 1С клиентов через интернет. Для этого хорошо подходит DO.
Initial Server Setup with Ubuntu 16.04
Как настроить сервер OpenVPN в Ubuntu 16.04
1. Создать droplet пароль root придет на регистрационный email, ip увидим при создании
На рабочей машине:
$ ssh root@ip
Сменим пароль root
# apt update -y
# apt upgrade -y
# apt install mc openvpn easy-rsa -y
# adduser user
# usermod -aG sudo user
Еще отключим ping :
# nano /etc/rc.local
Добавляем строки до exit 0
/bin/su -c "echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all"
Сохраняем
# reboot
На рабочей машине:
$ ssh user@ip
Откроем firefox (в ubuntu), откроем эту страничку и скопируем в буфер скрипт настройки сети:
$ nano start.sh
Скопируем из буфера следующий скрипт, в котором Вам нужно исправить ip и адрес шлюза в соответствии со своей сетью:
#!/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 /bin/su -c "echo 'vm.swappiness=0' >> /etc/sysctl.conf"
sudo sysctl -p
sudo systemctl restart networking.service
# Настройка sudo journalctl -b sudo journalctl -b -1 sudo journalctl --list-boots
sudo sed -i 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf
#Добавим swap file to an Ubuntu 16.04:
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
sudo echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
#Зададим ip для клиентов внутри vpn
sudo mkdir -p /etc/openvpn/ccd
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.2 255.255.255.0' >> /etc/openvpn/ccd/client1"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.3 255.255.255.0' >> /etc/openvpn/ccd/client2"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.4 255.255.255.0' >> /etc/openvpn/ccd/client3"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.5 255.255.255.0' >> /etc/openvpn/ccd/client4"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.6 255.255.255.0' >> /etc/openvpn/ccd/client5"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.7 255.255.255.0' >> /etc/openvpn/ccd/client6"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.8 255.255.255.0' >> /etc/openvpn/ccd/client7"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.9 255.255.255.0' >> /etc/openvpn/ccd/client8"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.10 255.255.255.0' >> /etc/openvpn/ccd/client9"
# Настройка ftp пользователь: test пароль: test
sudo apt install pure-ftpd -y
sudo groupadd ftpgroup
sudo usermod -aG ftpgroup user
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure
sudo mkdir /home/user/test
sudo chown -R user:ftpgroup /home/user/test
#sudo pure-pw useradd test -u user -d /home/user/test
# Заведем пользователя ftp test с паролем test
sudo echo -e "test\ntest\n" | sudo pure-pw useradd test -u user -d /home/user/test
sudo pure-pw mkdb
sudo service pure-ftpd restart
Сохраним файл start.sh
Сделаем исполняем
$ chmod +x start.sh
Выполним:
$ ./start.sh
$ sudo reboot
На рабочей машине:
$ ssh user@ip
$ sudo -i
Если sudo работает запретим входить root по ssh
Настройка sudo journalctl -b sudo journalctl -b -1 sudo journalctl --list-boots
$ sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
Можно посмотреть:
$ sudo nano /etc/ssh/sshd_config
Генерация ключей
$ make-cadir ~/openvpn-ca
$ cd ~/openvpn-ca
$ source vars
$ ./clean-all
$ ./build-ca
$ ./build-key-server server
$ ./build-dh
$ openvpn --genkey --secret keys/ta.key
Генерация ключей для клиента
$ cd ~/openvpn-ca
$ source vars
$ ./build-key client1
...............................
$ ./build-key client20
Скопируем ключи:
$ cd ~/openvpn-ca/keys
$ sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
$ sudo cp /etc/openvpn/server.conf /etc/openvpn/server.conf.bak
Настройка сервера:
$ sudo nano /etc/openvpn/server.conf
Скопируем настройки server.conf и вставим (заменим) в /etc/openvpn/server.conf:
#port 443
port 443 port-share 127.0.0.1 4443
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
;ifconfig-pool-persist ipp.txt
client-config-dir ccd
# раскоментировать для маршрутизации интернета
push "redirect-gateway def1"
;push "redirect-gateway def1 bypass-dhcp"
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
client-to-client
;duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
key-direction 0
;cipher BF-CBC # Blowfish (default)
cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
auth SHA256
comp-lzo
;max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
;log-append openvpn.log
verb 3
;mute 20
Сохранить.
Запуск:
$ sudo systemctl start openvpn@server
$ sudo systemctl enable openvpn@server
$ sudo systemctl status openvpn@server
-------------------------------------------------------------------------------------------------------------------------
Упакуем сертификаты
$ mkdir -p ~/client-configs/files
$ chmod 700 ~/client-configs/files
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
$ cp ~/client-configs/base.conf ~/client-configs/base.conf.bak
Настроим базовые настройки клиента, XXX.XXX.XXX.XXX ip адрес сервера:
$ nano ~/client-configs/base.conf
Заменить на:
client
dev tun
proto tcp
;proto udp
remote XXX.XXX.XXX.XXX 443
;remote my-server-1 1194
;remote my-server-2 1194
resolv-retry infinite
nobind
;user nobody
;group nogroup
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-128-CBC
auth SHA256
key-direction 1
comp-lzo
verb 3
;mute 20
Сохранить.
$ nano ~/client-configs/make_config.sh
Добавить:
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-auth>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-auth>') \
> ${OUTPUT_DIR}/${1}.ovpn
Сохранить.
$ chmod 700 ~/client-configs/make_config.sh
$ cd ~/client-configs
$ ./make_config.sh client1
.........................................
$ ./make_config.sh client9
Подключиться по csp и скачать конфигурационные файлы для openvpn из /home/user/client-configs/files
$ mkdir -p /home/user/test/vu
Первый раз:
$ scp user@XXX.XXX.XXX.XXX:/home/user/client-configs/files/* /home/user/test
Затем по vpn
$ scp user@10.8.0.1:/home/user/client-configs/files/* /home/user/test
$ sudo openvpn --config /etc/openvpn/client1.ovpn
-------------------------------------------------------------------------------------------------------------------------
Перед настройкой ufw, OpenVPN должен быть настроен и проверен!!!Доступ к серверу по ssh будет только через OpenVPN!!!
Можно будет зайти только через Access console панели управления!
Еще добавим nat (если нужна маршрутизация интернет-трафика) :
$ sudo nano /etc/rc.local
добавляем строки до exit 0
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
сохраняем
$ sudo reboot
$ sudo ufw reset
---------------------------------------------------------------------------------------------------------------------------
Настройка ufwsudo ufw allow out on tun0
sudo ufw allow in on tun0
sudo ufw allow 443/tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw default allow forward
sudo ufw disable
sudo ufw enable
sudo reboot
----------------------------------------------------------------------------------------------------
Установить fail2ban
$ sudo apt install fail2ban
----------------------------------------------------------------------------------------------------
Установить часовой пояс
$ sudo dpkg-reconfigure tzdata
----------------------------------------------------------------------------------------------------
Можно подключать 1С-ки.
----------------------------------------------------------------------------------------------------
$ apt list --all-versions openvpn
Listing... Done
openvpn/xenial-updates,xenial-security,now 2.3.10-1ubuntu2.1 amd64 [installed]
Клиента качаем отсюда, версия 2.3.18
OpenVPN 2.3.18 (old stable)
Безопасный OpenVPN на VPS за несколько минут
Бывает необходимо подключить к вебсерверу на котором опубликованы информационные базы 1С клиентов через интернет. Для этого хорошо подходит DO.
Initial Server Setup with Ubuntu 16.04
Как настроить сервер OpenVPN в Ubuntu 16.04
1. Создать droplet пароль root придет на регистрационный email, ip увидим при создании
На рабочей машине:
$ ssh root@ip
Сменим пароль root
# apt update -y
# apt upgrade -y
# apt install mc openvpn easy-rsa -y
# adduser user
# usermod -aG sudo user
Еще отключим ping :
# nano /etc/rc.local
Добавляем строки до exit 0
/bin/su -c "echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all"
Сохраняем
# reboot
На рабочей машине:
$ ssh user@ip
Откроем firefox (в ubuntu), откроем эту страничку и скопируем в буфер скрипт настройки сети:
$ nano start.sh
Скопируем из буфера следующий скрипт, в котором Вам нужно исправить ip и адрес шлюза в соответствии со своей сетью:
#!/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 /bin/su -c "echo 'vm.swappiness=0' >> /etc/sysctl.conf"
sudo sysctl -p
sudo systemctl restart networking.service
# Настройка sudo journalctl -b sudo journalctl -b -1 sudo journalctl --list-boots
sudo sed -i 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf
#Добавим swap file to an Ubuntu 16.04:
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
sudo echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
#Зададим ip для клиентов внутри vpn
sudo mkdir -p /etc/openvpn/ccd
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.2 255.255.255.0' >> /etc/openvpn/ccd/client1"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.3 255.255.255.0' >> /etc/openvpn/ccd/client2"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.4 255.255.255.0' >> /etc/openvpn/ccd/client3"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.5 255.255.255.0' >> /etc/openvpn/ccd/client4"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.6 255.255.255.0' >> /etc/openvpn/ccd/client5"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.7 255.255.255.0' >> /etc/openvpn/ccd/client6"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.8 255.255.255.0' >> /etc/openvpn/ccd/client7"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.9 255.255.255.0' >> /etc/openvpn/ccd/client8"
sudo /bin/su -c "echo 'ifconfig-push 10.8.0.10 255.255.255.0' >> /etc/openvpn/ccd/client9"
# Настройка ftp пользователь: test пароль: test
sudo apt install pure-ftpd -y
sudo groupadd ftpgroup
sudo usermod -aG ftpgroup user
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure
sudo mkdir /home/user/test
sudo chown -R user:ftpgroup /home/user/test
#sudo pure-pw useradd test -u user -d /home/user/test
# Заведем пользователя ftp test с паролем test
sudo echo -e "test\ntest\n" | sudo pure-pw useradd test -u user -d /home/user/test
sudo pure-pw mkdb
sudo service pure-ftpd restart
Сохраним файл start.sh
Сделаем исполняем
$ chmod +x start.sh
Выполним:
$ ./start.sh
$ sudo reboot
На рабочей машине:
$ ssh user@ip
$ sudo -i
Если sudo работает запретим входить root по ssh
Настройка sudo journalctl -b sudo journalctl -b -1 sudo journalctl --list-boots
$ sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
Можно посмотреть:
$ sudo nano /etc/ssh/sshd_config
Генерация ключей
$ make-cadir ~/openvpn-ca
$ cd ~/openvpn-ca
$ source vars
$ ./clean-all
$ ./build-ca
$ ./build-key-server server
$ ./build-dh
$ openvpn --genkey --secret keys/ta.key
Генерация ключей для клиента
$ cd ~/openvpn-ca
$ source vars
$ ./build-key client1
...............................
$ ./build-key client20
Скопируем ключи:
$ cd ~/openvpn-ca/keys
$ sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
$ sudo cp /etc/openvpn/server.conf /etc/openvpn/server.conf.bak
Настройка сервера:
$ sudo nano /etc/openvpn/server.conf
Скопируем настройки server.conf и вставим (заменим) в /etc/openvpn/server.conf:
#port 443
port 443 port-share 127.0.0.1 4443
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
;ifconfig-pool-persist ipp.txt
client-config-dir ccd
# раскоментировать для маршрутизации интернета
push "redirect-gateway def1"
;push "redirect-gateway def1 bypass-dhcp"
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
client-to-client
;duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
key-direction 0
;cipher BF-CBC # Blowfish (default)
cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
auth SHA256
comp-lzo
;max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
;log-append openvpn.log
verb 3
;mute 20
Сохранить.
Запуск:
$ sudo systemctl start openvpn@server
$ sudo systemctl enable openvpn@server
$ sudo systemctl status openvpn@server
-------------------------------------------------------------------------------------------------------------------------
Упакуем сертификаты
$ mkdir -p ~/client-configs/files
$ chmod 700 ~/client-configs/files
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
$ cp ~/client-configs/base.conf ~/client-configs/base.conf.bak
Настроим базовые настройки клиента, XXX.XXX.XXX.XXX ip адрес сервера:
$ nano ~/client-configs/base.conf
Заменить на:
client
dev tun
proto tcp
;proto udp
remote XXX.XXX.XXX.XXX 443
;remote my-server-1 1194
;remote my-server-2 1194
resolv-retry infinite
nobind
;user nobody
;group nogroup
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-128-CBC
auth SHA256
key-direction 1
comp-lzo
verb 3
;mute 20
Сохранить.
$ nano ~/client-configs/make_config.sh
Добавить:
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-auth>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-auth>') \
> ${OUTPUT_DIR}/${1}.ovpn
Сохранить.
$ chmod 700 ~/client-configs/make_config.sh
$ cd ~/client-configs
$ ./make_config.sh client1
.........................................
$ ./make_config.sh client9
Подключиться по csp и скачать конфигурационные файлы для openvpn из /home/user/client-configs/files
$ mkdir -p /home/user/test/vu
Первый раз:
$ scp user@XXX.XXX.XXX.XXX:/home/user/client-configs/files/* /home/user/test
Затем по vpn
$ scp user@10.8.0.1:/home/user/client-configs/files/* /home/user/test
$ sudo openvpn --config /etc/openvpn/client1.ovpn
-------------------------------------------------------------------------------------------------------------------------
Перед настройкой ufw, OpenVPN должен быть настроен и проверен!!!Доступ к серверу по ssh будет только через OpenVPN!!!
Можно будет зайти только через Access console панели управления!
Еще добавим nat (если нужна маршрутизация интернет-трафика) :
$ sudo nano /etc/rc.local
добавляем строки до exit 0
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
сохраняем
$ sudo reboot
$ sudo ufw reset
---------------------------------------------------------------------------------------------------------------------------
Настройка ufwsudo ufw allow out on tun0
sudo ufw allow in on tun0
sudo ufw allow 443/tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw default allow forward
sudo ufw disable
sudo ufw enable
sudo reboot
----------------------------------------------------------------------------------------------------
Установить fail2ban
$ sudo apt install fail2ban
----------------------------------------------------------------------------------------------------
Установить часовой пояс
$ sudo dpkg-reconfigure tzdata
----------------------------------------------------------------------------------------------------
Можно подключать 1С-ки.
----------------------------------------------------------------------------------------------------
$ apt list --all-versions openvpn
Listing... Done
openvpn/xenial-updates,xenial-security,now 2.3.10-1ubuntu2.1 amd64 [installed]
Клиента качаем отсюда, версия 2.3.18
OpenVPN 2.3.18 (old stable)
Безопасный OpenVPN на VPS за несколько минут
Комментариев нет:
Отправить комментарий