У меня есть маршрутизатор OpenWRT с интерфейсом WAN (eth1) и LAN (eth0).
Я хотел установить сервер openVPN на этом маршрутизаторе, чтобы иметь доступ со стороны WAN к стороне LAN.
Моя LAN (eth0) имеет настроенный DHCP-сервер и статический IP-адрес 172.20.51.61/24. Когда я подключаю любой компьютер к локальной сети (eth0), он получает IP в диапазоне от 172.20.51.100/24 до 172.20.51.150/24.
Я установил openvpn easy rsa и другие необходимые утилиты, а также сгенерировал ключи для клиента и сервера. Я также скопировал эти ключи клиенту.
Что мне нужно, так это очень простые шаги и конфигурация, чтобы получить некоторую уверенность, чтобы установить соединение от клиента к серверу.
В сетевых блогах упоминается так много дополнительной информации ... новичкам в сети становится трудно уследить за ней.
Изменить: файл / etc / easy-rsa / vars имеет следующее содержимое.
export EASY_RSA="/etc/easy-rsa"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_CONFIG=`/usr/sbin/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"
et PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=2048
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="IN"
export KEY_PROVINCE="MH"
export KEY_CITY="Pune"
export KEY_ORG="My Org"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
export KEY_NAME="EasyRSA"
# PKCS11 Smart Card
# export PKCS11_MODULE_PATH="/usr/lib/changeme.so"
# export PKCS11_PIN=1234
# If you'd like to sign all keys with the same Common Name,
# uncomment the KEY_CN export below
# You will also need to make sure your OpenVPN server config
# has the duplicate-cn option set
# export KEY_CN="CommonName"
Изменить 2: я дал WAN статический IP-адрес 192.168.18.100/24
какой VPN-клиент с IP 192.168.18.101/24
попробую получить доступ.
Конфигурация сервера:
package openvpn
config 'openvpn' 'samplevpnconfig'
option 'enable' '1'
option 'port' '1194'
option 'proto' 'udp'
option 'dev' 'tun0'
option 'client_to_client' '1'
option 'keepalive' '10 120'
option 'comp_lzo' '1'
option 'persist_key' '1'
option 'persist_tun' '1'
option 'verb' '3'
option 'mute' '20'
option 'ifconfig_pool_persist' '/tmp/ipp.txt'
option 'status' '/tmp/openvpn-status.log'
option 'ca' '/etc/openvpn/ca.crt'
option 'cert' '/etc/openvpn/server.crt'
option 'key' '/etc/openvpn/server.key'
option 'dh' '/etc/openvpn/dh1024.pem'
#this should be on a completely different subnet than your LAN
option 'server' '192.168.18.100 255.255.255.0'
list 'push' 'route 172.20.51.61 255.255.255.0' #this should MATCH your current LAN info
list 'push' 'dhcp-option DNS 172.20.51.1' #this should MATCH your current LAN info
list 'push' 'dhcp-option DOMAIN 172.20.51.1' #this should MATCH your current LAN info
Где 172.20.51.61 - статический IP-адрес LAN (eth0). Честно говоря, я понятия не имею, что означают эти неочевидные параметры.
Конфигурация клиента на клиентской машине /etc/openvpn/client.conf
client
proto udp
dev tun0
remote 192.168.18.100 1194
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
comp-lzo
ca /etc/openvpn/ca.crt
cert /etc/openvpn/myclient.crt
key /etc/openvpn/myclient.key
КОГДА я пробую следующую команду: #openvpn client.conf
Я получаю ошибку TLS: (проверьте подключение к сети)
а tcpdump на сервере дает:
13:57:19.026056 IP 192.168.18.101.34212 > 192.168.18.100.openvpn: UDP, length 14
13:57:19.026147 IP 192.168.18.100 > 192.168.18.101: ICMP 192.168.18.100 udp port openvpn unreachable, len0
Но подключение кажется правильным (ping, tcpdump показывают отправку пакетов)
Во-первых, я никогда не рекомендую хранить закрытый ключ SSL CA на устройстве, напрямую подключенном к WAN. Это небезопасно.
В OpenWRT конфигурация OpenVPN находится в / и т.д. / config / openvpn - имена опций практически идентичны исходной конфигурации OpenVPN, за исключением того, что дефисы (-) в OpenWRT должны быть преобразованы в символы подчеркивания (_).
следить это как. удалять ifconfig_pool_persist если вам не нужны статические адреса, или используйте ccd вариант для этого (более надежный) с / и т.д. / openvpn / ccd. Замените IP-подсеть и маршруты своими собственными. Добавьте цифру в конце имени интерфейса, чтобы избежать проблем с настройкой межсетевого экрана. Я также рекомендую использовать нажмите интерфейс (более гибкий), а не тун, но решать вам. Добавить tls_auth для лучшей защиты от DoS-атак в руководстве OpenVPN есть пример, как сгенерировать ключ (поиск - Genkey).
Чтобы включить автозапуск службы, используйте /etc/init.d/openvpn enable
.
Когда у вас установлен OpenVPN, настройте брандмауэр.