본문 바로가기
OS/Linux

[Linux] Rocky Linux 방화벽(firewall) 관리

by 홍월이_ 2024. 7. 24.

Rocky Linux OS에서는 방화벽으로  firewalld  를 사용할 수 있음

 

1. 방화벽 기본 사용법

1.1. 현재 방화벽 상태 확인

systemctl status firewalld.service
systemctl status firewalld

 

1.2. 방화벽 시작/중지

# 시작
systemctl start firewalld.service
systemctl start firewalld

# 중지
systemctl stop firewalld.service
systemctl stop firewalld

# 재시작
systemctl restart firewalld

# 서버 시작 시 자동 실행
systemctl enable --now firewalld

# 자동 실행 해제
systemctl disable firewalld

 

1.3. 현재 방화벽 설정 상태 보기

# 방화벽 설정 상태 보기
firewall-cmd --list-all

# 방화벽 동작 확인
firewall-cmd --state

 

1.4. 방화벽 변경 사항 저장

방화벽 설정은 기본적으로 일시적이다. firewalld 서비스를 다시 시작하거나 서버를 다시 시작하면 방화벽에 대한 설정이 저장되지 않는다.

  • 변경사항 영구적 저장
firewall-cmd --runtime-to-permanent

 

  • --permanent 플래그 사용
# 방화벽 영구 저장
firewall-cmd --peramnent [the rest of your command]

 

2. Zone 관리

Zone은 다음 조건 중 하나를 만족하는 경우 활성

  1. Zone이 네트워크 인터페이스에 할당되어 있는 경우
  2. Zone이 소스 IP나 네트워크 범위에 할당되어 있는 경우

2.1. 기본 Zone 구성

drop: 가장 낮은 신뢰 수준. 모든 들어오는 연결을 응답 없이 삭제하고, 나가는 연결만 허용됩니다.

block: 위와 유사하지만, 연결을 간단히 삭제하는 대신, 들어오는 요청은 icmp-host-prohibited 또는 icmp6-adm-prohibited 메시지와 함께 거부됩니다.

public: 공개, 믿을 수 없는 네트워크를 나타냅니다. 다른 컴퓨터를 신뢰하지 않지만 필요한 경우 선택적으로 들어오는 연결을 허용합니다.

external: 게이트웨이로 방화벽을 사용하는 경우 외부 네트워크를 나타냅니다. NAT 매스커레이딩이 구성되어 내부 네트워크는 비공개로 유지되지만 도달 가능합니다.

internal: external 존의 다른 쪽으로 게이트웨이의 내부 부분에 사용됩니다. 컴퓨터는 상당히 신뢰할 수 있으며 추가 서비스를 사용할 수 있습니다.

dmz: 네트워크의 나머지 부분에 액세스할 수 없는 격리된 컴퓨터에 사용됩니다. 특정 들어오는 연결만 허용됩니다.

work: 작업용 컴퓨터에 사용됩니다. 네트워크의 대부분의 컴퓨터를 신뢰합니다. 추가 서비스를 허용할 수 있습니다.

home: 가정 환경에 사용됩니다. 일반적으로 대부분의 다른 컴퓨터를 신뢰하며 몇 가지 서비스를 더 허용합니다.

trusted: 네트워크의 모든 기기를 신뢰합니다. 사용 가능한 옵션 중에서 가장 개방적이며 절제해서 사용해야 합니다.

 

2.2. Zone 관리 명령어

# Zone 확인하기
firewall-cmd --get-zones

# 기본 Zone 확인
firewall-cmd --get-default-zone

# 활성화 된 Zone 확인
firewall-cmd --get-active-zones

# 기본 Zone 변경
firewall-cmd --set-default-zone [your-zone]

# 네트워크 인터페이스 Zone에 추가
firewall-cmd --zone=[your-zone] --add-interface=[youre-network-device]

# 인터페이스를 Zone에서 완전히 제거
firewall-cmd --zone=[youre-zone] --remove-interface=[youre-network-device]

# 새 Zone 만들기
firewall-cmd --new-zone=[your-new-zone]

 

3. Port 관리

3.1. Port 관리 명령어

# 열려있는 port 확인
firewall-cmd --list-ports

# port 추가
firewall-cmd --permanent --zone=public --add-port=8080/tcp

# port 제거
firewall-cmd --permanent --zone-public --remove-port=8080/tcp

# reload
firewall-cmd --reload

 

4. IP 액세스 제한 관리

4.1. 액세스 제한 관리 명령어

# 방화벽 설정 확인
firewall-cmd --permanent --list-all --zone=public

# Local network 사용자만 접근 가능하도록 ssh 열기
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.10.0/24' service name='ssh' accept"

# IP 허용
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address=***'허용할 IP'*** service name='ssh' accept"

# IP 차단
firewall-cmd --permanent --zome=public --add-rich-rule="rule family='ipv4' soucre address=***'차단할 IP'*** reject"

# reload
firewall-cmd --reload

 

References

https://docs.rockylinux.org/guides/security/firewalld-beginners/

https://yongeekd01.tistory.com/50

https://www.datadeveloper.kr/datas/rocky/view/data2403-2

https://foxydog.tistory.com/78

'OS > Linux' 카테고리의 다른 글

[Linux] 내가 보려고 정리한 Linux 명령어  (0) 2023.02.06

댓글