무단 접속 및 서버 해킹은 심각한 위협이므로 네트워크 보안 기술의 일부로 방화벽을 구현해야 합니다. Iptables 규칙을 사용하는 방법을 아는 것은 Linux 시스템에서 이러한 위험을 줄이는 주요 자산 중 하나입니다. 이 튜토리얼은 iptables 표시 규칙 및 iptables 규칙 제거와 같은 기본 방화벽 개념에 익숙해지도록 안내합니다. 우분투, 이를 달성하기 위해 간단한 명령을 실행하는 데 도움이 됩니다. iptables 규칙을 나열하거나 삭제하는 방법을 논의하기 전에 iptables 규칙이 무엇이며 왜 사용하는지 이야기해 보겠습니다.
IPtables란 무엇입니까?
iptables는 다음을 통해 트래픽을 허용하거나 차단하는 명령줄 방화벽 유틸리티입니다. 정책 체인. 시스템에서 연결을 시도하면 iptables는 목록에서 일치하는 규칙을 찾아 네트워크 보안에 대한 적절한 지원을 제공합니다. 연결에 대한 연결을 찾지 못하면 기본 작업을 사용합니다.
iptables는 거의 항상 모든 컴퓨터에 사전 설치되어 제공됩니다. 리눅스 배포판. 다음 명령을 사용하여 업데이트하거나 설치할 수 있습니다.
sudo apt-get install iptables
왜 우리는 Iptable을 사용합니까?
Linux 명령줄 방화벽인 iptables를 사용하면 시스템 관리자는 구성 가능한 테이블 규칙을 통해 들어오고 나가는 트래픽을 처리할 수 있습니다. Iptables는 일련의 내장 또는 사용자 정의 규칙이 포함된 체인이 있는 테이블 세트를 사용합니다.
이전 섹션에서 언급했듯이 iptables는 대부분의 Linux 시스템의 네트워크 보안에 필수적인 역할을 합니다. 이 기사의 나머지 부분에서는 주로 iptables를 표시하고 iptables 규칙을 제거하는 방법과 같은 개념을 포함하여 iptables 목록 모든 규칙을 설명하는 데 중점을 둡니다.
보다 구체적으로 이 문서에서는 규칙 나열, 패킷 및 바이트 카운터 삭제, Iptables 규칙 제거, 체인 플러시, 모든 체인 삭제 및 모든 트래픽 허용 방법을 보여 주는 몇 가지 필수 iptables 작업에 대해 설명합니다.
Ubuntu의 Iptables에 대한 전체 가이드
iptables show 규칙을 진행하기 전에 iptables 명령이 설치된 Linux 서버를 사용해야 한다는 점에 유의하세요. 이러한 요구 사항 외에도 sudo 권한이 있어야 합니다. 방화벽으로 작업할 때 SSH 트래픽(기본적으로 포트:22)을 차단하여 서버를 잠그지 않도록 주의하세요. 방화벽 설정으로 인해 액세스할 수 없는 경우 대역 외 콘솔을 통해 연결하여 문제를 해결해야 할 수도 있습니다.
사양별 규칙 나열
활성 iptables 규칙을 볼 수 있습니다. 테이블에 또는 규칙 사양 목록. 거의 두 가지 방법 모두 서로 다른 형식으로 동일한 정보를 제공합니다. 사양별로 활성 iptables의 모든 규칙을 나열하려면 다음과 함께 iptables 명령을 실행해야 합니다. -S 옵션:
sudo iptables -S
이 iptables show rule 명령을 실행하면 다음과 같은 출력이 표시됩니다.

특정 체인 나열
show iptables의 출력을 INPUT, OUTPUT 또는 같은 특정 체인으로 제한하려는 경우 TCP, -S 옵션 바로 뒤에 체인 이름을 지정할 수 있습니다. 예를 들어, 다음 iptables show rule 명령은 TCP 체인에 지정하는 데 도움이 됩니다.
sudo iptables -S TCP

이전에 언급했듯이 iptables 표시 규칙을 완료하는 또 다른 방법이 있습니다. 즉, iptables 규칙을 규칙 테이블로 보는 것입니다. 이 기술을 살펴보겠습니다.
규칙을 테이블로 나열
명령을 사용하여 테이블에 iptables 규칙을 표시하면 다양한 규칙을 비교하는 데 도움이 될 수 있습니다. 다음 show iptables 명령을 실행해야 합니다. -L 옵션 이러한 활성 규칙을 모두 테이블로 출력하려면 다음을 수행하세요.
sudo iptables -L
이 명령은 체인별로 정렬된 모든 현재 규칙을 표시합니다. INPUT, OUTPUT, TCP 등과 같은 특정 체인으로 출력을 제한하는 방법이 있습니다. -L 옵션 바로 뒤에 체인 이름을 지정해야 합니다. 다음은 iptables 표시 규칙을 INPUT 체인으로 제한하는 예입니다.
sudo iptables -L INPUT

