들어가며
TCP Wrapper와 Firewalld는 네트워크 보안을 강화하기 위한 소프트웨어 도구로, 이 리포트에서는 두 도구의 개념과 주요 기능, 설정 방법, 장단점을 간략히 살펴보고 TCP Wrapper에서 Firewalld로 전환하는 방법을 상세히 설명한다.
TCP Wrapper
1. 개념
TCP Wrapper는 초기 네트워크 보안 도구로 유용했으나, 시간이 지나면서 iptables, nftables, SELinux와 같은 더 정교한 보안 도구들이 등장하면서 그 필요성이 줄어들었습니다. 또한 많은 서비스가 자체적으로 ACL 기능을 내장하여 TCP Wrapper의 기능을 대체하였으며, 여전히 일부 서비스에서 접근 제한에 유용할 수 있지만, 애플리케이션 계층에서만 동작하는 등 보안에 한계가 있어 점차 사용 빈도가 감소하여 RHEL 7.4 이후부터는 지원이 중단되고 RHEL 8에서는 완전히 지원이 종료되었다.
2. 주요 기능
– 접근 제어: /etc/hosts.allow와 /etc/hosts.deny 파일을 사용하여 접근을 제어
– 로그 기록: 접근 시도에 대한 로그를 기록하여 관리자가 의심스러운 활동을 모니터링
– 유연한 설정: 다양한 규칙 설정을 통해 특정 서비스에 대한 접근을 세밀하게 제어
Firewalld
1. 개념
firewalld는 iptables 의 복잡성과 단점을 보완하기 위하여 개발되었으며, 리눅스에서 네트워크 방화벽을 관리하기 위한 서비스로, 주로 CentOS, RHEL, Fedora 등과 같은 시스템에서 사용한다.
2. 주요 기능
- Zones: 네트워크 인터페이스와 연결된 방화벽 규칙을 묶어 관리하는 논리적 그룹입니다. 예를 들어, public, internal, dmz, trusted 등의 다양한 zone을 정의하여 네트워크에 따라 다른 보안 정책 적용
- Services: 특정 서비스(예: SSH, HTTP, HTTPS 등)에 대한 규칙을 설정합니다. 방화벽에서 서비스 단위로 필터링
- Rich Rules: firewalld에서 더 세밀한 규칙을 만들기 위한 고급 기능으로 예를 들어, 특정 IP에서만 특정 서비스를 허용하거나, 특정 시간대에만 트래픽을 차단하는 등의 조건을 설정할 수 있음
3. 장점
- 동적 룰 관리: 실시간으로 방화벽 규칙을 추가, 수정, 삭제 가능.
- Zone 기반 설정: 네트워크 인터페이스별로 다른 방화벽 규칙을 설정 가능.
- 간단한 명령어 사용: 사용하기 쉬운 명령어 인터페이스 제공.
- 서비스 기반 필터링: 서비스 이름을 기반으로 방화벽 규칙 설정 가능.
- 영구적인 설정: 시스템 재부팅 후에도 설정 유지 가능.
- Rich Rule 지원: 복잡한 조건을 추가하여 세밀한 제어 가능.
4. 단점
- 복잡성: 다양한 기능과 설정 옵션으로 초보자에게 복잡하고 고급 기능은 이해하기 어려움.
- GUI의 부족: 명령줄 인터페이스(CLI) 위주로 시각적인 관리가 어려우며, 일부 배포판에서 GUI 도구를 제공하지만 기능에 제한이 있음..
- 기타 방화벽 도구와의 호환성: iptables 기반이지만 다른 방화벽 도구와의 호환성 문제로 복잡한 설정이 추가될수 있음.
5. 결론
Firewalld는 많은 Linux 배포판에서 표준 방화벽 관리 도구로, 동적 규칙 관리와 영역 기반 구성을 통해 복잡한 네트워크 환경에서 방화벽 관리를 용이하게 하며, 규칙은 실시간으로 수정할 수 있어 보안 정책을 즉시 조정할 수 있고, 서비스 기반 필터링을 통해 특정 서비스에 대한 유연한 액세스 제어를 제공하지만, 그 복잡성은 초보자에게 압도적일 수 있으며, RHEL8에서 기본적으로 제공되는 강력하고 유연한 방화벽 도구이다.
Switching from TCP Wrapper to firewalld
이 문서에서는 기존 TCP Wrapper 환경에서 사용하던 설정을 firewalld로 전환하는 세 가지 방법에 대해 안내한다.
1. Firewalld, rich rule 설정 방법
시나리오)
- 21,22,23번 포트를 제외한 모든 포트 허용
- 21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트에 대해 모두 접속 불가
- 21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트의 특정 IP에 대하여 접속 허용
- 해당 가이드에서 “priority” 의 값이 중요함.
- 시스템에서 잘못된 정책에 의한 문제를 방지하기 위하여 firewall-offline-cmd 명령어 사용
firewall 서비스 stop
allow-zone 생성 후 모든 접속 허용
Default zone 을 allow-zone으로 변경
21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트 차단
21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트에 대해 특정 IP 100.100.100.11 접속 허용
firewalld 정책 검증
firewall 정책 적용 및 정책 확인
운영중(firewalld 구동중) rule 추가
Note)
2. firewalld, rich rule 로그 설정 방법
rule 초기 생성 과정에서 로그 설정 추가
초기 rule 생성 후 로그 설정 추가
로그는 /var/log/messages 파일에 기록됨
3. firewalld, direct rule 설정 방법
시나리오)
- 21,22,23번 포트를 제외한 모든 포트 허용
- 21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트에 대해 모두 접속 불가
- 21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트의 특정 IP에 대하여 접속 허용
- 해당 가이드에서 “INPUT {number}” 의 값이 중요함.
- 시스템에서 잘못된 정책에 의한 문제를 방지하기 위하여 firewall-offline-cmd 명령어 사용
firewall 서비스 stop
allow-zone 생성 후 모든 접속 허용
Default zone 을 allow-zone으로 변경
21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트 차단
21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트에 대해 특정 IP 허용
firewalld 정책 검증
firewall 정책 적용 및 정책 확인
운영중(firewalld 구동중) rule 추가
운영중(firewalld 구동중) rule 삭제
rule에 대한 코멘트 추가
-m comment –comment “Description Text”
Note)
4. firewalld, direct rule 로그 설정 방법
rule 초기 생성 과정에서 로그 설정 추가 (명령어 순서 중요)
초기 rule 생성 후 로그 설정 추가 (라인 위치 중요)
firewall 정책 확인
로그는 /var/log/messages 파일에 기록됨
5. iptables, rule 설정 방법
시나리오)
- 21,22,23번 포트를 제외한 모든 포트 허용
- 21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트에 대해 모두 접속 불가
- 21번(ftp), 22번(ssh/sftp), 23번(telnet) 포트의 특정 IP에 대하여 접속 허용
- 해당 가이드에서 rule에 대한 위치가 중요함
nftable 및 firewalld 서비스 stop
Note)
6. iptables, rule 로그 설정 방법
rule 초기 생성 과정에서 로그 설정 추가 (명령어 순서 중 )
초기 rule 생성 후 로그 설정 추가 ( 라인 위치 중요 )
iptables 정책 확인
로그는 /var/log/messages 파일에 기록됨
FAQ
Q. 로그 메시지에 아래와 같은 WARNING 메시지가 발생됨.
firewalld[1479]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.
A. RHEL 7.9 이후 버전에서 “AllowZoneDrifting” 매개변수가 “yes” 로 설정된 경우 발생됨.
해당 옵션을 “no” 로 변경하고 서비스를 재 시작.
Q. 직관적인 iptables 서비스가 아닌 firewalld 서비스를 권장하는 이유는 무엇인가요?
A. firewalld의 iptables 백엔드가 더 이상 사용되지 않음
RHEL 9에서는 iptables 프레임워크에 대하여 더 이상 제공하지 않음. 따라서 방화벽의 iptables 백엔드와 직접 인터페이스도 더 이상 사용되지 않으며, 직접 인터페이스 대신 방화벽의 기본 기능을 사용하여 필요한 규칙을 구성.
Q. firewalld 환경에서 특정 IP 목록을 지정할 수 있나요?
A. “ipset” 옵션을 사용하여 추가/삭제 가능.
Q. firewalld의 주요 개념인 ‘영역(zone)’이란 무엇인가요?
A. firewalld의 ‘영역(zone)’은 네트워크 인터페이스나 연결에 적용되는 방화벽 규칙임.
각 영역은 신뢰 수준에 따라 미리 정의된 규칙을 가지고 있으며, 예를 들어: public, home, work, internal, external 등으로 구분 지을 수 있습니다.
Q. firewalld의 로그가 너무 많아 시스템 자원을 과도하게 사용합니다.
A. firewalld의 로그 레벨을 조정하여 중요도 낮은 로그는 기록하지 않도록 하는 것을 추천함.
# firewall-cmd –set-log-denied=off # 로그 기록 비활성화
# firewall-cmd –reload
마치며
TCP Wrappers의 지원 종료에 따라, 대안 기술로서 firewalld와 iptables를 심층적으로 검토하며 실제 요구 사항을 충족할 수 있는지를 철저히 검증했다. 앞으로도 더 나은 기술을 도입하기 위해 지속적으로 연구하고 개선해 나갈 계획이다.또한, AI와 같은 기술을 활용하면 데이터 분석의 정확도가 높아지고, 소비자 행동 및 트렌드에 대한 심층적인 인사이트를 얻을 수 있다. 지금까지 소개한 내부 외부 데이터와 인공지능을 통해 데이터를 종합하여 분석할 때 CPG 업계의 전사적 중요 의사결정 수준은 어떠해질 지 기대해보시기 바란다.
# References
https://access.redhat.com/solutions/6969130
https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/7/html/security_guide/sec-setting_and_controlling_ip_sets_using_firewalld
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/security_guide/configuring_logging_for_denied_packets#Configuring_Logging_for_Denied_Packets
https://news.ycombinator.com/item?id=15440047
https://lists.ubuntu.com/archives/ubuntu-users/2014-June/276215.html
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.4_release_notes/chap-red_hat_enterprise_linux-7.4_release_notes-deprecated_functionality_in_rhel7
https://access.redhat.com/solutions/3906701
https://fedoraproject.org/wiki/Changes/Deprecate_TCP_wrappers
https://en.wikipedia.org/wiki/TCP_Wrappers
https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/8/html/securing_networks/working-with-firewalld-zones_using-and-configuring-firewalld
유재전 프로
소프트웨어사업부 OSS사업팀
RHEL OS 기술 지원을 하고 있으며, 그와 관련된 다양한 기술에 대하여 연구하고 있습니다.
Register for Download Contents
- 이메일 주소를 제출해 주시면 콘텐츠를 다운로드 받을 수 있으며, 자동으로 뉴스레터 신청 서비스에 가입됩니다.
- 뉴스레터 서비스 가입 거부 시 콘텐츠 다운로드 서비스가 제한될 수 있습니다.
- 파일 다운로드가 되지 않을 경우 s-core_mktg@samsung.com으로 문의해주십시오.