>운영 및 유지보수 >리눅스 운영 및 유지 관리 >방화구 또는 iptables를 사용하여 Linux에서 방화벽을 어떻게 설정합니까?

방화구 또는 iptables를 사용하여 Linux에서 방화벽을 어떻게 설정합니까?

Emily Anne Brown
Emily Anne Brown원래의
2025-03-12 18:58:51926검색

방화구 또는 iptables를 사용하여 Linux에 방화벽 설정

firewalld 또는 iptables 사용하여 Linux에 방화벽을 설치하려면 건축 적 차이로 인해 다양한 접근 방식이 필요합니다. firewalld 는 방화벽 규칙을 관리하기위한 사용자 친화적 인 인터페이스를 제공하는 동적 방화벽 데몬이며, iptables 커널의 NetFilter 프레임 워크를 직접 조작하는 명령 줄 유틸리티입니다.

방화구 사용 :

  1. 설치 : firewalld 설치되었는지 확인하십시오. 대부분의 분배에서 패키지 관리자 (예 : Debian/Ubuntu의 apt install firewalld , dnf install firewalld )를 사용하여 Fedora/Centos/RHEL을 사용하여 수행됩니다.
  2. 방화벽 시작 및 활성화 : systemctl start firewalld systemctl enable firewalld 사용하여 Boot에서 시작할 수 있도록합니다.
  3. 기본 구성 : firewalld "영역"을 사용하여 다른 네트워크 컨텍스트 (예 : "public", "내부", "DMZ")를 정의합니다. 각 영역에는 기본 규칙 세트가 있습니다. firewall-cmd --get-active-zones 로 구역을 나열 할 수 있습니다. SSH (포트 22)와 같은 서비스를 기본 영역 (일반적으로 "공개")에 추가하려면 firewall-cmd --permanent --add-service=ssh 사용하십시오. 변경 사항을 영구적으로 만들려면 --permanent 플래그를 사용하십시오. firewall-cmd --reload 로 방화벽을 다시로드하여 변경 사항을 적용하십시오.
  4. 고급 구성 : 보다 세분화 된 제어를 위해 firewall-cmd --permanent --add-port=80/tcp (HTTP) 또는 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' ).

iptables 사용 :

  1. 설치 : iptables 는 일반적으로 대부분의 Linux 배포판에 기본적으로 포함됩니다.
  2. 기본 구성 : iptables 체인 (예 : INPUT , OUTPUT , FORWARD )을 사용하여 규칙을 관리합니다. 각 규칙은 소스/대상 IP 주소, 포트, 프로토콜 및 조치 (수락, 드롭, 거부)를 지정합니다. 예를 들어, ssh 연결을 허용하려면 : iptables -A INPUT -p tcp --dport 22 -j ACCEPT .
  3. 규칙 저장 : iptables 규칙은 재부팅 전체에서 지속되지 않습니다. 스크립트 또는 iptables-save 와 같은 유틸리티를 사용하여 저장하고 부팅 시간에 시작 스크립트를 사용하여로드해야합니다. 정확한 방법은 분포에 따라 다릅니다.
  4. 고급 구성 : iptables 매우 세밀한 제어를 제공하므로 다양한 일치 기준 및 사용자 정의 체인을 갖춘 복잡한 규칙 세트가 가능합니다. 그러나이를 위해서는 네트워킹 및 iptables 구문에 대한 깊은 이해가 필요합니다.

방화구와 iptables의 주요 차이점

주요 차이점은 방화벽 관리에 대한 접근 방식에 있습니다. firewalld iptables 위에 구축 된 높은 수준의 사용자 친화적 인 인터페이스를 제공합니다. 일반적인 방화벽 작업을 단순화하여 영역, 서비스 및 포트를보다 쉽게 ​​관리 할 수 ​​있습니다. 반면에 iptables NetFilter 프레임 워크에 대한 직접적이고 낮은 수준의 제어를 제공하여 유연성이 높지만 기술 전문 지식이 더 필요합니다.

다음은 주요 차이점을 요약 한 표입니다.

