Centos 7에서 방화구를 비활성화하거나 끄는 방법


Centos 7에서 방화구를 비활성화하거나 끄는 방법

iptables

Centos는 일반적으로 iptables라고하는 매우 강력한 방화벽을 가지고 있지만 더 정확하게는 iptables/netfilter입니다. iPtables는 사용자 공간 모듈, 사용자가 명령 줄에서 상호 작용하여 사전 정의 된 테이블에 방화벽 규칙을 입력하는 비트입니다. NetFilter는 커널에 내장 된 커널 모듈로 실제로 필터링을 수행합니다. IPTABLE에 대한 많은 GUI 프론트 엔드는 사용자가 포인트를 기반으로 규칙을 추가하거나 정의 할 수있게하고 사용자 인터페이스를 클릭 할 수 있지만 종종 명령 줄 인터페이스를 사용하는 유연성이 부족하고 실제로 발생하는 일에 대한 이해를 제한합니다. 우리는 iptables의 명령 줄 인터페이스를 배울 것입니다.

우리가 실제로 iptables를 잡기 전에, 우리는 그것이 작동하는 방식에 대한 기본적인 이해가 필요합니다. iPtables는 IP 주소, 프로토콜 (TCP, UDP, ICMP) 및 포트의 개념을 사용합니다. 우리는 이것들을 시작하기 위해 전문가 일 필요는 없지만 (우리가 필요한 정보를 찾을 수 있으므로) 일반적인 이해를 얻는 데 도움이됩니다.

iPtables는 해당 체인과 관련된 모든 네트워크 트래픽 (IP 패킷)에 대해 점검되는 사전 정의 된 체인 (입력, 출력 및 전진)에 규칙을 배치하며 해당 규칙의 결과에 따라 각 패킷으로 수행 할 작업에 대한 결정이 이루어집니다.이자형. 패킷을 수락하거나 떨어 뜨립니다. 이러한 조치는 대상이라고하며, 그 중 가장 일반적인 두 개의 사전 정의 된 대상은 패킷을 떨어 뜨리거나 패킷을 수락하기 위해 드롭입니다.

쇠사슬

  • 입력 – 호스트 컴퓨터를위한 모든 패킷.
  • 출력 – 호스트 컴퓨터에서 유래 한 모든 패킷.
  • 앞으로 – 모든 패킷은 호스트 컴퓨터에서 예정되어 있거나 시작되지 않지만 호스트 컴퓨터를 통과 (라우팅). 이 체인은 컴퓨터를 라우터로 사용하는 경우 사용됩니다.

대부분의 경우, 우리는 기계로 들어가는 패킷을 필터링하기 위해 입력 체인을 처리 할 것입니다.

규칙은 각 체인에 목록에 추가됩니다. 패킷은 상단에서 시작하여 각 규칙에 대해 확인되며 해당 규칙과 일치하면 패킷 수락 (수락) 또는 드롭 (드롭)과 같은 조치가 취해집니다. 규칙이 일치하고 조치가 취해지면 패킷은 해당 규칙의 결과에 따라 처리되며 체인의 추가 규칙에 따라 처리되지 않습니다. 패킷이 체인의 모든 규칙을 통과하고 규칙에 맞지 않고 바닥에 도달하면 해당 체인의 기본 조치가 취해집니다. 이것은 기본 정책이라고하며 패킷을 수락하거나 삭제하도록 설정 될 수 있습니다.

체인 내의 기본 정책의 개념은 방화벽을 구성하는 방법을 결정하기 전에 먼저 고려해야 할 두 가지 기본 가능성을 제기합니다.

1. 모든 패킷을 삭제하기 위해 기본 정책을 설정 한 다음 신뢰할 수있는 IP 주소에서 나오는 (수락) 패킷 또는 BitTorrent, FTP 서버, 웹 서버, Samba 파일 서버 등과 같은 서비스가있는 특정 포트에 대해 규칙을 추가 할 수 있습니다.

2. 우리는 모든 패킷을 수락하기 위해 기본 정책을 설정 한 다음 특정 Nuisance IP 주소 또는 범위에서 나올 수있는 패킷을 구체적으로 블록 (DROF) 또는 개인 서비스가 있거나 서비스가 실행되지 않는 특정 포트에 대한 규칙을 추가 할 수 있습니다.

일반적으로 위의 옵션 1은 우리가 기계에 액세스 할 수있는 내용을 제어하려는 입력 체인에 사용되며 옵션 2는 일반적으로 우리가 기계에서 출발하는 트래픽을 신뢰하는 출력 체인에 사용됩니다.

2. 시작하기

명령 줄에서 iptables로 작업하면 루트 권한이 필요하므로 우리가 할 대부분의 일에 근본이되어야합니다.

IPTables는 모든 CentOS 5에 기본적으로 설치해야합니다.x와 6.X 설치. 시스템에 iptables가 설치되어 있는지 확인할 수 있습니다

$ rpm -q iptables iptables -1.4.7-5.1.EL6_2.x86_64

iPtables가 실제로 실행 중인지 확인하려면 iptables 모듈이로드되었는지 확인하고 -L 스위치를 사용하여 현재로드 된 규칙을 검사 할 수 있습니다

# lsmod | grep ip_tables ip_tables 29288 1 iptable_filter x_tables 29192 6 ip6t_reject, ip6_tables, ipt_reject, xt_state, xt_tcpudp, ip_tables
# iptables -L
체인 입력 (정책 수락)
대상 PROT OPT 소스 대상
모든 주를 수락하십시오
어디서나 ICMP를 수락하십시오
어디서나 모든 것을 받아들입니다
TCP 수락 - 어디서나 어디서나 New TCP DPT : SSH
모든 것을 거부하십시오-어디서나 ICMP-Host-Host-Hibited와 함께 거부하십시오
체인 포워드 (정책 수락)
대상 PROT OPT 소스 대상
모든 것을 거부하십시오-어디서나 ICMP-Host-Host-Hibited와 함께 거부하십시오
체인 출력 (정책 수락)
대상 PROT OPT 소스 대상

위에서 우리는 Centos 6 시스템의 기본 규칙 세트를 볼 수 있습니다. SSH 서비스는 기본적으로 허용됩니다.

iptables가 실행되지 않으면 실행하여 활성화 할 수 있습니다

# System-Config-SecurityLevel

삼. 간단한 규칙 세트 작성

우리는 예제 기반 접근법을 사용하여 다양한 iptables 명령을 검사합니다. 이 첫 번째 예에서는 모든 나가는 연결을 허용하지만 원치 않는 모든 연결을 차단할 수있는 SPI (Stateful Packet Inspection) 방화벽을 설정하는 매우 간단한 규칙 세트를 작성합니다

# iptables -p 입력 수락
# iptables -f
# iptables -a 입력 -i lo -j 수락
# iptables -a 입력 -m 상태 -상태 설정, 관련 -j 수락
# iptables -a 입력 -p tcp -dport 22 -j 수락
# iptables -p 입력 드롭
# iptables -p 포워드 드롭
# iptables -p 출력 허용
# iptables -l -v


질문:

  • 1. iptables 란 무엇입니까??
  • 2. iptables에서 사전 정의 된 세 가지 사슬은 무엇입니까??
  • 삼. 입력 체인의 목적은 무엇입니까??
  • 4. 체인에 규칙이 어떻게 추가됩니까??
  • 5. 패킷이 체인의 규칙과 일치하면 어떻게됩니까??
  • 6. 입력 체인의 기본 정책은 무엇입니까??
  • 7. 출력 체인의 기본 정책은 무엇입니까??
  • 8. 기본 정책을 사용하여 방화벽을 구성 할 수있는 두 가지 가능성은 무엇입니까??
  • 9. 입력 체인의 권장 옵션은 무엇입니까??
  • 10. 시스템에 iptables가 설치되어 있는지 확인합니까??
  • 11. iptables가 실행 중인지 어떻게 확인합니까??
  • 12. iptables가 실행되지 않으면 어떻게 활성화 할 수 있습니까??
  • 13. SPI (Stateful Packet Inspection) 방화벽의 목적은 무엇입니까??
  • 14. 예제에서 설정 한 간단한 규칙에 의해 허용되는 연결?
  • 15. 예제에서 설정 한 간단한 규칙에 의해 차단되는 연결?

답변:

  1. 1. iptables 란 무엇입니까??

    iPtables는 CentOS에 내장 된 강력한 방화벽으로, 사용자는 명령 줄 인터페이스를 사용하여 방화벽 규칙을 정의하고 관리 할 수 ​​있습니다.
  2. 2. iptables에서 사전 정의 된 세 가지 사슬은 무엇입니까??

    iptables의 3 개의 사전 정의 된 체인은 입력, 출력 및 전방입니다.
  3. 삼. 입력 체인의 목적은 무엇입니까??

    입력 체인은 호스트 컴퓨터로 들어가는 패킷을 필터링하는 데 사용됩니다.
  4. 4. 체인에 규칙이 어떻게 추가됩니까??

    규칙은 목록의 체인에 추가되며, 각 규칙은 지정된 체인에서 들어오는 네트워크 트래픽에 대해 확인됩니다.
  5. 5. 패킷이 체인의 규칙과 일치하면 어떻게됩니까??

    패킷이 체인의 규칙과 일치하는 경우 해당 패킷에 대한 규칙 (수락 또는 드롭)에 의해 지정된 조치가 취해집니다.
  6. 6. 입력 체인의 기본 정책은 무엇입니까??

    입력 체인의 기본 정책은 수락하거나 삭제하도록 설정할 수 있습니다. 일반적으로 신뢰할 수있는 연결을 삭제하고 명시 적으로 허용하는 것이 좋습니다.
  7. 7. 출력 체인의 기본 정책은 무엇입니까??

    출력 체인의 기본 정책은 일반적으로 신뢰할 수 있으므로 일반적으로 수락하도록 설정됩니다.
  8. 8. 기본 정책을 사용하여 방화벽을 구성 할 수있는 두 가지 가능성은 무엇입니까??

    두 가지 가능성은 기본 정책을 설정하고 특정 신뢰할 수있는 연결 (옵션 1)을 허용하거나 특정 원치 않는 연결을 수락하고 차단하도록 기본 정책을 설정하는 것입니다 (옵션 2).
  9. 9. 입력 체인의 권장 옵션은 무엇입니까??

    입력 체인의 권장 옵션은 기본 정책을 설정하여 신뢰할 수있는 연결을 명시 적으로 허용하는 것입니다.
  10. 10. 시스템에 iptables가 설치되어 있는지 확인합니까??

    명령을 실행하여 iptables가 설치되어 있는지 확인할 수 있습니다

    rpm -Q iptables
  11. 11. iptables가 실행 중인지 어떻게 확인합니까??

    iptables 모듈이로드되었는지 확인하여 명령을 사용하여 iptables가 실행되는지 확인할 수 있습니다

    iptables -l
  12. 12. iptables가 실행되지 않으면 어떻게 활성화 할 수 있습니까??

    명령을 실행하여 iptables를 활성화 할 수 있습니다

    System-Config-SecurityLevel
  13. 13. SPI (Stateful Packet Inspection) 방화벽의 목적은 무엇입니까??

    SPI (Stateful Packet Inspection) 방화벽은 나가는 연결을 허용하지만 패킷의 상태와 특성에 따라 원치 않는 들어오는 연결을 차단합니다.
  14. 14. 예제에서 설정 한 간단한 규칙에 의해 허용되는 연결?

    예제에서 설정된 간단한 규칙은 모든 발신 연결을 허용합니다.
  15. 15. 예제에서 설정 한 간단한 규칙에 의해 차단되는 연결?

    간단한 규칙 세트는 모든 원치 않는 들어오는 연결을 차단합니다.

Centos 7에서 방화구를 비활성화하거나 끄는 방법

이제이 서비스를 구역에서 사용할 수 있습니다.

iptables

Centos는 일반적으로 iptables라고하는 매우 강력한 방화벽을 가지고 있지만 더 정확하게는 iptables/netfilter입니다. iPtables는 사용자 공간 모듈, 사용자가 명령 줄에서 상호 작용하여 사전 정의 된 테이블에 방화벽 규칙을 입력하는 비트입니다. NetFilter는 커널에 내장 된 커널 모듈로 실제로 필터링을 수행합니다. IPTABLE에 대한 많은 GUI 프론트 엔드는 사용자가 포인트를 기반으로 규칙을 추가하거나 정의 할 수있게하고 사용자 인터페이스를 클릭 할 수 있지만 종종 명령 줄 인터페이스를 사용하는 유연성이 부족하고 실제로 발생하는 일에 대한 이해를 제한합니다. 우리는 iptables의 명령 줄 인터페이스를 배울 것입니다.

우리가 실제로 iptables를 잡기 전에, 우리는 그것이 작동하는 방식에 대한 기본적인 이해가 필요합니다. iPtables는 IP 주소, 프로토콜 (TCP, UDP, ICMP) 및 포트의 개념을 사용합니다. 우리는 이것들을 시작하기 위해 전문가 일 필요는 없지만 (우리가 필요한 정보를 찾을 수 있으므로) 일반적인 이해를 얻는 데 도움이됩니다.

