|
S E Ç Õ E S |
|
|
B U S C A |
|
|
|
D E S T A Q U E |
|
|
 |
|
|
 |
|
|
 |
|
E N Q U E T E |
|



|
- 2001
Todos os direitos reservados
|
|
|
H O W T O
|

|
|
|
|
11/07/07 12:34 - Configurando servidor de VPN utilizando o mpd realizando autenticação no Radius e LDAP
Márcio Luciano Donada
Na documentação não irei mostrar como fazer a configuração do LDAP (OpenLDAP), apenas do
FreeRadius e MPD num servidor FreeBSD 6.2-STABLE no qual estou utilizando:
FreeBSD jabber.auroraalimentos.com.br 6.2-STABLE FreeBSD 6.2-STABLE #2:
Mon Jul 9 17:57:00 BRT 2007
marcio@jabber.auroraalimentos.com.br:/usr/src/sys/i386/compile/JABBER i386
Inicialmente em alguns teste que realizei, obtive melhor performance utilizando as seguintes
entradas no kernel:
options NETGRAPH #netgraph(4) system
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_ECHO
options NETGRAPH_ETHER
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
#options NETGRAPH_MPPC_COMPRESSION
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
Partindo agora para o mpd, vamos instalar ele utilizando o ports:
# cd /usr/ports/net/mpd
# make install clean
Em seguida, vamos instalar o servidor do radius:
# cd /usr/ports/net/freeradius
# make install clean
Na tela de config, selecione o KERBEROS, LDAP e HEIMDAL e em seguida um ok para
realizar a compilação.
Agora, podemos iniciar a configuração do mpd
#cd /usr/local/etc/mpd
#cp mpd.conf.samples mpd.conf
#ee mpd.conf
default:
load pptp
pptp:
load pptp1
load pptp2
load pptp3
load pptp4
pptp0:
new -i ng1 pptp0 pptp0
load pptp-conf
set ipcp ranges 121.1.254.254/32 121.1.254.100/32
pptp1:
new -i ng1 pptp1 pptp1
load pptp-conf
set ipcp ranges 121.1.254.254/32 121.1.254.101/32
pptp2:
new -i ng2 pptp2 pptp2
load pptp-conf
set ipcp ranges 121.1.254.254/32 121.1.254.102/32
pptp3:
new -i ng3 pptp3 pptp3
load pptp-conf
set ipcp ranges 121.1.254.254/32 121.1.254.103/32
pptp4:
new -i ng4 pptp4 pptp4
load pptp-conf
set ipcp ranges 121.1.254.254/32 121.1.254.104/32
pptp5:
new -i ng5 pptp5 pptp5
load pptp-conf
set ipcp ranges 121.1.254.254/32 121.1.254.105/32
pptp-conf:
load radius
set bundle yes radius-acct
set iface disable on-demand
set iface enable proxy-arp
set iface idle 1800
set bundle disable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 240
set ipcp yes vjcomp
set ipcp nbns 200.1.2.3
set ipcp dns 200.1.2.2
set bundle enable compression
set ccp yes mppc
set ccp yes mpp-e40
set ccp yes mpp-e128
set ccp yes mpp-stateless
radius:
set radius config /etc/radius/radius.conf
set radius retries 3
set radius timeout 3
set radius acct-update 300
set bundle enable radius-auth radius-fallback
set bundle enable radius-acct
set iface enable radius-idle radius-session radius-mtu radius-route
set bundle enable compression
set ccp yes mppc
set ccp enable radius
------------------ fim ------------------------
Agora no mpd.links
# cp mpd.links.samples mpd.links
# ee mpd.links
pptp1:
set link type pptp
set pptp self ip-externo
set pptp enable incoming
set pptp disable originate
pptp2:
set link type pptp
set pptp self ip-externo
set pptp enable incoming
set pptp disable originate
pptp3:
set link type pptp
set pptp self ip-externo
set pptp enable incoming
set pptp disable originate
pptp4:
set link type pptp
set pptp self ip-externo
set pptp enable incoming
set pptp disable originate
pptp5:
set link type pptp
set pptp self ip-externo
set pptp enable incoming
set pptp disable originate
Agora no /etc/ você deve criar um diretório para o radius, cliente para a conexão com o servidor radius
# mkdir /etc/radius
# ee /etc/radius/radius.conf
acct 127.0.0.1 senha_do_cliente
auth 127.0.0.1 senha_do_cliente
Agora vamos partir para o radius (servidor)
# cd /usr/local/etc/raddb/
# ee radiusd.conf
prefix = /usr/local
exec_prefix = ${prefix}
sysconfdir = ${prefix}/etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log
raddbdir = ${sysconfdir}/raddb
radacctdir = ${logdir}/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/radiusd
log_file = ${logdir}/radius.log
libdir = ${exec_prefix}/lib
pidfile = ${run_dir}/radiusd.pid
max_request_time = 30
delete_blocked_requests = no
cleanup_delay = 5
max_requests = 1024
bind_address = *
port = 0
hostname_lookups = no
allow_core_dumps = no
regular_expressions = yes
extended_expressions = yes
log_stripped_names = no
log_auth = yes
log_auth_badpass = yes
log_auth_goodpass = no
usercollide = no
lower_user = no
lower_pass = no
nospace_user = no
nospace_pass = no
checkrad = ${sbindir}/checkrad
security {
max_attributes = 200
reject_delay = 1
status_server = no
}
proxy_requests = yes
$INCLUDE ${confdir}/proxy.conf
$INCLUDE ${confdir}/clients.conf
snmp = no
$INCLUDE ${confdir}/snmp.conf
thread pool {
start_servers = 5
max_servers = 32
min_spare_servers = 3
max_spare_servers = 10
max_requests_per_server = 0
}
modules {
mschap {
authtype = MS-CHAP
}
ldap {
server = "200.1.2.5"
identity = "cn=suporte,dc=auroraalimentos,dc=com,dc=br"
password = adsfasdfasdfasdfas
basedn = "dc=auroraalimentos,dc=com,dc=br"
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
base_filter = "(objectclass=radiusprofile)"
start_tls = no
access_attr = "radiusFilterId"
dictionary_mapping = ${raddbdir}/ldap.attrmap
authtype = ldap
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1
}
}
instantiate {
}
authorize {
ldap
mschap
}
authenticate {
Auth-Type MS-CHAP {
mschap
}
}
preacct {
}
accounting {
}
session {
}
post-auth {
}
pre-proxy {
}
post-proxy {
}
Agora para o cliente do radius:
# ee clients.conf
client 127.0.0.1 {
secret = senha_do_cliente
shortname = localhost
nastype = other # localhost isn't usually a NAS...
}
Agora para o users do radius
# ee users
DEFAULT Auth-Type = LDAP
Fall-Through = 1
Pronto,
Agora no /etc/rc.conf as seguintes linhas:
radiusd_enable="YES"
mpd_enable="YES"
mpd_flags="-b"
Agora basta iniciar os serviços:
/usr/local/etc/rc.d/mpd start
/usr/local/etc/rc.d/radiusd start
Você pode observar com o sockstat -4 que existiram as seguintes portas:
root mpd 82421 15 tcp4 121.1.16.130:1723 *:*
root radiusd 79006 3 udp4 *:1812 *:*
root radiusd 79006 4 udp4 *:1813 *:*
Ou seja, está tudo ali esperando para realizar uma autentição e por sua vez uma conexão VPN.
Interessante é gerar os logs do mpd, da seguinte forma:
#touch /var/log/mpd.log
#cd /etc/
#ee syslogd.conf
!mpd
*.* /var/log/mpd.log
basta agora iniciar o serviço do syslog e verificar os logs conforme a utilização do mpd.
Acho que era isso, qualquer dúvida entre em contato, mdonada arrouba auroraalimentos ponto com ponto br
Márcio Luciano Donada
|
|