0Pricing
Linux Server Deployment & SSH Mastery · 강의

고급 방화벽 규칙(IPTables)

IPTables를 능숙하게 사용하여 복잡한 상태 기반 방화벽 규칙을 만들고 네트워크 주소 변환(NAT)을 구현하며 정교한 공격으로부터 서버를 보호합니다.

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

IPTables 심층 탐구

IPTables는 Linux에 내장된 강력한 방화벽입니다. 기본적인 기능 외에도 정밀한 제어를 위한 고급 기능을 제공합니다.

이 레슨에서는 복잡한 규칙, 상태 저장 필터링, 네트워크 주소 변환(NAT)을 사용하여 서버의 네트워크를 안전하게 보호하고 관리하는 방법을 배웁니다.

테이블과 체인 기억하기

IPTables는 규칙을 각각 특정 목적을 담당하는 테이블로 구성합니다. 테이블 안에는 순서대로 평가되는 규칙 목록인 체인이 있습니다.

  • filter 테이블: 패킷을 필터링(차단 또는 허용)하는 기본 테이블입니다. INPUT, OUTPUT, FORWARD 체인을 포함합니다.
  • nat 테이블: 네트워크 주소 변환(NAT)에 사용됩니다. PREROUTING, POSTROUTING, OUTPUT 체인을 포함합니다.
  • mangle 및 raw와 같은 다른 테이블은 특수한 패킷 수정에 사용됩니다.

상태 저장 방화벽 살펴보기

상태 저장 방화벽은 네트워크 연결의 상태를 추적합니다. 각 패킷을 개별적으로 확인하는 대신 패킷이 기존의 확립된 연결에 속하는지 기억합니다.

주요 연결 상태는 다음과 같습니다.

  • NEW: 새 연결의 첫 번째 패킷입니다.
  • ESTABLISHED: 기존의 활성 연결에 속하는 패킷입니다.
  • RELATED: 기존 연결과 관련된 새 연결을 시작하는 패킷입니다(예: FTP 데이터 전송).

상태 저장 규칙 구현하기

상태 저장 규칙을 사용하면 방화벽 관리가 크게 단순해집니다. 확립된 연결에 속하는 모든 트래픽을 허용할 수 있으므로 NEW 연결을 시작하는 경우에 대한 규칙만 정의하면 됩니다.

이 규칙은 이미 확립되었거나 관련된 연결에 속하는 모든 수신 패킷을 허용합니다.

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

복잡한 규칙 논리 구성하기

IPTables에서는 다양한 일치 모듈과 옵션을 조합하여 매우 구체적인 규칙을 만들 수 있습니다. 이를 통해 서비스와 출처별 접근을 세밀하게 조정할 수 있습니다.

예: 특정 서브넷(192.168.1.0/24)에서 새 연결에 한해 SSH(포트 22)를 허용합니다.

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -m state --state NEW -j ACCEPT

네트워크 주소 변환 소개

네트워크 주소 변환(NAT)은 패킷이 이동하는 동안 패킷의 IP 헤더에 있는 네트워크 주소 정보를 수정합니다. 다음과 같은 경우에 매우 중요합니다.

  • 사설 네트워크의 여러 장치가 하나의 공용 IP 주소를 공유하도록 합니다(예: 가정용 라우터).
  • 포트 전달을 수행하여 외부 요청을 내부 서버로 전달합니다.

주요 유형은 Source NAT(SNAT)와 Destination NAT(DNAT) 두 가지입니다.

외부 연결을 위한 SNAT

Source NAT(SNAT)는 패킷의 소스 IP 주소를 변경합니다. 내부 서버가 공용 IP를 사용하는 게이트웨이 서버를 통해 인터넷에 액세스해야 할 때 일반적으로 사용됩니다.

마스커레이딩은 SNAT의 한 형태로, 외부 인터페이스의 IP 주소를 소스 IP로 자동 사용합니다. 동적 IP 주소에 유용합니다.

예: 내부 네트워크 192.168.0.0/24가 eth0을 통해 인터넷에 액세스하도록 허용합니다.

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

수신 서비스용 DNAT

대상 NAT(DNAT)은 패킷의 대상 IP 주소를 변경합니다. 이는 포트 포워딩에 적합하며, 게이트웨이 서버의 공인 IP를 통해 내부 서버에서 실행 중인 서비스를 인터넷에 공개할 수 있습니다.

예: eth0에서 수신한 웹 요청(포트 80)을 192.168.1.100의 내부 웹 서버로 전달합니다.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80

무차별 대입 공격 방어

IPTables는 출발지 IP에서 새 연결을 허용하는 속도를 제한하여 무차별 대입 로그인 시도(예: SSH)와 같은 일반적인 공격을 방어하는 데 도움을 줍니다.

limit 모듈을 사용하면 속도와 버스트 제한을 지정할 수 있습니다. 제한에 도달한 후의 연결은 삭제해야 한다는 점을 기억하십시오.

예: 새 SSH 연결을 분당 3개로 제한하고, 처음에는 3개의 연결까지 버스트를 허용한 다음 나머지 연결을 삭제합니다.

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/minute --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

IPTables 규칙 논리

게이트웨이 역할을 하는 서버를 생각해 보십시오. 이 서버에는 공용 인터페이스 eth0과 내부 인터페이스 eth1(192.168.1.0/24에 연결됨)이 있습니다.

인터넷에서 포트 80으로 192.168.1.50의 내부 웹 서버에 접근할 수 있도록 허용하는 IPTables 명령은 무엇입니까?

IPTables 완전 정리

축하합니다! 다음과 같은 고급 IPTables 개념을 살펴보았습니다.

  • ESTABLISHED, RELATED, NEW 상태를 사용하는 상태 기반 방화벽
  • 여러 일치 기준을 결합하여 복잡한 규칙 만들기
  • 송신(SNAT/마스커레이드) 및 수신(DNAT/포트 포워딩) 트래픽 모두에 네트워크 주소 변환(NAT) 구현하기
  • limit 모듈을 사용한 기본적인 공격 방어

이러한 기술은 견고하고 안전한 Linux 서버 환경을 구축하는 데 필수적입니다. IPTables 규칙은 기본적으로 영구 저장되지 않으므로 변경한 후에는 규칙을 저장해야 한다는 점을 기억하십시오!

자주 묻는 질문

“고급 방화벽 규칙(IPTables)” 강의는 무료인가요?

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

“고급 방화벽 규칙(IPTables)”에서 뭘 배우나요?

IPTables를 능숙하게 사용하여 복잡한 상태 기반 방화벽 규칙을 만들고 네트워크 주소 변환(NAT)을 구현하며 정교한 공격으로부터 서버를 보호합니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Server Deployment & SSH Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“고급 방화벽 규칙(IPTables)” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. 서버 보안 감사
  2. 고급 방화벽 규칙(IPTables)
  3. 침입 탐지 및 방지
  4. 중앙 집중식 로그 기록과 SIEM 통합
← Linux Server Deployment & SSH Mastery(으)로 돌아가기