위 출력의 첫 번째 줄에는 체인 이름(이 경우 INPUT)과 기본 정책(DROP)이 표시됩니다. 다음 줄에는 테이블의 각 열 헤더와 체인 규칙이 포함되어 있습니다. 우리는 당신이 그것들을 모두 배울 수 있도록 그것들을 살펴볼 것입니다:
- 대상: 패킷이 규칙에 해당하는 경우 대상은 해당 패킷으로 수행해야 할 작업을 결정합니다. 더 많은 규칙과 비교하기 위해 패킷을 수락, 삭제, 기록하거나 다른 체인으로 보낼 수 있습니다.
- prot: 프로토콜(예: TCP, udp, ICMP 또는 모두)
- opt: IP 옵션을 나타냅니다. (자주 사용되지 않음)
- 소스: 트래픽의 소스 IP 주소/서브넷을 표시합니다.
- 목적지: 트래픽의 목적지 IP 주소/서브넷을 나타냅니다.
라벨이 없는 열은 규칙의 옵션을 제안하며, 이전 열에 표시되지 않은 규칙의 일부입니다. 이 정보는 소스 및 대상 포트부터 패킷의 연결 상태까지 무엇이든 될 수 있습니다.
또한 읽어보세요: VPS에 OpenVPN 설치 – OpenVPN 클라이언트 설정 🔑
패킷 수와 집계 크기를 표시하는 방법은 무엇입니까?
iptables 규칙을 나열할 때 각 특정 iptables 규칙과 일치하는 패킷 수와 패킷의 총 크기(바이트)를 표시할 수 있습니다. 이는 어떤 규칙이 패킷과 일치하는지 이해하는 데 도움이 되는 경우가 많습니다. 당신은 -L 그리고 -v 옵션을 함께 사용하여 달성 이것.
다음은 -v 옵션과 함께 INPUT 체인을 다시 사용하는 예입니다.
sudo iptables -L INPUT -v

이제 목록에 다음과 같은 두 개의 열이 더 있습니다. 패킷 그리고 바이트. 우리는 iptables에서 모든 규칙 명령을 표시하도록 하는 다양한 방법을 배웠으며 이제 패킷 수와 집계 크기를 재설정하는 방법을 알아볼 차례입니다.
패킷 수와 집계 크기를 재설정하는 방법은 무엇입니까?
규칙에 대해 패킷 및 바이트 카운터를 지우거나 0으로 설정하려면 -Z 옵션을 사용해야 합니다. 또한 재부팅이 발생하면 재설정되는데, 이는 서버가 기존 규칙과 일치하는 새 트래픽을 수신하는지 확인하려는 경우에 유용합니다.
다음을 사용하여 모든 체인 및 규칙에 대한 카운터를 지울 수 있습니다. -Z 옵션 그 자체로:
sudo iptables -Z
특정 체인의 모든 규칙에 대한 카운터를 제거하려면 -Z 옵션을 사용하고 체인을 지정해야 합니다. 예를 들어, 다음 명령은 INPUT 체인 카운터를 지우는 데 사용됩니다:
sudo iptables -Z INPUT
특정 규칙에 대한 카운터를 제거하려면 체인 이름과 규칙 번호를 정확하게 언급해야 합니다. 예를 들어, 다음 명령을 실행하여 INPUT 체인의 첫 번째 규칙에 대한 카운터를 0으로 설정할 수 있습니다.
sudo iptables -Z INPUT 1
iptables가 모든 규칙 명령을 표시하고 iptables 패킷과 바이트 카운터를 재설정하는 방법을 아는 것 외에도 iptables 규칙을 제거하는 방법을 아는 것이 좋습니다.
또한 읽어보세요: VPS에 PPTP VPN 서버를 설치하는 방법
iptables 규칙을 제거하는 방법?
여러 명령을 사용하여 Iptables 규칙을 제거하거나 체인의 모든 규칙을 삭제할 수도 있습니다. 여기서는 이러한 방법에 대해 논의하겠습니다.
사양별 규칙 제거
iptables 규칙을 제거하는 방법 중 하나는 규칙 사양을 통해 수행하는 것입니다. 이를 통해 iptables 명령을 실행할 수 있습니다. -D 옵션 그리고 규칙 사양입니다. 이 기술을 사용하여 규칙을 제거하려면 규칙 목록의 출력인 iptables -S를 활용하여 도움을 받을 수 있습니다.
예를 들어 잘못된 수신 패킷을 삭제하는 규칙(-A INPUT -m conntrack –ctstate INVALID -j DROP)을 삭제하려면 다음 명령줄을 실행할 수 있습니다.
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
-A 옵션은 생성 시 규칙 위치를 나타내기 위한 옵션이므로 여기서는 제외해야 합니다.
체인 및 번호별로 규칙 제거
iptables 규칙을 제거하는 데 사용할 수 있는 다른 방법은 체인 및 줄 번호를 이용하는 것입니다. 다음 명령을 입력하여 규칙의 줄 번호를 선택하고, 테이블 형식으로 규칙을 나열하고, –줄 번호 옵션:
sudo iptables -L --line-numbers

