Limitação de Usuarios Conectados em Conta SSH

1. Limitação de Usuarios Conectados em Conta SSH

Felipe
Felipexx

(usa Deepin)

Enviado em 14/09/2016 - 11:38h

Ola,

Meus caros, Gostaria de saber como faço para limitar usuarios conectados em uma ssh, eu editei esse script mais Quando chega um limite total estabelecido todos os usuarios sao desconectados e reiniciados posteriormente. Eu queria limitar uma quantidade de usuarios em uma conta ssh e bloquear novas conexões mais sem desconectar os ja conectados...

arqUsers="usuarios.txt" - Local onde coloco o nome do login/usuario e a quantidade de logins nessa conta
sleepTime=10
echo $$ > pidSshKill.txt

if [ ! -f "$arqUsers" ]
then
echo "Lista de usuarios $arqUsers nao encontrada"
exit 0
fi

while true
do
while read userLine
do
user="$(echo $userLine | cut -d' ' -f1)"
maxSessions="$(echo $userLine | cut -d' ' -f2)"

ps x | grep $user | grep -v grep | grep -v pts > tmp.tmp

qtdSessions="$(cat tmp.tmp | wc -l)"

echo "Usuario: $user - $qtdSessions/$maxSessions"

if [ "$qtdSessions" -gt "$maxSessions" ]; then
echo 'Desconectando conexoes SSH simultaneas'

while read line
do
tmp="$(echo $line | cut -d' ' -f1)"
echo "Desconectando conexao SSH com ID $tmp"
kill $tmp
done < tmp.tmp
rm tmp.tmp
fi

done < "$arqUsers"

echo "Aguardando $sleepTime segundos para verificar novamente..."
sleep $sleepTime
done


  


2. Re: Limitação de Usuarios Conectados em Conta SSH

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 14/09/2016 - 13:47h

Não é necessário script use o módulo do pam chamado "pam_limits".

O módulo "pam_limits" é usado para limitar praticamente todos os recursos da máquina a cada usuário. Pode-se, inclusive, determinar o tempo de consumo de CPU e memória RAM.


1° Ative o módulo abaixo no arquivo /etc/pam.d/login:
vim /etc/pam.d/login 

Adicione no arquivo a linha abaixo, somente se ela não existir!
session required pam_limits.so 

2° A configuração do módulo é feita no arquivo /etc/security/limits.conf:
sintaxe: <usuario/grupo> <tipo_de_limite> <recurso> <valor_do_limite> 

3 ° Agora é só limitar o número de conexões consecutivas que um usuário pode utilizar.
vim /etc/security/limits.conf 

Se for um grupo tem que colocar um '@' na antes do nome do grupo
<usuário> hard maxlogins 1 

4° Reinicie o serviço ssh para testar, tente logar-se 2 vezes com o usuário via SSH ou Localmente;

De quantos usuários estamos falando? Imagine 1000 usuários, todos tentando se conectar o script não dará conta de todos e alguns ainda conseguirão se conectar por um pequeno espaço de tempo.

Espero ter ajudado.



3. Nao foi!!

Felipe
Felipexx

(usa Deepin)

Enviado em 14/09/2016 - 15:14h

Oi,,

<usuário> hard maxlogins 1

Esse "hard" que você pois e o tipo de limite especificado?? pois coloquei esses dados ex: teste hard maxlogins 2 la em ( /etc/security/limits.conf ) mais nao foi, continua sem limites ...

Usei tambem o : echo "username - maxlogins 2" >> /etc/security/limits.conf

Mais tbem nao tive sucesso.

Grato, aguardo ajudas!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts