LINUX.ORG.RU

Сообщения dumasti

 

Установка OpenVPN с двухуровневой иерархии ЦС

Проблема заключается в следующем: Надо создать два центра сертификации (RootCA и SubCA) и настроить настроить OpenVPN с подписанными сертификатами в ЦС. Я опишу шаги, которые я выполнил, но зашел в тупик, я что-то упускаю, но не вижу что. Берем три сервера (debian 9) называем их RootCA, SubCA, OpenVPNsrv. На всех трех серверах скачиваем easyrsa и распаковываем архивы. На третьем сервере OpenVPNsrv устанавливаем openvpn. Далее по командам.

wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz

tar xvf EasyRSA-3.0.4.tgz

cd ~/EasyRSA-3.0.4/

Данные действия выполняем на всех машинах.

cp vars.example vars

На RootCA и SubCA редактируем данный файл находим необходимый блок, раскомментируем его и пропишем свои значения:

set_var EASYRSA_REQ_COUNTRY «PB»

set_var EASYRSA_REQ_PROVINCE «Minsk»

set_var EASYRSA_REQ_CITY «Minsk»

set_var EASYRSA_REQ_ORG «company»

set_var EASYRSA_REQ_EMAIL «me@example.com»

set_var EASYRSA_REQ_OU «IT»

Так же меняем значение сроков действия сертификатов. На сервере RootCA:

set_var EASYRSA_CA_EXPIRE 3650

set_var EASYRSA_CERT_EXPIRE 1825

На SubCA:

set_var EASYRSA_CA_EXPIRE 1825

set_var EASYRSA_CERT_EXPIRE 365

Далее на RootCA:

./easyrsa init-pki

./easyrsa build-ca nopass

На SubCA:

./easyrsa init-pki

./easyrsa build-ca subca nopass

Передаем файл ca.req серверу RootCA, импортируем, подписываем и возвращаем обратно на SubCA:

./easyrsa import-req ca.req ca

./easyrsa sign-req ca ca

Далее на сервере OpenVPNsrv создаем необходимые сертификаты (запросы) для работы OpenVPN:

./easyrsa gen-req servername nopass

./easyrsa gen-req username nopass

./easyrsa gen-dh

sudo openvpn –genkey –secret ta.key

Подписываю сертификаты на SubCA:

./easyrsa import-req /tmp/servername.req servername

./easyrsa sign-req server servername

./easyrsa import-req /tmp/username.req username

./easyrsa sign-req client username

Все ключи раскладываю в нужные места: для сервера в /etc/openvpn/ :

server.conf

ta.key

ca.crt (SubCA.crt)

server.crt

server.key

dh.pem

Для пользователя генерирую файл user.ovpn, куда добавляю:

ca.crt (SubCA.crt)

user.key

user.crt

ta.key

Запускаю openvpn:

systemctl start openvpn@server

Сервер стартует и работает. Но когда подключаюсь клиентом, но мне выдает ошибку аутентификации.

Но если делаю все тоже самое, но не использую SubCA, то все работает.

Что я упускаю?

 , ,

dumasti
()

DNS

Доброго времени суток! Такая ситуация: есть сервак на котором стоит веб сервер, настроен dns. Можно ли к доменному имени этого сервера добавить поддомен третьего уровня с адресацией на другой сервер при условии что другой сервер связан с первым сервером vpn тоннелем и находится в локальной сети. Например: host.com –> local.host.com

Соответственно на host.com можно попасть любому, а на local.host.com только тому кто в этой подсети через vpn. Как это реализовать?

 ,

dumasti
()

Авторизация пользователей

есть ли способ просмотреть способ авторизации пользователя (по паролю или по ключу). и можно ли установить запрет авторизации по паролю отдельным пользователям?

 , ,

dumasti
()

работа с массивами BASH

Доброго времени суток!

Есть таск: скрипт проверяет в файле строку, если она удовлетворяет всем требованиям, то выполняет команды, беря переменные из первой строки файла. Мне надо, чтобы скрипт проверял каждую строку в файле и если строка соответствует, то выполнял с ней действия. Пример :

script.sh

! /bin/bash

set -- $(</home/main/in/*)
if [ `ls /home/main/in/* | wc -l` -eq 0 ]
then
 echo "Empty"
else
  while IFS= read -r line || [[ -n $line ]]
  do

ssi_vpn=($1 $2 $3 $7)
USER=${ssi_vpn[0]%@[^@]*}
 if [ "${ssi_vpn[2]}" = "VPN/Cloud" ]
 then
   if [ "${ssi_vpn[4]}" = "null_cl" ]
   then
   exit
   else
  if [ "${ssi_vpn[3]}" = "Denmark" ]
  then 
#mv /home/main/in/* /home/main/out/
  echo "UserBD $USER
PasswdBD ${ssi_vpn[1]}
BD ${USER}db
IP 0.0.0.0:00
You most go to link http://0.0.0.0/
${ssi_vpn[3]}" >> /home/main/out/~$USER
  echo "You most go to link https://0.0.0.0/"
  echo "Authorized data see in file /home/main/out/~$USER"
  fi
  fi
 else
 echo "NOT main"
 fi
  done < /home/main/in/*
fi

ssi_vpn.txt

user@gmail.com 4ee8e6747053339e5b58bbaa696eb77c VPN/Cloud 7 1 BY Denmark 15 null_cl 
user1@gmail.com 7abeb0a32d065a6ae0d8577165f99e65 VPN/Cloud 7 1 BY Germany 17 null_cl 
user2@gmail.com c89571f808d63f92501d9a21226720d0 VPN 7 1 BY Germany 7 null_cl 
user3@gmail.com 4ee8e6747053339e5b58bbaa696eb77c VPN/Cloud 7 1 BY Germany 15 null_cl 
user4@gmail.com ab42abe3503d4f6cea53517fa6b9f802 VPN 7 1 BY Germany 41 null_cl 

 , ,

dumasti
()

Вcтавка с помощью sed

Пишу скрипт в какой-то момент он должен вставить в файл в определенную строку часть конфига. вставляю с помощью sed -i 'na\...'/test.ini проблема заключается в том, что в конфиге, который нужно вставить есть ' и sed вместо вставки считает, что это закрытие. Я уже менял одинарные кавычки на двойные, пытался экранировать каждую одинарную кавычку.

 ,

dumasti
()

RSS подписка на новые темы