겉바속촉

Unix 서버 2. 파일 및 디렉터리 관리 본문

IT 일기 (상반기)/주요정보통신기반시설

Unix 서버 2. 파일 및 디렉터리 관리

겉바속촉 2021. 10. 14. 15:46
728x90
반응형

주요정보통신기반시설_Unix 서버

2. 파일 및 디렉토리 관리

 

 

사용환경

UBUNTU : 20.04

 

 

 

2.1 root홈, 패스 디렉터리 권한 및 패스 설정

 


양호 : PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되지 않은 경우

취약 : PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되어 있는 경우

 

***참고***

환경변수: 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 집합 으로 Path 환경변수는 실행파일을 찾는 경로에 대한 변수임

 

 

 

 

2.2 파일 및 디렉터리 소유자 설정

 

 

양호 : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하지 않는 경우

취약 : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하는 경우

 

소유자가 존재하지 않는 파일 및 디렉터리는 퇴직자의 자료이거나 관리 소홀로 인해 생긴 파일인 경우 또는 해킹으로 인한 공격자가 만들어 놓은 악의적인 파일인 경우가 있기 때문에 삭제 및 관리해야 합니다.

 

 

-nouser : 소유주가 없는 파일 검색(사용자 계정을 삭제했을 경우 사용자가 생성한 파일들을 남기는 경우 존재)  

-nogroup : 소유그룹이 없는 파일 검색



 

소유자가 존재하지 않는 파일이나 디렉터리가 불필요한 경우 rm 명령으로 삭제해주거나

필요한 경우 chown 명령으로 소유자 및 그룹 변경

 

 

 

***시행착오***

가이드에 나온 대로 명령 그대로 쳐서 디렉토리 제거 명령을 파일 제거 명령이랑 동일하게 주었음

- 디렉터리 제거 : rm -r 디렉터리명

- 파일 제거 : rm 파일명

 

 

 

 

2.3 /etc/passwd 파일 소유자 및 권한 설정

 

 

양호 : /etc/passwd 파일의 소유자가 root이고, 권한이 644 이하인 경우

취약 : /etc/passwd 파일의 소유자가 root가 아니거나, 권한이 644 이하가 아닌 경우

 

관리자(root) 외 사용자가 "/etc/passwd” 파일의 사용자 정보를 변조하여 shell 변경, 사용자 추가/삭제 등 root를 포함한 사용자 권한 획득이 가능할 수 있기 때문에 권한을 변경해주어야합니다.

 

 

- 소유자 변경 : #chown root /etc/passwd

- 권한 변경 : #chmod 644 /etc/passwd

 

 

***참고***

/etc/passwd: 사용자의 ID, 패스워드, UID, GID, 홈 디렉터리, 쉘 정보를 담고 있는 파일

 

 

 

 

 

 

2.4 /etc/shadow 파일 소유자 및 권한 설정

 

 

양호 : /etc/shadow 파일의 소유자가 root이고, 권한이 400 이하인 경우

취약 : /etc/shadow 파일의 소유자가 root가 아니거나, 권한이 400 이하가 아닌 경우

 

 

 

 

위에 제시된 파일 및 디렉터리의 소유자가 root가 아니거나 파일의 권한이 400이 아닌 경우라면

 

단계1. “/etc/shadow” 파일의 소유자 및 권한 확인

단계2. “/etc/shadow” 파일의 소유자 및 권한 변경 (소유자 root, 권한 400)

 

 

 

***참고***

/etc/shadow: 시스템에 등록된 모든 계정의 패스워드를 암호화된 형태로 저장 및 관리 하고 있는 파일

shadow파일은 패스워드를 암호화하여 저장하는 파일이며 해당 파일의 암호화된 해쉬값을 복호화하여(크래킹) 비밀번호를 탈취할 수 있음

 

 

 

 

 

2.5 /etc/hosts 파일 소유자 및 권한 설정

 

 

양호 : /etc/hosts 파일의 소유자가 root이고, 권한이 600인 이하인 경우

취약 : /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600 이상인 경우

 

 

# ls –l /etc/hosts 로 확인

“hosts” 파일의 소유자가 root가 아니거나 파일의 권한이 600이하가 아닌 경우 아 래의 보안설정방법에 따라 설정을 변경함

- 파일 소유자 변경 : #chown root /etc/hosts

- 파일 권한 변경 : #chmod 600 /etc/hosts

 

 

***참고***

- /etc/hosts: IP 주소와 호스트네임을 매핑하는 파일. 일반적으로 인터넷 통신 시 주소를 찾기 위해 도메인 네임 서비스(DNS)보다 hosts 파일을 먼저 참조함. hosts 파일은 문 자열 주소로부터 IP 주소를 수신받는 DNS 서버와는 달리, 파일 내에 직접 문자열 주소 와 IP 주소를 매칭하여 기록하며, DNS 서버 접근 이전에 확인하여 해당 문자열 주소가 목록에 존재할 시 그 문자열 주소에 해당하는 IP 주소로 연결함

 

