Recent Posts
Recent Comments
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
관리 메뉴

ㅇ.ㅇ

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

Today I Learned

[Linux] Linux에서 사용되는 대표적인 방화벽 종류

yun_ 2025. 2. 27. 11:05
반응형

 

 

최근에 분명 방화벽 때문에 접속이 안 되는 것 같은데, 매번 사용하는 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 상태 확인

 

방화벽을 왜 써야 할까?

  1. 보안 강화
    • 외부에서의 불필요한 접근을 차단하여 서버와 네트워크를 보호함.
    • 허용된 IP, 포트, 프로토콜만 접근할 수 있도록 설정 가능.
    • 악성 트래픽이나 해킹 시도를 방어하는 역할 수행.
  2. 네트워크 트래픽 관리
    • 특정 포트만 개방하여, 서비스 운영에 필요한 트래픽만 허용함.
    • 불필요한 트래픽을 차단하여 시스템 자원을 보호하고, 네트워크 성능을 최적화할 수 있음.
  3. DDoS(분산 서비스 거부) 공격 방어
    • 대량의 비정상적인 요청이 서버를 마비시키는 것을 방지.
    • 일정량 이상의 연결을 제한하거나, 특정 패턴의 악성 요청을 차단 가능.
    • 방화벽 자체로 완벽한 방어는 어렵지만, 초반 차단 역할을 수행할 수 있음.
  4. 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