리눅스 서버 방화벽 설정

리눅스 서버에서 방화벽을 설정하는 것은 중요한 보안 관련 작업입니다. 방화벽은 외부에서의 공격을 막아서 서버의 안전성을 높이는 역할을 합니다. 이번 블로그 포스트에서는 리눅스 서버에서 방화벽을 설정하는 방법을 알아보겠습니다.

1. iptables

리눅스 서버에서 가장 일반적으로 사용되는 방화벽 도구는 iptables입니다. iptables는 네트워크 트래픽을 필터링하는 규칙을 관리합니다.

1.1. iptables 설치

일부 리눅스 배포판에는 이미 iptables가 설치되어 있을 수 있지만, 설치되지 않은 경우에는 다음 명령어를 사용하여 설치할 수 있습니다.

sudo apt-get install iptables

1.2. 기본 규칙 설정

리눅스 서버에는 기본적으로 iptables 규칙이 없습니다. 따라서, 방화벽을 설정하기 전에 모든 트래픽을 거부하는 규칙을 만들어야 합니다.

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT DROP

위 명령어를 실행하면 모든 입력, 전달, 출력 트래픽이 거부됩니다.

1.3. 포트 개방

특정 포트를 허용하여 해당 포트로 들어오는 트래픽을 허용할 수 있습니다. 예를 들어, 80번 포트(HTTP)와 22번 포트(SSH)를 허용하려면 다음과 같은 명령어를 사용합니다.

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

위 명령어는 INPUT 체인에 포트 번호를 확인하여 허용하는 규칙을 추가합니다.

1.4. 상태 기반 필터링

iptables는 상태 기반 필터링을 통해 통신을 추적할 수 있는 기능을 제공합니다. 예를 들어, 이미 연결된 세션에 대해서만 트래픽을 허용하는 규칙을 추가할 수 있습니다.

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

위 명령어는 ESTABLISHEDRELATED 상태의 연결에 대해서만 입력 트래픽을 허용합니다.

1.5. 저장 및 적용

iptables로 설정한 규칙은 시스템을 재부팅하면 사라집니다. 따라서, 설정한 규칙을 영구적으로 유지하기 위해 저장 및 적용하는 과정이 필요합니다.

sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6

위 명령어는 현재 설정된 규칙을 파일로 저장합니다.

하는 설명허를 한다.

2. UFW (Uncomplicated Firewall)

iptables는 강력하고 유용한 도구이지만, 구성이 복잡할 수 있습니다. 이에 대한 대안으로 UFW(Uncomplicated Firewall)를 사용할 수 있습니다. UFWiptables를 기반으로 한 간단한 구성 도구입니다.

2.1. UFW 설치

UFW는 일반적으로 이미 리눅스 배포판에 포함되어 있습니다. 따라서, 별도의 설치 과정은 필요하지 않습니다.

2.2. 기본 규칙 설정

UFW를 사용하여 방화벽을 설정하려면 먼저 모든 트래픽을 거부하는 기본 정책을 설정해야 합니다.

sudo ufw default deny incoming
sudo ufw default deny outgoing

위 명령어는 입력 및 출력 트래픽을 모두 거부합니다.

2.3. 포트 개방

UFW를 사용하여 특정 포트를 개방하는 것은 간단합니다. 예를 들어, 80번 포트(HTTP)와 22번 포트(SSH)를 허용하려면 다음과 같은 명령어를 사용합니다.

sudo ufw allow 80/tcp
sudo ufw allow 22/tcp

위 명령어는 각각 80번 포트와 22번 포트의 TCP 트래픽을 허용합니다.

2.4. 상태 기반 필터링

UFWiptables와 마찬가지로 상태 기반 필터링을 지원합니다. 예를 들어, 이미 연결된 세션에 대해서만 트래픽을 허용하는 규칙을 추가할 수 있습니다.

sudo ufw allow from any to any state RELATED,ESTABLISHED

위 명령어는 RELATEDESTABLISHED 상태의 연결에 대해서만 트래픽을 허용합니다.

2.5. 상태 확인

UFW의 상태를 확인하려면 다음 명령어를 사용합니다.

sudo ufw status

위 명령어는 현재 방화벽 정책과 규칙을 보여줍니다.

2.6. 방화벽 활성화

UFW의 기본 설정은 비활성화 상태입니다. 따라서, 방화벽을 활성화하려면 다음 명령어를 사용합니다.

sudo ufw enable

위 명령어는 현재 설정된 규칙을 적용하고 방화벽을 활성화합니다.

결론

리눅스 서버에서 방화벽을 설정하는 것은 보안 상 중요한 작업입니다. 이번 포스트에서는 iptablesUFW를 사용하여 리눅스 서버의 방화벽을 설정하는 방법을 알아보았습니다. 중요한 포트를 개방하고 상태 기반 필터링을 설정하여 서버의 보안을 강화할 수 있습니다.