- 파밍(Pharming): 사용자의 DNS 또는 hosts 파일을 번조함으로써 정상적인 사이트로 오인하여 접속하도록 유도한 뒤 개인정보를 훔치는 새로운 컴퓨터 범죄 수법

 

 

 

 

 

2.6 /etc/(x)inetd.conf 파일 소유자 및 권한 설정

 

 

양호 : /etc/inetd.conf 파일의 소유자가 root이고, 권한이 600인 경우

취약 : /etc/inetd.conf 파일의 소유자가 root가 아니거나, 권한이 600이 아닌 경우

 

 

 

 

***참고***

(x)inetd (슈퍼데몬) : 자주 사용하지 않는 서비스가 상시 실행되어 메모리를 점유하는 것을 방지하기 위해 (x)inetd(슈퍼대몬)에 자주 사용하지 않는 서비스를 등록하여 요청 이 있을시에만 해당 서비스를 실행하고 요청이 끝나면 서비스를 종료하는 역할 수행

 

 

***시행착오***

아무리 뒤져봐도 안나오길래 구글링했더니 요새는 잘 쓰지않아서 설치해야된다는 것 보고 패...th

 

 

 

 

 

2.7 /etc/syslog.conf 파일 소유자 및 권한 설정

 

 

양호 : /etc/syslog.conf 파일의 소유자가 root(또는 bin, sys)이고, 권한이 640 이하인 경우

취약 : /etc/syslog.conf 파일의 소유자가 root(또는 bin, sys)가 아니거나, 권한이 640 이하가 아닌 경우

 

 

syslog.conf 파일의 설정내용을 참조하여 로그의 저장위치가 노출되며 로그를 기록하지 않도록 설정하거나 대량의 로그를 기록하게 하여 시스템 과부하를 유도할 수 있기 때문에 /etc/syslog.conf 파일의 권한 적절성을 점검하는 것입니다.

 

 

***참고***

 /etc/syslog.conf : syslogd 데몬 실행시 참조되는 설정파일로 시스템 로그 기록의 종류, 위치 및 Level을 설정할 수 있음 

 

 

***시행착오***

가이드에 나온 syslog.conf 파일을 찾을래야 찾을 수가 없어서 검색해보니 리눅스가 원래는 로그와 관련된 패키지로 syslog를 사용했지만 rsyslog로 기능을 강화시킨 패키지로 전환이 됐다고합니다 팍쒸............ (╬▔皿▔)╯

 

 

 

 

 

2.8 /etc/services 파일 소유자 및 권한 설정

 

 

양호 : etc/services 파일의 소유자가 root(또는 bin, sys)이고, 권한이 644 이하 인 경우

취약 : etc/services 파일의 소유자가 root(또는 bin, sys)가 아니거나, 권한이 644 이하가 아닌 경우

 

아니라면 /etc/services” 파일의 소유자 및 권한 변경 (소유자 root, 권한 644) 시켜주세요

 

 

 

 

2.9 SUID, SGID, 설정 파일점검

 

 

양호 : 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있지 않은 경우

취약 : 주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있는 경우

 

주요 파일에 불필요한 SUID/SGID가 설정된 경우 아래의 보안설정방법에 따라 SUID/SGID를 제거해주어야합니다.

 

 

 

***참고***

※ SUID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한을 얻게 됨

※ SGID: 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨

 

 

 

 

 

 

2.10 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정

 

 

양호 : 홈 디렉터리 환경변수 파일 소유자가 root 또는, 해당 계정으로 지정되어 있고,
         홈 디렉터리 환경변수 파일에 root와 소유자만 쓰기 권한이 부여 된 경우

취약 : 홈 디렉터리 환경변수 파일 소유자가 root 또는, 해당 계정으로 지정되지 않고,
         홈 디렉터리 환경변수 파일에 root와 소유자 외에 쓰기 권한이 부여된 경우

 

 

※ 환경변수 파일 종류: “.profile”, “.kshrc”, “.cshrc”, “.bashrc”, “.bash_profile”, “.login", “.exrc”, “.netrc” 등

 

이걸 한번보도록 할게요 

/etc/bash.bashrc --> 환경변수 파일 중 하나겠쥬?

 

 

하지만 변경해야되는 경우라면

 

소유자 변경 방법 : #chown  USER이름  FILE이름

일반 사용자 쓰기 권한 제거 방법 : #chmod o-w FILE이름

 

 

 

 

 

 

 

2.11 world writable 파일 점검

 

 

양호 : 시스템 중요 파일에 world writable 파일이 존재하지 않거나, 존재 시 설정 이유를 확인하고 있는 경우

취약 : 시스템 중요 파일에 world writable 파일이 존재하나, 해당 설정 이유를 확인하고 있지 않는 경우

 

 

***참고사항***

※ world writable 파일: 파일의 내용을 소유자나 그룹 외 모든 사용자에 대해 쓰기가 허용된 파일

