본문 바로가기
쿤즈 Server/Linux

[Linux] CentOS 8 Stream 방화벽 firewall 설정

by :)Koon 2021. 7. 12.

CentOS 7부터는 방화벽의 기본 설정은 iptables가 아닌 firewall 데몬으로 사용하고 있습니다. 그래서 CentOS의 버전이 올라가면서 iptables 정책만을 사용하다가 firewall이라는 새로운 데몬을 알아둬야 합니다.

오늘은 CentOS 8 Stream에서 firewall 데몬 사용 방법에 대해서 알아보겠습니다.


방화벽 명령어 firewall-cmd

firewall 데몬이 우선 실행되고 있는지를 판단하기 위해서 systemctl 명령어를 이용해서 확인해 보도록 합니다.

# systemctl status firewalld

지금과 같이 active (running) 상태라면 현재 데몬이 실행 중인 것입니다. 그럼 먼저 firewall-cmd 명령을 이용해서 상태를 확인해 보도록 하겠습니다.


방화벽 실행 확인 state

방화벽이 실행되고 있음을 확인하는 명령어입니다.

# firewall-cmd --state

위 명령어를 실행하면 결과는 runing 혹은 not running으로 나옵니다. 


방화벽 존(zone) 목록 출력

방화벽이 실행되고 있다면 어떤 존들이 있는지 존의 목록들을 가져옵니다. 여기서 우리는 기본적으로 public을 세팅할 예정이지만 존 목록들이 무엇인지 알아보겠습니다.

# firewall-cmd --get-zones
# firewall-cmd --get-active-zones

첫 번째 명령어는 사용 가능한 존 목록들을 전부 가져옵니다. 두 번째는 현재 active 된 존 목록들을 가져오고 있습니다. 여기서 public 존에 대한 리스트들을 출력해 보도록 하겠습니다.


방화벽 허용 포트 목록 출력

서비스 포트를 추가하거나 제거해야 실제 방화벽으로부터 포트를 타고 서버 내부의 서비스를 이용할 수 있게 됩니다. 포트를 추가/제거하는 방법에는 명령어를 이용하는 방법과 설정 파일을 이용하는 방법 2가지가 있습니다.

먼저 명령어를 이용하는 방법입니다.

# firewall-cmd --add-service=ftp
# firewall-cmd --remove-service=ftp
# firewall-cmd --add-port=21/tcp
# firewall-cmd --remove-port=21/tcp

기본적으로 firewall-cmd 명령어와 함께 --add-service 혹은 --remove-service를 이용하면 well-known 포트로 이용되고 있는 서비스들의 포트를 추가하거나 제거할 수 있습니다. 하지만 같은 서비스라 하더라도 포트를 변경해서 사용할 수 있기 때문에 port를 직접 추가하기 위해서는 -add-port 혹은 --remove-port를 사용할 수 있습니다.

 

단, 명령어를 이용해서 방화벽 작업을 진행하고 시스템 재부팅 이후에도 지속적으로 적용하기 위해서는 --permanent 옵션이 필요합니다.

# firewall-cmd --add-service=snmp --permanent

 

다음은 설정 파일을 이용하는 방법입니다. 설정 파일은 아래 경로에 위치하고 있습니다.

# vi /etc/firewalld/zones/public.xml

파일을 vi 편집기를 통해서 오픈하면 내용들을 확인할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. 
  You do not trust the other computers on networks to not harm your computer. 
  Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="cockpit"/>
</zone>

이곳에 보면 service가 기본적으로 추가되어 있는 것을 볼 수 있습니다. 여기서 서비스 혹은 포트를 추가할 수 있습니다.

<service name="ftp" />
<port port="21" protocol="tcp"/>

위와 같이 추가해서 저장하시면 됩니다.


설정 후 재시작

방화벽 수정을 하고 재시작을 해야 정상적으로 적용할 수 있습니다. 재시작 명령어는 다음과 같습니다.

# firewall-cmd --reload

재시작의 결과로 정상이라면 success 메시지가 나타납니다.


이번 포스팅에서는 CentOS에서 사용하는 firewall 방화벽 데몬을 설정하는 방법을 알아보았습니다. 방화벽은 서비스 시에 매우 중요한 부분이기 때문에 필히 사용하는 방법을 알아두시면 좋습니다. 도움이 되셨으면 합니다. 이상입니다.

댓글