Linux 보안

리눅스 보안 7일차

Mostlove 2025. 3. 14. 17:02
728x90
반응형

SELinux 보안 속성 및 파일 보호 관리

1. SELinux 보안 속성 변경 및 복구

(1) chcon 명령어

  • chcon: 특정 파일이나 디렉터리의 보안 컨텍스트(Security Context)를 변경하는 명령어
  • 기본 사용법:
  • chcon --reference=기존파일 대상파일
  • 예제:
  • chcon --reference=/var/www/html /home/user/my_web
  • 변경된 보안 속성 확인:
  • ls -lZ /home/user/my_web

(2) restorecon 명령어

  • restorecon: SELinux 정책에 맞게 보안 컨텍스트를 원래대로 복원하는 명령어
  • 기본 사용법:
  • restorecon -Rv /경로
  • 예제:
  • restorecon -Rv /home/user/my_web

(3) SELinux Boolean 값 확인 및 설정

  • getsebool -a: 시스템에서 설정된 SELinux Boolean 값을 확인
  • getsebool -a
  • 특정 Boolean 값을 변경(일시적):
  • setsebool allow_ftpd_anon_write on
  • 특정 Boolean 값을 영구적으로 변경:
  • setsebool -P allow_ftpd_anon_write on

2. 파일 속성 보호 (chattr & lsattr)

(1) chattr 명령어

  • 파일 속성을 변경하여 보호하는 명령어
  • +i 옵션: 파일 변경 금지(삭제 및 수정 불가)
  • chattr +i /etc/passwd
  • -i 옵션: 변경 금지 해제
  • chattr -i /etc/passwd

(2) lsattr 명령어

  • 파일 속성 확인
  • lsattr /etc/passwd
  • i 속성이 설정된 경우:
  • ----i-------- /etc/passwd

3. 특수 권한 설정 (SetUID, SetGID, Sticky Bit)

(1) SetUID

  • 실행 파일에 SetUID를 설정하면 해당 파일을 실행하는 사용자가 파일 소유자의 권한으로 실행
  • 예제:
  • chmod 4755 /usr/bin/passwd
  • 확인 방법:
    -rwsr-xr-x 1 root root 22944 Jun 24 2023 /usr/bin/passwd
    (s가 표시되면 SetUID 설정됨)
  • ls -l /usr/bin/passwd

(2) SetGID

  • 실행 파일이나 디렉터리에 SetGID를 설정하면 실행 시 해당 그룹의 권한을 상속받음
  • 예제:
  • chmod 2755 /usr/local/bin/special_program
  • 확인 방법:
    -rwxr-sr-x 1 root staff 22944 Jun 24 2023 /usr/local/bin/special_program
  • ls -l /usr/local/bin/special_program

(3) Sticky Bit

  • 디렉터리에 설정하면 사용자가 소유한 파일만 삭제할 수 있음 (주로 /tmp에서 사용)
  • 설정 방법:
  • chmod 1777 /tmp
  • 확인 방법:
    drwxrwxrwt 10 root root 4096 Mar 14 12:00 /tmp
    (t가 표시되면 Sticky Bit 설정됨)
  • ls -ld /tmp

4. SSL(Secure Socket Layer) 설정

(1) SSL 인증서 구성 요소

파일 유형설명

*.key 개인키 (Private Key)
*.csr 인증서 서명 요청 (Certificate Signing Request)
*.crt 인증서 파일 (Certificate)
*.pem 개인키와 인증서 포함된 파일

(2) SSL 인증서 생성 및 적용

  1. 개인키 및 인증서 서명 요청(CSR) 생성
  2. openssl req -new -days 365 -key mysite.key -out mysite.csr
  3. 자체 서명된 인증서 생성
  4. openssl x509 -req -days 365 -signkey mysite.key -in mysite.csr -out mysite.crt
  5. Apache 웹 서버에 SSL 적용
    • /etc/httpd/conf/httpd.conf 파일 수정:
    • SSLEngine on SSLCertificateFile /etc/ssl/certs/mysite.crt SSLCertificateKeyFile /etc/ssl/private/mysite.key
    • 설정 적용 및 Apache 재시작:
    • systemctl restart httpd

5. 웹 서버 보안 강화

(1) .htpasswd를 활용한 사용자 인증

  • 사용자 인증 파일 생성
  • htpasswd -c /etc/httpd/.htpasswd admin
  • Apache 설정 파일(.htaccess)에 인증 적용
  • AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/httpd/.htpasswd Require valid-user

(2) 특정 디렉터리 접근 제한

  • .htaccess 파일을 사용하여 특정 IP만 접근 허용
  • Order Deny,Allow Deny from all Allow from 192.168.1.100

마무리

  • SELinux 보안 속성 설정(chcon, restorecon)
  • 파일 보호(chattr, lsattr)
  • 특수 권한(SetUID, SetGID, Sticky Bit)
  • SSL 인증서 설정 및 적용
  • 웹 서버 보안 강화(.htpasswd, .htaccess)
반응형