PPTP+RADIUS+LDAP VPN 1.
PPTP+RADIUS+LDAP összeállítással készített VPN 1. rész
PPTP
A PPTP csomag képes a Windowsban megtalálható beépített VPN szolgáltatás kezelésére. Szerver és kliens oldalra is konfigurálható.
Két fő konfigurációs fájlja van:
1./etc/pptpd.conf
Tartalma:
option /etc/ppp/pptpd-options
logwtmp
localip 192.168.0.24
remoteip 192.168.0.100-120
2. /etc/ppp/pptpd-options
Tartalma:
lock
name pptpd
domain company.hu
proxyarp
asyncmap 0
-chap
-mschap
require-mschap-v2
require-mppe-128
lcp-echo-failure 30
lcp-echo-interval 5
ipcp-accept-local
ipcp-accept-remote
nodefaultroute
nobsdcomp
auth
A fenti konfiguráció képes a /etc/ppp/chap-secrets fájlban megadott felhasználónév – jelszó párost felhasználva autentikációt megvalósítani. Hátránya, hogy az említett fájlban a jelszavak nincsenek titkosítva.
A fenti konfigurációt a pptpd-options fájlban a következő két sorral kiegészítve nem a chap-secrets fájlban keresi a felhasználónév- jelszó párost,hanem a localhostra telepített radiusclient-hez fordul.
plugin /usr/lib/pppd/2.4.4/radius.so
plugin /usr/lib/pppd/2.4.4/radattr.so
RADIUS
A Radius autentikációt valósít meg több forrásból. Olyan esetben hasznos, ha az autentikációhoz használt adatok nem egy helyen (text fájl, adatbázis, ldap) vannak tárolva, hanem ezek keveréke. Továbbá előnye, hogy több olyan alkalmazással is összekapcsolható, amely autentikációt követel (pl SSH, vagy a fent említett PPTP).
A Radius szerver-kliens hierarchiájú csomag. Debianban az alap klienscsomag a radiusclient1, szerver oldalon pedig a freeradius csomag szükséges. Szerver oldalra az autentikáció forrását képező adatoktól függően további csomagok telepítése is szükséges (pl: freeradius-ldap, freeradius-mysql).
A kliens és a szerver kommunikációja során a kliensnek egy jelszót kell küldenie a szerver felé, csak ennek ellenőrzése után szolgáltat adatot a szerver.
Szerver oldalon a következő képen kell beállítani a jelszót a /etc/freeradius/clients.conf fájlban:
client localhost {
ipaddr = 127.0.0.1
secret = testing123
require_message_authenticator = no
}
Lehetőség van tartományonként, sőt IP címenként eltérő jelszót alkalmazni:
client 192.168.0.0/16 {
secret = testing123-2
shortname = private-network-2
}
A Kliens oldal beállítása a /etc/radiusclient/radiusclient.conf fájlban történik:
Pl.:
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/radiusclient/issue
authserver localhost:1812
acctserver localhost:1813
servers /etc/radiusclient/servers
dictionary /etc/radiusclient/dictionary
login_radius /usr/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/radiusclient/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login
Az említett jelszót a következő képen kell megadni a /etc/radiusclient/servers fájlban:
localhost testing123
A pptp és ldap összekapcsolásához a /etc/radiusclient/dictionary fájlban el kell helyezni a következő két sort:
INCLUDE /etc/radiusclient/dictionary.merit
INCLUDE /etc/radiusclient/dictionary.microsoft
Ezzel hozzáadva a fenti fájlok adatait a radiusclient szótárához. Ennek a jelszó kódolása terén van fontos szerepe.
Ezzel a radiusclient konfigurálása el is készült.
A Radius szerver konfigurálása több időt vesz igénybe. Jelen esetben be kellett állítani az LDAP-pal való kommunikáció részleteit a /etc/freeradius/radiusd.conf fájlban:
ldap {
server = "127.0.0.1"
basedn = "dc=company,dc=hu"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
password_attribute = sambaNTPassword
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1
tls {
start_tls = no
}
dictionary_mapping = ${confdir}/ldap.attrmap
edir_account_policy_check = no
}
Említést érdemel a password_attribute = sambaNTPassword sor, ugyanis a jelszó megfelelő kódolásához a samba nevű fájl- és nyomtató megosztást végző alkalmazás szükséges. Ennek működéséhez a samba konfigot is módosítani kell.
A fenti módon beállított ldap autentikációt engedélyezni kell. Ehhez a /etc/freeradius/sites-enabled/default és /etc/freeradius/sites-enabled/inner-tunnel fájlokban az ldap sorok elől ki kell venni a # -t.
A freeradius –X parancs segítségével indított radius szerver kimenetét folyamatosan lehet látni. Ha induláskor hibát észlel, itt tájékoztat. Ha a parancs futtatása után a következőket írja az utolsó sorokba, akkor elindult és várja a kapcsolatot a kliensről:
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on proxy address * port 1814
Ready to process requests.
Tesztelés közben tanácsos ezt a futtatási módot alkalmazni, mert sokkal bőbeszédűbb, mint a log.