차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
서비스_관리 [2022/01/17 02:34] – fatp11th | 서비스_관리 [2022/01/18 00:59] (현재) – [Apache 웹 서비스 정보 숨김] fatp11th | ||
---|---|---|---|
줄 962: | 줄 962: | ||
점검방법 | 점검방법 | ||
Options 지시자 FollowSymLinks 옵션 제거 여부 확인 | Options 지시자 FollowSymLinks 옵션 제거 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
Options Indexes FollowSymLinks | Options Indexes FollowSymLinks | ||
+ | </ | ||
+ | </ | ||
+ | |||
위에 제시한 옵션이 적용되어 있는 경우 아래의 보안설정방법에 따라 옵션을 제거함 | 위에 제시한 옵션이 적용되어 있는 경우 아래의 보안설정방법에 따라 옵션을 제거함 | ||
- | Step 1) vi 편집기를 이용하여 / | + | |
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 2) 설정된 모든 디렉터리의 Options 지시자에서 FollowSymLinks 옵션 제거 | Step 2) 설정된 모든 디렉터리의 Options 지시자에서 FollowSymLinks 옵션 제거 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
| | ||
< | < | ||
- | Options Indexes FollowSymLinks | + | Options Indexes FollowSymLinks |
- | | + | |
- | Order allow, deny | + | |
- | Allow from all | + | |
</ | </ | ||
+ | |||
(수정 후) Options 지시자에 FollowSymLinks 삭제 또는 -FollowSymLinks 변경 후 저장 | (수정 후) Options 지시자에 FollowSymLinks 삭제 또는 -FollowSymLinks 변경 후 저장 | ||
< | < | ||
- | Options FollowSymLinks 삭제 또는 -FollowSymLinks | + | Options FollowSymLinks 삭제 또는 -FollowSymLinks |
- | | + | |
- | Order allow, deny | + | |
- | Allow from all | + | |
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====웹서비스 파일 업로드 및 다운로드 제한==== | ====웹서비스 파일 업로드 및 다운로드 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
기반시설 특성상 원칙적으로 파일 업로드 및 다운로드를 금지하고 있지만 불가피하게 필요시 용량 사이즈를 제한함으로써 불필요한 업로드와 다운로드를 방지해 서버의 과부하 예방 및 자원을 효율적으로 관리하기 위함 | 기반시설 특성상 원칙적으로 파일 업로드 및 다운로드를 금지하고 있지만 불가피하게 필요시 용량 사이즈를 제한함으로써 불필요한 업로드와 다운로드를 방지해 서버의 과부하 예방 및 자원을 효율적으로 관리하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
악의적 목적을 가진 사용자가 반복 업로드 및 웹 쉘 공격 등으로 시스템 권한을 탈취하거나 대용량 파일의 반복 업로드로 서버자원을 고갈시키는 공격의 위험이 있음 | 악의적 목적을 가진 사용자가 반복 업로드 및 웹 쉘 공격 등으로 시스템 권한을 탈취하거나 대용량 파일의 반복 업로드로 서버자원을 고갈시키는 공격의 위험이 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
LimitRequestBody 파일 사이즈 용량 제한 설정 여부 확인 | LimitRequestBody 파일 사이즈 용량 제한 설정 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
LimitRequestBody 5000000 | LimitRequestBody 5000000 | ||
(※ 업로드 및 다운로드 파일이 5M를 넘지 않도록 설정 권고함) | (※ 업로드 및 다운로드 파일이 5M를 넘지 않도록 설정 권고함) | ||
+ | </ | ||
+ | </ | ||
+ | |||
위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | 위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | ||
- | Step 1) vi 편집기를 이용하여 / | + | |
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 2) 설정된 모든 디렉터리의 LimitRequestBody 지시자에서 파일 사이즈 용량 제한 설정 | Step 2) 설정된 모든 디렉터리의 LimitRequestBody 지시자에서 파일 사이즈 용량 제한 설정 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
예) | 예) | ||
< | < | ||
LimitRequestBody 5000000 (※ “/” 는 모든 파일 사이즈를 5M로 제한하는 설정 단위: | LimitRequestBody 5000000 (※ “/” 는 모든 파일 사이즈를 5M로 제한하는 설정 단위: | ||
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====웹서비스 영역의 분리==== | ====웹서비스 영역의 분리==== | ||
+ | |||
점검목적 | 점검목적 | ||
웹 서비스 영역과 시스템 영역을 분리시켜서 웹 서비스의 침해가 시스템 영역으로 확장될 가능성을 최소화하기 위함 | 웹 서비스 영역과 시스템 영역을 분리시켜서 웹 서비스의 침해가 시스템 영역으로 확장될 가능성을 최소화하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
웹 서버의 루트 디렉터리와 OS의 루트 디렉터리를 다르게 지정하지 않았을 경우, 비인가자가 웹 서비스를 통해 해킹이 성공할 경우 시스템 영역까지 접근이 가능하여 피해가 확장될 수 있음 | 웹 서버의 루트 디렉터리와 OS의 루트 디렉터리를 다르게 지정하지 않았을 경우, 비인가자가 웹 서비스를 통해 해킹이 성공할 경우 시스템 영역까지 접근이 가능하여 피해가 확장될 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
DocumentRoot의 별도 디렉터리 지정 여부 확인 | DocumentRoot의 별도 디렉터리 지정 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
#vi / | #vi / | ||
DocumentRoot "/ | DocumentRoot "/ | ||
DocumentRoot "/ | DocumentRoot "/ | ||
DocumentRoot "/ | DocumentRoot "/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
DocumentRoot가 별도의 디렉터리로 지정되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | DocumentRoot가 별도의 디렉터리로 지정되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 | ||
- | Step 1) vi 편집기를 이용하여 / | + | |
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
- | Step 2) DocumentRoot 설정 부분에 | + | </ |
- | "/ | + | </ |
+ | |||
+ | Step 2) DocumentRoot 설정 부분에 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | DocumentRoot " | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====ssh 원격접속 허용==== | ====ssh 원격접속 허용==== | ||
+ | |||
점검목적 | 점검목적 | ||
- | 비교적 안전한 SSH 프로토콜을 사용함으로써 스니핑 등 아이디/ | + | 비교적 안전한 SSH 프로토콜을 사용함으로써 스니핑 등 아이디/ |
보안위협 | 보안위협 | ||
원격 접속 시 Telnet, FTP 등은 암호화되지 않은 상태로 데이터를 전송하기 때문에 아이디/ | 원격 접속 시 Telnet, FTP 등은 암호화되지 않은 상태로 데이터를 전송하기 때문에 아이디/ | ||
+ | |||
점검방법 | 점검방법 | ||
+ | |||
Step 1) SSH 서비스 활성화 명령어 실행 | Step 1) SSH 서비스 활성화 명령어 실행 | ||
- | # | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #service sshd start | ||
+ | 또는 | ||
+ | #service ssh start | ||
+ | 또는 | ||
+ | #systemctl start sshd | ||
+ | </ | ||
+ | </ | ||
Step 2) SSH 설치가 필요할 경우 각 OS 벤더사로부터 SSH 서비스 설치 방법을 문의한 후 서버에 설치 | Step 2) SSH 설치가 필요할 경우 각 OS 벤더사로부터 SSH 서비스 설치 방법을 문의한 후 서버에 설치 | ||
\\ | \\ | ||
====ftp 서비스 확인==== | ====ftp 서비스 확인==== | ||
+ | |||
점검목적 | 점검목적 | ||
취약한 서비스인 FTP서비스를 가급적 제한함을 목적으로 함 | 취약한 서비스인 FTP서비스를 가급적 제한함을 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
FTP 서비스는 통신구간이 평문으로 전송되어 계정정보(아이디, | FTP 서비스는 통신구간이 평문으로 전송되어 계정정보(아이디, | ||
+ | |||
점검방법 | 점검방법 | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
일반 ftp 서비스 비활성화 여부 확인 | 일반 ftp 서비스 비활성화 여부 확인 | ||
#ps -ef | grep ftp | #ps -ef | grep ftp | ||
- | vsftpd 또는 ProFTP 서비스 데몬 확인(vsftpd, | + | |
- | 확인) | + | vsftpd 또는 ProFTP 서비스 데몬 확인(vsftpd, |
#ps -ef | egrep " | #ps -ef | egrep " | ||
root 3809 3721 0 08:44:40 ? 0:00 / | root 3809 3721 0 08:44:40 ? 0:00 / | ||
+ | </ | ||
+ | </ | ||
+ | |||
불필요한 " | 불필요한 " | ||
+ | |||
vsftpd 또는 ProFTP 서비스 데몬 중지 | vsftpd 또는 ProFTP 서비스 데몬 중지 | ||
- | # service vsftpd(proftp) stop 또는 / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | # service vsftpd(proftp) stop | ||
+ | 또는 | ||
+ | #/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====ftp 계정 shell 제한==== | ====ftp 계정 shell 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
FTP 서비스 설치 시 기본으로 생성되는 ftp 계정은 로그인이 필요하지 않은 계정으로 쉘을 제한하여 해당 계정으로의 시스템 접근을 차단하기 위함 | FTP 서비스 설치 시 기본으로 생성되는 ftp 계정은 로그인이 필요하지 않은 계정으로 쉘을 제한하여 해당 계정으로의 시스템 접근을 차단하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
불필요한 기본 계정에 쉘(Shell)을 부여할 경우, 공격자에게 해당 계정이 노출되어 ftp 기본 계정으로 시스템 접근하여 공격이 가능해짐 | 불필요한 기본 계정에 쉘(Shell)을 부여할 경우, 공격자에게 해당 계정이 노출되어 ftp 기본 계정으로 시스템 접근하여 공격이 가능해짐 | ||
+ | |||
점검방법 | 점검방법 | ||
- | ftp 계정에 대한 /bin/false 부여 확인 | + | ftp 계정에 대한 |
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat /etc/passwd | #cat /etc/passwd | ||
ftp: | ftp: | ||
USER:/ | USER:/ | ||
- | "passwd" | + | </ |
- | Step 1) vi 편집기를 이용하여 | + | </ |
- | Step 2) ftp 계정의 로그인 쉘 부분인 계정 맨 마지막에 /bin/false 부여 및 변경 | + | |
+ | '' | ||
+ | |||
+ | Step 1) vi 편집기를 이용하여 | ||
+ | |||
+ | Step 2) ftp 계정의 로그인 쉘 부분인 계정 맨 마지막에 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
| | ||
| | ||
- | Step 3) # usermod –s /bin/false [계정ID] 부여로 변경 가능 | + | </code> |
- | * Step 2 로 적용이 되지 않을 경우는 | + | </WRAP> |
+ | |||
+ | Step 3) Step 2 로 적용이 되지 않을 경우는 usermod 명령어를 사용하여 쉘 변경 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # usermod –s /bin/false [계정ID] 부여로 변경 가능 | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====Ftpusers 파일 소유자 및 권한 설정==== | ====Ftpusers 파일 소유자 및 권한 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
- | 비인가자들의 ftp 접속을 차단하기 위해 ftpusers 파일 소유자 및 권한을 관리해야함 | + | 비인가자들의 ftp 접속을 차단하기 위해 ftpusers 파일 소유자 및 권한을 관리해야함 |
보안위협 | 보안위협 | ||
ftpusers 파일에 인가되지 않은 사용자를 등록하여 해당 계정을 이용, 불법적인 FTP 서비스에 접근이 가능함 | ftpusers 파일에 인가되지 않은 사용자를 등록하여 해당 계정을 이용, 불법적인 FTP 서비스에 접근이 가능함 | ||
+ | |||
점검방법 | 점검방법 | ||
ftpusers 파일에 대한 일반사용자 쓰기권한 확인 | ftpusers 파일에 대한 일반사용자 쓰기권한 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ls -al / | #ls -al / | ||
#ls -al / | #ls -al / | ||
rw-r----- root < | rw-r----- root < | ||
+ | </ | ||
+ | </ | ||
+ | |||
“ftpusers" | “ftpusers" | ||
+ | |||
FTP 종류 별 ftpusers 파일 위치 | FTP 종류 별 ftpusers 파일 위치 | ||
- | 기본 FTP / | + | 기본 FTP '' |
- | ProFTP / | + | ProFTP |
- | vsFTP / | + | vsFTP '' |
- | Step 1) “/ | + | |
- | #ls -l / | + | Step 1) '' |
- | Step 2) “/ | + | <WRAP prewrap> |
- | # | + | <code bash> |
- | # | + | #ls -l / |
+ | </ | ||
+ | </ | ||
+ | |||
+ | Step 2) '' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #chown root / | ||
+ | #chmod 640 / | ||
+ | </ | ||
+ | </ | ||
※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ||
- | (1) vsftpd.conf 파일에서 userlist_enable=YES인 경우: vsftpd.ftpusers, | + | (1) '' |
- | ftpusers, user_list 파일의 소유자 및 권한 확인 후 변경 | + | |
| | ||
- | (2) vsftpd.conf 파일에서 userlist_enable=NO 또는, 옵션 설정이 없는 경우: vsftpd.ftpusers | + | (2) '' |
- | 또는 ftpusers 파일의 소유자 및 권한 확인 후 변경 | + | |
| | ||
\\ | \\ | ||
====Ftpusers 파일 설정==== | ====Ftpusers 파일 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
root의 FTP 직접 접속을 방지하여 root 패스워드 정보를 노출되지 않도록 하기 위함 | root의 FTP 직접 접속을 방지하여 root 패스워드 정보를 노출되지 않도록 하기 위함 | ||
+ | |||
보안위협 | 보안위협 | ||
FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 스니핑에 의해서 관리자 계정의 아이디 및 패스워드가 노출될 수 있음 | FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 스니핑에 의해서 관리자 계정의 아이디 및 패스워드가 노출될 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
아래 파일에서 ftp에 대한 root 계정으로의 접속 가능 여부 확인 | 아래 파일에서 ftp에 대한 root 계정으로의 접속 가능 여부 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat / | #cat / | ||
#cat / | #cat / | ||
#root (주석처리) 또는, root 계정 미등록 | #root (주석처리) 또는, root 계정 미등록 | ||
+ | </ | ||
+ | </ | ||
+ | |||
ProFTP | ProFTP | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat / | #cat / | ||
RootLogin on | RootLogin on | ||
+ | </ | ||
+ | </ | ||
+ | |||
vsFTP | vsFTP | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat / | #cat / | ||
#cat / | #cat / | ||
줄 1111: | 줄 1250: | ||
#cat / | #cat / | ||
#root (주석처리) 또는, root 계정 미등록 | #root (주석처리) 또는, root 계정 미등록 | ||
+ | </ | ||
+ | </ | ||
+ | |||
root 계정으로 FTP 접속이 가능하도록 위와 같이 설정된 경우 아래의 보안설정방법에 따라 설정을 변경함 | root 계정으로 FTP 접속이 가능하도록 위와 같이 설정된 경우 아래의 보안설정방법에 따라 설정을 변경함 | ||
+ | |||
< 일반 FTP 서비스 root 계정 접속 제한 방법 > | < 일반 FTP 서비스 root 계정 접속 제한 방법 > | ||
- | Step 1) vi 편집기를 이용하여 ftpusers 파일 열기 (“/ | + | Step 1) vi 편집기를 이용하여 |
- | #vi / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | ||
- | (수정 전) #root 또는, root 계정 미등록 | + | <WRAP prewrap> |
- | | + | <code bash> |
+ | (수정 전) #root 또는, root 계정 미등록 | ||
+ | (수정 후) root | ||
+ | </ | ||
+ | </ | ||
< ProFTP 서비스 ROOT 접속 차단 > | < ProFTP 서비스 ROOT 접속 차단 > | ||
- | Step 1) vi 편집기를 이용하여 proftpd 설정파일(“/ | + | |
- | #vi / | + | Step 1) vi 편집기를 이용하여 |
- | Step 2) proftpd 설정파일 (“/ | + | <WRAP prewrap> |
- | | + | <code bash> |
- | | + | #vi / |
+ | </ | ||
+ | </ | ||
+ | |||
+ | Step 2) proftpd 설정파일 ('' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | (수정 전) RootLogin on | ||
+ | (수정 후) RootLogin off | ||
+ | </ | ||
+ | </ | ||
Step 3) ProFTP 서비스 재시작 | Step 3) ProFTP 서비스 재시작 | ||
+ | |||
< vsFTP 서비스 ROOT 접속 차단 > | < vsFTP 서비스 ROOT 접속 차단 > | ||
- | Step 1) vi 편집기를 이용하여 ftpusers 파일 열기 (“/ | + | Step 1) vi 편집기를 이용하여 ftpusers 파일 열기 ('' |
- | #vi / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | Step 2) ftpusers 파일에 root 계정 추가 또는, 주석제거 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
| | ||
| | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 3) vsFTP 서비스 재시작 | Step 3) vsFTP 서비스 재시작 | ||
+ | |||
※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ※ vsFTP를 사용할 경우 FTP 접근제어 파일 | ||
- | (1) vsftpd.conf 파일에서 userlist_enable=YES인 경우: vsftpd.ftpusers, | + | |
- | (ftpusers, user_list 파일에 등록된 모든 계정의 접속이 차단됨) | + | |
- | (2) vsftpd.conf 파일에서 userlist_enable=NO 또는, 옵션 설정이 없는 경우: vsftpd.ftpusers 또는 ftpusers | + | |
- | (ftpusers 파일에 등록된 계정들만 접속이 차단됨) | + | |
\\ | \\ | ||
====at 파일 소유자 및 권한 설정==== | ====at 파일 소유자 및 권한 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
관리자외 at 서비스를 사용할 수 없도록 설정하고 있는지 점검하는 것을 목적으로 함 | 관리자외 at 서비스를 사용할 수 없도록 설정하고 있는지 점검하는 것을 목적으로 함 | ||
+ | |||
보안위협 | 보안위협 | ||
root 외 일반사용자에게도 at 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있음 | root 외 일반사용자에게도 at 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
- | / | + | 점검 파일 위치 |
- | / | + | '' |
+ | '' | ||
" | " | ||
+ | |||
Step 1) at 명령어 일반사용자 권한 삭제 (at 명령어 위치는 OS별 다를수 있음) | Step 1) at 명령어 일반사용자 권한 삭제 (at 명령어 위치는 OS별 다를수 있음) | ||
※ at 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거 | ※ at 명령어는 SUID가 설정되어 있으므로 SUID 설정 제거 | ||
- | # ls -l / | + | <WRAP prewrap> |
- | # chmod 4750 /usr/bin/at | + | <code bash> |
+ | # ls -l / | ||
+ | # chmod 4750 /usr/bin/at | ||
+ | </ | ||
+ | </ | ||
Step 2) cron 관련 설정파일 소유자 및 권한 설정 | Step 2) cron 관련 설정파일 소유자 및 권한 설정 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
# chown root <at 관련 파일> | # chown root <at 관련 파일> | ||
# chmod 640 <at 관련 파일> | # chmod 640 <at 관련 파일> | ||
+ | </ | ||
+ | </ | ||
+ | |||
■ at 명령어를 일반사용자에게 허용하는 경우 | ■ at 명령어를 일반사용자에게 허용하는 경우 | ||
- | Step 1) “/ | + | Step 1) '' |
- | # | + | <WRAP prewrap> |
- | # | + | <code bash> |
- | # | + | #chown root / |
- | # | + | #chmod 640 / |
- | Step 2) “/ | + | #chown root / |
- | # cat / | + | #chmod 640 / |
- | # cat / | + | </ |
+ | </ | ||
+ | |||
+ | Step 2) '' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | # cat / | ||
+ | # cat / | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====SNMP 서비스 구동 점검==== | ====SNMP 서비스 구동 점검==== | ||
+ | |||
점검목적 | 점검목적 | ||
불필요한 SNMP 서비스 활성화로 인해 필요 이상의 정보가 노출되는 것을 막기 위해 SNMP 서비스를 중지해야함 | 불필요한 SNMP 서비스 활성화로 인해 필요 이상의 정보가 노출되는 것을 막기 위해 SNMP 서비스를 중지해야함 | ||
+ | |||
보안위협 | 보안위협 | ||
- | SNMP 서비스로 인하여 시스템의 주요 정보 유출 및 정보의 불법수정이 발생할 수 있음 | + | SNMP 서비스로 인하여 시스템의 주요 정보 유출 및 정보의 불법수정이 발생할 수 있음 |
점검방법 | 점검방법 | ||
Step 1) ps –ef | grep snmp로 검색 | Step 1) ps –ef | grep snmp로 검색 | ||
- | root 2028 1 0 Nov 24 ? 0:00 / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #ps –ef | grep snmp | ||
+ | root 2028 1 0 Nov 24 ? 0:00 / | ||
+ | </ | ||
+ | </ | ||
Step 2) snmp 사용하지 않을 시 서비스 중지 | Step 2) snmp 사용하지 않을 시 서비스 중지 | ||
- | #service snmpd stop | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #service snmpd stop | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====SNMP 서비스 커뮤니티스트링의 복잡성 설정==== | ====SNMP 서비스 커뮤니티스트링의 복잡성 설정==== | ||
+ | |||
점검목적 | 점검목적 | ||
Community String 기본 설정인 Public, Private는 공개된 내용으로 공격자가 이를 이용하여 SNMP 서비스를 통해 시스템 정보를 얻을 수 있기 때문에 Community String을 유추하지 못하도록 설정해야함 | Community String 기본 설정인 Public, Private는 공개된 내용으로 공격자가 이를 이용하여 SNMP 서비스를 통해 시스템 정보를 얻을 수 있기 때문에 Community String을 유추하지 못하도록 설정해야함 | ||
+ | |||
보안위협 | 보안위협 | ||
Community String은 Default로 public, private로 설정된 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 환경설정 파일 열람 및 수정을 통한 공격, | Community String은 Default로 public, private로 설정된 경우가 많으며, 이를 변경하지 않으면 이 String을 악용하여 환경설정 파일 열람 및 수정을 통한 공격, | ||
간단한 정보수집에서부터 관리자 권한 획득 및 Dos공격까지 다양한 형태의 공격이 가능함 | 간단한 정보수집에서부터 관리자 권한 획득 및 Dos공격까지 다양한 형태의 공격이 가능함 | ||
+ | |||
점검방법 | 점검방법 | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
+ | |||
com2sec notConfigUser default public | com2sec notConfigUser default public | ||
- | 위의 설정과 같이 디폴트 커뮤니티명인 | + | </ |
+ | </ | ||
+ | |||
+ | 위의 설정과 같이 디폴트 커뮤니티명인 | ||
Step 1) vi 편집기를 이용하여 SNMP 설정파일 열기 | Step 1) vi 편집기를 이용하여 SNMP 설정파일 열기 | ||
- | #vi / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) Community String 값 설정 변경 (추측하기 어려운 값으로 설정) | Step 2) Community String 값 설정 변경 (추측하기 어려운 값으로 설정) | ||
- | (수정 전) com2sec notConfigUser default public | + | <WRAP prewrap> |
- | | + | <code bash> |
+ | (수정 전) com2sec notConfigUser default public | ||
+ | (수정 후) com2sec notConfigUser default <변경 값> | ||
+ | </ | ||
+ | </ | ||
Step 3) 서비스 재구동 | Step 3) 서비스 재구동 | ||
- | # service snmpd rstart | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | # service snmpd restart | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====로그온 시 경고 메시지 제공==== | ====로그온 시 경고 메시지 제공==== | ||
+ | |||
점검목적 | 점검목적 | ||
비인가자들에게 서버에 대한 불필요한 정보를 제공하지 않고, 서버 접속 시관계자만 접속해야 한다는 경각심을 심어 주기위해 경고 메시지 설정이 필요함 | 비인가자들에게 서버에 대한 불필요한 정보를 제공하지 않고, 서버 접속 시관계자만 접속해야 한다는 경각심을 심어 주기위해 경고 메시지 설정이 필요함 | ||
+ | |||
보안위협 | 보안위협 | ||
로그인 배너가 설정되지 않을 경우 배너에 서버 OS 버전 및 서비스 버전이 공격자에게 노출될 수 있으며 공격자는 이러한 정보를 통하여 해당 OS 및 서비스의 취약점을 이용하여 공격을 시도할 수 있음 | 로그인 배너가 설정되지 않을 경우 배너에 서버 OS 버전 및 서비스 버전이 공격자에게 노출될 수 있으며 공격자는 이러한 정보를 통하여 해당 OS 및 서비스의 취약점을 이용하여 공격을 시도할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
- | Step 1) 서버 로그온 메시지 설정: vi 편집기로 | + | Step 1) 서버 로그온 메시지 설정: vi 편집기로 |
- | #vi /etc/motd | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #vi /etc/motd | ||
| | ||
- | Step 2) Telnet 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | Step 2) Telnet 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
| | ||
- | Step 3) FTP 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | Step 3) FTP 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
| | ||
- | Step 4) SMTP 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | Step 4) SMTP 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
O Smtp GreetingMessage=" | O Smtp GreetingMessage=" | ||
- | Step 5) DNS 배너 설정: vi 편집기로 | + | </ |
- | #vi / | + | </ |
+ | |||
+ | |||
+ | Step 5) DNS 배너 설정: vi 편집기로 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
| | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====NFS 설정파일 접근 제한==== | ====NFS 설정파일 접근 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
비인가자에 의한 불법적인 외부 시스템 마운트를 차단하기 위해 NFS 접근제어 파일의 소유자 및 파일 권한을 설정 | 비인가자에 의한 불법적인 외부 시스템 마운트를 차단하기 위해 NFS 접근제어 파일의 소유자 및 파일 권한을 설정 | ||
+ | |||
보안위협 | 보안위협 | ||
NFS 접근제어 설정파일에 대한 권한 관리가 이루어지지 않을 시 인가되지 않은 사용자를 등록하고 파일시스템을 마운트하여 불법적인 변조를 시도할 수 있음 | NFS 접근제어 설정파일에 대한 권한 관리가 이루어지지 않을 시 인가되지 않은 사용자를 등록하고 파일시스템을 마운트하여 불법적인 변조를 시도할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
+ | 점검 파일 위치 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#ls -al / | #ls -al / | ||
| | ||
+ | </ | ||
+ | </ | ||
+ | |||
" | " | ||
- | “/ | + | |
- | # | + | '' |
- | # | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #chown root / | ||
+ | #chmod 644 / | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====expn, vrfy 명령어 제한==== | ====expn, vrfy 명령어 제한==== | ||
+ | |||
점검목적 | 점검목적 | ||
SMTP 서비스의 expn, vrfy 명령을 통한 정보 유출을 막기 위하여 두 명령어를 사용하지 못하게 옵션을 설정해야함 | SMTP 서비스의 expn, vrfy 명령을 통한 정보 유출을 막기 위하여 두 명령어를 사용하지 못하게 옵션을 설정해야함 | ||
+ | |||
보안위협 | 보안위협 | ||
VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있음 | VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
noexpn, novrfy 옵션 설정 확인 | noexpn, novrfy 옵션 설정 확인 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#vi / | #vi / | ||
O PrivacyOptions= (noexpn, novrfy 또는 goaway 옵션 설정 여부) | O PrivacyOptions= (noexpn, novrfy 또는 goaway 옵션 설정 여부) | ||
+ | </ | ||
+ | </ | ||
※ goaway 옵션 : authwarnings, | ※ goaway 옵션 : authwarnings, | ||
+ | |||
< | < | ||
- | Step 1) vi 편집기를 이용하여 | + | Step 1) vi 편집기를 이용하여 |
- | #vi / | + | <WRAP prewrap> |
- | Step 2) “/ | + | <code bash> |
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Step 2) '' | ||
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
(수정 전) O PrivacyOptions=authwarnings | (수정 전) O PrivacyOptions=authwarnings | ||
- | (수정 후) O PrivacyOptions=authwarnings, | + | (수정 후) O PrivacyOptions=authwarnings, |
+ | </ | ||
+ | </ | ||
Step 3) SMTP 서비스 재시작 | Step 3) SMTP 서비스 재시작 | ||
+ | |||
< 서비스 불필요 시> | < 서비스 불필요 시> | ||
Step 1) 실행중인 서비스 중지 | Step 1) 실행중인 서비스 중지 | ||
- | #ps –ef | grep sendmail | + | <WRAP prewrap> |
- | root 441 1 0 Sep19 ? 00:00:00 sendmail: accepting connections | + | <code bash> |
- | #kill -9 [PID] | + | #ps –ef | grep sendmail |
+ | root 441 1 0 Sep19 ? 00:00:00 sendmail: accepting connections | ||
+ | #kill -9 [PID] | ||
+ | </ | ||
+ | </ | ||
Step 2) 시스템 재시작 시 SMTP 서버가 시작되지 않도록 OS별로 아래와 같이 설정함 | Step 2) 시스템 재시작 시 SMTP 서버가 시작되지 않도록 OS별로 아래와 같이 설정함 | ||
1. 위치 확인 | 1. 위치 확인 | ||
- | #ls –al / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #ls –al / | ||
+ | </ | ||
+ | </ | ||
2. 이름 변경 | 2. 이름 변경 | ||
- | #mv / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #mv / | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====Apache 웹 서비스 정보 숨김==== | ====Apache 웹 서비스 정보 숨김==== | ||
+ | |||
점검목적 | 점검목적 | ||
- | HTTP 헤더, 에러페이지에서 웹 서버 버전 및 종류, OS 정보 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 하기 위함 | + | HTTP 헤더, 에러페이지에서 웹 서버 버전 및 종류, OS 정보 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 하기 위함 |
보안위협 | 보안위협 | ||
불필요한 정보가 노출될 경우 해당 정보를 이용하여 시스템의 취약점을 수집할 수 있음 | 불필요한 정보가 노출될 경우 해당 정보를 이용하여 시스템의 취약점을 수집할 수 있음 | ||
+ | |||
점검방법 | 점검방법 | ||
ServerTokens, | ServerTokens, | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
# vi / | # vi / | ||
| | ||
| | ||
- | “httpd.conf” 파일 내에 ServerTokens, | + | </ |
- | Step 1) vi 편집기를 이용하여 / | + | </ |
- | #vi / | + | |
+ | '' | ||
+ | |||
+ | Step 1) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #vi / | ||
+ | </ | ||
+ | </ | ||
Step 2) 설정된 모든 디렉터리의 ServerTokens 지시자에서 Prod 옵션 설정 및 ServerSignature Off 지시자에 Off 옵션 설정 (없으면 신규 삽입) | Step 2) 설정된 모든 디렉터리의 ServerTokens 지시자에서 Prod 옵션 설정 및 ServerSignature Off 지시자에 Off 옵션 설정 (없으면 신규 삽입) | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
< | < | ||
- | Options Indexes FollowSymlinks | + | Options Indexes FollowSymlinks |
- | | + | |
- | | + | |
- | - 이하 생략- | + | |
</ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
ServerTokens 지시자 옵션 | ServerTokens 지시자 옵션 | ||
- | 키워드 | + | ^ 키워드 |
- | Prod 웹 서버 종류 | + | | Prod |
- | Min 웹 서버 버전 | + | | Min | 웹 서버 버전 |
- | OS 웹 서버 버전 + 운영체제 | + | | OS |
- | Full 웹 서버의 모든 정보 | + | | Full |
\\ | \\ | ||