파일_및_디렉터리_관리

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
파일_및_디렉터리_관리 [2021/12/21 07:18] fatp11th파일_및_디렉터리_관리 [2022/01/11 08:21] (현재) – [접속 IP 및 포트 제한] fatp11th
줄 1: 줄 1:
-===root 홈, 패스 디렉터리 권한 및 패스 설정=== +====root 홈, 패스 디렉터리 권한 및 패스 설정====
- +
-/etc/profile, ~/.bash_profile 파일 내에 PATH 변수 내에  ".", "::"이 맨 앞에 존재하는 경우 변경+
  
 +''/etc/profile'', ''~/.bash_profile'' 파일 내에 PATH 변수 내에  ".", "::"이 맨 앞에 존재하는 경우 변경
 +<WRAP prewrap>
 +<code vim>
 (수정 전) PATH=.:$PATH:$HOME/bin (수정 전) PATH=.:$PATH:$HOME/bin
 (수정 후) PATH=$PATH:$HOME/bin:. (수정 후) PATH=$PATH:$HOME/bin:.
 +</code>
 +</WRAP>
    
-\+\\
  
-===파일 및 디렉터리 소유자 설정===+====파일 및 디렉터리 소유자 설정====
  
 소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리 소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리
 +<WRAP prewrap>
 +<code bash>
 +#find / -nouser -print
 +</code>
 +</WRAP>
 +
 +
 +
 +\\
 +====/etc/passwd 파일 소유자 및 권한 설정====
 +
 +''/etc/passwd'' 권한 확인 후
 +<WRAP prewrap>
 +<code bash>
 +#chmod 644 /etc/passwd
 +#chown root /etc/passwd
 +</code>
 +</WRAP>
 +
 +
 +\\
 +====/etc/shadow 파일 소유자 및 권한 설정====
 +
 +''/etc/shadow'' 권한 확인 후
 +<WRAP prewrap>
 +<code bash>
 +#chmod 400 /etc/shadow
 +#chown root /etc/shadow
 +</code>
 +</WRAP>
 +
 +
 +\\
 +====/etc/hosts 파일 소유자 및 권한 설정====
 +''/etc/hosts'' 파일 소유자 권한 확인 후
 +
 +<WRAP prewrap>
 +<code bash>
 +#chmod 600 /etc/hosts
 +#chown root /etc/hosts
 +</code>
 +</WRAP>
 +
 +
 +\\
 +====/etc/(x)inetd.conf 파일 소유자 및 권한 설정====
 +''/etc/xinetd.conf'' 파일 및 ''/etc/xinetd.d/'' 하위 모든 파일의 소유자 및 권한 확인
 +<WRAP prewrap>
 +<code bash>
 +#chown root /etc/xinetd.conf
 +#chmod 600 /etc/xinetd.conf
 +</code>
 +</WRAP>
 + 
 +※ ''/etc/xinetd.d/'' 하위 디렉터리에 취약한 파일도 위와 동일한 방법으로 조치
 +\\
 +====/etc/syslog.conf 파일 소유자 및 권한 설정====
 +CentOS6 이상
 +<WRAP prewrap>
 +<code bash>
 +#chown root /etc/rsyslog.conf
 +#chmod 640 /etc/rsyslog.conf
 +</code>
 +</WRAP>
 +
 + 
 +\\
 +====/etc/services 파일 소유자 및 권한 설정====
 +<WRAP prewrap>
 +<code bash>
 +#chown root /etc/services
 +#chmod 644 /etc/services
 +
 +</code>
 +</WRAP>
 + 
 +\\
 +====SUID, SGID, Sticky bit 설정 파일 점검====
 +Step 1) 제거 방법
 +<WRAP prewrap>
 +<code bash>
 +#chmod -s <file_name>
 +</code>
 +</WRAP>
 +
 +
 +Step 2) 주기적인 감사 방법
 +<WRAP prewrap>
 +<code bash>
 +#find / -xdev -user root -type f \( -perm -04000 -o -perm -02000 \)  -exec ls –al {} \;
 +</code>
 +</WRAP>
 +
 +
 +Step 3) 반드시 사용이 필요한 경우 특정 그룹에서만 사용하도록 제한하는 방법
 +일반 사용자의 Setuid 사용을 제한함 (임의의 그룹만 가능)
 +<WRAP prewrap>
 +<code bash>
 +#/usr/bin/chgrp <group_name> <setuid_file_name>
 +#/usr/bin/chmod 4750 <setuid_file_name>
 +
 +</code>
 +</WRAP>
 +
 +\\
 +====사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정====
 +※ 환경변수 파일 종류: ''.profile'', ''.kshrc'', ''.cshrc'', ''.bashrc'', ''.bash_profile'', ''.login'', ''.exrc'', ''.netrc''
 +<WRAP prewrap>
 +<code bash>
 +#ls -l .bash_profile 
 +일반 사용자 쓰기 권한 제거
 +#chmod o-w .bash_profile
 +
 +</code>
 +</WRAP>
 +
 +\\
 +====world writable 파일 점검====
 +world writable 파일: 파일의 내용을 소유자나 그룹 외 모든 사용자에 대해 쓰기가 허용된 파일 (예 : rwxrwxrwx root root <파일명>)
 +<WRAP prewrap>
 +<code bash>
 +#find / -type f -perm -2 -exec ls -l {} \;
 +일반 사용자 쓰기 권한 제거
 +#chmod o-w <file name>
 +</code>
 +</WRAP>
 +
 +
 +\\
 +====/dev에 존재하지 않는 device 파일 점검 ====
 +<WRAP prewrap>
 +<code bash>
 +#find /dev -type f -exec ls -l {} \;
 +major, minor number를 가지지 않는 device일 경우 삭제
 +</code>
 +</WRAP>
 +
 +
 +\\
 +====$HOME/.rhosts, hosts.equiv 사용 금지====
 +<WRAP prewrap>
 +<code bash>
 +#ls -al /etc/hosts.equiv       소유자 및 권한 확인
 +#chown root /etc/hosts.equiv
 +#chmod 600 /etc/hosts.equiv
 +
 +</code>
 +</WRAP>
 +
 +''/etc/hosts.equiv'' 및 ''$HOME/.rhosts'' 파일에서 ''+''를 제거하고 허용 호스트 및 계정 등록
 +<WRAP prewrap>
 +<code bash>
 + #cat /etc/hosts.equiv (or $HOME/.rhosts)
 +</code>
 +</WRAP>
 +
 +
 +\\
 +====접속 IP 및 포트 제한====
 +
 +Step 1) vi 편집기를 이용하여 ''/etc/hosts.deny'' 파일 열기 (해당 파일이 없을 경우 새로 생성)
 +
 +Step 2) 아래와 같이 수정 또는, 신규 삽입 (ALL Deny 설정)
 +<WRAP prewrap>
 +<code vim>
 + (수정 전) 설정 없음
 + (수정 후) ALL:ALL
 +</code>
 +</WRAP>
 +
 +Step 3) vi 편집기를 이용하여 ''/etc/hosts.allow'' 파일 열기 (해당 파일이 없을 경우 생성)
 +<WRAP prewrap>
 +<code vim>
 + (수정 전) 설정 없음
 + (수정 후) sshd : 192.168.0.148, 192.168.0.6
 +</code>
 +</WRAP>
 +
 +
 + (다른 서비스도 동일한 방식으로 설정)
 +
 + < TCP Wrapper 접근제어 가능 서비스 >
 +  SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, TALK, EXEC, TFTP, SSH
 +  
 + < TCP Wrapper는 다음 두 파일에 의해 접근이 제어됨 >
 +
 + ''/etc/hosts.deny''  --> 시스템 접근을 제한할 IP 설정
 + ''/etc/hosts.allow'' --> 시스템 접근을 허용할 IP 설정
 +
 +  위의 두파일이 존재하지 않은 시 --> 모든 접근 허용
 +  
 +===RHEL 8이상===
 +
 +RHEL/CentOS 8 버전에서는 ''/etc/hosts.allow'' 나 ''/etc/hosts.deny'' 파일이 확인 되지 않으며
 +파일을 생성 후 기존 과 같이 허용이나 차단에 대한 룰을 입력 하여도 적용이 되지 않습니다.
 +
 +즉, 8 버전에서는 sshd 패키지에 libwrap 라이브러리 참조를 제거 한 것이라고 볼 수 있으며 
 +그래서 8 버전부터는 ''/etc/hosts.deny'' 등을 통해 차단이 아닌 OS 방화벽인 ''firewalls''를 통해 차단을 수행 해야 합니다.
 +<WRAP prewrap>
 +<code bash>
 +특정 IP만 허용
 +#firewall-cmd --permanent --add-source=10.10.10.10
 +특정 IP만 제거
 +#firewall-cmd --permanent --remove-source=10.10.10.10
 +IP대역 허용
 +#firewall-cmd --permanent --add-source=10.10.10.0/24
 +서비스 포트 허용
 +#firewall-cmd --permanent --add-port=80/tcp
 +서비스 포트 범위 허용
 +#firewall-cmd --permanent --add-port=1000-2000/tcp
 +방화벽 적용
 +#firewall-cmd --reload
 +</code>
 +</WRAP>
 +
 +
 +참고자료
 +https://access.redhat.com/solutions/3935901
 +\\
 +====hosts.lpd 파일 소유자 및 권한 설정 ====
 +<WRAP prewrap>
 +<code bash>
 +Step 1) hosts.lpd 파일 삭제
 + #rm –rf /etc/hosts.lpd
 +Step 2) 파일의 퍼미션 변경 (hosts.lpd 파일이 필요시)
 + #chmod 600 /etc/hosts.lpd
 +Step 3) 소유자를 root로 변경 (hosts.lpd 파일이 필요시)
 + #chown root /etc/hosts.lpd
 +</code>
 +</WRAP>
 +
 +
 +\\
 +====UMASK 설정 관리 ====
 +
 +umask 확인
 +수정이 필요할 경우
 +''/etc/profile'' 파일 내 다음과 같이 수정
 +<WRAP prewrap>
 +<code vim>
 +umask 022
 +export umask
  
