차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
| 파일_및_디렉터리_관리 [2022/01/11 07:37] – [root 홈, 패스 디렉터리 권한 및 패스 설정] fatp11th | 파일_및_디렉터리_관리 [2022/01/11 08:21] (현재) – [접속 IP 및 포트 제한] fatp11th | ||
|---|---|---|---|
| 줄 14: | 줄 14: | ||
| 소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리 | 소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리 | ||
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | #find / -nouser -print | ||
| + | </ | ||
| + | </ | ||
| + | |||
| - | find / -nouser -print | ||
| \\ | \\ | ||
| ====/ | ====/ | ||
| - | /etc/passwd 권한 확인 후 | + | '' |
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | #chmod 644 / | ||
| + | #chown root / | ||
| + | </ | ||
| + | </ | ||
| - | chmod 644 /etc/passwd | ||
| - | chown root /etc/passwd | ||
| \\ | \\ | ||
| ====/ | ====/ | ||
| - | /etc/shadow 권한 확인 후 | + | '' |
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | #chmod 400 / | ||
| + | #chown root / | ||
| + | </ | ||
| + | </ | ||
| - | chmod 400 /etc/shadow | ||
| - | chown root /etc/shadow | ||
| \\ | \\ | ||
| ====/ | ====/ | ||
| - | 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 |
| + | </ | ||
| + | </ | ||
| 참고자료 | 참고자료 | ||
| 줄 122: | 줄 234: | ||
| \\ | \\ | ||
| ====hosts.lpd 파일 소유자 및 권한 설정 ==== | ====hosts.lpd 파일 소유자 및 권한 설정 ==== | ||
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| Step 1) hosts.lpd 파일 삭제 | Step 1) hosts.lpd 파일 삭제 | ||
| #rm –rf / | #rm –rf / | ||
| 줄 128: | 줄 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) 홈 디렉터리가 없는 사용자 계정 삭제 | ||
| # | # | ||
| 줄 151: | 줄 284: | ||
| # | # | ||
| # | # | ||
| + | </ | ||
| + | </ | ||
| + | |||
| \\ | \\ | ||
| ====숨겨진 파일 및 디렉토리 검색 및 제거 ==== | ====숨겨진 파일 및 디렉토리 검색 및 제거 ==== | ||
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| 특정 디렉터리 내 불필요한 파일 점검 | 특정 디렉터리 내 불필요한 파일 점검 | ||
| #ls -al [디렉터리명] | #ls -al [디렉터리명] | ||
| 줄 158: | 줄 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 옵션으로 수정 시간 순 정렬 확인 | ||