현상
리눅스 시스템에서 /tmp 디렉토리가 777 권한과 실행 허용 상태일 시, 악성 스크립트나 실행파일이 쉽게 저장되고 실행될 수 있는 등 아래와 같은 보안 위협이 발생할 수 있습니다.
•
악성코드 실행
•
권한 상승(SUID)
•
장치 파일 접근(device file 등)
참고
•
777 권한: 모든 사용자 읽기/쓰기/실행 가능
•
/tmp: 시스템/사용자/애플리케이션이 임시 파일을 저장하는 표준 경로
원인
리눅스 시스템에서는 /tmp 디렉토리가 기본적으로 777 권한으로 설정되어 보안 취약 지점이 됩니다.
해결
보안 마운트 옵션을 /tmp에 설정함으로써 보안을 강화할 수 있습니다.
noexec, nosuid, nodev 옵션을 설정해 실행 및 권한 상승, 장치 접근을 차단하고 /var/tmp도 /tmp로 연결하여 보안 설정을 통합 적용할 것을 권장합니다.
보안 마운트 옵션
•
nodev : 장치 파일 무효화 (예: /dev/null 등의 접근 차단)
•
nosuid : SUID(권한 상승) 기능 차단
•
noexec : 실행 파일 직접 실행 차단 (예: ./파일 실행 불가)
적용 방법
Case 1. /tmp가 별도 파티션인 경우
1.
/etc/fstab에 아래의 라인을 추가합니다.
UUID=<tmp 디스크 UUID> /tmp ext4 defaults,nodev,nosuid,noexec 0 0
SQL
복사
2.
/var/tmp → /tmp 심볼릭 링크를 설정합니다.
ln -s /tmp /var/tmp
SQL
복사
3.
재부팅 또는 mount -a 명령어를 실행합니다.
Case 2. /tmp가 별도 파티션이 아닐 경우 (가상 디스크 구성)
1.
임시 디스크 파일 생성 및 포맷합니다.
dd if=/dev/zero of=/var/tmpmount bs=1 count=0 seek=1G
mkfs.ext4 /var/tmpmount
SQL
복사
2.
/etc/fstab에 아래의 라인을 추가합니다.
/var/tmpmount /tmp ext4 defaults,nodev,nosuid,noexec 0 0
SQL
복사
3.
마운트 및 권한을 설정합니다.
mount -o defaults,nodev,nosuid,noexec /var/tmpmount /tmp
chmod 0777 /tmp
SQL
복사
4.
/var/tmp → /tmp 심볼릭 링크 설정합니다.
ln -s /tmp /var/tmp
SQL
복사
참고
•
noexec 옵션을 설정하면 /tmp 디렉토리에서 직접 실행(예: ./파일명)이 차단됩니다.
•
일부 시스템/스크립트가 /tmp를 실행 경로로 사용할 경우, 실행 차단으로 인해 동작이 안 될 수 있으므로 사전 테스트를 권장합니다.
•
/var/tmp를 기존에 사용하고 있다면, 링크 설정 전 데이터 백업이 필요합니다.