-find -nouser -print+</code> 
 +</WRAP>
  
 +\\
 +====홈디렉토리 소유자 및 권한 설정====
  
-===/etc/passwd 파일 소유자 및 권한 설정===+''/etc/passwd'' 파일의 소유자 및 권한 변경 
 +<WRAP prewrap> 
 +<code bash> 
 +#chown <user_name> <user_home_directory> 
 +#chmod o-w <user_home_directory> 
 +</code> 
 +</WRAP>
  
-/etc/passwd 권한 확인 후+\\ 
 +====홈디렉토리로 지정한 디렉토리의 존재 관리====
  
-chmod 644 /etc/passwd +''/etc/passwd'' 파일에 설정된 홈디렉터리가 존재하지 않는 경우, 해당 계정으로 로그인시 홈디렉터리가 루트 디렉터리(''/'')로 할당되어 접근이 가능함
-chown root /etc/passwd+
  
 +<WRAP prewrap>
 +<code bash>
 +Step 1) 홈 디렉터리가 없는 사용자 계정 삭제
 + #userdel <user_name>
 +Step 2) 홈 디렉터리가 없는 사용자 계정에 홈 디렉터리 지정
 + #vi /etc/passwd
 + #test:x:501:501::/:/bin/bash (홈 디렉터리가 /로 설정 된 경우)
 + #test:x:501:501::/home/test:/bin/bash (홈 디렉터리 수정 / -> /home/test)
 +</code>
 +</WRAP>
  
-===/etc/shadow 파일 소유자 및 권한 설정===+\\ 
 +====숨겨진 파일 및 디렉토리 검색 및 제거 ===
 +<WRAP prewrap> 
 +<code bash> 
 +특정 디렉터리 내 불필요한 파일 점검 
 +#ls -al [디렉터리명] 
 +전체 숨김 디렉터리 및 숨김 파일 점검 
 +#find / -type f –name ".*" (파일 점검) 
 +#find / -type d -name ".*" (디렉터리 점검) 
 +</code> 
 +</WRAP>
  
-/etc/shadow 권한 확인 후 
  
-chmod 400 /etc/shadow +Step 1) 숨겨진 파일 목록에서 불필요한 파일 삭제 
-chown root /etc/shadow+Step 2) 마지막으로 변경된 시간에 따라, 최근 작업한 파일 확인 시 -t 옵션으로 수정 시간 순 정렬 확인  
 +\\
  
-===/etc/hosts 파일 소유자 및 권한 설정=== 
  
  • 파일_및_디렉터리_관리.1640071118.txt.gz
  • 마지막으로 수정됨: 2021/12/21 07:18
  • 저자 fatp11th