본문으로 바로가기

리눅스 파일 보안

category 리눅스/Linux 일반 2013. 9. 13. 10:49

파일의 퍼미션을 777로 설정하게 되면 모든 계정 사용자들이 그 파일에 접근할 권한을 주게된다. 만약 root 소유주로 작동하는 파일에 퍼미션을 777을 부여했다면 이는 시스템을 파괴하는 열쇠를 쥐어주는 꼴이다.

UMASK 값

일반적으로 umask는 기본값으로 022를 가지나 우분투의 경우는 002의 값이 기본값이다. 웹서버와 관련된 계정의 경우에는 간혹 웹서버의 소유권한과 폴더 및 파일에 대한 퍼미션을 777 혹은 666을 요구하곤 한다. 우분투의 경우에는 www-data라는 소유권한으로 아파치의 데몬이 작동하고 웹서버의 폴더와 파일은 www-data가 소유주로 775 정도의 소유권이 적당하다. www-data의 그룹에 웹서버 계정의 사용자를 추가하여 SFTP 접속에 무리가 없도록 하는 것도 잊지 말아야 한다.

umask 값 확인하기

umask

  0002

SUID, SGID 비트 파일

SUID와 SGID가 설정되어 있는 파일이나 프로그램 또한 보안상 위험 요소이며, 정기적으로 검사해야 되는 부분이다.

SUID/SGID 찾기

sudo find / -type f \( -perm 04000 -o -perm -02000 \) -exec ls -l {} \;

검색된 결과에서 존재가 의심스러운 해당 파일을 삭제하거나 SUID/SGID를 제거하여 일반 사용자 수준에서 실행되지 못하도록 하는 것이 좋다.

sudo chmod a-s 파일명  

world-writable 파일

모든 사용자에 대해 쓰기가 허용된 파일이면 임의의 사용자가 수정 및 삭제 할수있다.

sudo find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \;

/dev 디렉토리의 장치파일과 라이브러리 파일 그리고 심볼릭 링크를 포함한 여러 파일들은 월드-라이터블 형식으로 되어 있으니 오인하지 않도록 한다.

유저 권한 없는 파일

사용자가 할당되지 않은 파일들을 찾아 제거한다.

sudo find / -nouser -o -nogroup -print

근래에는 잘 사용되지 않지만 .rhost 파일도 검사하여 삭제한다.

sudo find / -name .rhosts -print

/dev 디렉토리의 검사

과거부터 /dev 디렉토리는 크래커가 침투하여 백도어를 자주 심던 곳이다.

실행파일이 있는지 검사

sudo find /dev -type f -exec ls -l {} \;

.bash_history 점검

크래커가 침투하여 활개치고 난후, 활동한 내용의 종적을 감추기 위해 로그 파일과 히스토리 파일을 제거하는 경우가 있다. 히스토리 파일이 크기가 0 이라면 침투를 의심할 수 있다.

sudo find / -name .bash_history -exec ls -la {} \;