firewall(방화벽) 설정

1. firewall(방화벽) 이해 및 업데이트

firewalld은 centos 운영체제에서 기본으로 제공되는 방화벽 관리 도구다. firewalld는 IPv4 및 IPv6 네트워크를 모두 지원하며 프로필 영역에서 정의된 대로 작동하며 신뢰도가 높다.

  • block : 시스템 내에서 시작된 네트워크만 연결하고 그 외의 모든 연결은 거부
  • dmz : 허용된 port의 연결만 허용하며 들어오는 포트에 대한 연결을 제공
  • drop: 들어오는 모든 연결은 차단하며 나가는 네트워크 연결만 허용
  • public: 네트워크 내의 다른 서버나 컴퓨터는 신뢰하지 않으며 필요한 포트와 서비스만 허용
  • trusted: 모든 영역에 대해서 연결 허용
  • home: 로컬 네트워크의 신뢰하는 PC와 연결하며 선택된 TCP/IP 포트만 허용

friewall을 사용해서 트래픽을 허용하거나 차단할 수 있다. Centos 8 에서는 동적인 인터페이스와 함께 사용자 정의 기반의 방화벽이 함께 제공된다.

firewall은 시스템과 외부 소스 사이에 장벽을 형성하여 외부에서 발생한 피해가 확산하여 소중한 내부 데이터를 손상시키지 못하도록 차단한다. 따라서 방화벽은 반드시 사용해야 하며 서비스가 잘 안된다 하여 중지하면 안된다.

1. Centos 8 의 모든 영역 확인
sudo firewall-cmd --get-zones
centos firewall
2. firewall(방화벽) 버전 확인
sudo firewall-cmd --version
centos firewall

firewall(방화벽) 설정

1. firewall(방화벽) 상태 확인
sudo systemctl status firewall
3. firewall(방화벽) 시작
sudo systemctl start firewall
4. firewall(방화벽) 중지
sudo systemctl stop firewall
5. firewall(방화벽) 재시작
sudo systemctl restart firewall
6. firewall(방화벽) 서비스 등록
sudo systemctl enable firewall
7. firewall(방화벽) 서비스 비활성화
sudo systemctl disable firewall
8. firewall(방화벽) 갱신
sudo firewall-cmd --reload
9. firewall(방화벽) 설정 파일
/etc/firewalld/firewalld.conf

firewall 방화벽 port 설정

* firewall(방화벽) 목록 확인
sudo firewall-cmd --list-all
* 사용되는 서비스 확인
sudo firewall-cmd --list-services

OR

sudo firewall-cmd --list-services --zone=public
*centos 8 cockpit 제거(리눅스 관리자 tool – cockpit 활성화)
sudo firewall-cmd --remove-service=cockpit --permanent
* dhcpv6 클라이언트 서비스 제거
sudo firewall-cmd --remove-service=dhcpv6-client --permanent
* firewall(방화벽)에서 지원하는 서비스 목록

port를 직접 지정해도 되지만 서비스 명을 활용해서 운용할 수 있다.

sudo firewall-cmd --get-services
sudo firewall-cmd --get-services | grep [찾을 서비스명 : http or mysql]

서비스의 포트 정보는 아래 링크의 xml 파일을 통해 확인할 수 있다.

sudo ls -l /usr/lib/firewalld/services/
sudo cat /usr/lib/firewalld/services/ssh.xml
* firewall(방화벽) 서비스 및 포트 추가(예 : http port)

다음은 public zone에 http 포트를 영구히 추가하는 명령어다. 뒤에 –permanent를 삭제하고 입력하면 일시적으로 추가되며 재부팅 후 사라진다. 서비스 및 port를 등록하면 reload를 반드시 해준다.

sudo firewall-cmd --zone=public --add-service=http --permanent

OR

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
centos firewall
sudo firewall-cmd --reload
* firewall(방화벽) 서비스 및 포트 삭제(예 : http port)

다음은 public zone에 http 포트를 영구히 삭제하는 명령어다. 뒤에 –permanent를 삭제하고 입력하면 일시적으로 삭제되며 재부팅 후 유지된다. 서비스 및 port를 삭제하면 reload를 반드시 해준다.

sudo firewall-cmd --zone=public --remove-service=http --permanent

OR

sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
centos firewall
sudo firewall-cmd --reload

firewall은 git을 통해 업데이트 할 수 있다. https://firewalld.org/