(리눅스 서버 보안) 5. /etc/hosts 600 권한 설정

/etc/hosts 600 권한 설정 취약점 점검 및 조치 방법
"파일 하나의 권한 설정이 서버 전체 보안 수준을 바꿀 수 있습니다."

1. 취약점 점검 기준

/etc/hosts 파일은 로컬에서 도메인과 IP를 매핑하는 핵심 시스템 파일입니다. 이 파일이 외부 사용자에게 노출되거나 수정 가능할 경우, 악성 서버로 트래픽을 유도하는 등 심각한 보안 문제가 발생할 수 있습니다.

- 양호기준: /etc/hosts 파일의 소유자가 root이고, 권한이 600인 경우 양호합니다. - 취약기준: /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600이 아닌 경우 취약합니다.

항목기준
파일 경로/etc/hosts
권한600 (rw-------)
소유자root
취약 기준600 초과 권한 (예: 644, 666)

특히 일반 사용자 읽기 권한이 포함된 경우에도 취약으로 판단합니다. 이는 내부 네트워크 정보 노출 및 공격 경로 분석이 가능해지기 때문입니다.

2. 취약점 점검 방법 (리눅스 기준)

리눅스 환경에서 취약점 점검은 수동 점검과 자동 점검으로 나눌 수 있습니다.

✔ 2-1. 수동 점검 방법

ls -l /etc/hosts

출력 결과 예시:

-rw-r--r-- 1 root root 123 Apr 27 /etc/hosts

위와 같이 644 권한일 경우 취약 상태입니다.
정상 상태는 -rw------- 입니다.

✔ 2-2. 상세 권한 점검

stat -c "%a %n" /etc/hosts

출력 값이 600 초과이면 취약으로 판단합니다.

✔ 2-3. 자동 점검 스크립트

#!/bin/bash
perm=$(stat -c "%a" /etc/hosts)
owner=$(stat -c "%U" /etc/hosts)

if [ "$perm" -gt 600 ] || [ "$owner" != "root" ]; then
  echo "취약: 권한=$perm, 소유자=$owner"
else
  echo "양호: 설정 정상"
fi

해당 스크립트는 권한과 소유자를 동시에 점검하여 보다 정확한 보안 상태를 확인할 수 있습니다.

✔ 2-4. 시스템 전체 취약점 점검 방법

단일 파일뿐 아니라 서버 전체 취약점을 점검할 때는 아래와 같은 방법을 사용합니다.

  • find 명령어로 위험 권한 파일 탐색
  • 보안 점검 스크립트 활용 (Lynis 등)
  • 정기 점검 cron 등록
find /etc -type f -perm /022

이 명령어는 그룹/기타 사용자에게 쓰기 권한이 있는 파일을 탐지합니다.

3. 취약점 조치 방법

취약 상태로 확인되면 즉시 권한 및 소유자를 수정해야 합니다.

chmod 600 /etc/hosts
chown root:root /etc/hosts

이 설정을 통해 root만 접근 가능하도록 제한할 수 있습니다.

추가적인 보안 강화 방법은 다음과 같습니다.

  • cron 기반 자동 복구
  • 파일 변경 감시 (auditd)
  • 보안 정책 문서화
#!/bin/bash
chmod 600 /etc/hosts
chown root:root /etc/hosts

윈도우에서 서버를 원격 관리할 경우 배치 파일로도 적용 가능합니다.

ssh user@server "chmod 600 /etc/hosts && chown root:root /etc/hosts"

이러한 조치를 통해 DNS 변조, 트래픽 우회, 내부 정보 노출을 효과적으로 차단할 수 있습니다.

다음 이전