OpenVPN +clietn windows + samba

Instalacha przeprowadzona na OpenBSD 4.5

Zaczynamy prosto:

# pkg_add openvpn

Następnie zaczynamy zabawe z kluczykali i konfiguracją:

#  cd /usr/local/share/examples/openvpn/easy-rsa/2.0/

Wyedytujemy teraz vars i zmienimy co nie co dla naszych potrzeb.

#  vi vars


export EASY_RSA="`pwd`"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"
export KEY_DIR="$EASY_RSA/keys"
#DODAJEMY
export KEY_CONFIG="$EASY_RSA/openssl.cnf"
# KOMENTUJEMY
#export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"
export KEY_SIZE=1024
export CA_EXPIRE=3650
export KEY_EXPIRE=3650

export KEY_COUNTRY="PL"
export KEY_PROVINCE="Lodz"
export KEY_CITY="Ozorkow"
export KEY_ORG="OBSD"
export KEY_EMAIL="tata@obsd.eu.org"

Teraz, zainicjujemy PKI poprzez budowanie parametrów Diffie-Hellmana i tworzenie certyfikatu głównego urzędu certyfikacji oraz klucze.

#  . ./vars
NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/local/share/example/opevvpn/easy-rsa/2.0/keys
# ./clean-all
# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
[ ... ]
# ./pkitool --initca
Using CA Common Name: OBSD CA
Generating a 1024 bit RSA private key
.............................++++++
..++++++
writing new private key to 'ca.key'
-----

Następnym krokiem jest stworzenie certyfikatu i kluczy do serwera.

 

# ./pkitool --server vpn.OBSD
Generating a 1024 bit RSA private key
.............................................................++++++
.......++++++
writing new private key to 'vpn.OBSD.key'
-----
Using configuration from /usr/local/share/examples/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'PL'
stateOrProvinceName :PRINTABLE:'Lodz'
localityName :PRINTABLE:'Ozorkow'
organizationName :PRINTABLE:'OBSD'
commonName :PRINTABLE:'vpn.OBSD'
emailAddress :IA5STRING:'tata@obsd.eu.org'
Certificate is to be certified until Nov 24 14:13:49 2019 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated

Następnie będziemy wykorzystywać pkitool do tworzenia certyfikatów dla klientów.

 

# ./pkitool vpn2.OBSD
Generating a 1024 bit RSA private key
........................................++++++
..................................................++++++
writing new private key to 'vpn2.OBSD.key'
-----
Using configuration from /usr/local/share/examples/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'PL'
stateOrProvinceName :PRINTABLE:'Lodz'
localityName :PRINTABLE:'Ozorkow'
organizationName :PRINTABLE:'OBSD'
commonName :PRINTABLE:'vpn2.OBSD'
emailAddress :IA5STRING:'tata@obsd.eu.org'
Certificate is to be certified until Nov 24 14:15:09 2019 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated
Następnie tworzym katalog dla konfigów i kluczy:

# mkdir -p /etc/openvpn/private
# chmod 700 /etc/openvpn/private
I przenosimy potrzebne klucze:
# pwd
/usr/local/share/examples/openvpn/easy-rsa/2.0
# cp keys/ca.crt /etc/openvpn/
# cp keys/ca.key /etc/openvpn/private/
# cp keys/dh1024.pem /etc/openvpn/
# cp keys/{vpn.OBSD.key,vpn2.OBSD.key} /etc/openvpn/private/
# cp keys/{vpn.OBSD.crt,vpn2.OBSD.crt} /etc/openvpn/
# cd /etc/openvpn/
Kolej na config serwera # vi /etc/openvpn/server.conf
proto udp
port 1194
dev-type tap
dev tun0

ca /etc/openvpn/ca.crt
cert /etc/openvpn/vpn.OBSD.crt
key /etc/openvpn/private/vpn.OBSD.key
dh /etc/openvpn/dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt

keepalive 10 120
comp-lzo
user _openvpn
group _openvpn
daemon openvpn
persist-key
persist-tun

status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
Następnie tworzymy sobie pliki z logami i nadajemy prawa:

# touch /var/log/{openvpn-status.log,openvpn.log}
# chown _openvpn._openvpn /var/log/openvpn*
Pamiętamy oczywiście o :

# sysctl net.inet.ip.forwarding=1

i odpalamy
#openvpn --config /etc/openvpn/server.conf

Dopisujemy do rc.local:

if [ -x /usr/local/sbin/openvpn ]; then
echo -n ' openvpn'
/usr/local/sbin/openvpn --config /etc/openvpn/server.conf >/dev/null 2>&1
fi
Następnie kolej na klieta windowsowego. Klik na http://openvpn.se/files/install_packages/ Obecnie jest to: http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe I instalujemy: Po zakończonej instalacji przechodzimy do katalogu: C:\Program Files\OpenVPN\config\ i kopiujemy tam następujące pliki:

ca.crt, vpn2.OBSD.crt i vpn2.OBSD.key

i tworzymy plik konfiguracyjny OBSD.ovpn  z następującą zawartością:

client
dev tap
proto udp
remote IP_SERWERA 1194
route-method exe
route-delay 2
resolv-retry infinite
nobind

persist-key
persist-tun
 
ca ca.crt
cert vpn2.OBSD.crt
key vpn2.OBSD.key
comp-lzo
verb 3

Następnie do pf.conf dopisujemy:

vpn_if="tun0"
#VPN
pass in quick log on $wan proto {tcp,udp} from any to $wan port = 1194 flags S/SA keep state
pass in on $vpn_if keep state

I reload:

# pfctl -f /etc/pf.conf

 

Pozostaje tylko wykonać connect.

CDN.

Czyli samba.

 

2009-11-26 15:53