본문 바로가기
CentOS and Redhat Linux/보안설정

(Linux) CentOS7 방화벽(firewalld) 설정

by 미니몬 2023. 11. 20.

목차

    728x90
    반응형

     

    Summary

    CentOS7 서버에서 Firewalld 설정은 서버 보안을 강화하는 중요한 단계입니다. 이 글에서는 CentOS7에서 Firewalld를 사용하는 방법과 보안 설정을 위한 스텝바이스텝 안내서를 제공합니다. Firewalld의 기본 개념부터 구성 및 보안 설정까지 자세히 설명해보겠습니다.

     

     

    1. Firewalld와 CentOS 서버 보안

    CentOS7 서버에서 Firewalld 설정은 중요한 보안 수단 중 하나입니다.

    Firewalld는 방화벽 관리 도구로서 서버의 포트 및 서비스 접근을 제어하여 보안을 강화하는 역할을 합니다.

    예를 들어 123번 포트, UDP 프로토콜을 허용시키고자 할 때 서버에서 관리가 용이하여 

    효과적으로 구성하여 사용할 수 있습니다.

     

     

    2. Firewalld 설치 방법

    서버에서 Firewalld 를 사용하려면 먼저 설치와 기본 설정을 해야합니다.

    sudo yum install firewalld

     

    설치가 완료되었다면, 아래 명령을 입력하여 부팅시 자동 시작되도록 설정합니다.

    sudo systemctl enable firewalld
    sudo systemctl start firewalld

     

     

    3. 기본 구성 정보 확인

    기본적으로 사용하기 전 확인해야할 사항에 대해 알아봅시다.

    • 서비스와 포트 : Firewalld 는 서비스 및 포트를 기반으로 패킷을 필터링합니다. 서비스는 포트와 해당 서비스의 이름을 매핑한 설정입니다. 
    • 리치 규칙 : 리치 규칙은 특정 패킷을 허용하거나 거부하는 데 사용됩니다. 규칙을 설정하여 특정 IP주소, 포트 또는 서비스에 대한 엑세스를 제어할 수 있습니다.
    • 설정 파일 : 기본적으로 설정 정보 파일은 '/etc/firewalld/firewalld.conf' 에 위치해 있습니다.

     

    실제 명령어를 통한 설정 정보 확인은 아래와 같습니다.

    • 현재 사용중인 zone 정보 출력
    firewall-cmd --get-default-zone

     

    • 설정된 방화벽 zone 정보 출력
    firewall-cmd --get-zones

     

    • 활성화 중인 zone 정보 출력
    firewall-cmd --get-active-zones

     

    • zone 생성 파일 위치
    cd /etc/firewalld/zones
    ls -al

     

     

    4. 특정 포트 및 서비스 허용/차단 방법

    특정 포트 및 서비스 허용/차단 하는 방법에 대해서 알아보도록 하겠습니다.

    • 서비스 추가/제거
    firewall-cmd --add-service=ssh
    
    firewall-cmd --remove-service=ssh

     

    • 포트 추가/제거
    firewall-cmd --add-port=21/tcp
    
    firewall-cmd --remove-port=21/tcp

     

    기본적으로 적용중인 Default Zone 을 수정합니다. 만약 특정 Zone에 설정하고자 한다면 '--zone' 옵션을 추가합니다.

    그리고 영구적용하고자 하는 정보는 '--permanent' 옵션을 사용합니다.

     

    • 서비스 추가/제거
    firewall-cmd --zone=myzone --permanent --add-service=ssh
    
    firewall-cmd --zone=myzone --permanent --remove-service=ssh

     

    • 포트 추가/제거
    firewall-cmd --zone=myzone --permanent --add-port=21/tcp
    
    firewall-cmd --zone=myzone --permanent --remove-port=21/tcp

     

     

    5. 실제 적용 테스트

    차단하는 방법을 알아보았으니 실제로 적용하여 어떤식으로 동작하는지 확인해보겟습니다.

    예시로 NTP서비스에 사용되는 123번 포트의 UDP 프로토콜을 허용하는 방법을 살펴봅시다.

     

    • 새로운 zone 추가
    vi /etc/firewalld/zones/myzone.xml

     

    • 해당 파일안에 아래 내용을 입력
    <?xml version="1.0" encoding="utf-8"?>
    <zone>
      <short>My Custom Zone</short>
      <description>Custom zone for my specific requirements</description>
    </zone>

     

    • Default Zone 변경 (public -> myzone)
    vi /etc/firewalld/firewalld.conf

     

     

    • 123/udp 포트 허용정책 추가 후 reload
    firewall-cmd --zone=myzone --permanent --add-port=123/udp
    firewall-cmd --reload
    firewall-cmd --list-all
    [root@LM zones]# firewall-cmd --list-all
    You're performing an operation over default zone ('myzone'),
    but your connections/interfaces are in zone 'public' (see --get-active-zones)
    You most likely need to use --zone=public option.

    myzone
      target: default
      icmp-block-inversion: no
      interfaces: 
      sources: 
      services: 
      ports: 
      protocols: 
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 
    [root@LM zones]# firewall-cmd --list-all
    You're performing an operation over default zone ('myzone'),
    but your connections/interfaces are in zone 'public' (see --get-active-zones)
    You most likely need to use --zone=public option.

    myzone
      target: default
      icmp-block-inversion: no
      interfaces: 
      sources: 
      services: 
      ports: 123/udp
      protocols: 
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 

     

     

    실제로 reload 수행 후 NTP 연동하고 있던 클라이언트측에서 확인해보니 점점 reach 값이 떨어진 뒤 마지막엔 NTP 연동이 끊어진 것을 확인할 수 있습니다.

     

     

    6. 원복 방법

    새로운 zone을 추가하여 적용했었기 때문에 원복 방법은 간단합니다.

    '/etc/firewalld/zones' 에 위치한 'myzone.xml' 파일 대신 초기 설정 파일인 'public.xml' 파일을 Default Zone 으로 변경해주시면 됩니다.

     

    변경하는 방법은 아래와 같습니다.

    • Default Zone 변경 (myzone -> public)
    vi /etc/firewalld/firewalld.conf

     

    • 파일을 수정한 후 적용
    firewall-cmd --reload

     

     

     

    마무리 정리

    CentOS7 / RHEL7.X 버전에서 제공하는 Firewalld 설정은 서버 보안을 강화하고 악의적인 액세스로부터 시스템을 보호하는 데 중요한 역할을 합니다. 특정 서비스, 포트의 액세스 허용/차단 정책을 설정하는 방법을 알아보았습니다.

    보안적인 측면을 고려할 때 상당히 유용하게 사용될 수 있는 기능으로 시스템 운영에 상당히 필요한 지식이라 생각됩니다.

     

    728x90
    반응형