iPtables는 해당 체인과 관련된 모든 네트워크 트래픽 (IP 패킷)에 대해 점검되는 사전 정의 된 체인 (입력, 출력 및 전진)에 규칙을 배치하며 해당 규칙의 결과에 따라 각 패킷으로 수행 할 작업에 대한 결정이 이루어집니다.이자형. 패킷을 수락하거나 떨어 뜨립니다. 이러한 조치는 대상이라고하며, 그 중 가장 일반적인 두 개의 사전 정의 된 대상은 패킷을 떨어 뜨리거나 패킷을 수락하기 위해 드롭입니다.

쇠사슬

  • 입력 – 호스트 컴퓨터를위한 모든 패킷.
  • 출력 – 호스트 컴퓨터에서 유래 한 모든 패킷.
  • 앞으로 – 모든 패킷은 호스트 컴퓨터에서 예정되어 있거나 시작되지 않지만 호스트 컴퓨터를 통과 (라우팅). 이 체인은 컴퓨터를 라우터로 사용하는 경우 사용됩니다.

대부분의 경우, 우리는 기계로 들어가는 패킷을 필터링하기 위해 입력 체인을 처리 할 것입니다.

규칙은 각 체인에 목록에 추가됩니다. 패킷은 상단에서 시작하여 각 규칙에 대해 확인되며 해당 규칙과 일치하면 패킷 수락 (수락) 또는 드롭 (드롭)과 같은 조치가 취해집니다. 규칙이 일치하고 조치가 취해지면 패킷은 해당 규칙의 결과에 따라 처리되며 체인의 추가 규칙에 따라 처리되지 않습니다. 패킷이 체인의 모든 규칙을 통과하고 규칙에 맞지 않고 바닥에 도달하면 해당 체인의 기본 조치가 취해집니다. 이것은 기본 정책이라고하며 패킷을 수락하거나 삭제하도록 설정 될 수 있습니다.

체인 내의 기본 정책의 개념은 방화벽을 구성하는 방법을 결정하기 전에 먼저 고려해야 할 두 가지 기본 가능성을 제기합니다.

1. 모든 패킷을 삭제하기 위해 기본 정책을 설정 한 다음 신뢰할 수있는 IP 주소에서 나오는 (수락) 패킷 또는 BitTorrent, FTP 서버, 웹 서버, Samba 파일 서버 등과 같은 서비스가있는 특정 포트에 대해 규칙을 추가 할 수 있습니다.

2. 우리는 모든 패킷을 수락하기 위해 기본 정책을 설정 한 다음 특정 Nuisance IP 주소 또는 범위에서 나올 수있는 패킷을 구체적으로 블록 (DROF) 또는 개인 서비스가 있거나 서비스가 실행되지 않는 특정 포트에 대한 규칙을 추가 할 수 있습니다.

일반적으로 위의 옵션 1은 우리가 기계에 액세스 할 수있는 내용을 제어하려는 입력 체인에 사용되며 옵션 2는 일반적으로 우리가 기계에서 출발하는 트래픽을 신뢰하는 출력 체인에 사용됩니다.

2. 시작하기

명령 줄에서 iptables로 작업하면 루트 권한이 필요하므로 우리가 할 대부분의 일에 근본이되어야합니다.

IPTables는 모든 CentOS 5에 기본적으로 설치해야합니다.x와 6.X 설치. 시스템에 iptables가 설치되어 있는지 확인할 수 있습니다

$ rpm -q iptables iptables -1.4.7-5.1.EL6_2.x86_64

iPtables가 실제로 실행 중인지 확인하려면 iptables 모듈이로드되었는지 확인하고 -L 스위치를 사용하여 현재로드 된 규칙을 검사 할 수 있습니다

# lsmod | grep ip_tables ip_tables 29288 1 iptable_filter x_tables 29192 6 ip6t_reject, ip6_tables, ipt_reject, xt_state, xt_tcpudp, ip_tables

# iptables -L 체인 입력 (정책 수락) 대상 PROT OPT 소스 대상 수용-어디서나 상태와 관련하여, 상태와 관련하여, ICMP를 수락 할 어디서나, 어디서나 어디서나 어디서나 어디서나 어디서나 어디서나 TCP를 수락합니다

위에서 우리는 Centos 6 시스템의 기본 규칙 세트를 볼 수 있습니다. SSH 서비스는 기본적으로 허용됩니다.

iptables가 실행되지 않으면 실행하여 활성화 할 수 있습니다

# System-Config-SecurityLevel

삼. 간단한 규칙 세트 작성

우리는 예제 기반 접근법을 사용하여 다양한 iptables 명령을 검사합니다. 이 첫 번째 예에서는 모든 나가는 연결을 허용하지만 원치 않는 모든 연결을 차단할 수있는 SPI (Stateful Packet Inspection) 방화벽을 설정하는 매우 간단한 규칙 세트를 작성합니다

# iptables -p 입력 수락 # iptables -f # iptables -a 입력 -I lo -j 수락 # iptables -A 입력 -M 상태 -스테이트 확립, 관련 -j는 # iptables -a 입력 -p tcp -dport 22 -j 허용 # iptables # iptables -p forward drop # iptables -p outples -l -v -l -v -v -l -v -v al -iptables -pables -

다음과 같은 출력을 제공해야합니다

체인 입력 (정책 드롭 0 패킷, 0 바이트) pkts 바이트 바이트 대상 소스 대상 대상 out Cource 대상 0 0 모두를 허용합니다 - 모든 사람이 어디서나 모든 사람을 수용합니다. 0 0 0 0 0 0 0 0 0 0 0을 수락합니다. 소스 대상에서

  1. iptables -p 입력 수락 원격으로 연결하는 경우 먼저 입력 체인에서 기본 정책을 일시적으로 설정하여 현재 규칙을 플러시하면 다른 방법으로 수락해야합니다.
  2. iptables -f 우리는 -f 스위치를 사용하여 모든 기존 규칙을 플러시하여 새로운 규칙을 추가 할 수있는 깨끗한 상태로 시작했습니다.
  3. iptables -a 입력 -i lo -j 수락 이제 몇 가지 규칙을 추가하기 시작해야합니다. 우리는 -a 스위치를 사용하여 특정 체인에 대한 규칙을 추가 (또는 추가)하여 입력 체인을 사용합니다. 그런 다음 -I 스위치 (인터페이스 용)를 사용하여 LO (LocalHost, 127에 맞는 패킷을 지정하거나 지정합니다.0.0.1) 규칙과 일치하는 패킷의 대상 동작에 대한 인터페이스 및 마지막으로 -j (점프) -이 경우 수락. 따라서이 규칙은 로컬 호스트 인터페이스로 향하는 모든 들어오는 패킷을 허용 할 수 있습니다. 많은 소프트웨어 응용 프로그램이 LocalHost 어댑터와 통신 할 수 있기 때문에 일반적으로 필요합니다.
  4. iptables -a 입력 -m 상태 -상태 설정, 관련 -j 수락 이것은 대부분의 작업을 수행하는 규칙이며, 다시 입력 체인에 추가하고 있습니다 (-a). 여기서 -M 스위치를 사용하여 모듈 (상태)을로드합니다. 상태 모듈은 패킷의 상태를 검사하고 신규, 설립 또는 관련인지 확인할 수 있습니다. 새로운 것은 호스트 시스템에서 시작하지 않은 새로운 들어오는 연결 인 들어오는 패킷을 나타냅니다. 확립 및 관련된 것은 이미 확립 된 연결의 일부이거나 이미 확립 된 연결의 일부인 수신 패킷을 말합니다.
  5. iptables -a 입력 -p tcp -dport 22 -j 수락 여기에 우리는 TCP 포트 22를 통해 SSH 연결을 허용하는 규칙을 추가합니다. SSH 연결을 통해 원격 시스템에서 작업 할 때 우발적 인 잠금을 방지하기위한 것입니다. 이 규칙을 나중에 자세히 설명하겠습니다.
  6. iptables -p 입력 드롭 -P 스위치는 지정된 체인에서 기본 정책을 설정합니다. 이제 입력 체인의 기본 정책을 삭제하도록 설정할 수 있습니다. 이것은 들어오는 패킷이 다음 규칙 중 하나와 일치하지 않으면 삭제됩니다. 우리가 SSH를 통해 원격으로 연결하고 위의 규칙을 추가하지 않았다면이 시점에서 시스템에서 자신을 잠그 셨을 것입니다.
  7. iptables -p 포워드 드롭 마찬가지로, 컴퓨터를 라우터로 사용하지 않으므로 전방 체인의 기본 정책을 설정하여 컴퓨터를 통과하는 패킷이 없어야합니다.
  8. iptables -p 출력을 허용합니다 그리고 마지막으로, 우리는 모든 발신 트래픽을 허용하기를 원할 때 출력 체인의 기본 정책을 수락하도록 설정했습니다 (사용자를 신뢰할 때).
  9. iptables -l -v 마지막으로 (-L) 방금 추가 한 규칙을 올바르게로드했는지 확인할 수 있습니다.

마지막으로, 마지막으로해야 할 마지막 일은 다음에 컴퓨터를 재부팅 할 때 규칙을 자동으로 재 장전하도록 규칙을 저장하는 것입니다

# /sbin /service iptables를 저장합니다

이것은/sbin/iptables-save를 실행하고/etc/sysconfig/iptables에 현재 iptables 구성을 작성하는 iptables init 스크립트를 실행합니다. 재부팅시, iptables init 스크립트는/etc/sysconfig/iptables에 저장된 규칙이/sbin/iptables-restore 명령을 사용합니다.

분명히이 모든 명령을 쉘에 입력하는 것은 지루해 질 수 있으므로 iptables와 함께 작업하는 가장 쉬운 방법은 간단한 스크립트를 만드는 것입니다. 위의 명령은 좋아하는 텍스트 편집기에 입력되어 MyFiRewall로 저장 될 수 있습니다

# # iptables 예제 구성 스크립트 # # iptables # iptables # iptables -f # # TCP 포트에서 SSH 연결 허용 SSH를 통해 원격 서버에서 작업 할 때 필수적입니다. 이것은 시스템 # iptables를 방지하기 위해 SSH를 통해 원격 서버에서 작업 할 때 필수적입니다. # iptables -p tcp -j -dport 22 -j -dport # # # iptables -p forword protputs # iptables # iptables # iptables # iptables # iptables # iptables #. # # localhost # iptables에 대한 액세스 설정 -A 입력 -i lo -j 수락 # # 확립 및 관련 연결에 속하는 패킷 수락 # iptables -m 입력 -M 상태 설정, 관련 -j # # # # # 설정 # /sbin /service iptables를 저장 # iptables -l -v

메모: 우리는 또한 우리에게 무엇을하고 있었는지 상기시키기 위해 우리의 대본에 댓글을 달 수 있습니다.

이제 스크립트 실행 파일을 만드십시오

# chmod +x myfirewall

이제 스크립트를 편집하고 다음 명령으로 쉘에서 실행할 수 있습니다

틀 ./myfirewall

4. 인터페이스

이전 예에서는 특정 인터페이스에서 들어오는 모든 패킷,이 경우 LocalHost 인터페이스에서 수용 할 수있는 방법을 보았습니다

iptables -a 입력 -i lo -j 수락

우리의 내부 LAN 연결 인 ETH0 2 개의 별도의 인터페이스와 외부 인터넷 연결 인 PPP0 전화 접속 모뎀 (또는 NIC의 경우)이 있다고 가정합니다. 우리는 내부 LAN에서 모든 들어오는 패킷을 허용하지만 외부 인터넷 연결에서 들어오는 패킷을 필터링 할 수 있습니다. 우리는 이것을 다음과 같이 할 수 있습니다

iptables -a 입력 -i lo -j 수락 iptables -a 입력 -i eth0 -j accept

그러나 매우 조심하십시오 – 외부 인터넷 인터페이스에 모든 패킷을 허용하는 경우 (예 : PPP0 전화 접속 모뎀) :

iptables -a 입력 -i ppp0 -j 수락

방화벽을 효과적으로 비활성화했을 것입니다!

5. IP 주소

들어오는 패킷에 전체 인터페이스를 열면 충분히 제한적이지 않을 수 있으며 허용 할 사항과 거부 할 사항에 대한 더 많은 제어를 원할 수 있습니다. 192를 사용하는 작은 컴퓨터 네트워크가 있다고 가정 해 봅시다.168.0.x 개인 서브넷. 단일 신뢰할 수있는 IP 주소 (예 : 192)에서 방화벽을 들어오는 패킷을 열 수 있습니다.168.0.4):

# 신뢰할 수있는 IP 주소에서 패킷 수락 iptables -a 입력 -S 192.168.0.4 -j 수락 # IP 주소를 적절하게 변경

