홈 › 리눅스 운영 › 10 / 13

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

섹션 7진행 0 / 13

6. 연습 문제

문제 1. ssh 설정 확인

현재 sshd 에 실제 적용된 root 로그인·비밀번호 인증 값을 확인하는 명령을 쓰세요.

bash
sudo sshd -T | grep -iE 'permitrootlogin|passwordauthentication'

파일 grep 이 아니라 -T 를 쓰는 이유는 중복 설정과 include 파일까지 반영된 최종 값을 보기 위해서입니다.

문제 2. SELinux 포트

자바 앱을 8081 포트로 띄웠더니 Permission denied 가 납니다. 원인 확인과 허용 명령을 쓰세요.

bash
sudo ausearch -m avc -ts recent | audit2why
sudo semanage port -a -t http_port_t -p tcp 8081

audit2why 출력에 name_bind 와 포트가 보이면 확정입니다.

문제 3. setuid 점검

/opt 아래에서 setuid 가 붙은 파일을 찾고, 있으면 제거하는 명령을 쓰세요.

bash
find /opt -xdev -type f -perm -4000
sudo chmod u-s /opt/경로/파일

/opt 의 앱 파일에 setuid 가 있을 이유는 없습니다.

문제 4. 실패 IP 상위

/var/log/secure 에서 로그인 실패가 많은 IP 5개를 세는 명령을 쓰세요.

bash
grep 'Failed password' /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -n 5

$(NF-3) 은 뒤에서 네 번째 열로, 이 로그 형식에서 IP 위치입니다.

문제 5. 기준선 비교

/etc/sudoers 와 /etc/ssh/sshd_config 의 해시 기준선을 만들고 다음 달 비교하는 명령을 쓰세요.

bash
sudo sha256sum /etc/sudoers /etc/ssh/sshd_config > /var/lib/baseline.sha256
sudo sha256sum -c /var/lib/baseline.sha256

FAILED 가 나오면 그 파일의 변경 이력을 sudo 로그에서 찾습니다.