Eagrú cianobair eagraíochta SMB ar OpenVPN

An fhadhb a fhoirmiú

Déanann an t-alt cur síos ar eagrú cianrochtana d’fhostaithe ar tháirgí foinse oscailte agus is féidir é a úsáid chun córas iomlán uathrialach a thógáil, agus beidh sé úsáideach le haghaidh leathnú nuair a bhíonn ganntanas ceadúnas sa chóras tráchtála atá ann cheana féin nó nuair nach leor a fheidhmíocht.

Is é sprioc an ailt ná córas iomlán a chur i bhfeidhm chun cianrochtain a sholáthar d’eagraíocht, rud nach bhfuil ach “OpenVPN a shuiteáil i 10 nóiméad.”

Mar thoradh air sin, gheobhaidh muid córas ina n-úsáidfear deimhnithe agus (go roghnach) an Eolaire Gníomhach corparáideach chun úsáideoirí a fhíordheimhniú. Sin. gheobhaidh muid córas le dhá fhachtóir fíoraithe - an méid atá agam (teastas) agus a bhfuil ar eolas agam (focal faire).

Comhartha go bhfuil cead ag úsáideoir ceangal is ea a bhallraíocht sa ghrúpa myVPNUsr. Úsáidfear an t-údarás deimhniúcháin as líne.

Is é an costas a bhaineann leis an réiteach a chur i bhfeidhm ach acmhainní crua-earraí beaga agus 1 uair an chloig d'obair riarthóir an chórais.

Úsáidfimid meaisín fíorúil le OpenVPN agus Easy-RSA leagan 3 ar CetntOS 7, a leithdháiltear 100 vCPU agus 4 GiB RAM in aghaidh an 4 nasc.

Sa sampla, is é 172.16.0.0/16 líonra ár n-eagraíochta, ina bhfuil an freastalaí VPN leis an seoladh 172.16.19.123 suite sa deighleog 172.16.19.0/24, freastalaithe DNS 172.16.16.16 agus 172.16.17.17 agus 172.16.20.0. Leithdháiltear .23/XNUMX do chliaint VPN .

Chun nascadh ón taobh amuigh, úsáidtear nasc trí phort 1194/udp, agus cruthaíodh A-taifead gw.abc.ru sa DNS dár bhfreastalaí.

Ní mholtar go docht SELinux a dhíchumasú! Oibríonn OpenVPN gan polasaithe slándála a dhíchumasú.

Ábhar

  1. Suiteáil OS agus bogearraí feidhmchláir
  2. Socrú cripteagrafaíochta
  3. Socrú OpenVPN
  4. AD Fíordheimhniú
  5. Tosaithe agus diagnóisic
  6. Deimhniú a eisiúint agus a chúlghairm
  7. Cumraíocht líonra
  8. Cad atá ar Aghaidh

Suiteáil OS agus bogearraí feidhmchláir

Bainimid úsáid as an dáileadh CentOS 7.8.2003. Ní mór dúinn an OS a shuiteáil i gcumraíocht íosta. Tá sé áisiúil é seo a dhéanamh ag baint úsáide as tús cic, íomhá OS a suiteáladh roimhe seo agus modhanna eile a chlónáil.

Tar éis é a shuiteáil, ag sannadh seoladh chuig an gcomhéadan líonra (de réir théarmaí tasc 172.16.19.123), déanaimid an OS a nuashonrú:

$ sudo yum update -y && reboot

Ní mór dúinn a chinntiú freisin go ndéantar sioncrónú ama ar ár meaisín.
Chun bogearraí feidhmchláir a shuiteáil, beidh na pacáistí openvpn, openvpn-auth-ldap, easy-rsa agus vim mar phríomheagarthóir uait (beidh an stór EPEL uait).

$ sudo yum install epel-release
$ sudo yum install openvpn openvpn-auth-ldap easy-rsa vim

Tá sé úsáideach gníomhaire aoi a shuiteáil le haghaidh meaisín fíorúil:

$ sudo yum install open-vm-tools

le haghaidh óstaigh VMware ESXi, nó le haghaidh oVirt

$ sudo yum install ovirt-guest-agent

Socrú cripteagrafaíochta

Téigh chuig an eolaire easy-rsa:

$ cd /usr/share/easy-rsa/3/

Cruthaigh comhad athróg:

$ sudo vim vars

an t-ábhar seo a leanas:

export KEY_COUNTRY="RU"
export KEY_PROVINCE="MyRegion"
export KEY_CITY="MyCity"
export KEY_ORG="ABC LLC"
export KEY_EMAIL="[email protected]"
export KEY_CN="allUsers"
export KEY_OU="allUsers"
export KEY_NAME="gw.abc.ru"
export KEY_ALTNAMES="abc-openvpn-server"
export EASYRSA_CERT_EXPIRE=3652

