ㅇ.ㅇ
[Linux] Linux에서 사용되는 대표적인 방화벽 종류 본문
반응형

최근에 분명 방화벽 때문에 접속이 안 되는 것 같은데, 매번 사용하는 firewalld 명령어가 안 먹혀서 확인해 보니 해당 서버는 ufw로 관리되고 있었다. 그때 찾아보면서 다양한 방화벽이 있다는 걸 알게 되어 간단히 정리를 해본다.
방화벽(Firewall)이란?
방화벽(Firewall)은 네트워크 트래픽을 제어하여 불필요하거나 악의적인 접근을 차단하는 보안 시스템이다. 예를들어 서버에서 특정 포트(예: 80, 443, 22, 8080 등)만 허용하고, 나머지는 차단하여 보안을 강화시킬 수 있다.
Linux에서 사용되는 대표적인 방화벽 종류
1) firewalld (CentOS, RHEL 기본)
- CentOS/RHEL에서 기본적으로 사용되는 방화벽 관리 도구.
- 동적 규칙 관리 가능 → 설정 변경 후 별도의 재시작이 필요 없음.
sudo firewall-cmd --state # 방화벽 실행 여부 확인
sudo firewall-cmd --list-all # 현재 방화벽 규칙 확인
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent # 8080 포트 열기
sudo firewall-cmd --reload # 설정 적용
2) ufw (Ubuntu, Debian 기본)
- Ubuntu/Debian 계열에서 기본적으로 제공되는 방화벽 관리 도구.
- iptables 기반으로 작동하지만, 설정이 더 간편함.
sudo ufw status # 방화벽 실행 여부 확인
sudo ufw allow 8080/tcp # 8080 포트 열기
sudo ufw enable # 방화벽 활성화
sudo ufw reload # 설정 적용
3) iptables (예전부터 사용된 방화벽)
- 리눅스 커널 수준에서 작동하는 강력한 방화벽 관리 도구.
- 기존에 널리 사용되었지만, 유지보수 부담과 성능 문제로 인해 nftables로 대체되는 추세.
- 현재는 firewalld나 ufw 같은 관리 도구가 iptables을 내부적으로 사용함.
sudo iptables -L # 현재 규칙 확인
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT # 8080 포트 열기
4) nftables (최신 리눅스에서 기본)
- iptables의 후속 버전으로, 최신 리눅스 배포판에서 점점 도입되고 있음.
- firewalld에서도 내부적으로 nftables를 사용할 수 있음.
sudo nft list ruleset # 현재 규칙 확인
sudo nft add rule inet filter input tcp dport 8080 accept # 8080 포트 열기
내 서버에서 어떤 방화벽이 사용 중인지 확인하는 방법
sudo systemctl list-units --type=service | grep firewall
(결과예시)
firewalld.service loaded active running firewalld - dynamic firewall daemon
- firewalld.service가 나오면 → firewalld 사용 중
- ufw.service가 나오면 → ufw 사용 중
- 아무것도 없으면 → iptables이나 nftables 사용 가능성 있음
sudo ufw status # UFW 상태 확인
sudo firewall-cmd --state # Firewalld 상태 확인
sudo iptables -L # iptables 상태 확인
sudo nft list ruleset # nftables 상태 확인
방화벽을 왜 써야 할까?
- 보안 강화
- 외부에서의 불필요한 접근을 차단하여 서버와 네트워크를 보호함.
- 허용된 IP, 포트, 프로토콜만 접근할 수 있도록 설정 가능.
- 악성 트래픽이나 해킹 시도를 방어하는 역할 수행.
- 네트워크 트래픽 관리
- 특정 포트만 개방하여, 서비스 운영에 필요한 트래픽만 허용함.
- 불필요한 트래픽을 차단하여 시스템 자원을 보호하고, 네트워크 성능을 최적화할 수 있음.
- DDoS(분산 서비스 거부) 공격 방어
- 대량의 비정상적인 요청이 서버를 마비시키는 것을 방지.
- 일정량 이상의 연결을 제한하거나, 특정 패턴의 악성 요청을 차단 가능.
- 방화벽 자체로 완벽한 방어는 어렵지만, 초반 차단 역할을 수행할 수 있음.
- SSH 및 원격 접속 보안 강화
- 기본적으로 많이 사용되는 22번 포트(SSH) 등의 접속을 제한하여 무차별 대입 공격(Brute Force Attack) 방지.
- 특정 IP에서만 SSH 접속을 허용하거나, SSH 포트를 변경하여 보안을 강화할 수 있음.
- 포트 스캔 공격을 방지하는 데 도움됨.
반응형
'Today I Learned' 카테고리의 다른 글
[Oracle] Oracle에서 NULL 값 다루기 (0) | 2025.03.09 |
---|---|
[DEV] SSO (0) | 2025.03.02 |
[DEV] 로그와 메트릭 (0) | 2025.02.23 |
[Tool] SDKMAN 설치 및 사용법 (0) | 2025.02.12 |
[Tomcat] Tomcat > bin 디렉터리의 주요 파일 설명 (0) | 2025.02.11 |