SMB organizÄcijas attÄlinÄtÄ darba organizÄÅ”ana OpenVPN
ProblÄmas paziÅojums
RakstÄ ir aprakstÄ«ta attÄlinÄtÄs piekļuves organizÄcija darbiniekiem uz atvÄrtÄ pirmkoda produktiem un to var izmantot gan pilnÄ«gi autonomas sistÄmas izveidoÅ”anai, gan noderÄs paplaÅ”inÄÅ”anai, kad esoÅ”ajÄ komercsistÄmÄ pietrÅ«ks licenÄu vai tÄs veiktspÄja ir nepietiekama.
Raksta mÄrÄ·is ir ieviest pilnÄ«gu sistÄmu attÄlÄs piekļuves nodroÅ”inÄÅ”anai organizÄcijai, kas ir nedaudz vairÄk kÄ āOpenVPN instalÄÅ”ana 10 minÅ«tÄsā.
RezultÄtÄ mÄs iegÅ«sim sistÄmu, kurÄ lietotÄju autentificÄÅ”anai tiks izmantoti sertifikÄti un (pÄc izvÄles) uzÅÄmuma Active Directory. Tas. mÄs iegÅ«sim sistÄmu ar diviem verifikÄcijas faktoriem - kas man ir (sertifikÄts) un ko es zinu (parole).
PazÄ«me, ka lietotÄjam ir atļauts izveidot savienojumu, ir viÅa dalÄ«ba myVPNUsr grupÄ. SertifikÄta iestÄde tiks izmantota bezsaistÄ.
RisinÄjuma ievieÅ”anas izmaksas ir tikai nelieli aparatÅ«ras resursi un 1 stunda sistÄmas administratora darba.
MÄs izmantosim virtuÄlo maŔīnu ar OpenVPN un Easy-RSA 3. versiju operÄtÄjsistÄmÄ CetntOS 7, kurai ir pieŔķirti 100 vCPU un 4 GiB RAM uz 4 savienojumiem.
PiemÄrÄ mÅ«su organizÄcijas tÄ«kls ir 172.16.0.0/16, kurÄ VPN serveris ar adresi 172.16.19.123 atrodas segmentÄ 172.16.19.0/24, DNS serveri 172.16.16.16 un 172.16.17.17, apakÅ”tÄ«kls 172.16.20.0. .23/XNUMX ir pieŔķirts VPN klientiem .
Lai izveidotu savienojumu no Ärpuses, tiek izmantots savienojums caur portu 1194/udp, un mÅ«su servera DNS ir izveidots A-ieraksts gw.abc.ru.
SELinux nav stingri ieteicams atspÄjot! OpenVPN darbojas, neatspÄjojot droŔības politikas.
MÄs izmantojam CentOS 7.8.2003 izplatÄ«Å”anu. Mums ir jÄinstalÄ OS minimÄlÄ konfigurÄcijÄ. To ir Ärti izdarÄ«t, izmantojot Ätrs sÄkums, iepriekÅ” instalÄta OS attÄla klonÄÅ”ana un citi lÄ«dzekļi.
Mums arÄ« jÄpÄrliecinÄs, ka mÅ«su maŔīnÄ tiek veikta laika sinhronizÄcija.
Lai instalÄtu lietojumprogrammatÅ«ru, jums ir nepiecieÅ”amas openvpn, openvpn-auth-ldap, easy-rsa un vim pakotnes kÄ galvenais redaktors (jums bÅ«s nepiecieÅ”ama EPEL repozitorijs).
Å eit ir aprakstÄ«ti nosacÄ«juma organizÄcijas ABC LLC parametri, tos varat labot uz reÄlajiem vai atstÄt no piemÄra. Pats svarÄ«gÄkais parametros ir pÄdÄjÄ rinda, kas nosaka sertifikÄta derÄ«guma termiÅu dienÄs. PiemÄrÄ izmantota vÄrtÄ«ba 10 gadi (365*10+2 garie gadi). Pirms lietotÄja sertifikÄtu izsniegÅ”anas Ŕī vÄrtÄ«ba bÅ«s jÄkoriÄ£Ä.
IestatÄ«Å”anÄ ietilpst mainÄ«go eksportÄÅ”ana, CA inicializÄcija, CA saknes atslÄgas un sertifikÄta, Difija-Helmana atslÄgas, TLS atslÄgas un servera atslÄgas un sertifikÄta izsniegÅ”ana. CA atslÄga ir rÅ«pÄ«gi jÄaizsargÄ un jÄglabÄ slepenÄ«bÄ! Visus vaicÄjuma parametrus var atstÄt kÄ noklusÄjuma parametrus.
var bÅ«t viens vai vairÄki marÅ”ruti un DNS serveri;
PÄdÄjÄs 2 rindiÅas ir nepiecieÅ”amas, lai ieviestu autentifikÄciju AD**.
*PiemÄrÄ atlasÄ«tais adreÅ”u diapazons ļaus vienlaikus izveidot savienojumu lÄ«dz 127 klientiem, jo ir atlasÄ«ts /23 tÄ«kls, un OpenVPN izveido apakÅ”tÄ«klu katram klientam, izmantojot /30 masku.
Ja Ä«paÅ”i nepiecieÅ”ams, portu un protokolu var mainÄ«t, tomÄr jÄpatur prÄtÄ, ka, mainot porta porta numuru, bÅ«s jÄkonfigurÄ SELinux, un tcp protokola izmantoÅ”ana palielinÄs papildu izmaksas, jo TCP pakeÅ”u piegÄdes kontrole jau tiek veikta tunelÄ« iekapsulÄto pakeÅ”u lÄ«menÄ«.
**Ja autentifikÄcija AD nav nepiecieÅ”ama, komentÄjiet tos, izlaidiet nÄkamo sadaļu un veidnÄ noÅemiet rindu auth-user-pass.
AD autentifikÄcija
Lai atbalstÄ«tu otro faktoru, AD izmantosim konta verifikÄciju.
Mums ir nepiecieÅ”ams konts domÄnÄ ar parasta lietotÄja tiesÄ«bÄm un grupa, kuras dalÄ«ba noteiks iespÄju izveidot savienojumu.
systemctl status [email protected]
journalctl -xe
cat /var/log/messages
cat /var/log/openvpn/*log
SertifikÄta izsniegÅ”ana un atsaukÅ”ana
Jo Papildus paÅ”iem sertifikÄtiem ir nepiecieÅ”amas atslÄgas un citi iestatÄ«jumi, to visu ir ļoti Ärti ietÄ«t vienÄ profila failÄ. PÄc tam Å”is fails tiek pÄrsÅ«tÄ«ts lietotÄjam un profils tiek importÄts OpenVPN klientÄ. Lai to izdarÄ«tu, mÄs izveidosim iestatÄ«jumu veidni un skriptu, kas Ä£enerÄ profilu.
Pirms lietotÄja sertifikÄtu izsniegÅ”anas neaizmirstiet iestatÄ«t nepiecieÅ”amo sertifikÄtu derÄ«guma termiÅu parametru failÄ. NevajadzÄtu to padarÄ«t pÄrÄk ilgu; es iesaku ierobežot sevi lÄ«dz 180 dienÄm.
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>
Piezīmes:
lÄ«nijas NOLIEC SAVU... mainÄ«t uz saturu paÅ”a sertifikÄti;
KorporatÄ«vajÄ vidÄ, iespÄjams, ir apakÅ”tÄ«kls, un mums ir jÄpaziÅo marÅ”rutÄtÄjam(-iem), kÄ nosÅ«tÄ«t paketes, kas paredzÄtas mÅ«su VPN klientiem. KomandrindÄ mÄs izpildÄm komandu Å”ÄdÄ veidÄ (atkarÄ«bÄ no izmantotÄ aprÄ«kojuma):
# ip route 172.16.20.0 255.255.254.0 172.16.19.123
un saglabÄjiet konfigurÄciju.
TurklÄt robežmarÅ”rutÄtÄja saskarnÄ, kur tiek apkalpota ÄrÄjÄ adrese gw.abc.ru, ir jÄatļauj udp/1194 pakeÅ”u pÄreja.
Ja organizÄcijai ir stingri droŔības noteikumi, mÅ«su VPN serverÄ« ir jÄkonfigurÄ arÄ« ugunsmÅ«ris. ManuprÄt, vislielÄko elastÄ«bu nodroÅ”ina iptables FORWARD Ä·Äžu iestatÄ«Å”ana, lai gan to iestatÄ«Å”ana ir mazÄk Ärta. Nedaudz vairÄk par to iestatÄ«Å”anu. Lai to izdarÄ«tu, visÄrtÄk ir izmantot ātieÅ”os noteikumusā - tieÅ”os noteikumus, kas saglabÄti failÄ /etc/firewalld/direct.xml. PaÅ”reizÄjo noteikumu konfigurÄciju var atrast Å”Ädi:
$ sudo firewall-cmd --direct --get-all-rule
Pirms faila maiÅas izveidojiet tÄ dublÄjumkopiju:
Tie bÅ«tÄ«bÄ ir parastie iptables noteikumi, kas citÄdi tiek iesaiÅoti pÄc ugunsmÅ«ra parÄdÄ«Å”anÄs.
MÄrÄ·a saskarne ar noklusÄjuma iestatÄ«jumiem ir tun0, un tuneļa ÄrÄjais interfeiss var atŔķirties, piemÄram, ens192, atkarÄ«bÄ no izmantotÄs platformas.
PÄdÄjÄ rinda ir paredzÄta nomesto pakeÅ”u reÄ£istrÄÅ”anai. Lai pieteikÅ”anÄs darbotos, ugunsmÅ«ra konfigurÄcijÄ ir jÄmaina atkļūdoÅ”anas lÄ«menis:
vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2
IestatÄ«jumu piemÄroÅ”ana ir parastÄ ugunsmÅ«ra komanda, lai atkÄrtoti izlasÄ«tu iestatÄ«jumus:
$ sudo firewall-cmd --reload
JÅ«s varat apskatÄ«t nomestÄs paketes Å”Ädi:
grep forward_fw /var/log/messages
Kas ir nÄkamais
Tas pabeidz iestatīŔanu!
Atliek tikai instalÄt klienta programmatÅ«ru klienta pusÄ, importÄt profilu un izveidot savienojumu. OperÄtÄjsistÄmÄm Windows izplatÄ«Å”anas komplekts atrodas uz izstrÄdÄtÄja vietne.
Visbeidzot, mÄs savienojam savu jauno serveri ar uzraudzÄ«bas un arhivÄÅ”anas sistÄmÄm un neaizmirstam regulÄri instalÄt atjauninÄjumus.