✔️ [작성 코드]
#!/bin/bash
set -euo pipefail
REPORT=~/reports/w2_final_$(date +%Y%m%d).txt
mkdir -p ~/reports
log() { echo "[$(date +%H:%M:%S)] $1" | tee -a $REPORT; }
ok() { echo " ✅ $1" | tee -a $REPORT; }
warn(){ echo " ⚠️ $1" | tee -a $REPORT; }
log "=== 보안 점검 $(date) ==="
# SSH 보안 점검
log "--- SSH 보안 ---"
grep -q "PermitRootLogin no" /etc/ssh/sshd_config && ok "Root 로그인 차단" || warn "Root 로그인 허용됨"
grep -q "PasswordAuthentication no" /etc/ssh/sshd_config && ok "키 인증만 허용" || warn "비밀번호 인증 허용됨"
systemctl is-active --quiet fail2ban && ok "Fail2Ban 실행 중" || warn "Fail2Ban 미실행"
# 네트워크 점검
log "--- 네트워크 ---"
OPEN_PORTS=$(ss -tlnp | grep LISTEN | wc -l)
log "열린 포트 수: $OPEN_PORTS"
ss -tlnp | grep LISTEN | tee -a $REPORT
# 웹 서버 점검
if systemctl is-active --quiet apache2 2>/dev/null; then
log "--- Apache 보안 ---"
curl -sI http://localhost | grep "Server:" | grep -q "Apache$" && ok "버전 숨김" || warn "버전 노출됨"
fi
# 최근 침입 시도
log "--- 침입 시도 ---"
FAIL=$(grep -c "Failed" /var/log/auth.log 2>/dev/null || echo 0)
log "SSH 실패: $FAIL 건"
[ "$FAIL" -gt 100 ] && warn "SSH 공격 의심!" || ok "정상 범위"
log "=== 점검 완료: $REPORT ==="
✔️ [실행 결과]
- root 로그인이 허용되는 것을 알 수 있어 취약하다고 판단

✔️ [보완]
'보안 관제' 카테고리의 다른 글
| 패킷 분석 도구 tcpdump, Wireshark, tshark (0) | 2026.06.23 |
|---|---|
| 침해사고 대응 자동화 스크립트 (0) | 2026.06.22 |
| Lynis (0) | 2026.06.22 |
| [보안 관제] 로그 파일 보안 분석 (0) | 2026.06.09 |