Como logar SSHDs falhou logins com nomes de usuários no OpenBSD 5.3?

1

Como o DYNDNS tornou-se um serviço pago, encontrei uma solução para o problema de endereço IP dinâmico:

Lado do roteador OPENWRT (IP dinâmico, esta linha está no CRON):

echo close | ssh LOCATION@SERVER -p 22 > /dev/null 2>&1

Lado do SERVIDOR (com IP de correção):

on OpenBSD 5.1 I had nothing to do*

Lado do CLIENTE (de onde quero me conectar ao roteador IP / OpenWRT dinâmico):

vi .bashrc
DYNNAMEHERE() {
DYNNAMEHERE01='ssh root@DOMAINHERE -p PORTHERE "grep 'user DYNNAMEHERE from' /var/log/authlog | tail -1" | sed 's/ from /\n/g' | tail -1 | grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"'
ssh root@"${DYNNAMEHERE01}" -p PORTHERE
}

e só preciso usar este comando:

DYNNAMEHERE

e eu estou no roteador OpenWRT como root.

PERGUNTA: * mas com o OpenBSD 5.3 os nomes de usuário de login com falha não são registrados. Por quê? Tentei definir o nível de log do SSHD como DEBUG3 (em seguida, "kill -HUP SSHDPID"), mas os nomes de usuário de logon com falha não foram registrados.

UPDATE: O "LOCATION" é o nome de login. (mas eu tentei com "-l" também, não funcionou)

ATUALIZAÇÃO: não, eu não mudei o sshd_config além:

ListenAddress 0.0.0.0
PermitRootLogin without-password
PubkeyAuthentication yes
PasswordAuthentication no
    
por gasko peter 28.05.2013 / 12:58

1 resposta

0

Configurando um log personalizado para sshd

Eu percebo que existe a opção padrão já configurada no OpenBSD para logar, então esta é uma alternativa se houver algo quebrado ou mal configurado com essa configuração!

Se você está tendo um problema com os recursos de registro regulares incluídos no OpenBSD 5.3, você pode sobrescrever onde os logs são enviados usando a seguinte modificação em seu arquivo sshd_config:

SyslogFacility LOCAL7

Em seguida, configure o syslogd para pegar essas mensagens e registrá-las em um arquivo separado:

local7.*     /var/log/local7.log

Lembre-se de reiniciar os serviços sshd e syslogd depois de fazer as alterações acima.

pam_exec

Se você quiser algo mais personalizável, convém dar a pam_exec uma aparência. Mais detalhes estão na página man pam_exec , bem como neste tutorial intitulado: Notificações de login, script pam_exec .

A ideia é simples, crie um script como este, notifique-logins:

#!/bin/sh
[ "$PAM_TYPE" = "open_session" ] || exit 0
{
  echo "User: $PAM_USER"
  echo "Ruser: $PAM_RUSER"
  echo "Rhost: $PAM_RHOST"
  echo "Service: $PAM_SERVICE"
  echo "TTY: $PAM_TTY"
  echo "Date: 'date'"
  echo "Server: 'uname -a'"
} | mail -s "'hostname -s' $PAM_SERVICE login: $PAM_USER" root

Este script pode ser adaptado para logar em um arquivo. Em seguida, você precisa adicionar esse script à sua configuração de pam:

auth [default=ignore] pam_exec.so /usr/local/bin/notify-logins

Verifique se o script acima é executável (chmod + x notificar-logins). Descobrir onde colocar a linha de pam é provavelmente a parte mais difícil com este método. Aqui está um tutorial decente que, esperamos, o colocará na direção certa.

fail2ban

Uma terceira abordagem seria usar uma ferramenta como fail2ban , que pode fazer muito mais do que registrar tentativas de login com falha. Pode reagir a eles de várias maneiras também. Há um bom tutorial aqui, intitulado: Como Proteja o SSH com o fail2ban no Ubuntu 12.04 . É voltado para o Ubuntu, mas pode ser adaptado para o OpenBSD.

Referências

por 06.06.2013 / 01:53