특징 방화구 iptables
인터페이스 사용자 친화적 인 옵션이있는 명령 줄 도구 명령 줄만, 복잡한 구문
구성 구역, 서비스, 항구, 풍부한 규칙 사슬, 특정 일치 기준이있는 규칙
고집 내장 지속 메커니즘 부팅시 수동 저장 및로드가 필요합니다
복잡성 배우고 사용하기 쉽습니다 가파른 학습 곡선, 더 복잡합니다
유연성 iptables보다 유연성이 떨어집니다 매우 유연하고 복잡한 규칙을 허용합니다
동적 업데이트 동적 업데이트를 지원합니다 수동 업데이트가 필요합니다

특정 포트 또는 서비스를 허용/거부하도록 특정 방화벽 규칙 구성

방화구 사용 :

특정 포트를 허용하려면 (예 : 포트 80의 HTTP) :

 <code class="bash">firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload</code>

특정 포트를 거부하려면 (예 : 포트 21의 FTP) :

이것은 firewalld 에서 간단합니다. 이를 정확하게 달성하기 위해 사용자 정의 영역을 만들거나 풍부한 규칙을 사용해야 할 것입니다. 일반적으로 firewalld 기본적으로 허용하고 명시 적으로 거부하도록 설계되었습니다.

특정 서비스 (예 : SSH)를 허용하려면 :

 <code class="bash">firewall-cmd --permanent --add-service=ssh firewall-cmd --reload</code>

iptables 사용 :

특정 포트를 허용하려면 (예 : 포트 80의 HTTP) :

 <code class="bash">iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT # If you want to allow outgoing traffic on port 80 as well. service iptables save # Save the rules (method varies by distribution)</code>

특정 포트를 거부하려면 (예 : 포트 21의 FTP) :

 <code class="bash">iptables -A INPUT -p tcp --dport 21 -j DROP service iptables save # Save the rules (method varies by distribution)</code>

방화벽으로 Linux 시스템 보안을위한 모범 사례

firewalld 또는 iptables 사용하든 관계없이 다음과 같은 모범 사례를 따르십시오.

  • 최소 특권의 원칙 : 필요한 트래픽 만 허용합니다. 기본적으로 모든 것을 거부하고 특정 포트 및 서비스를 명시 적으로 허용합니다.
  • 정기적 인 업데이트 : 최신 보안 패치로 방화벽과 운영 체제를 업데이트하십시오.
  • 로그 분석 : 정기적으로 방화벽 로그를 검토하여 의심스러운 활동을 식별합니다.
  • 입력 체인 초점 : 들어오는 연결을 제어하므로 INPUT 체인에 세심한주의를 기울입니다.
  • StateFull Firewalls : Stateful Inspection ( firewalldiptables 모두 지원)을 사용하여 연결을 추적하고 반환 트래픽을 허용합니다.
  • 필요하지 않은 경우 열린 포트를 피하십시오 : 인터넷에 노출 된 열린 포트 수를 최소화하십시오.
  • 강력한 비밀번호 정책 사용 : 강력한 비밀번호를 사용하여 정기적으로 업데이트하여 시스템을 보호하십시오.
  • 규칙을 정기적으로 검토 : 방화벽 규칙이 여전히 적절하고 효과적인지 확인하기 위해 정기적으로 검토하십시오.
  • 별도의 DMZ 사용 : 인터넷에 서비스를 노출 해야하는 경우 별도의 DMZ (비무장 영역)를 사용하여 해당 서비스를 내부 네트워크에서 분리하는 것을 고려하십시오.
  • 침입 탐지/예방 시스템 (IDS/IPS)을 고려하십시오. 방화벽을 IDS/IPS와 결합하여 추가 보안 계층을 제공하십시오.

생산 시스템에 배치하기 전에 항상 제어 된 환경에서 방화벽 규칙을 테스트해야합니다. 방화벽 규칙이 잘못 구성되어 시스템에 액세스 할 수 없습니다.

위 내용은 방화구 또는 iptables를 사용하여 Linux에서 방화벽을 어떻게 설정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.