누군가 SSH 서버에 연결할 때 bash 스크립트(freebsd)를 실행하는 방법

누군가 SSH 서버에 연결할 때 bash 스크립트(freebsd)를 실행하는 방법

freeBSD 서버와 bash 스크립트가 있습니다. 이 스크립트는 ipfw의 로그 파일(무단 SSH 액세스용)을 분석하고 손상된 경우 메일로 메시지를 보냅니다. 스크립트를 cron에 넣으면 모든 것이 잘 작동합니다. 하지만 스크립트를 실시간으로 실행하려면 어떻게 해야 할까요? 아이디어는 이 활동에 대한 스크립트를 시작하는 것입니다. 따라서 누군가가 SSH를 통해 서버에 연결을 시도하면 이는 스크립트가 됩니다. 그러나 그것을 구현하는 방법은 무엇입니까? PS 테스트 작업. Fail2ban 및 이메일 전송 기능에 대해 알아보세요

답변1

sshd독립 실행 형 서비스로 실행하거나 inetd.inetdssh

# cat /root/bin/sshd.sh
#!/bin/sh
logger -i -p auth.info "Someone is trying to ssh in"
exec /usr/sbin/sshd "$@"
# ls -l /root/bin/sshd.sh
-rwx------  1 root  wheel  204 Jul 11 13:32 bin/sshd.sh*
# grep ^ssh /etc/rc.conf
sshd_enable="no"
# grep ^ssh /etc/inetd.conf
ssh     stream  tcp     nowait  root    /root/bin/sshd.sh       sshd -i -4

주변을 어지럽히면 ssh보안을 강화하기보다는 약화시킬 수 있다는 점을 기억하십시오. Fail2Ban과 같은 전용 제품이 더 나은 솔루션일 수 있습니다.

ssh또한 매우 빠른 속도로 연결을 수신하는 경우 연결이 시작될 때마다 스크립트를 실행하는 데 비용이 많이 들 수 있습니다. 이전과 마찬가지로 이로 인해 시스템 리소스가 소모되고 서비스 거부가 발생할 수 있습니다. cron 작업을 1분마다 또는 5분마다 실행하는 것이 시스템에 최소한의 지속적인 로드만 가하기 때문에 더 바람직할 수 있습니다. 연결별 스크립트 모델은 공격 압력에 비례하여 부하를 증가시킵니다 ssh.

관련 정보