Šī ir veca dokumenta versija!
Šajā rakstā aprakstīts OpenVPN servera instalēšanas process uz Linux. VPN lietotāju datu glabāšana notiek MySQL datu bāzē.
Testēts: Ubuntu 12.04 LTS.
1. Instalējam MySQL serveri. Izveidojam datubāzi „openvpn“, atbilstošu lietotāju, un piešķiram tiesības.
2. Izveidojam datu bāzes tabulas un aizpildam ar datiem.
user
tabula
CREATE TABLE IF NOT EXISTS `user` ( `user_id` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `user_pass` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '1234', `user_mail` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, `user_phone` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, `user_online` tinyint(1) NOT NULL DEFAULT '0', `user_enable` tinyint(1) NOT NULL DEFAULT '1', `user_start_date` date NOT NULL, `user_end_date` date NOT NULL, PRIMARY KEY (`user_id`), KEY `user_pass` (`user_pass`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
log
tabula
CREATE TABLE IF NOT EXISTS `log` ( `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_id` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `log_trusted_ip` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `log_trusted_port` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, `log_remote_ip` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `log_remote_port` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL, `log_start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `log_end_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `log_received` float NOT NULL DEFAULT '0', `log_send` float NOT NULL DEFAULT '0', PRIMARY KEY (`log_id`), KEY `user_id` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
user
dati
INSERT INTO `user` ( `user_id`, `user_pass`, `user_mail`, `user_phone`, `user_online`, `user_enable`, `user_start_date`, `user_end_date` ) VALUES ( 'test', '1234', 'mr.tumcpe@gmail.com', '+66815447514', 0, 1, '2012-01-01', '0000-00-00' );
1. Instalējam OpenVPN
apt-get install openvpn
2. Izveidojam sertifikātu ģenerātora kopiju no OpenVPN dokumentācijas kataloga
cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/. cd /etc/openvpn/easy-rsa/2.0/
3. Labojam mainīgos sertifikāta vajadzībām
vi vars
Atrodam un labojam sekojošās rindiņas.
export KEY_COUNTRY="TH" export KEY_PROVINCE="BKK" export KEY_CITY="Bangkok" export KEY_ORG="Chtunnel-VPN" export KEY_EMAIL="support@chtunnel.com"
4. Saglabājam, aizveram redaktoru. Palaižam mainīgo scriptu un veco pārpalikumu tīrīšanas skriptu.
source ./vars ./clean-all
************************************************************** No /etc/openvpn/easy-rsa/2.0/openssl.cnf file could be found Further invocations will fail **************************************************************
5. Izveidojam publiskos un privātos sertifikātus. Laižam skriptus pēc kārtas vienkārši atbildot ar ENTER vai YES. servername
- veidojam sertifikātu serverim. clientname
- veidojam sertifikātu klientam. servername
un clientname
ir vienkārši nosaukumi, kurus vēlāk vajadzēs izmantot atbilstošos konfigurācijas failos.
./build-ca ./build-key-server servername ./build-key clientname ./build-dh mv keys /etc/openvpn/.