Linux Server Deployment & SSH Mastery · 강의

방화벽 이해하기(UFW/firewalld)

방화벽의 개념과 UFW(Ubuntu) 또는 firewalld(CentOS)와 같은 일반적인 도구를 사용하여 네트워크 트래픽을 제어하는 방법을 학습합니다.

레슨 2/412개 단계

방화벽 이해하기(UFW/firewalld)은(는) CoddyKit의 무료 Linux Server Deployment & SSH Mastery 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Linux Server Deployment & SSH Mastery 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

서버의 디지털 경비

서버를 집이라고 생각해 보겠습니다. 방화벽은 현관의 경비원처럼 누가 들어오고 나갈 수 있는지 결정합니다. 방화벽은 서버 보안의 핵심 요소입니다.

방화벽은 네트워크 트래픽을 제어하여 무단 접근을 차단하고 악의적인 공격으로부터 서버를 보호합니다.

방화벽이 트래픽을 필터링하는 방법

방화벽은 일련의 규칙을 사용하여 들어오고 나가는 네트워크 트래픽을 검사합니다. 이러한 규칙은 다음을 기준으로 합니다.

  • 출발지/목적지 IP 주소: 트래픽이 어디에서 오거나 어디로 가는지 나타냅니다.
  • 포트 번호: 서비스별로 사용하는 특정 ‘문’입니다(예: SSH는 포트 22, HTTP는 포트 80).
  • 프로토콜: TCP 또는 UDP와 같은 프로토콜입니다.

방화벽은 이러한 규칙과 일치하는 트래픽을 허용하거나 거부합니다.

UFW 알아보기: 간편한 방화벽

Ubuntu와 같은 Debian 기반 시스템에서 가장 널리 사용하는 방화벽 도구는 UFW이며, 이름은 "Uncomplicated Firewall"을 뜻합니다.

UFW는 사용하기 쉽게 설계되어 복잡한 `iptables` 명령을 직접 다루지 않아도 초보자가 방화벽 규칙을 간편하게 관리할 수 있습니다.

UFW의 안전한 기본 동작

기본적으로 UFW는 보안을 우선하도록 구성됩니다.

  • 들어오는 연결 거부: 명시적으로 허용하지 않은 모든 들어오는 연결을 차단합니다.
  • 나가는 연결 허용: 서버가 외부로 연결을 시작할 수 있습니다.

따라서 웹 서버나 SSH처럼 인터넷에서 접근할 수 있어야 하는 서비스의 포트를 별도로 열어야 합니다.

UFW 활성화(Ubuntu/Debian)

UFW를 활성화하기 전에 SSH 접근을 허용하는 것이 매우 중요합니다. 그렇지 않으면 서버에 접속하지 못하게 될 수 있습니다! SSH를 허용한 후 UFW를 활성화할 수 있습니다.

다음 명령을 실행해 보십시오.

sudo ufw allow ssh
sudo ufw enable
sudo ufw status verbose

UFW로 필수 서비스 허용하기

UFW에서는 일반적인 서비스의 이름(/etc/services에 정의된 경우)이나 포트 번호를 사용하여 트래픽을 허용할 수 있습니다. HTTP(웹 트래픽)와 SSH를 허용해 보겠습니다.

sudo ufw allow http
sudo ufw allow https
sudo ufw status

UFW로 사용자 지정 포트 접근 허용하기

사용자 지정 애플리케이션에서 사용하는 포트 8080처럼 표준 서비스 이름이 없는 특정 포트를 열어야 할 때가 있습니다. 프로토콜도 지정할 수 있습니다(TCP 또는 UDP).

포트 8080에서 TCP 트래픽을 허용하는 방법은 다음과 같습니다.

sudo ufw allow 8080/tcp
sudo ufw status

firewalld 소개: 동적 방화벽

CentOS와 Fedora 같은 Red Hat 기반 시스템에서는 방화벽 관리 도구로 firewalld를 사용합니다. firewalld는 동적 방화벽 데몬이므로 전체 방화벽 서비스를 다시 시작하지 않고도 규칙을 변경할 수 있습니다.

firewalld는 규칙을 관리할 때 ‘영역’이라는 개념을 사용하여 더욱 유연하게 보안을 구성할 수 있습니다.

firewalld 영역 이해하기

firewalld는 방화벽 규칙을 영역으로 구성합니다. 각 영역에는 기본 규칙 집합이 있으며 네트워크 인터페이스에 할당할 수 있습니다.

일반적인 영역은 다음과 같습니다.

  • public: 신뢰할 수 없는 네트워크용입니다(외부 인터페이스의 기본 영역).
  • home/internal: 신뢰할 수 있는 네트워크용입니다.
  • trusted: 모든 네트워크 연결을 허용합니다.

이를 통해 네트워크의 신뢰 수준에 따라 서로 다른 보안 수준을 적용할 수 있습니다.

firewalld로 서비스 허용하기

firewalld에서 서비스를 허용하려면 서비스와 영역을 지정하고, 재부팅 후에도 규칙이 유지되도록 --permanent 플래그를 사용합니다. 그런 다음 firewalld를 다시 불러와야 합니다.

public 영역에서 SSH와 HTTP를 열어 보겠습니다.

sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public

방화벽 빠른 확인

UFW와 firewalld에 대해 배웠습니다. 다음 중 이러한 방화벽 도구에 대한 설명으로 TRUE인 것은 무엇입니까?

방화벽: 서버의 방패

잘하셨습니다! 서버 보안에서 방화벽이 하는 중요한 역할을 배웠습니다. 이제 다음 내용을 이해하셨을 것입니다.

  • 방화벽이 무엇이며 왜 필수적인지 이해했습니다.
  • UFW를 활성화하고 서비스를 허용하는 방법을 포함하여 Ubuntu/Debian에서 UFW가 작동하는 방식을 배웠습니다.
  • CentOS/RHEL에서 firewalld가 작동하는 방식, 영역 개념, 서비스 추가 방법을 배웠습니다.

네트워크 접근을 제어하고 서버를 안전하게 유지하려면 이러한 도구를 능숙하게 사용하는 것이 중요합니다. 다음에는 특정 포트 관리와 그 보안상 의미를 살펴보겠습니다!

무료로 시작

AI 튜터와 함께 Linux Server Deployment & SSH Mastery을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
12
레슨
48

자주 묻는 질문

“방화벽 이해하기(UFW/firewalld)” 강의는 무료인가요?

네 — “방화벽 이해하기(UFW/firewalld)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Linux Server Deployment & SSH Mastery 강의 전체를 잠금 해제할 수 있습니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

“방화벽 이해하기(UFW/firewalld)”에서 뭘 배우나요?

방화벽의 개념과 UFW(Ubuntu) 또는 firewalld(CentOS)와 같은 일반적인 도구를 사용하여 네트워크 트래픽을 제어하는 방법을 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Server Deployment & SSH Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Linux Server Deployment & SSH Mastery을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Linux Server Deployment & SSH Mastery은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“방화벽 이해하기(UFW/firewalld)” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Linux Server Deployment & SSH Mastery 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Linux Server Deployment & SSH Mastery 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 기본 네트워크 구성
  2. 방화벽 이해하기(UFW/firewalld)
  3. 포트 관리 및 보안
  4. DNS 구성과 문제 해결
← Linux Server Deployment & SSH Mastery(으)로 돌아가기