Tá cur síos anseo ar pharaiméadair na heagraíochta coinníollach ABC LLC; is féidir leat iad a cheartú go dtí na cinn réadacha nó iad a fhágáil ón sampla. Is é an rud is tábhachtaí sna paraiméadair an líne dheireanach, a chinneann tréimhse bailíochta an deimhnithe i laethanta. Úsáideann an sampla an luach 10 mbliana (365*10+2 bhliain léime). Ní mór an luach seo a choigeartú sula n-eiseofar deimhnithe úsáideora.

Ansin, déanaimid údarás deimhniúcháin uathrialach a chumrú.

Áirítear leis an socrú athróga easpórtála, an CA a thúsú, eochair fhréamh agus teastas CA a eisiúint, eochair Diffie-Hellman, eochair TLS, agus eochair agus teastas freastalaí. Ní mór an eochair CA a chosaint go cúramach agus a choinneáil faoi rún! Is féidir paraiméadair na gceisteanna go léir a fhágáil mar réamhshocrú.

cd /usr/share/easy-rsa/3/
. ./vars
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-req myvpngw nopass
./easyrsa sign-req server myvpngw
./easyrsa gen-crl
openvpn --genkey --secret pki/ta.key

Críochnaíonn sé seo an phríomhchuid de bhunú na meicníochta cripteagrafach.

Socrú OpenVPN

Téigh chuig an eolaire OpenVPN, cruthaigh eolairí seirbhíse agus cuir nasc chuig easy-rsa:

cd /etc/openvpn/
mkdir /var/log/openvpn/ /etc/openvpn/ccd /usr/share/easy-rsa/3/client
ln -s /usr/share/easy-rsa/3/pki/ /etc/openvpn/

Cruthaigh an príomhchomhad cumraíochta OpenVPN:

$ sudo vim server.conf

ábhar seo a leanas

port 1194
proto udp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/myvpngw.crt
key /etc/openvpn/pki/private/myvpngw.key
crl-verify /etc/openvpn/pki/crl.pem
dh /etc/openvpn/pki/dh.pem
server 172.16.20.0 255.255.254.0
ifconfig-pool-persist ipp.txt
push "route 172.16.0.0 255.255.255.0"
push "route 172.17.0.0 255.255.255.0"
client-config-dir ccd
push "dhcp-option DNS 172.16.16.16"
push "dhcp-option DNS 172.16.17.17"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
username-as-common-name
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/ldap.conf

Roinnt nótaí ar na paraiméadair:

  • má sonraíodh ainm difriúil agus an deimhniú á eisiúint, cuir in iúl é;
  • sonraigh an líon seoltaí a oireann do do thascanna*;
  • is féidir bealach amháin nó níos mó agus freastalaithe DNS a bheith ann;
  • Tá an dá líne dheireanacha ag teastáil chun fíordheimhniú a chur i bhfeidhm in AD**.

*Ceadóidh raon na seoltaí a roghnaítear sa sampla suas le 127 cliant nascadh go comhuaineach, mar gheall ar roghnaítear an líonra /23, agus cruthaíonn OpenVPN folíon do gach cliant ag baint úsáide as an masc /30.
Más gá go háirithe, is féidir an calafort agus an prótacal a athrú, áfach, ba cheart a mheabhrú go mbeidh sé i gceist SELinux a chumrú trí uimhir an chalafoirt a athrú, agus go n-ardóidh úsáid an phrótacail tcp lastuas, mar gheall ar Déantar rialú seachadta paicéid TCP cheana féin ag leibhéal na bpaicéad atá cuimsithe sa tollán.

**Mura bhfuil fíordheimhniú in AD ag teastáil, déan trácht orthu, léim thar an gcéad chuid eile agus sa teimpléad bain an t-údar-úsáideoir-pas líne.

AD Fíordheimhniú

Chun tacú leis an dara fachtóir, úsáidfimid fíorú cuntais in AD.

Ní mór dúinn cuntas sa bhfearann ​​le cearta an ghnáthúsáideoir agus grúpa, ballraíocht a chinnfidh an cumas chun nascadh.

Cruthaigh comhad cumraíochta:

/etc/openvpn/ldap.conf

ábhar seo a leanas

<LDAP>
        URL             "ldap://ldap.abc.ru"
        BindDN          "CN=bindUsr,CN=Users,DC=abc,DC=ru"
        Password        b1ndP@SS
        Timeout         15
        TLSEnable       no
        FollowReferrals yes
</LDAP>
<Authorization>
        BaseDN          "OU=allUsr,DC=abc,DC=ru"
        SearchFilter    "(sAMAccountName=%u)"
        RequireGroup    true
        <Group>
                BaseDN          "OU=myGrp,DC=abc,DC=ru"
                SearchFilter    "(cn=myVPNUsr)"
                MemberAttribute "member"
        </Group>
