Miklix

Ubuntu 서버에 방화벽을 설정하는 방법

게시됨: 2025년 2월 15일 오후 9시 33분 58초 UTC

이 문서에서는 ufw를 사용하여 GNU/Linux에 방화벽을 설정하는 방법에 대한 몇 가지 예를 설명합니다. ufw는 Uncomplicated FireWall의 줄임말입니다. 이름에서 알 수 있듯이, 필요 이상으로 많은 포트를 열어 두지 않도록 하는 매우 쉬운 방법입니다.


이 페이지는 가능한 한 많은 사람이 이용할 수 있도록 영어에서 기계 번역되었습니다. 안타깝게도 기계 번역은 아직 완성된 기술이 아니므로 오류가 발생할 수 있습니다. 원하시는 경우 여기에서 영어 원문을 보실 수 있습니다:

How to Set Up a Firewall on Ubuntu Server

이 게시물의 정보는 Ubuntu Server 14.04 x64를 기반으로 합니다. 다른 버전에서는 유효할 수도 있고 그렇지 않을 수도 있습니다. (업데이트: 이 게시물의 정보는 기본적으로 Ubuntu Server 24.04에서도 유효하고 작동한다는 것을 확인할 수 있지만, 중간 10년 동안 ufw는 일반적인 서버 애플리케이션에 대한 프로필을 갖게 되어 다소 "스마트"해졌습니다(예: 포트 80과 443을 별도로 활성화하는 대신 "Nginx 전체"를 활성화할 수 있음) 그리고 새로운 규칙을 적용하기 위해 전체 방화벽을 비활성화/활성화하는 것은 더 이상 필요하지 않습니다)

제가 처음 GNU/Linux(Ubuntu) 서버를 시작했을 때 방화벽을 설정하려면 iptables에 대한 잠재적으로 복잡한 구성 파일을 수동으로 만들고 유지 관리해야 했습니다. 하지만 최근에 ufw를 발견했는데, 이는 Uncomplicated Firewall의 약자입니다. 정말 그렇습니다 :-)

내가 설치한 Ubuntu Server 14.04에는 이미 ufw가 설치되어 있었지만, 그렇지 않은 경우 저장소에서 간단히 설치하면 됩니다.

sudo apt-get install ufw

UFW는 실제로 iptables 구성을 간소화하는 도구일 뿐입니다. 내부적으로는 여전히 iptables와 Linux 커널 방화벽이 필터링을 수행하므로 ufw는 이것들보다 덜 안전하거나 더 안전하지 않습니다. 그러나 ufw는 방화벽을 올바르게 구성하는 것을 훨씬 더 쉽게 만들기 때문에 인적 오류의 위험을 줄일 수 있으며 따라서 경험이 부족한 관리자에게는 더 안전할 수 있습니다.

서버가 IPv6와 IPv4로 구성된 경우 UFW에서도 이것이 활성화되어 있는지 확인하십시오. /etc/default/ufw 파일을 편집하고 IPV6=yes 라는 줄을 찾으십시오. 내 설치에서는 이미 있었지만 그렇지 않거나 no라고 표시되면 편집해야 합니다.

그런 다음 명령 프롬프트를 사용하여 열고 싶은 포트를 활성화합니다. ssh를 통해 서버에 연결되어 있는 경우, ssh도 허용해야 합니다. 그렇지 않으면 연결이 끊어지고 서버를 활성화할 때 서버에서 잠길 수 있습니다. 서버에 물리적으로 접근할 수 있는지 여부에 따라 다소 불편할 수 있습니다 ;-)

예를 들어, 표준 포트 22에서 ssh를 사용하고 암호화되지 않은 연결(포트 80의 HTTP)과 암호화된 연결(포트 443의 HTTPS)을 모두 지원하는 웹 서버를 구성하는 경우 다음 명령을 실행하여 ufw를 구성합니다.

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

더 많은 규칙이 필요하면 위와 같이 추가하면 됩니다.

고정 IP 주소가 있고 한 위치에서만 ssh를 통해 연결해야 하는 경우 다음과 같이 ssh 연결을 단일 출처 주소로 제한할 수도 있습니다.

sudo ufw allow from 192.168.0.1 to any port 22

물론, 대신 자신의 IP 주소를 입력하세요.

완료되면 다음을 입력하여 ufw를 활성화합니다.

sudo ufw enable

완료되었습니다! 방화벽이 실행 중이며 서버를 재부팅하면 자동으로 시작됩니다 :-)

ufw 구성을 변경한 경우 다음과 같이 비활성화했다가 다시 활성화해야 적용될 수 있습니다.

sudo ufw disable
sudo ufw enable

현재 구성을 보려면 다음을 입력하세요.

sudo ufw status

ufw가 활성화되어 있지 않으면 단순히 "비활성" 메시지가 표시되고, 그렇지 않으면 현재 정의된 규칙이 나열됩니다.

블루스카이에서 공유하기페이스북에서 공유하기LinkedIn에서 공유하기Tumblr에 공유하기X에서 공유LinkedIn에서 공유하기Pinterest에 고정

미켈 방 크리스텐슨

저자 소개

미켈 방 크리스텐슨
남자 이름은 miklix.com의 창시자이자 소유자입니다. 전문 컴퓨터 프로그래머/소프트웨어 개발자로 20년 이상 경력을 쌓았으며 현재 유럽의 대형 IT 기업에서 정규직으로 근무하고 있습니다. 블로그를 운영하지 않을 때는 여가 시간을 다양한 관심사, 취미, 활동으로 보내며 이 웹사이트에서 다루는 다양한 주제에 어느 정도 반영되어 있습니다.