IT 기술 문서


2025.02.17 16:10

Windows 방화벽 & Linux iptables/firewalld 설정 및 활용법

  • it33 25일 전 2025.02.17 16:10
  • 40
    0

alt text

Windows & Linux 방화벽 개요

Windows와 Linux 시스템에서 보안을 강화하기 위해 방화벽을 설정하는 것은 필수적입니다. Windows는 Windows Defender 방화벽을 기본으로 제공하며, Linux에서는 iptablesfirewalld를 활용하여 네트워크 보안을 강화할 수 있습니다. 이번 포스팅에서는 Windows PowerShell을 활용한 방화벽 설정 및 Linux iptables/firewalld 활용법을 정리해 보겠습니다.


1. Windows Defender 방화벽 설정 (PowerShell)

Windows에서는 GUI를 통해 방화벽을 설정할 수도 있지만, PowerShell을 사용하면 보다 효율적으로 관리할 수 있습니다.

① 방화벽 상태 확인

# 방화벽 현재 상태 확인
Get-NetFirewallProfile

② 방화벽 활성화 및 비활성화

# 모든 방화벽 프로파일 활성화
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

# 모든 방화벽 프로파일 비활성화
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

③ 특정 포트 허용 (예: 80번 포트 허용)

New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow

④ 특정 IP 차단 (예: 192.168.1.100 차단)

New-NetFirewallRule -DisplayName "Block IP" -Direction Inbound -RemoteAddress 192.168.1.100 -Action Block

⑤ 방화벽 규칙 삭제

Remove-NetFirewallRule -DisplayName "Allow HTTP"

2. Linux 방화벽 설정 (iptables)

Linux에서는 방화벽을 설정할 때 iptables를 주로 사용합니다.

① 현재 방화벽 규칙 확인

sudo iptables -L -v -n

② 특정 포트 열기 (예: 80번 포트 허용)

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

③ 특정 IP 차단 (예: 192.168.1.100 차단)

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

④ 특정 포트 차단 (예: 22번 포트 차단)

sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

⑤ 변경 사항 저장

sudo iptables-save | sudo tee /etc/iptables/rules.v4

3. Linux 방화벽 설정 (firewalld)

firewalld는 최신 Linux 배포판에서 iptables를 대체하여 제공되는 동적 방화벽 관리 도구입니다.

① firewalld 서비스 상태 확인

sudo systemctl status firewalld

② 특정 포트 허용 (예: 80번 포트)

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

③ 특정 IP 차단 (예: 192.168.1.100 차단)

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
sudo firewall-cmd --reload

④ 방화벽 규칙 삭제

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

4. Windows PowerShell vs. Linux iptables/firewalld 비교

기능

Windows PowerShell (Defender)

Linux iptables

Linux firewalld

방화벽 상태 확인

Get-NetFirewallProfile

iptables -L

firewall-cmd --list-all

포트 허용

New-NetFirewallRule

iptables -A INPUT

firewall-cmd --add-port

특정 IP 차단

New-NetFirewallRule -RemoteAddress

iptables -A INPUT -s

firewall-cmd --add-rich-rule

설정 저장 방법

자동 저장

iptables-save

firewall-cmd --reload

인터페이스

GUI & CLI 지원

CLI 전용

CLI & GUI 지원


5. 실무 활용 사례

① 웹 서버 보호 (80, 443 포트만 허용)

Windows (PowerShell):

New-NetFirewallRule -DisplayName "Allow Web Traffic" -Direction Inbound -LocalPort 80,443 -Protocol TCP -Action Allow

Linux (iptables):

sudo iptables -A INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT

Linux (firewalld):

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

② SSH 접속 보안 강화 (22번 포트 허용 후 특정 IP만 접속 가능)

Windows (PowerShell):

New-NetFirewallRule -DisplayName "Allow SSH from Trusted IP" -Direction Inbound -LocalPort 22 -Protocol TCP -RemoteAddress 192.168.1.10 -Action Allow

Linux (iptables):

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.10 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Linux (firewalld):

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp accept'
sudo firewall-cmd --reload

방화벽을 활용한 보안 최적화

PowerShell과 Linux의 iptables/firewalld를 활용하면 서버 및 네트워크 보안을 강화할 수 있습니다.

각 운영체제에 맞는 방법을 활용하여 효율적으로 방화벽을 설정하세요!

  • 공유링크 복사