</Authorization>

Príomhpharaiméadair:

  • URL “ldap://ldap.abc.ru” - seoladh rialaitheoir fearainn;
  • BindDN “CN = bindUsr, CN = Úsáideoirí, DC = abc, DC = ru” - ainm canónach le ceangal le LDAP (UZ - bindUsr sa choimeádán abc.ru/Users);
  • Pasfhocal b1ndP@SS — pasfhocal úsáideora le haghaidh ceangailteach;
  • BaseDN “OU=allUsr,DC=abc,DC=ru” — an cosán ónar féidir cuardach a dhéanamh don úsáideoir;
  • BaseDN “OU=myGrp,DC=abc,DC=ru” – coimeádán an ghrúpa cheadaithe (grúpáil myVPNUsr sa choimeádán abc.rumyGrp);
  • SearchFilter "(cn=myVPNUsr)" is ainm don ghrúpa ceadaithe.

Tosaithe agus diagnóisic

Anois is féidir linn iarracht a dhéanamh ár bhfreastalaí a chumasú agus a thosú:

$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]

Seiceáil tosaithe:

systemctl status [email protected]
journalctl -xe
cat /var/log/messages
cat /var/log/openvpn/*log

Deimhniú a eisiúint agus a chúlghairm

Mar Chomh maith leis na deimhnithe féin, tá eochracha agus socruithe eile de dhíth ort; tá sé an-áisiúil é seo go léir a fhilleadh in aon chomhad próifíle amháin. Aistrítear an comhad seo chuig an úsáideoir ansin agus allmhairítear an phróifíl ar an gcliant OpenVPN. Chun seo a dhéanamh, cruthóimid teimpléad socruithe agus script a ghineann an phróifíl.

Ní mór duit inneachar na gcomhad teastas fréimhe (ca.crt) agus eochair TLS (ta.key) a chur leis an bpróifíl.

Sula n-eisítear deimhnithe úsáideora ná déan dearmad an tréimhse bailíochta is gá a shocrú le haghaidh deimhnithe sa chomhad paraiméadair. Níor cheart duit é a dhéanamh ró-fhada; molaim duit féin a theorannú go dtí 180 lá ar a mhéad.

vim /usr/share/easy-rsa/3/vars

...
export EASYRSA_CERT_EXPIRE=180

vim /usr/share/easy-rsa/3/client/template.ovpn

client
dev tun
proto udp
remote gw.abc.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
verb 3
auth-user-pass

<ca>
-----BEGIN CERTIFICATE-----
PUT YOUR CA CERT (ca.crt) HERE
-----END CERTIFICATE-----
</ca>

key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
PUT YOUR TA KEY (ta.key) HERE
-----END OpenVPN Static key V1-----
</tls-auth>

Nótaí:

  • línte CUIR DO... athrú ar ábhar féin teastais ;
  • sa chiantreoir, sonraigh ainm/seoladh do gheata;
  • baintear úsáid as an treoir um pas úsáideora úsáideora le haghaidh fíordheimhnithe seachtrach breise.

San eolaire baile (nó áit áisiúil eile) cruthaímid script chun teastas a iarraidh agus chun próifíl a chruthú:

vim ~/make.profile.sh

#!/bin/bash

if [ -z "$1" ] ; then
 echo Missing mandatory client name. Usage: $0 vpn-username
 exit 1
fi

#Set variables
basepath=/usr/share/easy-rsa/3
clntpath=$basepath/client
privpath=$basepath/pki/private
certpath=$basepath/pki/issued
profile=$clntpath/$1.ovpn

#Get current year and lowercase client name
year=`date +%F`
client=${1,,}
echo Processing $year year cert for user/device $client

cd $basepath

if [  -f client/$client* ]; then
    echo "*** ERROR! ***"
    echo "Certificate $client already issued!"
    echo "*** ERROR! ***"
    exit 1
fi

. ./vars
./easyrsa --batch --req-cn=$client gen-req $client nopass
./easyrsa --batch sign-req client $client

#Make profile
cp $clntpath/template.ovpn $profile

echo "<key>" >> $profile
cat $privpath/$1.key >> $profile
echo "</key>" >> $profile

echo -e "n" >> $profile
openssl x509 -in $certpath/$1.crt -out $basepath/$1.crt

echo "<cert>" >> $profile
cat $basepath/$1.crt >> $profile
echo "</cert>" >> $profile
echo -e "n" >> $profile

#remove tmp file
rm -f $basepath/$1.crt

echo Complete. See $profile file.

cd ~

An comhad a dhéanamh inrite:

chmod a+x ~/make.profile.sh

Agus is féidir linn ár gcéad deimhniú a eisiúint.

~/make.profile.sh my-first-user

Aiseolas

I gcás comhréitigh ar dheimhniú (caillteanas, goid), is gá an deimhniú seo a chúlghairm:

cd /usr/share/easy-rsa/3/
./easyrsa revoke my-first-user
./easyrsa gen-crl

Féach ar dheimhnithe eisithe agus cúlghairthe

Chun féachaint ar dheimhnithe eisithe agus cúlghairthe, níl le déanamh ach féachaint ar an gcomhad innéacs:

cd /usr/share/easy-rsa/3/
cat pki/index.txt

Míniú:

  • is é an chéad líne an deimhniú freastalaí;
  • chéad charachtar
    • V (Bailí) - bailí;
    • R (Cúlghairm) - Meabhraítear.

Cumraíocht líonra

Is iad na céimeanna deiridh ná an líonra tarchurtha a chumrú - ródú agus ballaí dóiteáin.

Nascanna a cheadú sa bhalla dóiteáin áitiúil:

$ sudo firewall-cmd --add-service=openvpn
$ sudo firewall-cmd --add-service=openvpn --permanent

Ar aghaidh, cumasaigh ródú tráchta IP:

$ sudo sysctl net.ipv4.ip_forward=1
$ sudo echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/50-sysctl.conf

I dtimpeallacht chorparáideach, is dócha go mbeidh folíonta ann agus ní mór dúinn a insint don ródaire(í) conas paicéid a sheoladh chuig ár gcliaint VPN. Ar an líne ordaithe déanaimid an t-ordú ar an modh (ag brath ar an trealamh a úsáidtear):

# ip route 172.16.20.0 255.255.254.0 172.16.19.123

agus an chumraíocht a shábháil.

Ina theannta sin, ar an gcomhéadan ródaire teorann ina bhfreastalaítear ar an seoladh seachtrach gw.abc.ru, is gá pas a fháil ar phaicéid udp/1194 a cheadú.

I gcás go bhfuil rialacha dochta slándála ag an eagraíocht, ní mór balla dóiteáin a chumrú ar ár bhfreastalaí VPN freisin. Is é mo thuairim go soláthraítear an tsolúbthacht is mó trí slabhraí iptables FORWARD a bhunú, cé nach bhfuil sé chomh áisiúil iad a shocrú. Beagán níos mó faoi iad a shocrú. Chun seo a dhéanamh, is áisiúla "rialacha díreacha" a úsáid - rialacha díreacha, a stóráiltear i gcomhad /etc/firewalld/direct.xml. Is féidir cumraíocht reatha na rialacha a fháil mar seo a leanas:

$ sudo firewall-cmd --direct --get-all-rule

Sula n-athraítear comhad, déan cóip chúltaca de:

cp /etc/firewalld/direct.xml /etc/firewalld/direct.xml.`date +%F.%T`.bak

Is iad neas-inneachar an chomhaid:

<?xml version="1.0" encoding="utf-8"?>
<direct>
 <!--Common Remote Services-->
  <!--DNS-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o ens192 -p udp --dport 53 -j ACCEPT</rule>
  <!--web-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.200 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.201 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--Some Other Systems-->
    <rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p udp -d 172.16.19.100 --dport 7000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
  <!--just logging-->
    <rule priority="1" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -j LOG --log-prefix 'forward_fw '</rule>
</direct>

Mínithe

Is rialacha rialta iptables iad seo go bunúsach, a phacáistiú ar bhealach eile tar éis teacht ar bhalla dóiteáin.

Is é an comhéadan ceann scríbe le socruithe réamhshocraithe tun0, agus d'fhéadfadh an comhéadan seachtrach don tollán a bheith difriúil, mar shampla, ens192, ag brath ar an ardán a úsáidtear.

Is é an líne dheireanach ná paicéid thit a logáil. Chun logáil chun oibre, ní mór duit an leibhéal dífhabhtaithe i gcumraíocht balla dóiteáin a athrú:

vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2

Is é an gnáthordú balla dóiteáin é socruithe a chur i bhfeidhm chun na socruithe a athléamh:

$ sudo firewall-cmd --reload

Is féidir leat paicéid thit mar seo a fheiceáil:

grep forward_fw /var/log/messages

Cad atá ar Aghaidh

Críochnaíonn sé seo an socrú!

Níl fágtha ach na bogearraí cliant a shuiteáil ar thaobh an chliaint, an phróifíl a allmhairiú agus a nascadh. I gcás córais oibriúcháin Windows, tá an trealamh dáileacháin suite ar suíomh forbróra.

Ar deireadh, nascaimid ár bhfreastalaí nua leis na córais monatóireachta agus cartlannaithe, agus ná déan dearmad nuashonruithe a shuiteáil go rialta.

Ceangal cobhsaí!

Foinse: will.com

Add a comment