Parecia que tudo que precisava ser feito era executar o pppd com o parâmetro de login. Isso pode ser definido em / etc / ppp / options. apesar de dizer que só deve ser usado com PAP.
Suponho que funcione porque não estamos tentando autenticar com o PAP e o CHAP, a autenticação passa pelos arquivos chap_secret após os quais ele é passado para o PAM.
Quando o PAM assume o controle, podemos configurá-lo para sempre passar a autenticação e usar a autorização para o que é necessário.
Aqui está como meu arquivo PAM (no servidor /etc/pam.d/ppp) se parece:
auth pam_permit.so suficiente
conta suficiente pam_permit.so
Por enquanto, não defini nada de concreto para a conta. O que eu planejo é executar um módulo que grava as informações no banco de dados.
Olhando para o / var / log / syslog:
Jul 24 11:32:02 virtual3 pptpd[6100]: GRE: Bad checksum from pppd.
Jul 24 11:32:02 virtual3 pppd[6101]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xbfa95b1b> <pcomp> <accomp>]
Jul 24 11:32:02 virtual3 pppd[6101]: sent [LCP EchoReq id=0x0 magic=0xbfa95b1b]
Jul 24 11:32:02 virtual3 pppd[6101]: sent [CHAP Challenge id=0x72 <bd6de330bce960fd3c015f4c05271084>, name = "virtual_3"]
Jul 24 11:32:02 virtual3 pppd[6101]: rcvd [LCP EchoReq id=0x0 magic=0x26f8d72a]
Jul 24 11:32:02 virtual3 pppd[6101]: sent [LCP EchoRep id=0x0 magic=0xbfa95b1b]
Jul 24 11:32:02 virtual3 pppd[6101]: rcvd [LCP EchoRep id=0x0 magic=0x26f8d72a]
Jul 24 11:32:02 virtual3 pppd[6101]: rcvd [CHAP Response id=0x72 <37493f89d9ab654ebd597c25a4a6b0c000000000000000007452936c00f1efa80034f8a65f1f33a7c5b0cf8b4ca6b3f600>, name = "virtual_2"]
Jul 24 11:32:02 virtual3 pppd[6101]: sent [CHAP Success id=0x72 "S=8BA14BF6728FFEF9BAC466B0B7ACD5B6273E8B38 M=Access granted"]
Jul 24 11:32:02 virtual3 pppd[6101]: Initializing PAM (2) for user virtual_2
Jul 24 11:32:02 virtual3 pppd[6101]: ---> PAM INIT Result = 0
Jul 24 11:32:02 virtual3 pppd[6101]: Attempting PAM account checks
Jul 24 11:32:02 virtual3 pppd[6101]: PAM Account OK for virtual_2
Jul 24 11:32:02 virtual3 pppd[6101]: PAM Session opened for user virtual_2
Jul 24 11:32:02 virtual3 pppd[6101]: user virtual_2 logged in on tty pts/3 intf ppp0
Jul 24 11:32:02 virtual3 pppd[6101]: MPPE 128-bit stateless compression enabled
Jul 24 11:32:02 virtual3 pppd[6101]: Cannot determine ethernet address for proxy ARP
Jul 24 11:32:02 virtual3 pppd[6101]: local IP address 10.8.10.1
Jul 24 11:32:02 virtual3 pppd[6101]: remote IP address 10.8.10.2
Jul 24 11:32:02 virtual3 pppd[6101]: pptpd-logwtmp.so ip-up ppp0 virtual_2 192.168.11.100
pode-se ver que a autenticação passou pelo CHAP e depois é passada para o PAM.