CodeGym /행동 /Docker SELF /방화벽, SELinux 및 기본 ACL 규칙 설정

방화벽, SELinux 및 기본 ACL 규칙 설정

Docker SELF
레벨 5 , 레슨 5
사용 가능

방화벽, SELinux 및 기본 ACL 규칙 설정

1. 1단계: 방화벽 설치 및 구성

안녕! 오늘은 실제 연습을 해보고 하루 종일 공부한 Linux 보안 관련 내용을 적용해 보자. 방화벽을 설정하고 SELinux의 동작을 평가하며 ACL을 활용한 파일 접근 관리의 편리함을 살펴보겠어. 이 강의는 너의 "훈련장"이야. 이제 우리의 관리자 "보안 계급장"을 걸고 시작하자!

이미 알다시피, 훌륭한 방화벽은 현관의 경비원과 같아. 누구를 들여보내고, 누구에게 "안돼!"라고 말할지 결정해. 우선, 우리 시스템을 보호하기 위해 SSH와 HTTP 서비스만 접근 가능하도록 제한하자.

UFW 작업하기

  1. UFW 상태 확인하기. 설치 안 되어있어? 바로 설치하자!

    # UFW 확인
    sudo ufw status
  2. 명령어가 "방화벽이 꺼져있음"이라고 말하면, 이건 바로 잡아야 해.

  3. UFW 설치 및 시작.

    # 설치 (필요한 경우)
    sudo apt install ufw
    
    # 방화벽 켜기
        sudo ufw enable
  4. 접근 설정. 우리는 SSH (포트 22)와 HTTP (포트 80)만 허용하고, 나머지는 차단하고 싶어. 논리는 간단해: 서버는 모든 사람을 위한 3성급 호텔이 아니야.

    # SSH 허용
    sudo ufw allow 22
    
    # HTTP 허용
    sudo ufw allow 80
    
    # 설정 확인
    sudo ufw status
  5. 확인: 설정 후 너는 다음과 같은 내용을 볼 수 있어야 해:

    Status: active
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere
    80                         ALLOW       Anywhere
    

만약 iptables을 사용 중이라면, 설정은 약간 더 복잡하지만 논리는 동일해: SSH와 HTTP에 대한 규칙을 만들고 나머지는 차단하는 거야.


2. 단계 2: SELinux 작업

SELinux는 서버의 파일과 사용자를 감시하는 엄격한 선생님 같은 존재야. 그의 모토는 "신뢰하되 검증하라"야. SELinux를 활성화하고 동작을 확인해 보자.

SELinux 활성화

  1. 현재 상태 확인:

    # SELinux가 활성화되어 있는지 확인
    sestatus

    만약 disabled 상태라면, 구성 파일을 통해 활성화해야 해.

  2. 구성 파일을 통해 SELinux 활성화:

    SELinux 설정 파일은 /etc/selinux/config 경로에 있어. 텍스트 에디터(예: nano)를 사용해 열어.

    sudo nano /etc/selinux/config
    

    다음 줄을 찾아:

    SELINUX=disabled
    

    다음으로 변경해:

    SELINUX=enforcing
    

    변경 내용을 저장하고 시스템을 재부팅하여 변경 사항을 적용해:

    sudo reboot
    
  3. 재부팅 후 확인.

    서버 부팅 후 SELinux 상태를 다시 확인해:

    getenforce
    

    시스템이 Enforcing이라고 응답하면, 축하해! 보안의 수호자가 된 거야!


SELinux와 웹 서버 예시

예를 들어, /var/www/html 디렉토리에 파일을 저장하는 웹 서버가 있다고 해보자. SELinux가 이를 어떻게 보호하는지 확인해 보자.

  1. 파일 컨텍스트 확인: SELinux는 액세스 관리를 위해 컨텍스트를 사용해. /var/www/html 디렉토리가 어떤 컨텍스트를 가지고 있는지 확인해 보자.

    ls -Z /var/www/html
    

    예제 출력:

    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
    

    문제가 있다면, 컨텍스트를 일시적으로 변경할 수 있어:

    sudo chcon -t httpd_sys_content_t /var/www/html
    
  2. 웹 서버 작동 확인: 컨텍스트 설정 후, 서버가 작동하고 액세스 오류가 없는지 확인해.


3. 단계 3: ACL을 이용한 권한 관리

ACL (Access Control List)은 접근 관리의 "추가 키" 같은 거야. 기본 권한 rwx이 제한적일 때, ACL은 특정 사용자에 대해 세부적으로 접근 권한을 설정할 수 있어.

테스트 디렉토리 생성

디렉토리 project_dir을 만들고 user1user2 두 사용자에 대한 접근 권한을 설정해 보자.

  1. 디렉토리 생성:

    sudo mkdir /project_dir
    
  2. 접근 권한 설정:

    user1에게는 전체 접근 권한을 부여하고, user2에게는 읽기만 가능하도록 설정해 보자:

    # user1에게 전체 접근 권한 부여
    sudo setfacl -m u:user1:rwx /project_dir
    
    # user2에게 읽기 권한만 부여
    sudo setfacl -m u:user2:r-- /project_dir
  3. ACL 확인:

    # 현재 권한 확인
    getfacl /project_dir

    출력 내용은 다음과 같은 설정을 보여줄 거야:

    # file: /project_dir
    user::rwx
    user:user1:rwx
    user:user2:r--
  4. 기본 권한 설정:

    디렉토리에 새로 생성된 파일들이 자동으로 ACL 권한을 상속받으려면 기본값을 설정하자:

    sudo setfacl -d -m u:user1:rwx /project_dir
    sudo setfacl -d -m u:user2:r-- /project_dir
    

4. 최종 구성 확인

  1. 방화벽:

    • SSH 및 HTTP 포트가 열려 있고 나머지는 차단되었는지 확인해. 서버에 SSH로 접속하거나 브라우저에서 웹사이트를 열어봐.
  2. SELinux:

    • 파일 컨텍스트를 확인해서 SELinux가 올바르게 접근을 제한하고 있는지 확인해.
  3. ACL:

    • user1user2 사용자로 로그인해서 /project_dir 디렉토리의 파일을 읽거나 쓰기를 시도해봐.

실습 과제

  1. SSH 및 HTTP 액세스만 허용하는 방화벽을 설정해봐.
  2. enforcing 모드로 SELinux를 활성화하고 웹 서버가 올바르게 작동하는지 확인해.
  3. /project_dir 디렉토리에 대해 ACL을 설정해서 user1은 전체 접근 권한을 가지도록 하고, user2는 읽기 권한만 가지도록 만들어봐.
  4. who 명령어를 사용해서 시스템에서 활성화된 사용자를 확인해.

이런 연습은 네가 지식을 강화하고 실제로 어떻게 적용하는지 이해하는 데 도움을 줄 거야. 그리고 기억해: Linux 보안은 설정뿐만 아니라 세부 사항에 끊임없이 주의를 기울이는 것도 중요해. 화이팅!

1
Опрос
Linux에서 사용자 작업,  5 уровень,  5 лекция
недоступен
Linux에서 사용자 작업
Linux에서 사용자 작업
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION