pseudo-device tun
cd /usr/ports/security/openvpnmake install
/usr/local/etc/openvpn
mkdir /usr/local/etc/openvpn cd /usr/local/etc/openvpnmkdir ccdmkdir certsmkdir crlmkdir keysmkdir privatemkdir reqchmod 700 keys privateecho "01" > serialtouch index.txt
ccd
certs
crl
keys
private
req
serial
index.txt
openssl.cnf
[ ca ]default_ca = CA_default[ CA_default ]dir = /usr/local/etc/openvpncrl_dir = $dir/crldatabase = $dir/index.txtnew_certs_dir = $dir/certscertificate = $dir/CA_cert.pemserial = $dir/serialcrl = $dir/crl/crl.pemprivate_key = $dir/private/CA_key.pemRANDFILE = $dir/private/.randdefault_days = 3650default_crl_days = 365default_md = md5unique_subject = yespolicy = policy_anyx509_extensions = user_extensions[ policy_any ]organizationName = matchorganizationalUnitName = optionalcommonName = supplied[ req ]default_bits = 2048default_keyfile = privkey.pemdistinguished_name = req_distinguished_namex509_extensions = CA_extensions[ req_distinguished_name ]organizationName = Organization Name (must match CA)organizationName_default = CompanyorganizationalUnitName = Location NamecommonName = Common User or Org NamecommonName_max = 64[ user_extensions ]basicConstraints = CA:FALSE[ CA_extensions ]basicConstraints = CA:TRUEdefault_days = 3650[ server ]basicConstraints = CA:FALSEnsCertType = server
openssl req -new -nodes -x509 -keyout private/CA_key.pem -out CA_cert.pem -days 3650
-new
-nodes
-x509
-keyout
-out
-days
Country Name
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name
Email Address
openssl x509 -noout -text -in CA_cert.pem (для сертификата)openssl rsa -noout -text -in private/CA_key.pem (для закрытого ключа)
openssl req -new -nodes -keyout keys/server.pem -out req/server.pem
"A challenge password []:"
"An optional company name []:"
<Enter>
openssl req -noout -text -in req/server.pem (для запроса на сертификат)openssl rsa -noout -text -in keys/server.pem (для закрытого ключа)
openssl ca -batch -config openssl.cnf -extensions server -out certs/server.pem \-infiles req/server.pem
ca
-config
-extensions
-infiles
-batch
"Sign the certificate? [y/n]:"
openssl x509 -noout -text -in certs/server.pem
openssl dhparam -out dh2048.pem 2048
dhparam
2048
req/RClient
keys/KClient
certs/CClient
Client
openssl req -new -nodes -keyout keys/KClient.pem -out req/RClient.pemopenssl ca -batch -config openssl.cnf -out certs/CClient.pem -infiles req/RClient.pem
openssl req -noout -text -in req/RClient.pem (для запроса на сертификат)openssl rsa -noout -text -in keys/KClient.pem (для закрытого ключа)openssl x509 -noout -text -in certs/CClient.pem (для сертификата)
Rclient1 / Kclient1 / Cclient1
Rclient2 / Kclient2 / Cclient2
Rclient3 / Kclient3 / Cclient3
client1
client2
client3
openssl ca -config openssl.cnf -gencrl -out crl/crl.pem
-gencrl
openssl ca -config openssl.cnf -revoke certs/CClient.pem
-revoke
openssl crl -noout -text -in crl/crl.pem
openvpn --genkey --secret ta.key
openvpn.conf
dev tunlocal <Внешний IP-адрес сервера>port 1194proto udpserver 10.0.0.0 255.255.255.0push "route 10.0.0.0 255.255.255.0"route 192.168.1.0 255.255.255.0route 192.168.2.0 255.255.255.0client-config-dir ccdclient-to-clienttls-serverdh /usr/local/etc/openvpn/dh2048.pemca /usr/local/etc/openvpn/CA_cert.pemcert /usr/local/etc/openvpn/certs/server.pemkey /usr/local/etc/openvpn/keys/server.pemcrl-verify /usr/local/etc/openvpn/crl/crl.pemtls-auth /usr/local/etc/openvpn/ta.key 0comp-lzokeepalive 10 120tun-mtu 1500mssfix 1450persist-keypersist-tunuser openvpngroup openvpnverb 3
dev
local
port
proto
server
push
"route 10.0.0.0 255.255.255.0"
route
client-config-dir
client-to-client
tls-server
dh
cert
key
crl-verify
tls-auth
comp-lzo
keeplive
tun-mtu
mssfix
persist-tun
SIGUSR1
ping-restarts
user
group
verb
/var/log/messages
cd /usr/local/etc/openvpn/ccdtouch client1 client2 client3
push "route 192.168.0.0 255.255.255.0"iroute 192.168.1.0 255.255.255.0
push "route 192.168.0.0 255.255.255.0"iroute 192.168.2.0 255.255.255.0
push "route 192.168.0.0 255.255.255.0"push "route 192.168.1.0 255.255.255.0" push "route 192.168.2.0 255.255.255.0"
openvpn_enable="YES"
/etc/rc.conf
/sbin/ipfw -q add pass ip from any to any via ${vif}/sbin/ipfw -q add pass udp from any to ${oip} 1194 in via ${oif}/sbin/ipfw -q add pass ip from ${vnet} to ${inet} out via ${iif}/sbin/ipfw -q add pass ip from ${inet} to ${vnet} in via ${iif}/sbin/ipfw -q add pass ip from 192.168.1.0/24 to ${inet} out via ${iif}/sbin/ipfw -q add pass ip from ${inet} to 192.168.1.0/24 in via ${iif}/sbin/ipfw -q add pass ip from 192.168.2.0/24 to ${inet} out via ${iif}/sbin/ipfw -q add pass ip from ${inet} to 192.168.2.0/24 in via ${iif}
oip
inet
vnet
iif
oif
vif
/sbin/ipfw -q add pass ip from any to any via ${vif}/sbin/ipfw -q add pass udp from any to ${oip} 1194 in via ${oif}/sbin/ipfw -q add pass ip from ${vnet} to ${inet} out via ${iif}/sbin/ipfw -q add pass ip from ${inet} to ${vnet} in via ${iif}/sbin/ipfw -q add pass ip from 192.168.0.0/24 to ${inet} out via ${iif}/sbin/ipfw -q add pass ip from ${inet} to 192.168.0.0/24 in via ${iif}
mount -t msdos /dev/fd0 /mnt cd /usr/local/etc/openvpncp certs/CClient.pem /mntcp keys/KClient.pem /mntcp CA_cert.pem /mntcp ta.key /mntumount /mnt
.ovpn
C:\Program Files\OpenVPN\config
clientdev tunproto udpremote <IP-адрес сервера OpenVPN>tls-clienttls-remote <FQDN сервера OpenVPN>ca "P:\\OpenVPN\\CA_cert.pem"cert "P:\\OpenVPN\\Ссlient3.pem"key "P:\\OpenVPN\\Kсlient3.pem"tls-auth "P:\\OpenVPN\\ta.key" 1ns-cert-type servercomp-lzotun-mtu 1500mssfix 1450verb 3
client
remote
tls-client
tls-remote