이 명령을 중단하면 먼저 소스 (-S) IP 주소 192의 입력 체인에 대한 규칙을 추가합니다.168.0.4 모든 패킷을 수락하려면 (또한 # 기호를 사용하여 # 기호를 인라인 추가하여 #을 무시하고 주석으로 취급 한 후 스크립트를 문서화하기 위해 주석을 추가 할 수있는 방법에 유의하십시오).

분명히 다양한 IP 주소에서 들어오는 패킷을 허용하려면 신뢰할 수있는 각 IP 주소에 대한 규칙을 추가 할 수 있으며 잘 작동합니다. 그러나 우리가 그것들이 많으면 한 번에 다양한 IP 주소를 추가하는 것이 더 쉬울 수 있습니다. 이를 위해 Netmask 또는 표준 슬래시 표기법을 사용하여 IP 주소의 범위를 지정할 수 있습니다. 예를 들어, 전체 192에서 방화벽을 모두 들어오는 패킷으로 열고 싶다면.168.0.x (여기서 x = 1 ~ 254) 범위는 다음 중 하나를 사용할 수 있습니다

# 신뢰할 수있는 IP 주소에서 패킷 수락 iptables -a 입력 -S 192.168.0.0/24 -j 수락 # 표준 슬래시 표기법 iptables -a 입력 -S 192.168.0.0/255.255.255.0 -j 서브넷 마스크를 사용하여 #을 허용합니다

마지막으로 단일 IP 주소에 대한 필터링뿐만 아니라 주어진 장치의 MAC 주소와 일치 할 수도 있습니다. 이렇게하려면 Mac 주소에 대한 필터링을 허용하는 모듈 (Mac 모듈)을로드해야합니다. 이전에 우리는 모듈을 사용하여 설정 및 관련 패킷에 맞게 상태 모듈을 사용할 때 IPTables의 기능을 확장하는 또 다른 예를 보았습니다. 여기서 Mac 모듈을 사용하여 IP 주소 외에도 패킷 소스의 MAC 주소를 확인합니다

# 신뢰할 수있는 IP 주소에서 패킷 수락 iptables -a 입력 -S 192.168.0.4 -M MAC -Mac -Source 00 : 50 : 8D : FD : E6 : 32 -j 수락

먼저 우리는 사용합니다 -M Mac Mac 모듈을로드 한 다음 사용합니다 --Mac-Source 소스 IP 주소의 MAC 주소를 지정하려면 (192.168.0.4). 필터링하려는 각 이더넷 장치의 MAC 주소를 찾아야합니다. 달리기 ifconfig (또는 iwconfig 무선 장치의 경우) Root로서 Mac 주소를 제공합니다.

이것은 192 년부터 시작된 패킷을 허용하기 때문에 소스 IP 주소의 스푸핑을 방지하는 데 유용 할 수 있습니다.168.0.4 (MAC 주소 00 : 50 : 8D : FD : E6 : 32) 그러나 그 주소에서 나온 스푸핑 된 패킷을 차단합니다. Mac 주소 필터링은 인터넷에서 작동하지 않지만 LAN에서 확실히 작동합니다.

6. 포트 및 프로토콜

위에서 우리는 방화벽에 규칙을 추가하여 특정 인터페이스 또는 소스 IP 주소와 일치하는 패킷을 필터링하는 방법을 보았습니다. 이를 통해 방화벽을 통해 특정 신뢰할 수있는 소스 (호스트 PC)에 전체 액세스 할 수 있습니다. 이제 우리는 프로토콜과 포트에 대해 필터링 할 수있는 방법을 살펴보기 위해 우리가 허용하는 수신 패킷과 차단하는 것을 더 세분화 할 수있는 방법을 살펴 봅니다.

시작하기 전에 주어진 서비스가 사용하는 프로토콜과 포트 번호를 알아야합니다. 간단한 예를 들어 BitTorrent를 살펴 보겠습니다. Bittorrent는 포트 6881에서 TCP 프로토콜을 사용하므로 대상 포트 (기계에 도착한 포트) 6881에서 모든 TCP 패킷을 허용해야합니다

# 대상 포트 6881 (bittorrent) iptables에서 TCP 패킷을 허용합니다 -A 입력 -p tcp -dport 6881 -j accept

여기서 우리는 TCP 프로토콜과 일치하는 패킷의 입력 체인에 대한 규칙을 추가합니다 (-p TCP) 그리고 목적지 포트 6881에서 기계에 들어갑니다 (--DPORT 6881)).

메모: 대상 또는 소스 포트와 같은 일치를 사용하기 위해 (--DPORT 또는 --스포츠), 너 ~ 해야 하다 먼저 프로토콜을 지정합니다 (TCP, UDP, ICMP, ALL).

예를 들어, 6881 ~ 6890 범위의 모든 TCP 패킷을 허용하는 것과 같은 포트 범위를 포함하도록 위의 내용을 확장 할 수 있습니다

# 대상 포트에서 TCP 패킷 수락 6881-6890 iptables -A 입력 -P TCP -DPORT 6881 : 6890 -J 허락

7. 함께 모아서

이제 우리는 기본 사항을 보았고이 규칙을 결합 할 수 있습니다.

인기있는 Unix/Linux 서비스는 원격 로그인을 허용하는 SSH (Secure Shell) 서비스입니다. 기본적으로 SSH는 포트 22를 사용하고 다시 TCP 프로토콜을 사용합니다. 따라서 원격 로그인을 허용하려면 포트 22에서 TCP 연결을 허용해야합니다

# 대상 포트 22 (SSH) iptables에서 TCP 패킷 수락 -A 입력 -P TCP -DPORT 22 -J 허가

이로 인해 해커가 약한 암호로 계정에서 무차별 균열을 시도 할 수 있기 때문에 잠재적 인 보안 위협을 제기하는 모든 들어오는 TCP 연결에 포트 22 (SSH)가 열립니다. 그러나 SSH를 사용하여 로그온하는 데 사용될 신뢰할 수있는 원격 머신의 IP 주소를 알고 있다면 이러한 소스 IP 주소에 대한 액세스를 제한 할 수 있습니다. 예를 들어, 우리가 개인 LAN (192에서 SSH 액세스 권한을 열고 싶다면.168.0.x), 우리는이 소스 IP 주소 범위에 대한 액세스를 제한 할 수 있습니다

# 개인 lan iptables의 대상 포트 22 (SSH)에서 TCP 패킷을 허용합니다 -A 입력 -P TCP -S 192.168.0.0/24 --Dport 22 -j 수락

소스 IP 필터링을 사용하면 포트 22에서 SSH 액세스를 안전하게 열 수 있습니다. 예를 들어이 방법을 사용하여 작업과 홈 머신 사이의 원격 로그인을 허용 할 수 있습니다. 다른 모든 IP 주소에, 포트 (및 서비스)는 서비스가 비활성화 된 것처럼 닫히는 것처럼 보이므로 포트 스캔 방법을 사용하는 해커는 우리를 통과시킬 수 있습니다.

8. 요약

우리는 iptables로 달성 할 수있는 표면의 표면을 간신히 긁지 않았지만,이 Howto는 더 복잡한 규칙 세트를 구축 할 수있는 기본 사항에 좋은 접지를 제공했기를 바랍니다.

9. 연결

http : // ip2location.com/free/Visitor -Blocker- IP 주소에 따라 특정 국가를 차단하기 위해

Howtos/Network/iptables (последним исправлял пользователь nedslider 2021-07-27 23:21:13)

  • Moinmoin이 구동됩니다
  • 파이썬 전원
  • GPL 라이센스
  • 유효한 HTML 4.01

Centos 7에서 방화구를 비활성화하거나 끄는 방법

Firewalld는 네트워크 구역 설정을 지원하는 동적으로 관리되는 방화벽 솔루션입니다. 시스템 관리자는이를 사용하여 들어오는 트래픽을 동적으로 허용하고 허용하지 않습니다. IPv4 및 IPv6 방화벽 설정을 모두 지원합니다. Centos 7에서 Firewalld (Dynamic Firewall Manager)는 Centos 서버의 기본 방화벽 도구입니다.

우리는 항상 방화구를 활성화하고 가능하게 유지하는 것이 좋습니다. 그러나 관리자와 같은 다른 방화벽 도구로 테스트하거나 다른 방화벽으로 전환하려면 관리자가 방화구를 비활성화해야 할 수도 있습니다.

이 튜토리얼은 Centos 7에서 방화벽을 비활성화하고 중지하는 방법을 보여줍니다.

Centos 7에서 방화벽을 비활성화하는 방법 7

  • Sudo 특권을 가진 사용자
  • 명령 줄 (CTRL-ALT-T)에 대한 액세스
  • Centos 7 기계

방화구 상태를 확인하십시오

Firewalld는 모든 Centos 7 기계에서 기본적으로 활성화됩니다.

방화구 상태를 확인하려면 명령 줄에서 다음 명령을 실행하십시오

Sudo SystemCtl 상태 방화장

방화벽이 실행중인 경우 아래에서 볼 수 있듯이 방화벽이 활성화되어 있음을 나타내는 밝은 녹색 텍스트가 표시됩니다.

Centos 7에서 활성 실행 방화벽

Centos에서 방화벽을 비활성화합니다

방화벽을 비활성화 할 수 있습니다 일시적으로 또는 영구적으로. 아래 섹션은 두 옵션 모두에 대한 지침을 제공합니다.

일시적으로 방화구를 중단하십시오

CentOS 7의 기본 방화벽 관리자를 임시로 비활성화하려면 다음 명령을 사용하십시오

Sudo SystemCtl 중지 방화구

확인 메시지가 없습니다.

방화구가 비활성화되어 있는지 확인하려면 다음을 입력하십시오

Sudo SystemCtl 상태 방화장

당신은 볼 수 있습니다 활성 : 비활성 (죽은) .

방화벽이 중지되었는지 확인합니다

그만큼 SystemCtl 방화벽 중지 명령은 재부팅 될 때까지 서비스를 비활성화합니다. 런타임 세션이 종료되고 시스템이 재부팅되면 방화대 서비스가 다시 활성화됩니다.

방화구를 영구적으로 비활성화합니다

Centos 7에서 방화벽을 영구적으로 비활성화하려면 방화벽 서비스를 중지 한 다음 모두 비활성화해야합니다.

방화구 도구를 중지하려면 실행하십시오

Sudo SystemCtl 중지 방화구

이것은 또한 우리가 일시적으로 방화구를 중지하는 것과 동일한 명령입니다. 방화벽 상태를 확인하십시오.

Sudo SystemCtl 상태 방화장

출력은 서비스가 비활성임을 명시해야합니다.

시스템 부팅시 서비스가 활성화되는 것을 비활성화하려면이 명령을 입력하십시오

Sudo SystemCTL 방화구 비활성화

찾을 수있는 출력에 대해서는 아래 이미지를 참조하십시오

Centos에서 영구적으로 장애가있는 방화장의 스크린 샷

Centos 7 서버에서 방화벽 서비스를 성공적으로 중지하고 비활성화했습니다. 그러나 다른 활성 서비스는 방화구를 활성화 할 수 있습니다.

다른 서비스가 방화장을 활성화하는 것을 방지하려면 시스템의 다른 서비스에서 방화구를 마스킹하십시오

Sudo SystemCtl 마스크 -NOW 방화구

이것은 상징적 링크를 만듭니다 (Symlink) 방화대 서비스에서 /dev/null .

출력은 다음과 같이 나타납니다

/etc/systemd/system/firewalld에서 생성 된 출력./dev /null 서비스.

이 튜토리얼을 따르면 이제 Centos 7에서 방화벽을 중지하고 비활성화하는 방법을 알았습니다. 또한 재 활성화를 피하기 위해 다른 활성 서비스에서 방화장 서비스를 가리는 방법을 배웠습니다.

우수한 보안 관행은 특히 라이브 서버에서 방화벽을 비활성화하는 금지. 테스트 환경에서도 그렇게 할 때 항상 조심해야합니다.

Centos 7에서 방화구 사용

Firewalld는 Centos의 방화벽으로 이동하여 네트워크 연결 / 인터페이스의 신뢰 수준을 설정하기 위해 네트워크 / 방화벽 영역을 지원합니다 (Zones 단락 참조). 포트를 구체적으로 관리 할 수있는 기능 외에도 서비스 / 응용 프로그램을 직접 추가 할 수있는 기능도 지원합니다.

  • 제어판의 SSH 또는 VPS 콘솔을 통해 VPS에 연결하고 Sudo를 사용 하거나이 기사의 단계를 루트 사용자로 따르십시오.
  • Plesk VPS를 사용하십니까?? 최근 Plesk 버전의 기본 영역은 공개적이지 않지만 Plesk (zone = plesk).
  • 우리의 plesk, directadmin 및 cpanel 설치는 Firewalld PreinStalled와 함께 제공됩니다.

방화구 설치

Firewalld는 다음 명령을 사용하여 쉽게 설치됩니다

yum -y install firewalld systemctl 활성화 방화대

방화구 상태 확인

방화구 구성을 계속하기 전에 실제로 올바르게 작동하는지 확인하는 것이 좋습니다. 당신은 명령으로 이것을합니다

SystemCTL 상태 방화장

문제가 없으면 입력이 다음과 같습니다

Centos 7 방화대 상태

방화구가 활성화되어 있다고 명시하지 않으면 다음과 같이 다시 시작하십시오

SystemCTL 재시작 방화장

방화구가 아직 시작되지 않습니까?? 문제를 해결하기 위해 가능한 오류 메시지를 확인하십시오

Journalctl -xe -u 방화벽

구역