이를 실행한 후 모든 iptables 규칙에는 num 헤더로 표시되는 줄 번호가 있습니다.
삭제하려는 규칙을 알고 나면 해당 규칙의 체인과 줄 번호를 염두에 두십시오. 체인 및 규칙 번호와 함께 iptables -D 명령을 사용해야 합니다. 예를 들어 잘못된 패킷을 삭제하는 입력 규칙을 삭제하려는 경우 INPUT 체인의 규칙 3임을 알 수 있습니다. 따라서 다음 명령을 실행하십시오.
sudo iptables -D INPUT 3
체인을 플러시하는 방법?
체인의 모든 Iptables 규칙을 제거하는 방법이 있습니다. 체인 플러싱. 여기서는 이를 수행하는 다양한 방법을 다룰 것입니다. 더 진행하기 전에 기본 정책인 삭제 또는 거부로 체인을 플러시할 때 SSH를 통해 서버가 잠기지 않도록 주의하세요. 그렇게 하는 경우 액세스 문제를 해결하려면 콘솔을 통해 연결해야 할 수도 있습니다.
단일 체인 플러시
특정 체인을 비우려면, 즉 체인의 모든 규칙을 삭제하려면 다음을 사용할 수 있습니다. -F 또는 이에 상응하는 것 – 플러시 옵션 그리고 선택한 체인의 이름. INPUT 체인의 모든 규칙을 제거하고 싶다고 가정해 보겠습니다. 무엇을 해야 할까요? 음, 쉽습니다. 다음 명령을 실행하세요.
sudo iptables -F INPUT
모든 체인 플러시
모든 체인을 제거하거나 플러시하려면 -F 또는 이에 상응하는 –flush 옵션을 단독으로 사용할 수 있습니다.
sudo iptables -F
모든 규칙을 플러시하고, 모든 체인을 삭제하고, 모두 수락하는 방법은 무엇입니까?
이 시점에서는 모든 방화벽 규칙, 테이블 및 체인을 플러시하고 모든 네트워크 트래픽을 허용하는 방법에 대해 설명합니다. 이 프로세스는 방화벽을 효과적으로 비활성화한다는 점에 유의하십시오. 따라서 방화벽 구성을 다시 시작하려는 경우에만 이 섹션을 따라야 합니다.
먼저 각 내장 체인에 대한 기본 정책을 ACCEPT로 설정해야 합니다. 이 작업을 수행하는 주요 원인은 SSH를 사용하여 서버가 잠기지 않도록 하기 위한 것입니다.
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
그런 다음 nat 및 mangle 테이블을 플러시하고 모든 체인을 플러시해야 합니다. (-에프), 기본이 아닌 체인을 모두 삭제합니다. (-엑스) 이와 같이:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
이전 명령을 실행하면 방화벽은 모든 네트워크 트래픽을 허용합니다. 지금 규칙을 나열해 보면 규칙이 없다는 것을 알 수 있습니다. INPUT, FORWARD 및 OUTPUT 체인과 같은 세 가지 기본 체인만 남습니다.
Ubuntu에서 iptables를 설정하는 방법은 무엇입니까?
기본 방화벽 동작과 마찬가지로 iptables 규칙은 각 체인에 나열된 순서로 읽을 수 있습니다. 즉, 올바른 순서로 규칙을 설정해야 함을 의미합니다. 새 규칙을 추가하면 해당 규칙이 규칙 목록 끝에 추가됩니다. 다음을 사용하여 삽입하여 특정 목록 위치에 새 규칙을 추가할 수 있습니다. iptables -I <색인> -명령. 그만큼 <인덱스> 은 이 명령에 규칙을 삽입하려는 주문 번호입니다. 다음 명령을 사용하면 입력할 인덱스 번호를 이해할 수 있습니다.
sudo iptables -L --line-numbers
각 규칙 라인의 시작 부분에 있는 숫자는 체인에서의 위치를 나타냅니다. 특정 기존 규칙 위에 새 규칙을 추가하려면 해당 기존 규칙의 색인 번호를 사용해야 합니다. 예를 들어, 체인 상단에 새 규칙을 추가하려면 인덱스 번호 1과 함께 다음 명령을 사용해야 합니다.
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
iptables는 방화벽d와 어떻게 다릅니까?
iptables와 Firewalld는 모두 패킷 필터링(정적 필터링)을 위해 명시적으로 설계된 다양한 Linux 시스템에서 방화벽을 관리하기 위한 실용적인 도구입니다. 패킷 필터링은 사용자가 들어오고 나가는 정보 패킷을 관리하여 특정 네트워크에 대한 액세스를 제어할 수 있도록 하는 방화벽 전략입니다. 소스 및 대상 프로토콜, 포트, IP 주소에 대해 미리 설정된 방화벽 규칙을 기반으로 통과를 허용하거나 거부합니다. 이러한 규칙은 매우 효율적인 보안 메커니즘을 제공하여 정보 패킷 필터링을 시스템 LAN(근거리 통신망) 외부로 라우팅된 장치에 대한 뛰어난 방어 수단으로 만듭니다.
Firewalld는 처음에 사용자가 더 쉽게 탐색할 수 있도록 iptables를 처리하는 소프트웨어로 도입되었습니다. Firewalld와 iptables에 대한 소개를 마치고 좀 더 자세히 비교해 보겠습니다.
iptables 대 방화벽d: 시스템 구성
Firewalld와 iptables는 서로 다른 구성과 기본 스토리지 설정을 활용합니다. iptables를 사용하면 모든 변경은 이전 규칙을 모두 삭제하고 새 규칙을 읽는 것을 의미하므로 시스템을 재부팅해야 합니다. 그러나 Firewalld를 사용하면 규칙이 다시 생성되지 않습니다. 대신 차이점과 수정 사항이 적용되어 기존 규칙이 변경되므로 런타임에 적용되는 것을 확인할 수 있습니다.
iptables 대 방화벽d: 사용자 인터페이스
Firewalld는 그래픽 사용자 인터페이스(GUI)를 사용합니다. 그러나 iptables는 명령줄 인터페이스(CLI)를 활용하는데, 이는 일부 사람들이 iptables를 사용하여 Linux 커널 방화벽 규칙에 액세스하는 것이 어려울 수 있으므로 Firewalld를 보다 간단한 옵션으로 만듭니다. 짧은 명령만 사용하므로 iptables의 응답 시간이 더 짧다는 점을 고려하는 것이 가장 좋습니다. 이 모든 것 외에도 두 가지 모두 사용 사례가 있으므로 작업하기에 더 편한 것을 선택하십시오.
최종 생각: iptables 표시 규칙
Iptables는 Linux 운영 체제용으로 특별히 제작된 매우 유연한 방화벽 유틸리티입니다. 당신이 새로 온 Linux 괴짜인지 전문 시스템 관리자인지는 중요하지 않습니다. iptables 규칙이 도움이 될 수 있는 방법이 있습니다. 이 기사에서는 Linux 기능을 간략하게 검토하기 위해 iptables 표시 규칙 및 iptables 규칙 제거를 포함하여 이 방화벽 유틸리티에 대한 기본 명령을 주로 설명했습니다. 추가적으로, 당신은 우리의 Linux VPS 호스팅 솔루션 이 환상적인 운영 체제의 진정한 잠재력을 활용하는 것입니다. cloudzy에서는 웹 호스팅, 웹 앱 배포, 코드 개발, 테스트 및 자동화를 위한 환경 설정과 같은 다양한 사용 사례에 적합한 다양한 KVM 기반 Linux VPS 계획을 제공합니다.
FAQ
사양별로 모든 Linux iptables 규칙을 나열하는 방법은 무엇입니까?
사양이나 기능별로 현재 활성화된 모든 iptables 규칙을 나열하려면 iptables 명령 뒤에 다음을 사용하면 됩니다. -S 플래그. 활용에 주의하세요. sudo 이 경우 키워드:
sudo iptables -S
iptables 규칙을 제거하는 방법은 무엇입니까?
체인의 모든 규칙을 삭제하는 특정 체인을 제거하려면 다음을 수행해야 합니다. -F 또는 –flush 옵션과 체인 이름을 사용하십시오. OUTPUT 체인의 모든 규칙을 삭제하고 싶다면 어떻게 해야 할까요? 음, 다음 명령을 실행해야 합니다:
sudo iptables -F 출력
우분투에서 iptables는 어떻게 작동하나요?
iptables 방화벽은 네트워크 트래픽을 일련의 규칙과 비교합니다. iptables 규칙은 규칙과 일치하는 패킷의 특성과 패킷이 일치하는 경우 수행해야 하는 작업을 지정합니다. 물론 어떤 패킷이 특정 규칙과 일치하는지 설정하는 옵션은 다양합니다.
iptables 규칙은 즉시 적용됩니까? 왜?
예, iptables 규칙은 즉시 적용됩니다. 스크립트가 INPUT 및 OUTPUT 체인에 추가되고 규칙이 해당 체인 끝에 추가되기 때문입니다.