DYNDNS가 유료 서비스가 되면서 동적 IP 주소 문제에 대한 해결책을 찾았습니다.
OPENWRT 라우터 측(동적 IP, 이 줄은 CRON에 있음):
echo close | ssh LOCATION@SERVER -p 22 > /dev/null 2>&1
서버 측(고정 IP 사용):
on OpenBSD 5.1 I had nothing to do*
클라이언트(동적 IP/OpenWRT 라우터에 연결하려는 곳):
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
}
그런 다음 다음 명령을 사용합니다.
DYNNAMEHERE
OpenWRT 라우터에 루트로 로그인했습니다.
문제: *그러나 OpenBSD 5.3에서는 실패한 로그인 사용자 이름이 기록되지 않습니다. 왜? SSHD 로그 수준을 DEBUG3(이후: "kill -HUP SSHDPID")으로 설정하려고 시도했지만 실패한 로그인 사용자 이름이 기록되지 않았습니다.
업데이트: "위치"는 로그인 이름입니다. (하지만 "-l"도 시도했지만 성공하지 못했습니다.)
업데이트: 아니요, 다음을 제외하고는 sshd_config를 변경하지 않았습니다.
ListenAddress 0.0.0.0
PermitRootLogin without-password
PubkeyAuthentication yes
PasswordAuthentication no
답변1
SSHD에 대한 사용자 정의 로그 설정
로깅에 대한 기본 옵션이 이미 OpenBSD에 설정되어 있다는 것을 알고 있으므로 해당 설정에 문제가 있거나 잘못 구성되어 있는 경우 이것이 대안입니다!
OpenBSD 5.3에 포함된 일반 로깅 기능에 문제가 있는 경우 sshd_config 파일을 다음과 같이 수정하여 로그가 전송되는 위치를 재정의할 수 있습니다.
SyslogFacility LOCAL7
그런 다음 이러한 메시지를 가져와 별도의 파일에 기록하도록 syslogd를 구성합니다.
local7.* /var/log/local7.log
위와 같이 변경한 후 sshd 및 syslogd 서비스를 다시 시작해야 합니다.
pam_exec
좀 더 사용자 정의 가능한 것을 원한다면 pam_exec
확인해 보는 것이 좋습니다. 자세한 내용은 다음을 참조하세요.pam_exec 매뉴얼 페이지이 튜토리얼의 제목은 다음과 같습니다.로그인 알림, pam_exec 스크립트.
아이디어는 간단합니다. 예를 들어 알림 로그인과 같은 스크립트를 만듭니다.
#!/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
스크립트를 수정하여 파일에 기록할 수 있습니다. 다음으로, pam 설정에 이 스크립트를 추가해야 합니다.
auth [default=ignore] pam_exec.so /usr/local/bin/notify-logins
위 스크립트가 실행 가능한지 확인하세요(chmod +x 알림 로그인). pam 라인을 배치할 위치를 파악하는 것이 아마도 이 방법에서 가장 어려운 부분일 것입니다. 이것은좋은 튜토리얼이것이 당신이 올바른 방향으로 갈 수 있기를 바랍니다.
실패 2 금지
fail2ban
세 번째 방법은 실패한 로그인 시도를 기록하는 것 이상의 작업을 수행할 수 있는 이와 같은 도구를 사용하는 것입니다 . 또한 다양한 방식으로 반응할 수도 있습니다. 여기에는 다음과 같은 제목의 좋은 튜토리얼이 있습니다.Ubuntu 12.04에서 fall2ban을 사용하여 SSH를 보호하는 방법. Ubuntu에서 작동하지만 OpenBSD에서도 작동합니다.