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
다음과 같은 커맨드를 입력했을때
systemctl start firewalld
이런 반응이 나오면
**123firewalld.service: Start operation timed out.
Terminating. firewalld.service: Failed with result 'timeout'.
systemd: Failed to start firewalld - dynamic firewall daemon.**
다음과 같은 커멘드를 입력하면 된다!
**1systemctl stop firewalld;pkill -f firewalld;systemctl start firewalld**