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은 다음 조건 중 하나를 만족하는 경우 활성
- Zone이 네트워크 인터페이스에 할당되어 있는 경우
- 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
'OS > Linux' 카테고리의 다른 글
[Linux] 내가 보려고 정리한 Linux 명령어 (0) | 2023.02.06 |
---|
댓글