The FreeBSD FAQ - The Power to Help
The FreeBSD FAQ - The Power to Help
This site is Powered by PAR Teleon

S E Ç Õ E S
B U S C A
+
D E S T A Q U E
CONTATO
PÁGINA ANTIGA
TELEON INTERNET
E N Q U E T E
Se apos a conclusao, a traducao da documentacao oficial do FreeBSD, fosse impressa em livro, voce:

Usaria apenas a documentacao na internet como referencia.Faria o download de toda a documentacao na internet e imprimiria eu mesmo.
Compraria o livro, para te-lo em maos, mas usaria a referencia na internet com maior frequencia do que o livro.Compraria o livro, e seria minha unica referencia.
Compraria varias copias do livro e daria de presente a varias pessoas que deveriam ser devidamente catequisadas.







Jean M. Melo © - 2001
Todos os direitos reservados






H O W   T O 


Índice


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




Entrar em contato Enviar este artigo a um amigo Preparar para impressão Índice Topo da página


 

PrincipalBusca AvançadaEnqueteContatoTeleon Internet  
Enquetes antigas | FAQ | FreeBSD Desktop | Informacoes | Links | How To