SSH e SFTP: Devo atribuir uma porta a cada usuário para facilitar o monitoramento de largura de banda?

5

Não há uma maneira fácil de rastrear o uso de largura de banda por usuário em tempo real para SSH e SFTP. Eu acho que atribuir uma porta para cada usuário pode ajudar, mas estou querendo saber se minha abordagem é viável.

Caso de uso

  • Bob, com o UID 1001, deve se conectar na porta 31001.
  • Alice, com o UID 1002, deve se conectar na porta 31002.
  • John, com o UID 1003, deve se conectar na porta 31003.

(Eu não quero lançar várias instâncias do sshd como proposto na pergunta 247291 .)

1. Configuração para o SFTP:

Em /etc/ssh/sshd_config :

Port 31001
Port 31002
Port 31003
Subsystem sftp /usr/bin/sftp-wrapper.sh

O arquivo sftp-wrapper.sh inicia o servidor sftp apenas se a porta for a correta:

#!/bin/sh
mandatory_port=3'id -u'
current_port='echo $SSH_CONNECTION | awk '{print $4}''
if [ $mandatory_port -eq $current_port ]
then
  exec /usr/lib/openssh/sftp-server
fi

2. Configuração adicional para SSH:

Algumas linhas em /etc/profile impedem que o usuário se conecte na porta errada:

if [ -n "$SSH_CONNECTION" ]
then
  mandatory_port=3'id -u'
  current_port='echo $SSH_CONNECTION | awk '{print $4}''
  if [ $mandatory_port -ne $current_port ]
  then
    echo "Please connect on port $mandatory_port."
    exit 1
  fi
fi

Benefícios

Agora, deve ser fácil monitorar o uso da largura de banda por usuário. Um aplicativo baseado em Rrdtool poderia produzir gráficos como este:

Eu sei que este não será um cálculo perfeito do uso da largura de banda: por exemplo, se alguém iniciar um ataque bruteforce na porta 31001, haverá muito tráfego nessa porta, embora não seja de Bob. Mas isso não é um problema para mim: eu não preciso de um cálculo exato do uso de largura de banda por usuário, mas um indicador que está aproximadamente correto em situações padrão.

Perguntas

  1. A idéia de atribuir uma porta para cada usuário geralmente é boa? Ou isso viola as melhores práticas?
  2. Se eu tiver que abrir dezenas de portas para muitos usuários, devo esperar uma desvantagem de desempenho?
por BertS 08.06.2014 / 15:17

1 resposta

3

Acho que uma solução melhor é monitorar o uso da largura de banda por número de porta do cliente. Em seguida, você pode combinar esse monitoramento com números de porta de auth.log para calcular a soma de todas as conexões de um usuário.

    
por 08.06.2014 / 16:57