리눅스 웹 애플리케이션 방화벽 설정

리눅스 서버에서 웹 애플리케이션을 운영하려면 보안을 강화하기 위해 방화벽을 설정해야 합니다. 방화벽은 외부에서의 불법적인 접근을 차단하고, 웹 애플리케이션에 대한 보호를 제공하는 중요한 요소입니다. 이번 글에서는 리눅스 서버에 웹 애플리케이션 방화벽을 설정하는 방법을 소개하겠습니다.

1. iptables 사용하기

리눅스에서 가장 일반적으로 사용되는 방화벽 도구는 iptables 입니다. iptables를 사용하여 방화벽을 구성하려면 다음 명령을 사용합니다.

sudo iptables [옵션] [매개변수]

2. 방화벽 설정 기본 개념

2.1. 입력, 출력, 포워딩 체인

iptables는 다음과 같은 3가지 체인에 대한 규칙을 관리합니다.

2.2. 허용, 거부 규칙

방화벽에는 패킷을 허용하거나 거부하는 규칙을 지정할 수 있습니다. 일반적으로 웹 애플리케이션을 운영할 때는 다음과 같은 규칙을 고려해야 합니다.

3. 방화벽 구성하기

3.1. HTTP/HTTPS 요청 허용

HTTP(포트 80)와 HTTPS(포트 443) 요청을 허용하기 위해 다음 명령을 실행합니다.

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

sudo iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

3.2. SSH 접근 허용

SSH를 통한 원격 접속을 허용하려면 다음 명령을 실행합니다.

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

3.3. 기타 설정

웹 애플리케이션 운영에 따라 추가적인 설정이 필요할 수 있습니다. 예를 들어, 특정 IP 주소나 서브넷으로부터의 접근을 허용하거나 거부할 수 있습니다. 이 경우 -s 옵션을 사용하여 소스 IP를 지정합니다.

# 192.168.0.100 IP 주소로부터의 접근을 허용
sudo iptables -A INPUT -p tcp -s 192.168.0.100 -j ACCEPT

# 192.168.0.0/24 서브넷으로부터의 접근을 거부
sudo iptables -A INPUT -p tcp -s 192.168.0.0/24 -j DROP

4. 방화벽 상태 확인

설정한 방화벽 규칙을 확인하려면 다음 명령을 사용합니다.

sudo iptables -L

5. 방화벽 설정 영구 저장

iptables로 설정한 방화벽 규칙은 시스템 재시작 시 초기화됩니다. 따라서 영구적으로 설정을 유지하려면 설정을 저장해야 합니다.

5.1. CentOS/RHEL

sudo service iptables save

5.2. Ubuntu/Debian

sudo apt-get install iptables-persistent
sudo service netfilter-persistent save

마무리

이제 리눅스 웹 애플리케이션을 운영하기 위한 방화벽 설정을 할 수 있는 기본적인 개념과 명령어를 알아보았습니다. 특정 웹 애플리케이션에 따라 추가적인 설정이 필요할 수 있으니, 실제 환경에 맞게 설정해야 합니다. 방화벽 설정을 통해 웹 애플리케이션의 보안을 강화하고 외부 공격으로부터 안전하게 유지할 수 있습니다.