본문 바로가기
공부/리눅스

2-14. 리눅스 취약점 조치(파일 및 디렉토리 관리) - 접속 IP 및 포트 제한

by SLkittys 2024. 1. 31.
728x90

1. 계정관리

   1 - 1. Root 계정 원격접속 제한  * KISA 다운로드 링크 포함

   1 - 2. PW 설정

   1 - 3. 계정 잠금 임계값 설정

   1 - 4. PW 파일 보호

2. 파일 및 디렉토리 관리

   2 - 1. root 홈, 패스 디렉터리 권한 및 패스 설정

   2 - 2. 파일 및 디렉토리 소유자 설정

   2 - 3 ~ 8. /etc 하위 디렉토리 파일 소유자 및 권한 설정

   2 - 9. SUID, SGID, 설정 파일 점검

   2 - 10 ~ 13. 시작 및 환경 파일 등 점검 

   2 - 14. 접속 IP 및 포트 제한 (현재글)

 

가. 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정

    1) 기존에는 tcp_wrappers를 사용해 hosts.allow, hosts.deny에 Host IP를 등록하는 것으로

        ACL을 작성할 수 있었으나, RHEL 8버전 이후부터 firewalld 패키지를 사용하여 방법이 바뀌었다.

 

초보자를 위한 firewalld - Documentation

초보자를 위한 firewalld 소개 오래 전에 나는 작고 새내기 컴퓨터 사용자로서 방화벽을 가지는 것이 아주 좋다는 얘기를 들었습니다. 내 컴퓨터로 무엇이 들어오고 무엇이 나가는지 내가 결정할

docs.rockylinux.org

 

 

5.15.3. rich Rule 명령 옵션 이해 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

Access Red Hat’s knowledge, guidance, and support through your subscription.

access.redhat.com

위의 링크들에서 도움을 받았다.

 

Solaris에서는 IPfileter를 사용하고, 일부 리눅스에서는 IPtables를 사용하는데,

OS 버전별로 상이하니 반드시 본인의 운영체제에서 어떤 방화벽을 사용하는지 알아보도록 하자.

Rocky 8의 경우 firewalld를 사용한다.

 

firwalld에는 IPtables의 기본적인 사용 및 설치는 다음과 같다.

  * Rocky 8에는 설치가 되어있으나, 기본적으로 RHEL 7버전에서는 firewalld가 비활성화되어있으며,

    클라우드 시스템(AWS 등)에는 설치가 안되어있다.

 

    1) fire walld의 기본 명령어

- firewealld 설치(Rocky 8에는 이미 설치되어있다.)
# dnf install firewalld



- firewalld 서비스 시작
# systemctl enable --now firewalld





-firwalld 방화벽 상태 확인
# firewall-cmd --state

  * running과 not running으로 구분한다.



- 서비스 활성화 상태 확인
# systemctl status firewalld


언제 시작했는지... 등등 알려준다


- 서비스 활성화(재부팅 후에도 지속 반영)
# systemctl enable firwalld


- 서비스 비활성화(재부팅 후에도 지속 반영)
# systemctl disable firewalld


- firewalld 서비스 중지
# systemctl stop firewalld



- firewalld 서비스 다시시작
# systemctl restart firewalld
 
 

- firwalld 구성 및 설정 확인
# firewall-cmd --list-all



- firwalld 설정 후 내용 즉시 반영
# firewall-cmd --reload

 

     2) firewalld의 구조 및 사용법

         - Richrule 사용법

# firewall-cmd --permanent --add-rich-rule='<option>'

 * option : ①rule family = "<rule family>" ②source address="<source ip>" ③<action>

 

    위의 옵션은 특정 ip에 어떠한 행동을 하라는 뜻으로 간단한 사용법의 예시이다.

 

옵션의 종류

① rule family = ipv4, ipv6

② IP

    source address(출발지 IP)

    destination adress(목적지 IP)

③ action(방화벽 규칙과 동일)

    ㆍaccept : 트래픽 허용(통과)

    ㆍreject : 트래픽 거부

    ㆍdrop : 트래픽 무시(패킷 삭제)

    ㆍmark : 트래픽에 특정 마크를 추가하여 다른 규칙이나 프로세스에서 활용 가능함

elements : 사전 정의된 프로토콜이나 port, service 등을 사용 가능함.

 

Richrule의 사용 예시

TEST 사용 환경은 다음과 같다.

user(사용자 본인)
외부 접속자

 

'192.168.89.131의 트래픽을 접근 거부' 추가하기

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.89.131" reject'

 

 

결과확인

잘 작동한다.

 

# firewall-cmd --list-all-zones

정책도 잘 들어가있다.

 

'192.168.89.131의 트래픽을 접근 거부' 추가 정책 제거하기

# firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.89.131" reject'

 

결과확인

다시 ping이 나가는 모습을 확인할 수 있다.

 

 

 

 

 

728x90