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

  1. /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.