OpenVPN: Limitarea accesului clientului la anumite clienți de destinație
Am doi client OpenVPN (ovpn_dest1, ovpn_dest2) care rulează continuu și au o rețea privată (10.60.10.0/24 & 10.60.20.0/24) pe care vreau să o accesez de la doi clienți Windows OpenVPN.
Clienții Windows OpenVPN (ovpn_user1, ovpn_user2) ar trebui totuși să poată accesa numai rețelele respective (fie 10.60.10.0/24, fie 10.60.20.0/24).
Cu ovpn_user1 acces la ovpn_dest1 (10.60.10.0/24) și ovpn_user2 ar trebui să poată accesa doar ovpn_dest2 (10.60.20.0/24).
Configurația actuală utilizează directiva client-la-client din fișierul gazdă OpenVPN server.conf, care este necesar pentru a permite clienților Windows să vorbească cu ovpn_dest1/2 și cu dispozitivele lor de rețea (device1_1/device1_2/etc).
Din păcate, această directivă client-la-client înseamnă că un client Windows poate accesa și toți clienții ovpn_dest1/2, ceea ce nu este dorit din punct de vedere al securității.
Denumiri de rețea și IP:
ovpn_dest1 - 10.60.10.2
dispozitiv1_1 - 10.60.10.3
device1_2 - 10.60.10.4
ovpn_dest2 - 10.60.20.2
device2_1 - 10.60.20.3
ovpn_user1 - 10.60.10.0/24
ovpn_user2 - 10.60.20.0/24
/etc/openvpn/server/server.conf:
local 188.166.226.159
portul 1194
proto udp
dev tun0
ca ca.crt
cert server.crt
cheie server.cheie
dh dh.pem
auth SHA512
tls-crypt tc.key
subrețea topologică
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
apăsați „dhcp-option DNS 67.207.67.3”
apăsați „dhcp-option DNS 67.207.67.2”
menține în viață 10 120
cifrul AES-256-CBC
utilizator nimeni
grup fără grup
cheie-persiste
persist-tun
verbul 3
crl-verify crl.pem
explicit-exit-notificare
log-append /var/log/openvpn.log
de la client la client
client-config-dir ccd
/etc/openvpn/server/ccd/ovpn_dest1
traseul 10.60.10.0 255.255.255.0
iroute 10.60.10.0 255.255.255.0
apăsați „route 10.60.10.0 255.255.255.0”
/etc/openvpn/server/ccd/ovpn_dest2
traseul 10.60.20.0 255.255.255.0
iroute 10.60.20.0 255.255.255.0
apăsați „ruta 10.60.20.0 255.255.255.0”
De asemenea, mă pot conecta la toate următoarele dispozitive de pe orice client Windows OpenVPN (ovpn_user1/ovpn_user2):
http://10.8.0.2/ (ovpn_dest1)
http://10.8.0.3/ (ovpn_dest2)
http://10.60.10.2/ (ovpn_dest1)
http://10.60.20.2/ (ovpn_dest2)
10.60.10.3 (dispozitiv1_1)
Cu toate acestea, vreau să limitez accesul pentru clienții Windows, astfel încât un anumit client să poată accesa doar rețeaua ovpn_destN specifică.
Am încercat să folosesc iptables, totuși nu sunt expert în asta și se pare că directiva client-la-client din fișierul server.conf înlocuiește efectiv orice încercare în iptables de a bloca o rută între o sursă și o destinație. (Directiva „rețea client-client se va face în interiorul OpenVPN fără a ajunge la stratul gazdă”). Se pare că ar trebui să elimin „client-to-client” din server.conf pentru a limita conexiunile, dar nu am reușit să stabilesc comunicații când această linie este eliminată.
M-am gândit să folosesc mai multe instanțe OpenVPN (una pentru fiecare set de ovpn_destN, ovpn_userN), dar cu multe zeci de instanțe, acest lucru poate să nu fie ideal. Deși mai multe rețele probabil nu vor fi accesate frecvent simultan.
Care (și cum) este cea mai bună modalitate de a limita un client Windows la o anumită rețea de destinație?