Passando parâmetros PAM para UFW

3

No servidor de desenvolvimento eu quero abrir todas as portas para um endereço IP específico após o login ssh

Mas meu script de login ssh não está funcionando

#!/bin/sh
if [ "$PAM_TYPE" = "close_session" ]; then                    
 ufw delete from $PAM_RHOST
else                                                          
 ufw allow from $PAM_RHOST
fi

Em /etc/pam.d/sshd

session    optional     pam_exec.so quiet /etc/pam_session.sh

Precisando de informações por que meu script não está funcionando e / ou como depurá-lo.

Por padrão, os scripts PAM são executados pelo root, se não me engano.

    
por Evus 21.08.2016 / 12:11

1 resposta

5

Ok. Meu problema foi que $ PAM_RHOST retorna o hostname não ip.

Script corrigido

#!/bin/sh
ip=$(getent hosts "$PAM_RHOST" | awk '{ print $1 }')
if [ "$PAM_TYPE" = "close_session" ]; then
  ufw delete allow from $ip
else
  ufw allow from $ip
fi

NOTA: Certifique-se de que o ufw tenha o IPv6 ativado porque "hosts getent" podem retornar IPv6 ou IPv4

    
por 21.08.2016 / 16:12