Контейнер openvpn server
Использование и запуск# генерация ключа сервера CA. Нужно ввести фразу и записать. Понадобится при создании ключей клиентов $ ./init.sh # Генерация ключа клиента agisю Создается файл agis.ovpn $ ./create_client.sh agis # Запуск, остановка сервера. Просмотр логов $ docker-compose up -d $ docker-compose down -v $ docker-compose logsИсходники
$ cat docker-compose.yml version: "3" services: ovpn: image: kylemanna/openvpn:2.4 restart: always volumes: - ./ovpn-data:/etc/openvpn:rw ports: - 1194:1194/udp cap_add: - NET_ADMIN $ cat init.sh #!/bin/bash -x docker-compose run --rm ovpn ovpn_genconfig -u udp://kossu.kz docker-compose run --rm ovpn ovpn_initpki $ cat create_client.sh #!/bin/bash -ex docker-compose run --rm ovpn easyrsa build-client-full $1 nopass docker-compose run --rm ovpn ovpn_getclient $1 > $1.ovpn # Конфигруционный файл $ cat ovpn-data/openvpn.conf server 192.168.255.0 255.255.255.0 verb 3 key /etc/openvpn/pki/private/kossu.kz.key ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/kossu.kz.crt dh /etc/openvpn/pki/dh.pem tls-auth /etc/openvpn/pki/ta.key key-direction 0 keepalive 10 60 persist-key persist-tun proto udp # Rely on Docker to do port mapping, internally always 1194 port 1194 dev tun0 status /tmp/openvpn-status.log user nobody group nogroup comp-lzo no ### Route Configurations Below route 192.168.254.0 255.255.255.0 ### Push Configurations Below push "block-outside-dns" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" push "comp-lzo no"
Установка VPN сервера ubuntu внутри корпративной сети
Настройка интеренет сервера на базе pfsense смотреть тут
Два сетевых интерфейса:
– etho 192.168.1.10/24 На этот адрес идет проброс с корпоративного публичного IP адреса
– eth1 192.168.1.12/24 На этот адрес обращаются клиенты из локальной сети
– gw 192.168.1.1 внутри локальной сети
$cat /etc/netplan/00-installer-config.yaml network: version: 2 renderer: networkd ethernets: eno1: addresses: [192.168.1.10/24] routes: - to: default via: 192.168.1.1 mtu: 1500 nameservers: addresses: [8.8.8.8, 8.8.4.4] eno2: addresses: [192.168.1.12/24] $cat /etc/sysctl.conf | grep net.ipv4.ip_forward net.ipv4.ip_forward=1 # sysctl --system
или чтобы прочитать файл и загрузить значения для текущей сессии:
# sysctl -p net.ipv4.ip_forward = 1 fs.inotify.max_user_watches = 524288
Настройка Netfilter
Отключаем ufw
# ufw disable
Настараиваем правила через утилиту iptables. Далее запускаем команды из под root
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -A INPUT -m state --state RELATED, ESTABLISHED -j ACCEPT iptables -A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT iptables -A FORWARD -p icmp -j ACCEPT iptables -A FORWARD -t filter -p icmp -j ACCEPT iptables -t NAT -A PREROTING -i eth0 -p tcp -m tcp --dport 30300 -j DNAT --to-destination 192.168.1.10:30300 iptables -t NAT -A PREROTING -i eth0 -p udp -m tcp --dport 30300 -j DNAT --to-destination 192.168.1.10:30300 iptables -t NAT -A PREROTING -i eth0 -p tcp -m tcp --dport 4315 -j DNAT --to-destination 192.168.1.10:4315 iptables -t NAT -A PREROTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80 # Gitlab iptables -t NAT -A PREROTING -i eth0 -p tcp -m tcp --dport 10543 -j DNAT --to-destination 192.168.1.10:10543 iptables -t NAT -A PREROTING -i eth0 -p tcp -m tcp --dport 10032 -j DNAT --to-destination 192.168.1.10:10032 iptables -t NAT -A PREROTING -i eth0 -p tcp -m tcp --dport 5040 -j DNAT --to-destination 192.168.1.10:5040
Далее…