Firewalld는 구역을 사용하지만 이것이 무엇을 의미합니까?? 구역을 사용하면 실제로 인터넷 연결이 어떤 환경에 있는지, 예를 들어 공개, 가정 또는 직장 연결과 같은 신뢰하는 양을 나타냅니다. 예를 들어 개인 네트워크를 사용하거나 랩톱에서 Centos 7을 사용하고 다른 위치에서 작업하는 경우 특히 유용합니다. 그런 다음 다른 영역을 미리 구성하고 현재 위치에 따라 활성 영역을 조정할 수 있습니다.

다른 영역을 구성하면 귀하의 위치와 사용하는 영역에 따라 액세스 할 수있는 서비스 / 포트를 구별 할 수 있습니다. VPS가 가정 / 직장 / 공공 환경에서 변경되지 않기 때문에 VPS에서 하나의 영역 만 사용합니다.

Box 밖으로 Firewalld는 다음과 함께 제공됩니다

  • 떨어지다: 들어오는 모든 연결은 거부됩니다. 아웃 바운드 연결이 가능합니다.
  • 차단하다: 들어오는 연결 소스에 대한 기본 메시지가 포함 된 모든 수신 연결은 거부됩니다. IPv4의 경우 ICMP-Host-Prohibed 및 IPv6 ICMP6-ADM-ProHibited의 경우 ICMP는 IP 트래픽에서 정보 및 오류 메시지를 전송하는 기본값입니다). 나가는 연결이 가능합니다.
  • 공공의: 네트워크의 다른 컴퓨터를 신뢰하지 않는 공공 환경 에이 영역을 사용하십시오. 사전 정의 된 연결 (i.이자형. 포트 / 서비스)가 허용됩니다.
  • 외부: 이것은 주로 방화벽이 게이트웨이로 작동하고 Nat가 가장로 사용되는 경우에 중점을두고 있습니다. 네트워크의 다른 컴퓨터를 신뢰하지 않으며 미리 구성된 연결 만 허용됩니다.
  • DMZ : 컴퓨터 / 서버가 네트워크에서 격리되어 있고 다른 컴퓨터 / 서버에 액세스 할 수없는 비무장 구역. 특정 연결 만 허용됩니다.
  • 일하다: 작업 환경의 경우. 일반적으로 다른 컴퓨터는 동일한 네트워크에서 신뢰됩니다. 다시, 사전 정의 된 연결 만 허용됩니다.
  • 집: 가정용. ‘작업’영역에서와 동일하게 적용됩니다. 직장에서의 연결은 종종 홈 네트워크보다 보안이 더 좋습니다.
  • 내부: 개인 네트워크와 함께 사용합니다. 이 네트워크의 컴퓨터는 일반적으로 신뢰할 수 있습니다. 사전 정의 된 연결 만 허용됩니다.
  • 신뢰 : 모든 연결이 허용됩니다.

영역 관리

Firewalld는 영역을 관리하기위한 다양한 유용한 명령과 함께 제공됩니다. 이 섹션에서는 가장 중요한 것을 설명합니다.

기본 영역을 확인합니다

기본적으로 ‘공공의‘영역은 기본 영역입니다. 명령으로 기본 영역을 확인합니다

Firewall-CMD-Get-Default-Zone

활성 구역을 확인합니다

활성 영역을 변경하지만 기본 영역이 아닌 경우가 발생할 수 있습니다. 활성 영역과 다음과 함께 사용되는 네트워크 인터페이스를 확인합니다

Firewall-CMD-Get-Active-Zones

사용 가능한 영역을 확인하십시오

명령으로 사용 가능한 영역을 확인하십시오

Firewall-CMD-Get-Zones

구역을 변경하고 먼저 옵션을보고 싶을 때 특히 유용합니다.

자세한 영역 정보

공인 서비스 및 포팅과 같은 자세한 정보뿐만 아니라 포트 전달 등. 다음과 같이 볼 수 있습니다

Firewall-CMD -zone = public-list-all

변화 ‘공공의‘원하는 구역으로, 또는 모든 영역의 출력을 다음과 같이보십시오

Firewall-CMD-List-all-Zones | 더 적은

기본 영역 변경

기본 영역을 변경하려면 두 가지 옵션이 있습니다. 모든 인터페이스의 영역 변경 또는 인터페이스 당. 하나의 네트워크 인터페이스 (개인 네트워크가 아닌)를 사용한다고 가정하면 하나의 영역을 사용하는 것만으로도 충분하며 구역을 변경할 때 기본 영역을 조정할 수 있습니다.

    모든 인터페이스의 영역을 조정하십시오

Firewall-CMD-세트-디 파운-존 = 공개

FireWall-CMD -ZONE = public -change-interface = eth0

바꾸다 공공의 원하는 구역의 이름과 원하는 네트워크 인터페이스의 이름을 가진 ETH0. 이렇게하면 개인 네트워크의 인터페이스 당 영역을 변경할 수도 있습니다

Firewall-CMD -ZONE = public -Change-Interface = Eth0 Firewall-CMD -ZONE = 내부 -Change-Interface = eth1

오프닝 포트

방화구에서 포트를 열거 나 서비스를 추가하여 응용 프로그램에 네트워크 액세스 할 수 있습니다. 모든 응용 프로그램이 서비스와 함께 제공되는 것은 아니거나 서비스의 기본 포트를 변경했을 수도 있습니다 (E.g. ssh). 이 경우 하나 이상의 특정 포트를 열어.

이 부분의 모든 변경 사항은 VPS를 다시 시작한 후에 만 ​​활성화되거나 다음과 함께 구성을 다시로드하여 활성화됩니다

방화벽 -CMD-Reload

단일 포트 열기

명령과 함께 포트를 엽니 다

FireWall-CMD -Zone = public knepermanent --add-port = 1234/tcp

  • 바꾸다 공공의 원하는 구역으로
  • –영구적인 재시작 후에도 변경이 그대로 유지되도록합니다
  • 바꾸다 1234/TCP 원하는 포트 및 원하는 프로토콜 (TCP 또는 UDP)

오프닝 범위

오히려 범위를 열겠습니까?? 그런 다음 명령을 사용합니다

FireWall-CMD -Zone = public -permanent --add-port = 1234-1345/tcp

1234-1345를 열려고하려는 실제 포트 범위로 교체하십시오

IP 당 액세스

전 세계 전체를위한 포트를 열는 대신 명령을 사용하여 특정 IP에 대해서도 열 수 있습니다

FireWall-CMD-Permanent -zone = public-add-rich-rule = ' Rule Family = "IPv4"소스 주소 = "123.123.123.123 "포트 프로토콜 ="TCP "PORT ="123 "accept '

바꾸다 123.123.123.123 클라이언트의 실제 IP 주소로 123 포트에서 당신은 열고 싶습니다. 이 단계를 반복하여 여러 IP를 화이트리스트하고 나중에 구성을 다시로드하십시오 (Firewall-CMD-Reload). 해당 포트가 이미 열린 경우 일반 규칙을 제거하는 것을 잊지 마십시오.

열린 포트 확인

시간이 지남에 따라 어떤 포트가 열려 있는지 잊을 수 있습니다. 명령으로 확인합니다

Firewall-CMD -zone = public -permanent --- list-ports

폐쇄 포트

포트 폐쇄는 포트를 여는 것과 거의 동일하게 작동하며 명령으로 수행합니다

Firewall-CMD-존 = 공개-퍼머 멘트 --- lemove-port = 1234/tcp firewall-cmd-reload

  • 바꾸다 1234 원하는 포트 번호로 또는 1234-1345/TCP를 구문으로 사용하여 포트 범위를 삭제하십시오
  • 방화벽 -CMD-Reload 구성 변경을 즉시 업데이트합니다

구성을 직접 조정합니다

위 명령 외에도 특정 영역의 구성 파일을 직접 조정할 수도 있습니다. 영역의 구성 파일을 다음과 같이 찾을 수 있습니다

ls/etc/firewalld/zones

새로운 설치에서는 공개 만 있습니다.XML 및 공개.XML.이전에는 여기에 나열됩니다. 명령으로 열고 편집 할 수 있습니다

나노/등/방화구/구역/공개.XML

파일에 다음 추가를 각각 배치하여 서비스 또는 포트를 열 수 있습니다

  • 서비스 이름을 실제 서비스 이름으로 바꾸십시오 (예 : SSH).
  • UDP 포트를 열려면 1234를 원하는 숫자로, TCP를 UDP로 교체하십시오.

예를 들어 홈과 같은 다른 영역에 대한 새 구성 파일을 만들고 싶습니까?? 그런 다음 대중.XML.오래된 것은 훌륭한 출발점입니다. 당신은 대중을 바꿉니다.XML.다른 영역의 파일은 다음과 같이 복사하여 다음을 복사합니다

CP/etc/Firewalld/Zones/Public.XML.오래된/etc/firewalld/zones/home.XML

  • 원하는 구역의 이름으로 집을 교체하십시오.

서비스 추가

포트를 여는 것 외에도 방화구에서 특정 서비스를 열 수도 있습니다. 그런 다음 방화구에 서비스를 추가하면 하나 이상의 포트가 열립니다. 여기에는 부수가 있습니다

Firewalld는 다른 서비스의 포트가 정의되는 구성 파일 (사용 가능한 서비스 참조)을 사용합니다. 이 포트는 서비스가 추가 될 때 열립니다. 예를 들어, SSH 포트를 변경하면 SSH 서비스를 추가 한 경우 포트를 수동으로 열거 나 방화장에서 서비스 구성을 조정하지 않으면 새 포트가 자동으로 열리지 않습니다.

다음 명령으로 방화구에서 서비스를 열면 SSH를 관련 서비스 이름으로 바꾸십시오

Firewall-CMD -zone = public --permanent --add-service = ssh firewall-cmd-reload

방화구와 함께 사용할 수있는 서비스를 볼 수있는 두 가지 방법이 있습니다

    직접 명령으로 :

Firewall-CMD-Get-services

ls/usr/lib/firewalld/services

사용 가능한 파일의 내용은 다음과 같이 볼 수 있습니다

cat/usr/lib/firewalld/services/servicenaam.XML

서비스 제거

방화구에서 추가 할 때 마찬가지로 서비스를 쉽게 제거 할 수 있습니다

Firewall-CMD-존 = 공개-퍼머 멘트 --- lemove-service = ssh firewall-cmd-reload

IP 차단

VPS가 봇에 의한 무차별 적 공격으로 폭격을 당할 수 있습니다. Fail2ban을 사용하여이를 해결하는 것이 좋습니다. 그러나 IPS를 수동으로 차단할 수도 있습니다. 당신은 명령으로 이것을합니다

FireWall-CMD-퍼머 멘트 -Add-Rich-Rule = "Rule Family = 'IPv4'소스 주소 = '123.123.123.0/24 '거부 "Firewall-CMD-Reload

123을 교체하십시오.123.123.차단하려는 특정 IP 범위가있는 0/24 또는 하나의 IP를 차단하려는 경우 특정 IP 주소가 있습니다.

또는이 원칙을 돌리고 모든 사람을위한 포트에 대한 액세스를 차단하고 특정 IP 만 허용 할 수도 있습니다. 먼저 관련 포트를 제거합니다

FireWall-CMD-존 = 공개-퍼머 멘트 --- lemove-port = 1234/tcp

관련 구역, 1234 및 TCP로 공개적으로 원하는 포트 / 프로토콜로 교체하십시오. 그런 다음 명령으로 특정 IP에 액세스 할 수 있습니다

FireWall-CMD-Permanent -zone = public-add-rich-rule = 'Rule Family = "IPv4"소스 주소 = "1.2.삼.4 "포트 프로토콜 ="TCP "포트 ="1234 "Firewall-CMD 허용-Reload

필요한 경우 원하는 구역으로 공개적으로 교체하십시오.2.삼.4. 올바른 IP와 1234 및 TCP가 올바른 포트 번호 / 프로토콜을 사용하여.

차단 된 포트 점검

IP 주소에 VPS에서 서비스에 도달하는 데 문제가 있다고 가정하면 VPS에서 차단되는지 제외하는 것이 유용합니다. 당신은 명령으로 이것을합니다

방화벽 -CMD-List-all

차단 해제 IP

방화구에서 차단 된 IP를 차단 해제하려면 이전 섹션에서 명령을 뒤집을 수 있습니다. IP / IP 범위를 차단했다고 가정하고 구문을 사용한다고 가정합니다

Firewall-CMD-Permanent--remove-Rich-Rule = "Rule Family = 'IPv4'소스 주소 = '123.123.123.0/24 '거부 "Firewall-CMD-Reload

여기서 IP를 조정하는 것을 잊지 마십시오. 포트에 특정 IP 주소 액세스 권한을 부여했으며 취소하고 싶습니까?? 그런 다음 사용하십시오 :

Firewall-CMD-Permanent -Zone = public-remove-rich-rule = 'Rule Family = "IPv4"소스 주소 = "1.2.삼.4 "포트 프로토콜 ="TCP "포트 ="1234 "Firewall-CMD 허용-Reload

방화구에 대해 더 알고 싶습니까?? 우리에게 알려 주시고 Firewalld 자신의 문서를 살펴보십시오.

이 기사와 관련하여 질문이 있으시면 주저하지 말고 지원 부서에 문의하십시오. 당신은 그것들을 통해 그들에게 연락 할 수 있습니다 ‘문의하기’ 이 페이지 하단의 버튼.