(예 : rwxrwxrwx root root <파일명>)

 

 

단계1. world writable 파일 존재 여부 확인

 --> #find / -type f -perm –2 –exec ls –l {} \;

 --> 다음과 같이 주르르르륵 나와서 당황

 

단계2. 권한 제거 또는 파일 삭제

권한 제거 : 일반 사용자 쓰기 권한 제거 방법 --> #chmod o-w 

파일삭제 : 삭제 방법 --> #rm -rf 

 

 

 

 

 

2.12 /dev에 존재하지 않는 device 파일 점검

 

 

양호 : dev에 대한 파일 점검 후 존재하지 않은 device 파일을 제거한 경우

취약 : dev에 대한 파일 미점검 또는, 존재하지 않은 device 파일을 방치한 경우

 

 

***참고***

/dev 디렉터리

- 논리적 장치 파일을 담고 있는 /dev 디렉터리 /devices 디렉터리에 있는 물리적 장치 파일에 대한 심볼릭 링크

예를 들어 rmt0를 rmto로 잘못 입력한 경우 rmto 파일이 새로 생성되는 것과 같이 디바이스 이름 입력 오류 시 root 파일 시스템이 에러를 일으킬 때까지 /dev 디렉터리에 계속해서 파일을 생성함

- /dev 디렉터리 내 불필요한 device 파일이 존재할 시 삭제 권고

 

#find /dev –type f –exec ls –l {} \;

 

 

 

 

 

2.13 $HOME/.rhosts, hosts.equiv 사용 금지

 

 

양호 : login, shell, exec 서비스를 사용하지 않거나, 사용 시 아래와 같은 설정이 적용된 경우

1. /etc/hosts.equiv 및 $HOME/.rhosts 파일 소유자가 root 또는, 해당 계정인 경우

2. /etc/hosts.equiv 및 $HOME/.rhosts 파일 권한이 600 이하인 경우

3. /etc/hosts.equiv 및 $HOME/.rhosts 파일 설정에 ‘+’ 설정이 없는 경우

 

취약 : login, shell, exec 서비스를 사용하고, 위와 같은 설정이 적용되지 않은 경우

 

 

파일 아무리 찾아도 없음

패TH

 

 

 

 

2.14 접속 IP 및 포트 제한

 

 

양호 : 접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정한 경우

취약 : 접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정하지 않은 경우

 

 

***참고 사항***

[접속 IP 및 포트제한 애플리케이션 종류 예시]

※ TCP Wrapper: 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링 할 수 있는 UNIX 기반의 방화벽 툴

※ IPFilter: 유닉스 계열에서 사용하는 공개형 방화벽 프로그램으로써 Packet Filter로 시스 템 및 네트워크 보안에 아주 강력한 기능을 보유한 프로그램

※ IPtables: 리눅스 커널 방화벽이 제공하는 테이블들과 그것을 저장하는 체인, 규칙들을 구성할 수 있게 해주는 응용프로그램

 

허용할 호스트에 대한 IP 및 포트제한이 적용되지 않은 경우, Telnet, FTP같 은 보안에 취약한 네트워크 서비스를 통하여 불법적인 접근 및 시스템 침해 사고가 발생할 수 있기 때문에 허용한 호스트만 서비스 사용이 가능하게 합니다.

 

 

All deny 적용 확인 및 접근 허용 IP 적절성 확인

 

Step 1) iptables 명령어를 통해 접속할 IP 및 포트 정책 추가

(예) SSH 서비스 제한

#iptables –A INPUT –p tcp –s 192.168.1.0/24 —dport 22 –j ACCEPT

#iptables -A INPUT -p tcp --dport 22 -j DROP

 

Step 2) iptables 설정 저장 #/etc/rc.d/init.d/iptables save

 

 

cat /etc/hosts.deny

cat /etc/hosts.allow

 

Step 1) vi 편집기를 이용하여 “/etc/hosts.deny” 파일 열기 (해당 파일이 없을 경우 새로 생성)

Step 2) 아래와 같이 수정 또는, 신규 삽입 (ALL Deny 설정)

(수정 전) 설정 없음

(수정 후) ALL:ALL

Step 3) vi 편집기를 이용하여 “/etc/hosts.allow” 파일 열기 (해당 파일이 없을 경우 생성)

(수정 전) 설정 없음

(수정 후) sshd : 192.168.0.148, 192.168.0.6 (다른 서비스도 동일한 방식으로 설정)

728x90
반응형

'IT 일기 (상반기) > 주요정보통신기반시설' 카테고리의 다른 글

Unix 서버 3. 서비스 관리(2)  (0) 2021.10.15
Unix 서버 3. 서비스 관리(1)  (1) 2021.10.15
Unix 서버 1. 계정 관리  (0) 2021.10.13
Unix 서버  (0) 2021.10.13
Windows 서버 5. 보안 관리  (0) 2021.10.10