홈 › 리눅스 운영 › 10 / 13

보안 기초 (ssh 강화·SELinux·감사 로그)

섹션 7진행 0 / 13

4. 응용 변형 예제

4.1 월간 점검 cron

text
0 6 1 * *  root  bash /opt/tools/01_security_check.sh > /var/log/security-check.$(date +\%Y\%m).log 2>&1

매월 1일 결과를 파일로 남깁니다. 운영 묶음 06 의 cron 규칙대로 % 를 이스케이프했습니다.

4.2 ssh 포트 변경과 방화벽

bash
sudo sed -i 's/^#\?Port .*/Port 2222/' /etc/ssh/sshd_config
sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo firewall-cmd --add-port=2222/tcp --permanent && sudo firewall-cmd --reload
sudo sshd -t && sudo systemctl reload sshd

SELinux 포트 허용을 빼먹으면 sshd 가 뜨지 않습니다. 기존 세션을 유지한 채 새 포트로 접속을 확인한 뒤 22 를 닫습니다.

4.3 앱 계정의 접근 범위 확인

bash
sudo -u myapp ls /etc/shadow 2>&1           # Permission denied 가 정상
sudo -u myapp cat /opt/myapp/conf/env       # 앱 계정은 읽어야
ls -l /opt/myapp/conf/env                   # 600 myapp

앱이 뚫렸을 때 공격자가 얻는 것이 myapp 계정 범위라는 것을 직접 확인합니다.

4.4 반입 파일 검사

bash
sha256sum -c app.jar.sha256
unzip -l app.jar | grep -iE '\.(sh|so|exe)
  

     # jar 안 실행 파일 의심
rpm -K pkg.rpm                                   # rpm 서명 확인

체크섬은 손상을, 서명은 출처를 확인합니다. jar 안에 셸 스크립트나 네이티브 라이브러리가 있으면 빌드 담당자에게 이유를 묻습니다.

4.5 계정 잠금과 만료

bash
sudo usermod -L kim                      # 잠금
sudo usermod -U kim                      # 해제
sudo chage -E 2026-12-31 contractor      # 만료일
sudo chage -l kim                        # 비밀번호 정책 보기

퇴사·계약 종료 계정은 삭제 전에 잠급니다. 그 계정 소유 파일이 nouser 로 남는 것을 막기 위해 삭제는 파일 소유권 정리 후에 합니다.