Всем доброго!Есть сервак с внешним айпишником на линухе и клиенты на виндах. Для идентификации используются сертификаты ca/client.crt/client.key.
Проблема в том, что никак не могу заставить OpenVPN определять пользователя и прикреплять ему правило из папки CCD(короче выдавать нужный мне айпи).
Клиенты видят друг друга и видят сервер. Но айпишники раздаются от балды. Перерыл кучу манов, к сожалению где-то что-то упустил, т.к. не работает...
Выглядит все примерно так:1) Сервер:
local xx.xx.xx.xx
port 1194
proto tcp
dev tunca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pemserver 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txtclient-config-dir ccd
route 10.8.0.0 255.255.255.252push "dhcp-option DNS 10.8.0.1"
push "dhcp-option WINS 10.8.0.1"client-to-client
keepalive 10 120
cipher AES-128-CBC # AES
comp-lzo
max-clients 30user nobody
group nobodypersist-key
persist-tunstatus openvpn-status.log
log openvpn.log
verb 3mute 20
daemonПапка CCD содержит фаил notebook [это Common Name, который я дал сертификату, собсна и в логах он виден также]
notebook содержит:ifconfig-push 10.8.0.5 10.8.0.6
2) Клиент(пример одного из клиентов, common name: notebook):
client
dev tun
proto tcpremote xx.xx.xx.xx 1194
resolv-retry infinite
nobind
persist-key
persist-tunca ca.crt
cert client.crt
key client.keyns-cert-type server
cipher AES-128-CBC #AES
comp-lzo
verb 33)Логи:
openvpn.log
Sun Mar 25 05:04:30 2007 TCP connection established with xx.xx.xx.xx:5318
Sun Mar 25 05:04:30 2007 TCPv4_SERVER link local: [undef]
Sun Mar 25 05:04:30 2007 TCPv4_SERVER link remote: xx.xx.xx.xx:5318
Sun Mar 25 05:04:30 2007 xx.xx.xx.xx:5318 TLS: Initial packet from xx.xx.xx.xx:5318, sid=beeeb32b 63dcb06b
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 VERIFY OK: depth=1, /C=RU/ST=RU/L=Moscow/O=xxxxxx/OU=ca/CN=casertificate/emailAddress=xxxx@xxxx
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 VERIFY OK: depth=0, /C=RU/ST=RU/O=xxxxxxx/OU=notebook/CN=notebook/emailAddress=xxxxx@xxxxx
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Sun Mar 25 05:04:31 2007 xx.xx.xx.xx:5318 [notebook] Peer Connection Initiated with xx.xx.xx.xx:5318
Sun Mar 25 05:04:31 2007 notebook/xx.xx.xx.xx:5318 MULTI: Learn: 10.8.0.14 -> notebook/xx.xx.xx.xx:5318
Sun Mar 25 05:04:31 2007 notebook/xx.xx.xx.xx:5318 MULTI: primary virtual IP for notebook/xx.xx.xx.xx:5318: 10.8.0.14
Sun Mar 25 05:04:33 2007 notebook/xx.xx.xx.xx:5318 PUSH: Received control message: 'PUSH_REQUEST'
Sun Mar 25 05:04:33 2007 notebook/xx.xx.xx.xx:5318 SENT CONTROL [notebook]: 'PUSH_REPLY,dhcp-option DNS 10.8.0.1,dhcp-option WINS 10.8.0.1,route 10.8.0.0 255.255.255.0,ping 10,ping-restart 120,ifconfig 10.8.0.14 10.8.0.13' (status=1)openvpn-status.log
OpenVPN CLIENT LIST
Updated,Sun Mar 25 05:03:19 2007
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
notebook,xx.xx.xx.xx:5236,83125,24754,Sun Mar 25 04:53:52 2007
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.14,notebook,xx.xx.xx.xx:5236,Sun Mar 25 05:03:16 2007
GLOBAL STATS
Max bcast/mcast queue length,0
END
да, c CCD есть какие-то странные вещи, я привязывался раньше к тем адресам(подсетям) что прописываются в ipp.txt, но оказалось что в этом файле у некоторым клиентам может быть присвоен и другой адрес, т.е. если в начале или середине файла есть запись pdsk2,10.10.10.28 то ниже или в конце может быть pdsk2,10.10.10.136.
>Всем доброго!
>
>Есть сервак с внешним айпишником на линухе и клиенты на виндах. Для
>идентификации используются сертификаты ca/client.crt/client.key.
>Проблема в том, что никак не могу заставить OpenVPN определять пользователя и
>прикреплять ему правило из папки CCD(короче выдавать нужный мне айпи).
>Клиенты видят друг друга и видят сервер. Но айпишники раздаются от балды.
>Перерыл кучу манов, к сожалению где-то что-то упустил, т.к. не работает...
>Вообщем сам и отвечаю.
1) Два кофига, с которыми заработало и которые избавлены от мусора:
Сервер:
local xx.xx.xx.xx
proto tcp
port 1195
dev tun
tls-server
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.100.10.0 255.255.255.0
ccd-exclusive
client-config-dir /etc/openvpn/ccd/ccd-vip
keepalive 10 120
tls-auth /etc/openvpn/keys/key 0
comp-lzo
max-clients 30
user openvpn
group openvpn
cipher AES-128-CBC
status /etc/openvpn/logs/vip/openvpn-status.log
log /etc/openvpn/logs/vip/openvpn.log
log-append /etc/openvpn/logs/vip/openvpn.log
verb 42) Клиент:
client
pull
dev tun
proto tcp
remote xx.xx.xx.xx 1195
resolv-retry infinite
tls-client
ca F:\\LAN\\OpenVPN\\config\\ca.crt
cert F:\\LAN\\OpenVPN\\config\\client.crt
key F:\\LAN\\OpenVPN\\config\\client.key
tls-auth F:\\LAN\\OpenVPN\\config\\ta.key 1
ns-cert-type server
cipher AES-128-CBC
comp-lzo
verb 33) Для новичков типа меня:
Когда переходите в режим ccd-exclusive, ОБЯЗАТЕЛЬНО вводите реальные user и group(да и вообще собственно нормальные надо вводить данные :) ), которые имеют реальные права на директорию с опенвпн и все что ниже уровнем. Иначе будете наталкиваться в соединении в клиенте на строчку с невозможной авторизацией на сервере. Т.е. сервак стартанет, клиент его увидит, а при авторизации, даже при наличии ключей, выведет, что происходит сбой при проверке прав.
4) Эпилог:
user nobody
group nobodyЭто то что было написано у меня, а надо:
user nobody
group nogroup=)) вот и вся проблема - невнимательность. А вообще лучше сделать отдельную круппу и пользователя и назначить им права на папку.