이 기사를 다른 사용자와 논의하려면 아래에서 메시지를 남겨주세요코멘트‘.

  • 이 기사에서 :
  • 방화구 설치
  • 방화구 상태 확인
  • 구역
  • 영역 관리
  • 오프닝 포트
  • 폐쇄 포트
  • 서비스 추가
  • 서비스 제거
  • IP 차단
  • 차단 해제 IP

Centos 7에서 방화벽을 사용하여 방화벽을 설치하는 방법

Centos 7에서 방화벽을 사용하여 방화벽을 설치하는 방법

방화구. 이 안내서에서는 서버 용 방화벽을 설정하는 방법을 다루고 방화벽 CMD 관리 도구 (귀하의 경우)로 방화벽을 관리하는 기본 사항을 보여줄 것입니다’d Centos와 함께 iptables를 사용 하고이 가이드를 따르십시오).

메모: 이 글을 쓰는 시점에서 사용할 수있는 것보다 최신 버전의 방화구를 사용 하거나이 안내서 전체에서 사용 된 예제 서버와 약간 다르게 설정되었을 가능성이 있습니다. 이 안내서에 설명 된 일부 명령의 동작은 특정 구성에 따라 다를 수 있습니다.

방화구의 기본 개념

방화벽 CMD 유틸리티를 실제로 사용하여 방화벽 구성을 관리하는 방법에 대해 이야기하기 전에 도구가 소개하는 몇 가지 기본 개념에 익숙해 져야합니다.

구역

방화구 데몬은 “구역”. 영역은 기본적으로 컴퓨터에 연결된 네트워크에있는 신뢰 수준에 따라 어떤 트래픽이 허용 해야하는지 지시하는 일련의 규칙입니다. 네트워크 인터페이스는 방화벽에서 허용 해야하는 동작을 지시하기 위해 영역이 할당됩니다.

랩톱과 같은 네트워크를 자주 이동할 수있는 컴퓨터의 경우 이러한 종류의 유연성은 환경에 따라 규칙을 변경하는 좋은 방법을 제공합니다. 공개 Wi -Fi 네트워크에서 작동 할 때 대부분의 트래픽을 금지하는 엄격한 규칙이있을 수 있으며, 홈 네트워크에 연결될 때 더 편안한 제한을 허용합니다. 서버의 경우 네트워크 환경이 거의 변경되지 않기 때문에 이러한 영역은 즉시 중요하지 않습니다.

네트워크 환경이 얼마나 역동적인지에 관계없이, Firewall의 사전 정의 된 각 구역의 일반적인 아이디어에 익숙한 것이 여전히 유용합니다 . 순서대로 최소 신뢰가 적습니다 에게 가장 신뢰할 수 있습니다, 방화구 내에서 사전 정의 된 구역은 다음과 같습니다

  • 떨어지다: 가장 낮은 수준의 신뢰. 모든 들어오는 연결은 답장없이 삭제되며 나가는 연결 만 가능합니다.
  • 차단하다: 위와 유사하지만 단순히 연결을 삭제하는 대신 ICMP- 호스트 프로모션 또는 ICMP6-ADM-ProHibited 메시지로 들어오는 요청이 거부됩니다.
  • 공공의: 대중의 신뢰할 수없는 네트워크를 나타냅니다. 당신은 돈입니다’t 다른 컴퓨터를 신뢰하지만 사례별로 선택한 들어오는 연결을 허용 할 수 있습니다.
  • 외부: 방화벽을 게이트웨이로 사용하는 경우 외부 네트워크. 내부 네트워크가 비공개로 유지되지만 도달 할 수 있도록 NAT가 가장로 구성되어 있습니다.
  • 내부: 게이트웨이의 내부 부분에 사용되는 외부 구역의 다른 쪽. 컴퓨터는 상당히 신뢰할 수 있으며 일부 추가 서비스를 사용할 수 있습니다.
  • DMZ: DMZ에 위치한 컴퓨터에 사용됩니다 (나머지 네트워크에 액세스 할 수없는 분리 된 컴퓨터). 특정 들어오는 연결 만 허용됩니다.
  • 일하다: 작업 기계에 사용됩니다. 네트워크의 대부분의 컴퓨터를 신뢰하십시오. 몇 가지 서비스가 허용 될 수 있습니다.
  • : 가정 환경. 일반적으로 다른 컴퓨터의 대부분을 신뢰하고 몇 가지 서비스가 수락 될 것임을 의미합니다.
  • 신뢰할 수 있습니다: 네트워크의 모든 기계를 신뢰하십시오. 사용 가능한 옵션 중 가장 많이 열려 있으며 드물게 사용해야합니다.

방화벽을 사용하려면 규칙을 작성하고 영역의 속성을 변경 한 다음 네트워크 인터페이스를 가장 적절한 영역에 할당 할 수 있습니다.

규칙 영속성

방화구에서 규칙은 영구적이거나 즉각적인 것으로 지정 될 수 있습니다. 규칙이 추가되거나 수정되면 기본적으로 현재 실행중인 방화벽의 동작이 수정됩니다. 다음 부팅에서는 수정이 버리고 기존 규칙이 적용됩니다.

대부분의 방화벽 -CMD 작업은 -permanent 플래그를 사용하여 비 원기 방화벽을 타겟팅해야 함을 나타냅니다. 부팅시 다시로드되는 규칙 세트에 영향을 미칩니다. 이 분리는 활성 방화벽 인스턴스에서 규칙을 테스트 한 다음 문제가있는 경우 다시로드 할 수 있음을 의미합니다. Reload 명령이 발행 될 때 -Permanent 플래그를 사용하여 시간이 지남에 따라 전체 규칙 세트를 한 번에 적용 할 수 있습니다.

방화벽이 부팅시 시작하도록 설치하고 활성화하십시오

Firewalld는 Centos 7의 많은 이미지를 포함하여 일부 Linux 배포판에 기본적으로 설치됩니다. 그러나 방화구를 직접 설치해야 할 수도 있습니다

방화구를 설치 한 후에는 서비스를 활성화하고 서버를 재부팅 할 수 있습니다. 방화구를 활성화하면 서비스가 부팅시 시작됩니다. 방화벽 규칙을 작성하고 잠재적 인 문제를 피하기 위해이 동작을 구성하기 전에 테스트 할 수있는 기회를 얻는 것이 가장 좋습니다.

