firewalld 로 port 우주방어하기

김범식·2024년 3월 4일
0

firewalld 란?


Firewalld는 리눅스 시스템의 네트워크 보안을 관리하는 데 사용되는 도구, 이를 통해 사용자는 방화벽 규칙을 정의하고, 네트워크 트래픽을 제어하며, 서비스를 관리할 수 있다. Firewalld는 iptables를 기반으로 하며, 간단한 명령어를 사용하여 방화벽 설정을 관리할 수 있다.

이상한 포트로 악성 사용자가 접속하는 것을 막기위해서는 방확벽 설정이 필수적이라고 한다.이 때 많이 사용하는것이 iptables를 기반으로 하는 firewalld 이란 프로그램이다.

사용할 때 주의할 점과 어떻게 사용하는지 알아보자!




사용법


처음에 start 명령어로 방화벽을 시작히면 ports 설정에 아무것도 없기 때문에 기본적으로 아무것도 막지 않는다.

리눅스 배포판에는 기본적으로 firewalld가 설치되어있다.

sudo systemctl enable firewalld #시스템 부팅시 자동으로 firewalld 활성화
sudo systemctl start firewalld # Firewalld 서비스를 시작
sudo systemctl status firewalld #Firewalld 서비스의 현재 상태확인
sudo systemctl stop firewalld # 방화벽 종료

다음 명령어를 통해 firewalld를 실행해주자

firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2024-03-05 09:30:00 UTC; 2min 30s ago
     Docs: man:firewalld(1)
 Main PID: 12345 (firewalld)
    Tasks: 2 (limit: 32768)
   Memory: 20.0M
   CGroup: /system.slice/firewalld.service
           └─12345 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid

Mar 05 09:30:00 server systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 05 09:30:00 server systemd[1]: Started firewalld - dynamic firewall daemon.

다음과 같은 상태정보가 나오게 된다.




특정 포트 열기


주의!
ssh로 접속 중이라면 반드시 22번 포트를 열어주어야 한다! 안 그러면 튕기기 때문에 주의하자

sudo firewall-cmd --zone=public --add-port=[열고싶은 포트번호]/tcp --permanent #80번포트 열기
sudo firewall-cmd --zone=public --remove-port=[닫고싶은 포트번호]/tcp --permanent ## 80번 포트 닫기
sudo firewall-cmd --reload # firewalld 재시작

난 다음과 같은 포트를 필수로 열어두었다.

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent #http
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent #backend
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent #https
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent #frontend
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent #database
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent #ssh
sudo firewall-cmd --zone=public --add-port=21/tcp --permanent #ftp



혹시 실행이 안되나요?


Problem:

다음과 같은 커맨드를 입력했을때

systemctl start firewalld

이런 반응이 나오면

**123firewalld.service: Start operation timed out. 
Terminating. firewalld.service: Failed with result 'timeout'. 
systemd: Failed to start firewalld - dynamic firewall daemon.**

Solution:

다음과 같은 커멘드를 입력하면 된다!

**1systemctl stop firewalld;pkill -f firewalld;systemctl start firewalld**
profile
frontend developer

0개의 댓글