Eu não tenho experiência com pptpd, mas tenho pptp rodando em uma máquina CentOS que atua como um cliente conectando-se a um roteador DrayTek.
Então, eu imagino que, para cada usuário conectado, haverá uma interface de rede ppp correspondente criada no servidor para atender esse usuário. Você pode configurar algumas regras do iptables que registram todos os pacotes dessas interfaces ppp. A última coisa que você precisa correlacionar (log) do pptpd é quando os usuários específicos receberam endereços IP específicos. Isso permitiria que você registrasse o tráfego e o vinculasse ao usuário da VPN correspondente (ainda mais fácil se você forçar a atribuição de um IP estático aos usuários da VPN).
Você precisaria ter certeza de aplicar as regras de registro em cada direção, na cadeia FORWARD mais provável (para registrar o tráfego destinado a outros hosts na rede VPN, que é roteado pelo servidor VPN). Adicione cadeias INPUT e OUTPUT se você quiser incluir o log do próprio servidor (o + denota todas as interfaces ppp):
iptables -A FORWARD -i ppp+ -j LOG
iptables -A FORWARD -o ppp+ -j LOG
E, obviamente, você pode adaptar as regras acima do iptables para serem mais específicas do protocolo, se você quiser monitorar tipos específicos de tráfego.
Usar o tcpdump para capturar PCAPs por interface seria um pesadelo para implementar. Você precisaria inventar alguma maneira radical de ter uma bifurcação do processo tcpdump e morrer para cada interface ppp criada e excluída, à medida que os usuários efetuam login e logoff. Eu não consigo pensar em uma maneira legal de fazer isso, e parece um pouco exagerado estar tentando registrar o conteúdo do pacote em cada sessão. É melhor ter mais medidas de segurança nos dispositivos aos quais eles possivelmente podem se conectar na própria rede privada.