차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
파일_및_디렉터리_관리 [2022/01/11 07:49] – [/etc/shadow 파일 소유자 및 권한 설정] fatp11th | 파일_및_디렉터리_관리 [2022/01/11 08:21] (현재) – [접속 IP 및 포트 제한] fatp11th | ||
---|---|---|---|
줄 40: | 줄 40: | ||
<WRAP prewrap> | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
- | chmod 400 / | + | #chmod 400 / |
- | chown root /etc/shadow | + | #chown root /etc/shadow |
</ | </ | ||
</ | </ | ||
줄 48: | 줄 48: | ||
\\ | \\ | ||
====/ | ====/ | ||
- | chmod 600 / | + | ''/ |
- | chown root /etc/hosts | + | |
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
+ | #chmod 600 / | ||
+ | #chown root /etc/hosts | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====/ | ====/ | ||
- | “/ | + | '' |
- | # | + | <WRAP prewrap> |
- | # | + | <code bash> |
- | ※ "/ | + | #chown root / |
+ | #chmod 600 / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ※ '' | ||
\\ | \\ | ||
====/ | ====/ | ||
CentOS6 이상 | CentOS6 이상 | ||
- | #chown root / | + | <WRAP prewrap> |
- | # | + | <code bash> |
+ | #chown root / | ||
+ | #chmod 640 / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
\\ | \\ | ||
====/ | ====/ | ||
- | #chown root / | + | <WRAP prewrap> |
- | # | + | <code bash> |
+ | #chown root / | ||
+ | #chmod 644 / | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====SUID, SGID, Sticky bit 설정 파일 점검==== | ====SUID, SGID, Sticky bit 설정 파일 점검==== | ||
Step 1) 제거 방법 | Step 1) 제거 방법 | ||
- | #chmod -s < | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #chmod -s < | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 2) 주기적인 감사 방법 | Step 2) 주기적인 감사 방법 | ||
- | #find / -xdev -user root -type f \( -perm -04000 -o -perm -02000 \) -exec ls –al {} \; | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #find / -xdev -user root -type f \( -perm -04000 -o -perm -02000 \) -exec ls –al {} \; | ||
+ | </ | ||
+ | </ | ||
+ | |||
Step 3) 반드시 사용이 필요한 경우 특정 그룹에서만 사용하도록 제한하는 방법 | Step 3) 반드시 사용이 필요한 경우 특정 그룹에서만 사용하도록 제한하는 방법 | ||
일반 사용자의 Setuid 사용을 제한함 (임의의 그룹만 가능) | 일반 사용자의 Setuid 사용을 제한함 (임의의 그룹만 가능) | ||
- | #/ | + | <WRAP prewrap> |
- | #/ | + | <code bash> |
+ | #/ | ||
+ | #/ | ||
+ | |||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====사용자, | ====사용자, | ||
- | ※ 환경변수 파일 종류: | + | ※ 환경변수 파일 종류: |
- | ls -l .bash_profile | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #ls -l .bash_profile | ||
일반 사용자 쓰기 권한 제거 | 일반 사용자 쓰기 권한 제거 | ||
- | chmod o-w .bash_profile | + | #chmod o-w .bash_profile |
+ | |||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====world writable 파일 점검==== | ====world writable 파일 점검==== | ||
world writable 파일: 파일의 내용을 소유자나 그룹 외 모든 사용자에 대해 쓰기가 허용된 파일 (예 : rwxrwxrwx root root < | world writable 파일: 파일의 내용을 소유자나 그룹 외 모든 사용자에 대해 쓰기가 허용된 파일 (예 : rwxrwxrwx root root < | ||
- | find / -type f -perm -2 -exec ls -l {} \; | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #find / -type f -perm -2 -exec ls -l {} \; | ||
일반 사용자 쓰기 권한 제거 | 일반 사용자 쓰기 권한 제거 | ||
- | chmod o-w <file name> | + | #chmod o-w <file name> |
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====/dev에 존재하지 않는 device 파일 점검 ==== | ====/dev에 존재하지 않는 device 파일 점검 ==== | ||
- | find /dev -type f -exec ls -l {} \; | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #find /dev -type f -exec ls -l {} \; | ||
major, minor number를 가지지 않는 device일 경우 삭제 | major, minor number를 가지지 않는 device일 경우 삭제 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
\\ | \\ | ||
====$HOME/ | ====$HOME/ | ||
- | ls -al / | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #ls -al / | ||
#chown root / | #chown root / | ||
#chmod 600 / | #chmod 600 / | ||
- | “/ | + | |
+ | </ | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
#cat / | #cat / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
\\ | \\ | ||
====접속 IP 및 포트 제한==== | ====접속 IP 및 포트 제한==== | ||
- | Step 1) vi 편집기를 이용하여 | + | |
+ | Step 1) vi 편집기를 이용하여 | ||
Step 2) 아래와 같이 수정 또는, 신규 삽입 (ALL Deny 설정) | Step 2) 아래와 같이 수정 또는, 신규 삽입 (ALL Deny 설정) | ||
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
| | ||
| | ||
- | Step 3) vi 편집기를 이용하여 | + | </ |
+ | </ | ||
+ | |||
+ | Step 3) vi 편집기를 이용하여 | ||
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
| | ||
| | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
| | ||
+ | |||
< TCP Wrapper 접근제어 가능 서비스 > | < TCP Wrapper 접근제어 가능 서비스 > | ||
SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, TALK, EXEC, TFTP, SSH | SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, TALK, EXEC, TFTP, SSH | ||
+ | | ||
< TCP Wrapper는 다음 두 파일에 의해 접근이 제어됨 > | < TCP Wrapper는 다음 두 파일에 의해 접근이 제어됨 > | ||
- | / | + | |
- | / | + | '' |
+ | '' | ||
위의 두파일이 존재하지 않은 시 --> 모든 접근 허용 | 위의 두파일이 존재하지 않은 시 --> 모든 접근 허용 | ||
+ | | ||
===RHEL 8이상=== | ===RHEL 8이상=== | ||
- | RHEL/CentOS 8 버전에서는 / | + | |
+ | RHEL/CentOS 8 버전에서는 | ||
파일을 생성 후 기존 과 같이 허용이나 차단에 대한 룰을 입력 하여도 적용이 되지 않습니다. | 파일을 생성 후 기존 과 같이 허용이나 차단에 대한 룰을 입력 하여도 적용이 되지 않습니다. | ||
+ | |||
즉, 8 버전에서는 sshd 패키지에 libwrap 라이브러리 참조를 제거 한 것이라고 볼 수 있으며 | 즉, 8 버전에서는 sshd 패키지에 libwrap 라이브러리 참조를 제거 한 것이라고 볼 수 있으며 | ||
- | 그래서 8 버전 부터는 / | + | 그래서 8 버전부터는 |
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
특정 IP만 허용 | 특정 IP만 허용 | ||
- | firewall-cmd --permanent --add-source=10.10.10.10 | + | #firewall-cmd --permanent --add-source=10.10.10.10 |
특정 IP만 제거 | 특정 IP만 제거 | ||
- | firewall-cmd --permanent --remove-source=10.10.10.10 | + | #firewall-cmd --permanent --remove-source=10.10.10.10 |
IP대역 허용 | IP대역 허용 | ||
- | firewall-cmd --permanent --add-source=10.10.10.0/ | + | #firewall-cmd --permanent --add-source=10.10.10.0/ |
서비스 포트 허용 | 서비스 포트 허용 | ||
- | firewall-cmd --permanent --add-port=80/ | + | #firewall-cmd --permanent --add-port=80/ |
서비스 포트 범위 허용 | 서비스 포트 범위 허용 | ||
- | firewall-cmd --permanent --add-port=1000-2000/ | + | #firewall-cmd --permanent --add-port=1000-2000/ |
방화벽 적용 | 방화벽 적용 | ||
- | firewall-cmd --reload | + | #firewall-cmd --reload |
+ | </ | ||
+ | </ | ||
참고자료 | 참고자료 | ||
줄 136: | 줄 234: | ||
\\ | \\ | ||
====hosts.lpd 파일 소유자 및 권한 설정 ==== | ====hosts.lpd 파일 소유자 및 권한 설정 ==== | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
Step 1) hosts.lpd 파일 삭제 | Step 1) hosts.lpd 파일 삭제 | ||
#rm –rf / | #rm –rf / | ||
줄 142: | 줄 242: | ||
Step 3) 소유자를 root로 변경 (hosts.lpd 파일이 필요시) | Step 3) 소유자를 root로 변경 (hosts.lpd 파일이 필요시) | ||
# | # | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
\\ | \\ | ||
====UMASK 설정 관리 ==== | ====UMASK 설정 관리 ==== | ||
+ | |||
umask 확인 | umask 확인 | ||
수정이 필요할 경우 | 수정이 필요할 경우 | ||
- | / | + | '' |
+ | <WRAP prewrap> | ||
+ | <code vim> | ||
umask 022 | umask 022 | ||
export umask | export umask | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====홈디렉토리 소유자 및 권한 설정==== | ====홈디렉토리 소유자 및 권한 설정==== | ||
- | “/etc/passwd” 파일의 소유자 및 권한 변경 | + | |
- | # | + | '' |
- | # | + | <WRAP prewrap> |
+ | <code bash> | ||
+ | #chown < | ||
+ | #chmod o-w < | ||
+ | </ | ||
+ | </ | ||
\\ | \\ | ||
====홈디렉토리로 지정한 디렉토리의 존재 관리==== | ====홈디렉토리로 지정한 디렉토리의 존재 관리==== | ||
- | passwd 파일에 설정된 홈디렉터리가 존재하지 않는 경우, 해당 계정으로 로그인시 | ||
- | 홈디렉터리가 루트 디렉터리(“/ | ||
+ | ''/ | ||
+ | |||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
Step 1) 홈 디렉터리가 없는 사용자 계정 삭제 | Step 1) 홈 디렉터리가 없는 사용자 계정 삭제 | ||
# | # | ||
줄 165: | 줄 284: | ||
# | # | ||
# | # | ||
+ | </ | ||
+ | </ | ||
+ | |||
\\ | \\ | ||
====숨겨진 파일 및 디렉토리 검색 및 제거 ==== | ====숨겨진 파일 및 디렉토리 검색 및 제거 ==== | ||
+ | <WRAP prewrap> | ||
+ | <code bash> | ||
특정 디렉터리 내 불필요한 파일 점검 | 특정 디렉터리 내 불필요한 파일 점검 | ||
#ls -al [디렉터리명] | #ls -al [디렉터리명] | ||
줄 172: | 줄 296: | ||
#find / -type f –name " | #find / -type f –name " | ||
#find / -type d -name " | #find / -type d -name " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
Step 1) 숨겨진 파일 목록에서 불필요한 파일 삭제 | Step 1) 숨겨진 파일 목록에서 불필요한 파일 삭제 | ||
Step 2) 마지막으로 변경된 시간에 따라, 최근 작업한 파일 확인 시 -t 옵션으로 수정 시간 순 정렬 확인 | Step 2) 마지막으로 변경된 시간에 따라, 최근 작업한 파일 확인 시 -t 옵션으로 수정 시간 순 정렬 확인 |