서버가 다시 시작되면 방화벽이 올라가고 네트워크 인터페이스를 구성한 영역에 넣어야합니다 (또는 구성된 기본 영역으로 돌아 가면 영역과 관련된 모든 규칙이 관련 인터페이스에 적용됩니다.

타이핑하여 서비스가 실행되고 도달 할 수 있는지 확인할 수 있습니다

산출

달리기

이는 기본 구성으로 방화벽이 가동되었음을 나타냅니다.

현재 방화벽 규칙에 익숙해집니다

수정을 시작하기 전에 데몬이 제공 한 기본 환경과 규칙에 익숙해 져야합니다.

기본값 탐색

입력하여 현재 어떤 영역이 기본값으로 선택되었는지 확인할 수 있습니다

산출

공공의

우리가 아니다’t 방화벽이 기본 영역에서 벗어나기위한 명령이 주어지고 다른 영역에 바인딩하도록 구성되지 않은 인터페이스는 그 영역도 유일한 것입니다 “활동적인” 구역 (인터페이스의 트래픽을 제어하는 ​​영역). 입력하여 확인할 수 있습니다

산출

공공 인터페이스 : ETH0 ETH1

여기서 우리는 예제 서버에 방화벽 (ETH0 및 ETH1)에 의해 제어되는 두 개의 네트워크 인터페이스가 있음을 알 수 있습니다. 둘 다 현재 공공 구역에 정의 된 규칙에 따라 관리되고 있습니다.

그래도 공공 구역과 어떤 규칙이 관련되어 있는지 어떻게 알 수 있습니까?? 기본 영역을 인쇄 할 수 있습니다’타이핑하여 s 구성 :

산출

공개 (기본, 활성) 대상 : 기본 ICMP- 차단 반전 : 인터페이스 없음 : ETH0 ETH1 소스 : 서비스 : SSH DHCPV6-CLIENT 포트 : 프로토콜 : 가장 무서운 : 소스 포트 : 소스 포트 : ICMP 블록 : 풍부한 규칙 :

우리는이 영역이 기본 및 활성이며 ETH0 및 ETH1 인터페이스 가이 영역과 관련되어 있음을 출력으로부터 알 수 있습니다 (이전 문의에서 이미이 모든 것을 알고있었습니다). 그러나이 영역은 DHCP 클라이언트 (IP 주소 할당) 및 SSH (원격 관리)와 관련된 일반 작업을 허용한다는 것을 알 수 있습니다.

대체 구역 탐색

이제 기본 영역 및 활성 영역의 구성에 대한 좋은 아이디어가 있습니다. 다른 구역에 대한 정보도 찾을 수 있습니다.

사용 가능한 영역 목록을 얻으려면 다음을 입력하십시오

산출

차단 DMZ 방울 외부 가정 내부 공공 신뢰할 수있는 작업

-list-all 명령에 -zone = 매개 변수를 포함시켜 영역과 관련된 특정 구성을 볼 수 있습니다

산출

홈 대상 : 기본 ICMP- 차단 반전 : 인터페이스 없음 : 소스 : 서비스 : 서비스 : DHCPV6-Client MDNS SAMBA-CLIENT SSH 포트 : 프로토콜 : 가장 무도회 : 없음 포트 : 소스 포트 : ICMP- 블록 : 풍부한 규칙 : 풍부한 규칙 :

-list-all-zones 옵션을 사용하여 모든 영역 정의를 출력 할 수 있습니다. 쉽게 볼 수 있도록 출력을 호출기에 파이프하고 싶을 것입니다

인터페이스에 대한 영역을 선택합니다

네트워크 인터페이스를 구성하지 않으면 방화벽이 부팅 될 때 각 인터페이스가 기본 영역에 표시됩니다.

인터페이스의 영역 변경

-change-interface = parameter와 함께 -zone = 매개 변수를 사용하여 세션 중에 영역 간 인터페이스를 전환 할 수 있습니다. 방화벽을 수정하는 모든 명령과 마찬가지로 Sudo를 사용해야합니다 .

예를 들어, ETH0 인터페이스를 “집” 이것을 입력하여 영역 :

산출

성공

메모: 인터페이스를 새 영역으로 전환 할 때마다 아마도 운영 될 서비스를 수정하고 있음을 알고 있어야합니다. 예를 들어, 우리는 여기로 이동하고 있습니다 “집” SSH를 사용할 수있는 구역. 이것은 우리의 연결이 없음을 의미합니다’t 드롭. 일부 영역에는 기본적으로 SSH가 활성화되어 있지 않으며이 구역 중 하나를 사용하는 동안 연결이 삭제되면 다시 로그인 할 수 없습니다.

활성 영역을 다시 요청하여 이것이 성공했는지 확인할 수 있습니다

산출

홈 인터페이스 : ETH0 공개 인터페이스 : ETH1

기본 영역 조정

모든 인터페이스를 단일 영역으로 가장 잘 처리 할 수 ​​있다면’최상의 기본 영역을 선택한 다음 구성에 사용하기가 더 쉽습니다.

-set-default-zone = parameter로 기본 영역을 변경할 수 있습니다. 이렇게하면 기본값으로 새로운 영역으로 떨어진 인터페이스가 즉시 변경됩니다

산출

성공

응용 프로그램 규칙 설정

사용 가능한 서비스에 대한 방화벽 예외를 정의하는 기본 방법은 매우 간단합니다. 우리’ll 기본 아이디어를 여기에서 실행합니다.

영역에 서비스 추가

가장 간단한 방법은 사용중인 영역에 필요한 서비스 또는 포트를 추가하는 것입니다. 다시 한 번-get-services 옵션으로 사용 가능한 서비스 목록을 얻을 수 있습니다

산출

RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-클라이언트 Tinc Tor-Socks 변속기 클라이언트 VDSM VNC-SERVER WBEM-HTTPS XMPP-BOSH XMPP-CLIENT XMPP-LOCAL XMPP-SERVER

메모: 이와 관련된 각 서비스에 대한 자세한 내용은 관련이 있습니다 ./usr/lib/firewalld/services 디렉토리 내의 XML 파일. 예를 들어, SSH 서비스는 다음과 같이 정의됩니다

/usr/lib/firewalld/services/ssh.XML

 서비스> 짧은>SSH짧은> 설명>SPH (Secure Shell). 안전한 암호화 된 통신을 제공합니다. 방화대 인터페이스를 통해 SSH를 통해 원격으로 기계에 액세스 할 계획이라면이 옵션을 활성화하십시오. 이 옵션이 유용하려면 OpenSsh-Server 패키지를 설치해야합니다.설명> 포트 규약="TCP" 포트="22"/> 서비스> 

-add-service = parameter를 사용하여 영역에 대한 서비스를 활성화 할 수 있습니다. 작업은 기본 영역 또는 -zone = 매개 변수로 지정된 모든 영역을 대상으로합니다. 기본적으로 이것은 현재 방화벽 세션 만 조정됩니다. -permanent 플래그를 포함하여 영구 방화벽 구성을 조정할 수 있습니다.

예를 들어, 기존의 HTTP 트래픽에 서비스를 제공하는 웹 서버를 실행중인 경우이 트래픽이 우리의 인터페이스에 대한 트래픽을 허용 할 수 있습니다 “공공의” 입력 하여이 세션의 영역 :

기본 영역을 수정하려면 -zone = 퇴치 할 수 있습니다. -list-all 또는-list-services 작업을 사용하여 작업이 성공했는지 확인할 수 있습니다

산출

dhcpv6-client http SSH

모든 것이 작동하는지 테스트 한 후에는 재부팅 후에도 서비스를 사용할 수 있도록 영구 방화벽 규칙을 수정하려고합니다. 우리는 우리를 만들 수 있습니다 “공공의” 입력하여 영구적 인 구역 변경 :

산출

성공

-list-services 작업에 –permanent 플래그를 추가하여 이것이 성공했는지 확인할 수 있습니다. -영구적 인 작업에 Sudo를 사용해야합니다

산출

dhcpv6-client http SSH

당신의 “공공의” 영역은 이제 포트 80에서 HTTP 웹 트래픽을 허용합니다. 웹 서버가 SSL/TLS를 사용하도록 구성된 경우’LL도 HTTPS 서비스를 추가하려고합니다. 입력을 통해 현재 세션과 영구 규칙 세트에 추가 할 수 있습니다

적절한 서비스를 사용할 수없는 경우 어떻게해야합니까??

방화구 설치에 포함 된 방화벽 서비스는 액세스 할 수있는 응용 프로그램에 대한 가장 일반적인 요구 사항을 나타냅니다. 그러나 이러한 서비스가 귀하의 요구 사항에 맞지 않는 시나리오가있을 것입니다.

이 상황에는 두 가지 옵션이 있습니다.

구역을위한 포트 열기

특정 애플리케이션에 대한 지원을 추가하는 한 가지 방법은 해당 구역에서 사용하는 포트를 열 수 있습니다. 포트 또는 포트 범위를 지정하고 열어야하는 포트의 관련 프로토콜을 지정하여 수행됩니다.

예를 들어, 응용 프로그램이 포트 5000에서 실행되고 TCP를 사용하는 경우이를 “공공의” -add-port = 매개 변수를 사용 하여이 세션의 영역. 프로토콜은 TCP 또는 UDP 일 수 있습니다

산출

성공

-list-ports 작업을 사용하여 성공했는지 확인할 수 있습니다

산출

5000/TCP

대시로 범위에서 시작과 끝 포트를 분리하여 순차적 인 포트 범위를 지정할 수도 있습니다. 예를 들어, 응용 프로그램이 UDP 포트 4990 ~ 4999를 사용하는 경우 “공공의” 타이핑으로 :

테스트 후 영구 방화벽에 추가하고 싶을 것입니다. 입력하여 할 수 있습니다

산출

성공 5000/TCP 4990-4999/UDP

서비스 정의

구역을위한 포트를 여는 것은 쉽지만 각각의 것을 추적하기가 어려울 수 있습니다. 서버에서 서비스를 해체 한 경우, 어떤 열린 포트가 여전히 필요한지 기억하는 데 어려움을 겪을 수 있습니다. 이 상황을 피하기 위해 서비스를 정의 할 수 있습니다.

서비스는 관련 이름과 설명이있는 포트 모음입니다. 서비스 사용은 포트보다 관리하기 쉽지만 약간의 선불 작업이 필요합니다. 시작하는 좋은 방법은 기존 스크립트 (/usr/lib/firewalld/services에 있음)를 방화벽에서 비 표준 정의를 찾는/etc/firewalld/services 디렉토리에 복사하는 것입니다.

예를 들어, 우리는 SSH 서비스 정의를 복사 할 수 있습니다 “예” 이와 같은 서비스 정의. 파일 이름에서 뺀 값 .XML 접미어는 방화벽 서비스 목록 내에서 서비스 이름을 지시합니다

이제 복사 한 파일에서 찾은 정의를 조정할 수 있습니다

시작하려면 파일에는 복사 한 SSH 정의가 포함됩니다

/etc/firewalld/services/예제.XML

 서비스> 짧은>SSH짧은> 설명>SPH (Secure Shell). 안전한 암호화 된 통신을 제공합니다. 방화대 인터페이스를 통해 SSH를 통해 원격으로 기계에 액세스 할 계획이라면이 옵션을 활성화하십시오. 이 옵션이 유용하려면 OpenSsh-Server 패키지를 설치해야합니다.설명> 포트 규약="TCP" 포트="22"/> 서비스> 

이 정의의 대부분은 실제로 메타 데이터입니다. 태그 내 서비스의 짧은 이름을 변경하고 싶을 것입니다. 이것은 귀하의 서비스에 대한 사람이 읽을 수있는 이름입니다. 서비스 감사가 필요한 경우 더 많은 정보를 얻을 수 있도록 설명을 추가해야합니다. 서비스의 기능에 실제로 영향을 미치는 유일한 구성은 포트 정의 일 것입니다. 이것은 여러 번 지정할 수 있습니다.

우리를 위해 “예” 서비스, ​​우리는 TCP의 경우 포트 7777, UDP의 경우 8888을 열어야한다고 상상해보십시오. i를 눌러 삽입 모드를 입력하면 다음과 같은 내용으로 기존 정의를 수정할 수 있습니다

/etc/firewalld/services/예제.XML

 서비스> 짧은>예제 서비스짧은> 설명>이것은 단지 예제 서비스 일뿐입니다. 실제 시스템에서 사용해서는 안됩니다.설명> 포트 규약="TCP" 포트="7777"/> 포트 규약="UDP" 포트="8888"/> 서비스> 

ESC를 누른 다음 : X를 입력하려면 파일을 저장하고 닫습니다.

새로운 서비스에 액세스하려면 방화벽을 다시로드하십시오

이제 사용 가능한 서비스 목록 중 하나임을 알 수 있습니다

산출

Rh-Satellite-6 Amanda-Client Amanda-K5-Client Bacula Bacula Client 비트 코인 비트 코인 -RPC 비트 코인-테스트 넷 비트 코인-테스트 넷-테스트 넷-테스트 rpc Ceph-Mon Cfengine Condor-Collector CTDB DHCP DHCPV6 DHCPV6-- 클라이언트 DNS DOCKEC-LANSYNC LANSYNC LANSYNC LANSYNC LANSYNC는 Lansync ansync입니다 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-mas MSSQL MYSQL NFS NRPE NTP OPENVPN OVIRT-IMAGEIO OVIRT-STORAGECONSOLE OVIRT-VMCONSOLE PMCD PMPROXY PMWEBAPI PMWEBAPIS POP3 POSTGRESQL PRIXOXY PULSEAUDIO PUPPETMARTOR QUASSEL RP-SHSONAMP SANAMBIOR RSHSYNCD SAMPA SHASINT RSHSYNCD SINAMBER SMTP SMTP-SUBMISSING SMTPS SNMP SNMPTRAP SPIDEROAK-LANSYNC SIGLOG SYNERGY SYSLOG SYSLOG TLS TELNET TFTP TINC TOR-SOCKS TOR-SOCKS TORNISSION-CLIENT VDSM VNC-SERVER WBEM-HTTPS XMPP-BOSH XMP-LIUNT XMP-LOCAL XMP-SURER

이제이 서비스를 구역에서 사용할 수 있습니다.

나만의 영역을 만듭니다

미리 정의 된 구역은 아마도 대부분의 사용자에게 충분할 것입니다. 기능을 더 설명하는 자신의 영역을 정의하는 것이 도움이 될 수 있습니다.

예를 들어, 웹 서버의 영역을 만들고 싶을 수도 있습니다 “공공 웹”. 그러나 개인 네트워크에서 제공하는 DNS 서비스에 대해 다른 영역을 구성 할 수 있습니다. 당신은 영역을 호출하기를 원할 수 있습니다 “Privatedns” 그에 대한.

영역을 추가 할 때는 영구 방화벽 구성에 추가해야합니다. 그런 다음 다시로드하여 실행중인 세션에 구성을 가져올 수 있습니다. 예를 들어, 우리는 위에서 논의한 두 개의 영역을 입력하여 다음을 만들 수 있습니다

입력하여 영구 구성에 있음을 확인할 수 있습니다

산출

블록 DMZ 방울 외부 주택 내부 Privatedns 공공의 공공 웹 신뢰할 수있는 작업

앞에서 언급했듯이, 이것들은 이겼습니다’t 방화벽의 현재 인스턴스에서 사용할 수 있습니다

산출

차단 DMZ 방울 외부 가정 내부 공공 신뢰할 수있는 작업

방화벽을 다시로드하여 이러한 새 영역을 활성 구성으로 가져옵니다

산출

블록 DMZ 방울 외부 주택 내부 Privatedns 공공의 공공 웹 신뢰할 수있는 작업

이제 적절한 서비스와 포트를 영역에 할당 할 수 있습니다. 그것’s는 일반적으로 활성 인스턴스를 조정 한 다음 테스트 후 해당 변경 사항을 영구 구성으로 전송하는 것이 좋습니다. 예를 들어, “공공 웹” Zone, SSH, HTTP 및 HTTPS 서비스를 추가 할 수 있습니다

산출

PublicWeb Target : Default ICMP- 차단 반전 : 인터페이스 없음 : 소스 : 서비스 : SSH HTTP HTTPS 포트 : 프로토콜 : 가장 무도회 : Forward-Ports : 소스 포트 : ICMP- 블록 : 풍부한 규칙 :

마찬가지로, 우리는 DNS 서비스를 우리의 “Privatedns” 존:

산출

Privatedns 인터페이스 : 출처 : 서비스 : DNS 포트 : 가장 무도회 : 없음 전달 포트 : ICMP- 블록 : 풍부한 규칙 :

그런 다음 인터페이스를이 새 구역으로 변경하여 테스트 할 수 있습니다

이 시점에서 구성을 테스트 할 기회가 있습니다. 이러한 값이 귀하에게 적용되면 영구 구성에 동일한 규칙을 추가 할 것입니다. -permanent 플래그로 규칙을 다시 적용하여 다음을 수행 할 수 있습니다

이 규칙을 영구적으로 적용한 후 네트워크를 다시 시작하고 방화벽 서비스를 다시로드 할 수 있습니다

올바른 구역이 할당되었음을 확인하십시오

산출

Privatedns 인터페이스 : ETH1 PublicWeb 인터페이스 : ETH0

그리고 두 지역 모두에 적합한 서비스를 사용할 수 있는지 확인하십시오

산출

HTTP HTTPS SSH

산출

DNS

당신은 자신의 영역을 성공적으로 설정했습니다! 이 영역 중 하나를 다른 인터페이스의 기본값으로 만들려면-세트-디 페이브 Zone = 매개 변수로 해당 동작을 구성해야합니다

Sudo Firewall-CMD-세트-디 페치 존 = publicweb 

결론

이제 매일 사용하기 위해 CentOS 시스템에서 방화장 서비스를 관리하는 방법에 대해 상당히 잘 이해해야합니다.

방화구 서비스를 사용하면 네트워크 환경을 고려하여 유지 관리 가능한 규칙 및 규칙 세트를 구성 할 수 있습니다. 영역을 사용하여 다양한 방화벽 정책을 원활하게 전환 할 수 있으며 관리자에게 포트 관리를보다 친근한 서비스 정의로 추상화 할 수있는 기능을 제공합니다. 이 시스템에 대한 실무 지식을 얻으면이 도구가 제공하는 유연성과 힘을 활용할 수 있습니다.

인프라를 쉽게 확보하고 DigitalOcean Cloud Firewalls를 사용하여 서버에서 볼 수있는 서비스를 정의하십시오. 우리의 클라우드 방화벽은 무료이며 준비 및 생산 배포에 적합합니다.

Centos 8에서 방화벽을 사용하여 방화벽을 설정하는 방법 8

Centos 8에서 방화벽을 사용하여 방화벽을 설정하는 방법 8

Firewalld는 Linux의 프론트 엔드 역할을하는 많은 Linux 배포에 사용할 수있는 방화벽 관리 소프트웨어입니다’S 내부 Nftables 또는 iptables 패킷 필터링 시스템.

이 안내서에서는 CentOS 8 서버를위한 방화벽 방화벽을 설정하고 방화벽 -CMD 관리 도구를 사용하여 방화벽을 관리하는 기본 사항을 다루는 방법을 보여줍니다.

전제 조건

이 자습서를 작성하려면 Centos 8을 실행하는 서버가 필요합니다. 우리는 당신 이이 서버에 로그인했다고 가정 할 것입니다-뿌리, Sudo -Enabled 사용자. 이를 설정하려면 CentOS 8 Guide의 초기 서버 설정을 참조하십시오.

방화구의 기본 개념

방화벽 CMD 유틸리티를 실제로 사용하여 방화벽 구성을 관리하는 방법에 대해 이야기하기 전에 도구가 소개하는 몇 가지 개념에 익숙해 져야합니다.

구역

방화구 데몬은 구역. 영역은 네트워크에있는 신뢰 수준에 따라 허용되는 트래픽을 지시하는 일련의 규칙입니다. 네트워크 인터페이스는 방화벽에서 허용 해야하는 동작을 지시하기 위해 영역에 할당됩니다.

랩톱과 같은 네트워크를 자주 이동할 수있는 컴퓨터의 경우 이러한 종류의 유연성은 환경에 따라 규칙을 변경하는 좋은 방법을 제공합니다. 공개 Wi -Fi 네트워크에서 작동 할 때 대부분의 트래픽을 금지하는 엄격한 규칙이있을 수 있으며, 홈 네트워크에 연결될 때 더 편안한 제한을 허용합니다. 서버의 경우 네트워크 환경이 거의 변경되지 않기 때문에 이러한 영역은 종종 중요하지 않습니다.

네트워크 환경이 얼마나 역동적인지에 관계없이, Firewall의 사전 정의 된 각 구역의 일반적인 아이디어에 익숙한 것이 여전히 유용합니다 . 방화구 내에서 사전 정의 된 구역은 순서대로 최소 신뢰가 적습니다 에게 가장 신뢰할 수 있습니다:

  • 떨어지다: 가장 낮은 수준의 신뢰. 모든 들어오는 연결은 답장없이 삭제되며 나가는 연결 만 가능합니다.
  • 차단하다: 위와 유사하지만 단순히 연결을 삭제하는 대신 ICMP- 호스트 프로모션 또는 ICMP6-ADM-ProHibited 메시지로 들어오는 요청이 거부됩니다.
  • 공공의: 대중의 신뢰할 수없는 네트워크를 나타냅니다. 당신은 돈입니다’t 다른 컴퓨터를 신뢰하지만 사례별로 선택한 들어오는 연결을 허용 할 수 있습니다.
  • 외부: 방화벽을 게이트웨이로 사용하는 경우 외부 네트워크. 내부 네트워크가 비공개로 유지되지만 도달 할 수 있도록 NAT가 가장로 구성되어 있습니다.
  • 내부: 게이트웨이의 내부 부분에 사용되는 외부 구역의 다른 쪽. 컴퓨터는 상당히 신뢰할 수 있으며 일부 추가 서비스를 사용할 수 있습니다.
  • DMZ: DMZ에 위치한 컴퓨터에 사용됩니다 (나머지 네트워크에 액세스 할 수없는 분리 된 컴퓨터). 특정 들어오는 연결 만 허용됩니다.
  • 일하다: 작업 기계에 사용됩니다. 네트워크의 대부분의 컴퓨터를 신뢰하십시오. 몇 가지 서비스가 허용 될 수 있습니다.
  • : 가정 환경. 일반적으로 다른 컴퓨터의 대부분을 신뢰하고 몇 가지 서비스가 수락 될 것임을 의미합니다.
  • 신뢰할 수 있습니다: 네트워크의 모든 기계를 신뢰하십시오. 사용 가능한 옵션 중 가장 많이 열려 있으며 드물게 사용해야합니다.

방화벽을 사용하려면 규칙을 작성하고 영역의 속성을 변경 한 다음 네트워크 인터페이스를 가장 적절한 영역에 할당 할 수 있습니다.

규칙 영속성

방화구에서는 규칙을 현재에 적용 할 수 있습니다 실행 시간 규칙 세트 또는 만들어집니다 영구적인. 규칙이 추가되거나 수정 된 경우, 기본적으로 현재 실행중인 방화벽 만 수정됩니다. 다음 재부팅 후 또는 방화대 서비스의 재 장전 후 영구 규칙 만 남아 있습니다.

대부분의 방화벽 -CMD 작업은 -Permanent 플래그를 사용하여 변경 사항이 영구 구성에 적용되어야 함을 나타낼 수 있습니다. 또한, 현재 실행중인 방화벽은 방화벽 -CMD-런던 타임 투수 명령을 사용하여 영구 구성에 저장할 수 있습니다.

이 런타임과 영구 구성을 분리하면 활성 방화벽에서 규칙을 안전하게 테스트 한 다음 문제가있는 경우 다시로드 할 수 있습니다.

방화구 설치 및 활성화

Firewalld는 Centos 8의 많은 이미지를 포함하여 일부 Linux 배포판에 기본적으로 설치됩니다. 그러나 방화구를 직접 설치해야 할 수도 있습니다

방화구를 설치 한 후에는 서비스를 활성화하고 서버를 재부팅 할 수 있습니다. 방화구를 활성화하면 서비스가 부팅시 시작됩니다. 방화벽 규칙을 작성하고 잠재적 인 문제를 피하기 위해이 동작을 구성하기 전에 테스트 할 수있는 기회를 얻는 것이 가장 좋습니다.

서버가 다시 시작되면 방화벽이 올라가고 네트워크 인터페이스를 구성한 영역에 넣어야합니다 (또는 구성된 기본 영역으로 돌아 가면 영역과 관련된 모든 규칙이 관련 인터페이스에 적용됩니다.

타이핑하여 서비스가 실행되고 도달 할 수 있는지 확인할 수 있습니다

산출

달리기

이는 기본 구성으로 방화벽이 가동되었음을 나타냅니다.

현재 방화벽 규칙에 익숙해집니다

수정을 시작하기 전에 Firewalld가 제공 한 기본 환경과 규칙에 익숙해 져야합니다.

기본값 탐색

입력하여 현재 어떤 영역이 기본값으로 선택되었는지 확인할 수 있습니다

산출

공공의

우리가 아니다’t 방화벽이 기본 영역에서 벗어나기위한 명령이 주어지고 다른 영역에 바인딩하도록 구성되지 않은 인터페이스는 그 영역도 유일한 것입니다 활동적인 구역 (인터페이스의 트래픽을 제어하는 ​​영역). 입력하여 확인할 수 있습니다

산출

공공 인터페이스 : ETH0 ETH1

여기서 우리는 예제 서버에 방화벽 (ETH0 및 ETH1)에 의해 제어되는 두 개의 네트워크 인터페이스가 있음을 알 수 있습니다. 둘 다 현재로 정의 된 규칙에 따라 관리되고 있습니다 공공의 존.

어떤 규칙이 공공의 그래도 구역? 기본 영역을 인쇄 할 수 있습니다’타이핑하여 s 구성 :

산출

공개 (활성) 대상 : 기본 ICMP- 블록 반전 : 인터페이스 없음 : ETH0 ETH1 소스 : 서비스 : 조종석 dhcpv6-client SSH 포트 : 프로토콜 : 가장 무도회 : 없음 전달 포트 : 소스 포트 : ICMP- 블록 : 풍부한 규칙 :

출력 에서이 영역이 기본 및 활성이며 ETH0 및 ETH1 인터페이스 가이 영역과 관련되어 있음을 알 수 있습니다 (이전 문의에서 이미이 모든 것을 알고있었습니다). 그러나이 영역은 DHCP 클라이언트 (IP 주소 할당), SSH (원격 관리) 및 조종석 (웹 기반 콘솔)에 대한 트래픽이 가능하다는 것을 알 수 있습니다.

대체 구역 탐색

이제 기본 영역 및 활성 영역의 구성에 대한 좋은 아이디어가 있습니다. 다른 구역에 대한 정보도 찾을 수 있습니다.

사용 가능한 영역 목록을 얻으려면 다음을 입력하십시오

산출

차단 DMZ 방울 외부 가정 내부 공공 신뢰할 수있는 작업

-list-all 명령에 -zone = 매개 변수를 포함시켜 영역과 관련된 특정 구성을 볼 수 있습니다

산출

홈 대상 : 기본 ICMP 블록 반전 : 인터페이스 없음 : 소스 : 서비스 : 서비스 : 조종석 DHCPV6-Client MDNS SAMBA-Client SSH 포트 : 프로토콜 : 가면 : 소스 포트 : ICMP- 블록 : 풍부한 규칙 : Rich Rules :

-list-all-zones 옵션을 사용하여 모든 영역 정의를 출력 할 수 있습니다. 쉽게 볼 수 있도록 출력을 호출기에 파이프하고 싶을 것입니다

다음으로 우리는 네트워크 인터페이스에 대한 구역을 자극하는 것에 대해 배웁니다.

인터페이스에 대한 영역을 선택합니다

네트워크 인터페이스를 구성하지 않으면 방화벽이 시작될 때 각 인터페이스가 기본 영역에 표시됩니다.

인터페이스의 영역 변경

-change-interface = parameter와 함께 -zone = 매개 변수를 사용하여 세션 중에 영역 간 인터페이스를 이동할 수 있습니다. 방화벽을 수정하는 모든 명령과 마찬가지로 Sudo를 사용해야합니다 .

예를 들어, ETH0 인터페이스를 이것을 입력하여 영역 :

산출

성공

메모: 인터페이스를 새 구역으로 옮길 때마다 아마도 어떤 서비스가 운영 될지 수정하고 있음을 알아야합니다. 예를 들어, 우리는 여기로 이동하고 있습니다 SSH를 사용할 수있는 구역. 이것은 우리의 연결이 없음을 의미합니다’t 드롭. 일부 다른 영역에는 기본적으로 SSH가 활성화되어 있지 않으며이 구역 중 하나로 전환하면 연결이 떨어질 수있어 서버에 다시 로그인하지 못하도록합니다.

활성 영역을 다시 요청하여 이것이 성공했는지 확인할 수 있습니다

산출

홈 인터페이스 : ETH0 공개 인터페이스 : ETH1

기본 영역 조정

모든 인터페이스를 단일 영역으로 잘 처리 할 수 ​​있다면’최상의 구역을 기본값으로 지정 한 다음 구성에 사용하는 것이 가장 쉬운 일입니다.

-set-default-zone = parameter로 기본 영역을 변경할 수 있습니다. 이것은 기본 영역을 사용하여 모든 인터페이스를 즉시 변경합니다

산출

성공

응용 프로그램 규칙 설정

허락하다’s는 사용하려는 서비스에 대한 방화벽 예외를 정의하는 기본 방법을 통과합니다.

영역에 서비스 추가

가장 많이 추격하는 방법은 사용중인 구역에 필요한 서비스 또는 포트를 추가하는 것입니다. -get-services 옵션을 사용하여 사용 가능한 서비스 정의 목록을 얻을 수 있습니다

산출

Rh-Satellite-6 Amanda-Client Amanda-K5-Client AMQP AMQP AMQP AMQP APCUPSD AUDIT BACULE BACULA CLIEN BB BGP BITCOIN BITCOIN-RPC BITCOIN-TESTNET BITCOIN-TESTNET-RPC BITTORRENT-LSD CEPH-MON CFENGINE COCKPIT CONDOR-COLLECTOR CTDB DHCP DHCP DHCP DHCP DHCP DHCP s-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-client etcd-server freeipa-4 freeipa-ldap freeipa-replication freeipa-replication freeipa-trust ftp ganglia-client ganglia-master grafana gre high-avave http imap imap ippp ip-clifer ippyppercecperppercecperpperce isns jenkins kadmin kdeconnect kerberos kibana kibana klogin kprasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr manages matrix mdns memcache minidlna mongodb mosh mangd mqtt mqtt-tls-wbt m muter nf huts huts wuts wpls wpts wbt m muter nf m mu. EA-0183 NRPE NTP NUT OPENVPN OVIRT-IMAGEIO OVIRT-STORAGECONSOLE OVIRT-VMCONSOLE PLEX PMCD PMPROXY PMWEBAPI PMWEBAPIS POP3 POP3 POS3S POSTGRESQL PRICEXY PROMETHEUS PROMETHEUS PROXY-DHCP PTP PULSEAUDIO PUPPETMASTER QUASSEL RADIUS RDP REDIS SENTINEL RPC-BIND RSYNCD RTSP SALT-MASTOR SMATPP SMAP SIPS SUBLIT SMABA SMAT SMAP SMAT SMAP SMAP SMAT SMAT SMTPS SNMP SNMPTRAP SPIDEROAK-LANSYNC SPOTIFY SYNC SING SING SHID SHID SSH SHIT-Streaming SVDRP SVN 동기화 동기화 GUI Synergy Syslog Syslog-TLS Telnet 촉수 TFTP-Client Tile38 TONT TOR-SOCKS Transmission-Client UPNP vnc wbeTp vnc WBETTP WBETP vnc wBETTP vnc wbeTp vnc wbe. WSMANS XDMCP XMPP-BOSH XMPP-CLIENT XMPP-LOCAL XMPP-SERVER ZABBIX-AGENT ZABBIX-SERVER

메모: 이와 관련된 각 서비스에 대한 자세한 내용은 관련이 있습니다 ./usr/lib/firewalld/services 디렉토리 내의 XML 파일. 예를 들어, SSH 서비스는 다음과 같이 정의됩니다

/usr/lib/firewalld/services/ssh.XML

 서비스> 짧은>SSH짧은> 설명>SPH (Secure Shell). 안전한 암호화 된 통신을 제공합니다. 방화대 인터페이스를 통해 SSH를 통해 원격으로 기계에 액세스 할 계획이라면이 옵션을 활성화하십시오. 이 옵션이 유용하려면 OpenSsh-Server 패키지를 설치해야합니다.설명> 포트 규약="TCP" 포트="22"/> 서비스> 

-add-service = parameter를 사용하여 영역에 대한 서비스를 활성화 할 수 있습니다. 작업은 기본 영역 또는 -zone = 매개 변수로 지정된 모든 영역을 대상으로합니다. 기본적으로 이것은 현재 방화벽 세션 만 조정됩니다. -permanent 플래그를 포함하여 영구 방화벽 구성을 조정할 수 있습니다.

예를 들어, 기존 HTTP 트래픽에 서비스를 제공하는 웹 서버를 실행하는 경우,이 트래픽이 당사의 인터페이스에 대해 일시적으로 허용 할 수 있습니다 공공의 입력하여 영역 :

기본 영역을 수정하려면 -zone = 플래그를 제거 할 수 있습니다. -list-all 또는-list-services 작업을 사용하여 작업이 성공했는지 확인할 수 있습니다

산출

조종석 dhcpv6-client http SSH

모든 것이 작동하는지 테스트 한 후에는 재부팅 후에도 서비스를 사용할 수 있도록 영구 방화벽 규칙을 수정하려고합니다. 우리는 그것을 다시 타이핑하고 -permanent 플래그를 추가하여 이전 변경을 영구적으로 만들 수 있습니다

산출

성공

또는-untime-to-permanent 플래그를 사용하여 현재 실행중인 방화벽 구성을 영구 구성에 저장할 수 있습니다

이에주의하십시오 모두 러닝 방화벽에 대한 변경 사항.

어떤 방법을 선택하든-리스트 서비스 작업에 –permanent 플래그를 추가하여 성공했는지 확인할 수 있습니다. -영구적 인 작업에 Sudo를 사용해야합니다

산출

조종석 dhcpv6-client http SSH

당신의 공공의 영역은 이제 포트 80에서 HTTP 웹 트래픽을 허용합니다. 웹 서버가 SSL/TLS를 사용하도록 구성된 경우’LL도 HTTPS 서비스를 추가하려고합니다. 입력을 통해 현재 세션과 영구 규칙 세트에 추가 할 수 있습니다

적절한 서비스를 사용할 수없는 경우 어떻게해야합니까??

방화구 설치에 포함 된 서비스는 액세스 할 수있는 가장 일반적인 응용 프로그램을 나타냅니다. 그러나 이러한 서비스가 귀하의 요구 사항에 맞지 않는 시나리오가있을 것입니다.

이 상황에는 두 가지 옵션이 있습니다.

구역을위한 포트 열기

특정 응용 프로그램에 대한 지원을 추가하는 가장 쉬운 방법은 해당 구역에서 사용하는 포트를 열는 것입니다. 포트 또는 포트 범위와 포트의 관련 프로토콜 (TCP 또는 UDP)을 지정하여 수행됩니다.

예를 들어, 응용 프로그램이 포트 5000에서 실행되고 TCP를 사용하는 경우 일시적으로이를 공공의 -add-port = 매개 변수를 사용하는 영역. 프로토콜은 TCP 또는 UDP로 지정할 수 있습니다

산출

성공

-list-ports 작업을 사용하여 성공했는지 확인할 수 있습니다

산출

5000/TCP

대시로 범위에서 시작과 끝 포트를 분리하여 순차적 인 포트 범위를 지정할 수도 있습니다. 예를 들어, 응용 프로그램이 UDP 포트 4990 ~ 4999를 사용하는 경우 공공의 타이핑으로 :

테스트 후 영구 방화벽에 추가하고 싶을 것입니다. Sudo Firewall-CMD-Runtime-to-Permanent를 사용하여이를 수행하거나 명령을 -permanent 플래그로 다시 실행하십시오

산출

성공 5000/TCP 4990-4999/UDP

서비스 정의

구역을위한 포트 오프닝은 간단한 솔루션이지만 각각의 것이 무엇인지 추적하기가 어려울 수 있습니다. 서버에서 서비스를 해체 한 경우, 어떤 열린 포트가 여전히 필요한지 기억하는 데 어려움을 겪을 수 있습니다. 이 상황을 피하기 위해 새로운 서비스를 정의 할 수 있습니다.

서비스는 관련 이름과 설명이있는 포트 모음입니다. 서비스 사용은 포트보다 관리하기가 쉽지만 약간의 선형 작업이 필요합니다. 시작하기 가장 쉬운 방법은 기존 스크립트 (/usr/lib/firewalld/services에 있음)를 복사하여 방화벽에서 비표준 정의를 찾는/etc/firewalld/services 디렉토리에 복사하는 것입니다.

예를 들어, 우리는 SSH 서비스 정의를 복사 할 수 있습니다 이와 같은 서비스 정의. 파일 이름에서 뺀 값 .XML 접미어는 방화벽 서비스 목록 내에서 서비스 이름을 지시합니다

이제 복사 한 파일에서 찾은 정의를 조정할 수 있습니다. 먼저 좋아하는 텍스트 편집기에서 엽니 다. 우리’여기서 VI를 사용합니다

시작하려면 파일에는 복사 한 SSH 정의가 포함됩니다

/etc/firewalld/services/예제.XML

 서비스> 짧은>SSH짧은> 설명>SPH (Secure Shell). 안전한 암호화 된 통신을 제공합니다. 방화대 인터페이스를 통해 SSH를 통해 원격으로 기계에 액세스 할 계획이라면이 옵션을 활성화하십시오. 이 옵션이 유용하려면 OpenSsh-Server 패키지를 설치해야합니다.설명> 포트 규약="TCP" 포트="22"/> 서비스> 

이 정의의 대부분은 실제로 메타 데이터입니다. 태그 내 서비스의 짧은 이름을 변경하고 싶을 것입니다. 이것은 귀하의 서비스에 대한 사람이 읽을 수있는 이름입니다. 서비스 감사가 필요한 경우 더 많은 정보를 얻을 수 있도록 설명을 추가해야합니다. 서비스의 기능에 실제로 영향을 미치는 유일한 구성은 포트 정의 일 것입니다. 여러 태그를 지정할 수 있습니다.

우리를 위해 서비스, ​​우리는 TCP의 경우 포트 7777, UDP의 경우 8888을 열어야한다고 상상해보십시오. 우리는 다음과 같은 것으로 기존 정의를 수정할 수 있습니다

/etc/firewalld/services/예제.XML

 서비스> 짧은>예제 서비스짧은> 설명>이것은 단지 예제 서비스 일뿐입니다. 실제 시스템에서 사용해서는 안됩니다.설명> 포트 규약="TCP" 포트="7777"/> 포트 규약="UDP" 포트="8888"/> 서비스> 

파일을 저장하고 닫습니다.

새로운 서비스에 액세스하려면 방화벽을 다시로드하십시오

이제 사용 가능한 서비스 목록 중 하나임을 알 수 있습니다

산출

Rh-Satellite-6 Amanda-Client Amanda-K5-Client AMQP AMQP AMQP AMQP APCUPSD AUDIT BACULE BACULA CLIEN BB BGP BITCOIN BITCOIN-RPC BITCOIN-TESTNET BITCOIN-TESTNET-RPC BITTORRENT-LSD CEPH-MON CFENGINE COCKPIT CONDOR-COLLECTOR CTDB DHCP DHCP DHCP DHCP DHCP DHCP s-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server 핑거 프리 피파 -4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre http https imap ipp ipp-client ipsec irc irc iscsi-target isnkins kadminec kibanneckan kibanneckan kibanneckan kibanneckan kibanneck kibanneck kibannect 쉘 ldap ldaps libvirt libvirt-tls lightning-network llmnr manageseieve matrix mdns memcache minidlna mongodb mostd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs3 nmea-0183 nrpe ntp ovenvpn-storageio-storageio-storageio- VMCONSOLE PLEX PMCD PMPROXY PMWEBAPI PMWEBAPIS POP3 POP3 POS3S POSTGRESQL PRICEXY PROMETHEUS PROMETHEUS PROXY-DHCP PTP PULSEAUDIO PUPPETMASTER QUASSEL RADIUS RDP REDIS SENTINEL RPC-BIND RSYNCD RTSP SALT-MASTOR SMATPP SMAP SIPS SUBLIT SMABA SMAT SMAP SMAT SMAP SMAP SMAT SMAT SMTPS SNMP SNMPTRAP SPIDEROAK-LANSYNC SPOTIFY-SYNC SQUID SSDP SSH Steam-스트리밍 SVDRP SVN 동기화 동기화 GUI 시너지 syslog syslog-tls telnet 촉수 tftp tftp-client tile38 tinc tor-socks 전송-클리어 Upnp-client vdsm vnc-server wbem-http wbem-https wbem-https wmans xmppper xmpper xmp-cong xmp-cong xmp-cong xmp-cong xmp-cond Zabbix-Agent Zabbix-Server

이제이 서비스를 구역에서 사용할 수 있습니다.

나만의 영역을 만듭니다

미리 정의 된 구역은 아마도 대부분의 사용자에게 충분할 것입니다. 기능을 더 설명하는 자신의 영역을 정의하는 것이 도움이 될 수 있습니다.

예를 들어, 웹 서버의 영역을 만들고 싶을 수도 있습니다 공공 웹. 그러나 개인 네트워크에서 제공하는 DNS 서비스에 대해 다른 영역을 구성 할 수 있습니다. 당신은 영역을 호출하기를 원할 수 있습니다 “Privatedns” 그에 대한.

구역을 추가 할 때, 당신 ~ 해야 하다 영구 방화벽 구성에 추가하십시오. 그런 다음 다시로드하여 실행중인 세션에 구성을 가져올 수 있습니다. 예를 들어, 우리는 위에서 논의한 두 개의 영역을 입력하여 다음을 만들 수 있습니다

입력하여 영구 구성에 있음을 확인할 수 있습니다

산출

블록 DMZ 방울 외부 주택 내부 Privatedns 공공의 공공 웹 신뢰할 수있는 작업

앞에서 언급했듯이, 이것들은 이겼습니다’런타임 방화벽에서 아직 사용할 수 있습니다

산출

차단 DMZ 방울 외부 가정 내부 공공 신뢰할 수있는 작업

방화벽을 다시로드하여 이러한 새 영역을 활성 런타임 구성으로 가져옵니다

산출

블록 DMZ 방울 외부 주택 내부 Privatedns 공공의 공공 웹 신뢰할 수있는 작업

이제 적절한 서비스와 포트를 영역에 할당 할 수 있습니다. 그것’s는 일반적으로 런타임 방화벽을 조정 한 다음 테스트 후 해당 변경 사항을 영구 구성에 저장하는 것이 좋습니다. 예를 들어, 공공 웹 Zone, SSH, HTTP 및 HTTPS 서비스를 추가 할 수 있습니다

산출

PublicWeb Target : Default ICMP- 차단 반전 : 인터페이스 없음 : 소스 : 서비스 : HTTP HTTPS SSH 포트 : 프로토콜 : 가장 무도회 : Forward-Ports : 소스 포트 : ICMP- 블록 : 풍부한 규칙 :

마찬가지로, 우리는 DNS 서비스를 우리의 Privatedns 존:

산출

Privatedns Target : Default ICMP- 차단 반전 : 인터페이스 없음 : 소스 : 서비스 : 서비스 : DNS 포트 : 프로토콜 : Masquerade : Forward-Ports : 소스 포트 : ICMP- 블록 : 풍부한 규칙 :

그런 다음 인터페이스를이 새 구역으로 변경하여 테스트 할 수 있습니다

이 시점에서 구성을 테스트 할 기회가 있습니다. 이러한 값이 귀하에게 효과가 있으면 영구 구성 에이 규칙을 추가 할 것입니다. 너 ~할 수 있었다 -permanent 플래그가 추가 된 상태에서 모든 명령을 다시 실행하여이를 수행하지만이 경우 우리는’ll-Runtime-to-Permanent 플래그를 사용하여 전체 런타임 구성을 영구적으로 저장합니다

이 규칙을 영구적으로 적용한 후 방화벽을 다시로드하여 변경 사항이 남아 있는지 테스트합니다

올바른 구역이 할당되었음을 확인하십시오

산출

Privatedns 인터페이스 : ETH1 PublicWeb 인터페이스 : ETH0

그리고 두 지역 모두에 적합한 서비스를 사용할 수 있는지 확인하십시오

산출

HTTP HTTPS SSH

산출

DNS

당신은 자신의 영역을 성공적으로 설정했습니다! 이 영역 중 하나를 다른 인터페이스의 기본값으로 만들려면-세트-디 페이브 Zone = 매개 변수로 해당 동작을 구성해야합니다

결론

이제 매일 사용하기 위해 CentOS 시스템에서 방화장 서비스를 관리하는 방법에 대해 상당히 철저히 이해해야합니다.

방화구 서비스를 사용하면 네트워크 환경을 고려하여 유지 관리 가능한 규칙 및 규칙 세트를 구성 할 수 있습니다. 영역을 사용하여 다양한 방화벽 정책을 원활하게 전환 할 수 있으며 관리자에게 포트 관리를보다 친근한 서비스 정의로 추상화 할 수있는 기능을 제공합니다. 이 시스템에 대한 실무 지식을 얻으면이 도구가 제공하는 유연성과 힘을 활용할 수 있습니다.

방화구에 대한 자세한 내용은 공식 방화구 문서를 참조하십시오.

Digitalocean 커뮤니티와 함께 ​​배우아 주셔서 감사합니다. Compute, Storage, Networking 및 Managed Database의 오퍼링을 확인하십시오.