CentOS 7부터 방화벽 관리 도구가 iptables에서 firewalld로 변경되었다.
- CentOS 6: 방화벽 기능과 설정 도구 모두 iptables를 사용한다.
- CentOS 7: 방화벽 기능은 iptables로 제공되지만, 설정 도구로는 firewalld를 사용한다. 명령어는 firewall-cmd이다.
- CentOS 8 이후: 방화벽 기능은 nftables로 제공되며, 설정 도구는 여전히 firewalld를 사용한다.
Firewalld를 사용하는 이유
- 동적 설정: firewalld는 실시간으로 방화벽 설정을 변경할 수 있어 서비스 중단 없이 보안 설정을 조정할 수 있다.
- 유연한 관리: 존(Zone) 개념을 통해 네트워크 인터페이스별로 다른 보안 정책을 적용할 수 있어 관리가 용이하다.
- 추상화된 인터페이스: firewalld는 iptables나 nftables와 같은 저수준 도구를 추상화하여 보다 간편한 명령어로 방화벽을 관리할 수 있게 한다.
nftables의 주요 특징
- 향상된 성능: 패킷 필터링과 NAT 기능을 보다 효율적으로 처리하여 시스템 자원을 절약한다.
- 단순화된 규칙 작성: 복잡한 규칙을 보다 간결하게 작성할 수 있다.
- 확장성: 대규모 네트워크 환경에서도 효과적으로 사용할 수 있다.
Iptables와 Firewalld의 주요 차이점
1. 설정 파일 위치 및 구조:
- Iptables: 방화벽 설정은 /etc/sysconfig/iptables 파일에 저장된다.
- Firewalld: 설정 상세 정보는 /usr/lib/firewalld 및 /etc/firewalld 디렉토리에 있는 여러 파일에 저장되며, /etc/sysconfig/iptables 파일은 존재하지 않는다.
2. 규칙 적용 방식:
- Iptables: 설정 변경 시 모든 규칙을 삭제하고 다시 적용해야 한다. 이는 기존 연결이 중단될 수 있다.
- Firewalld: 설정 차이만을 적용하여 기존 연결을 유지하면서 실시간으로 방화벽 설정을 변경할 수 있다.
3. 존(Zone) 개념 도입:
- Firewalld는 네트워크 인터페이스를 다양한 보안 수준의 존에 할당하여 관리할 수 있다. 이는 보다 유연하고 관리하기 쉬운 방화벽 설정을 가능하게 한다.
Firewalld 주요 명령어 사용법
1. 전체 존 목록을 상세하게 출력 (List)
firewall-cmd --list-all-zones
- 이 명령어는 현재 설정된 모든 존과 각 존에 대한 상세 정보를 출력한다.
2. 새로운 존 추가 및 삭제 (Create / Delete)
# 존 추가:
firewall-cmd --permanent --new-zone=webserver
# 존 삭제:
firewall-cmd --permanent --delete-zone=webserver
- --permanent 옵션을 사용하면 설정이 영구적으로 적용된다.
3. 포트 추가 및 삭제
# 포트 추가:
firewall-cmd --permanent --zone=public --add-port=4000-4100/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp
# 포트 삭제:
firewall-cmd --permanent --zone=public --remove-port=8080/tcp
4. IP 추가 및 삭제
# 특정 IP 허용:
firewall-cmd --permanent --zone=public --add-source=192.168.1.100
# 특정 IP 차단:
firewall-cmd --permanent --zone=public --remove-source=192.168.1.100
5. 서비스 추가 및 삭제
Firewalld는 특정 서비스에 대한 포트를 미리 정의해 두고 있다.
# 서비스 추가:
firewall-cmd --permanent --zone=public --add-service=http
# 서비스 삭제:
firewall-cmd --permanent --zone=public --remove-service=http
6. 설정 반영 (Reload)
모든 설정 변경 후에는 다음 명령어를 통해 변경 사항을 반영해야 한다.
firewall-cmd --reload
7. 방화벽 상태 확인
방화벽이 활성화되어 있는지 확인하려면 다음 명령어를 사용한다.
firewall-cmd --state
728x90
'CS > Linux' 카테고리의 다른 글
[Linux] 마운트 개념 `df -h` 으로 이해하기 (0) | 2024.12.11 |
---|---|
[Linux] NAT를 설정하는 방법 (0) | 2024.10.05 |
[Linux] IP 주소를 얻는 내부 흐름 (0) | 2024.10.04 |
[Linux] Xrdp 서버 (1) | 2024.10.03 |
[Linux] GUI 방화벽 설정 (1) | 2024.10.03 |