방화벽이 없으면 네트워크 트래픽에 규칙이나 제한이 없으므로 여러 가지 부정적인 결과가 발생할 수 있습니다. Linux 시스템에는 기본 방화벽 구성 도구인 Uncomplicated Firewall (UFW)가 함께 제공됩니다. 하지만 UFW 방화벽을 어떻게 설정해야 할까요? 편안하게 앉아서 이 튜토리얼을 따라해보세요!
이 튜토리얼에서는 UFW를 구성하고 Linux 시스템에 방화벽을 설정하여 네트워크를 보호하고 악의적인 행위를 방지하는 방법을 배우게 될 것입니다.
준비되셨나요? 시작하려면 계속 읽어보세요!
사전 준비 사항
이 튜토리얼은 실습을 위한 것입니다. 따라하려면 다음 사항이 준비되어 있어야 합니다:
- Ubuntu 머신 – 이 튜토리얼은 Ubuntu 20.04 LTS를 사용하지만 다른 Linux 배포판도 사용할 수 있습니다.
- 루트 사용 권한이 있는 머신입니다.
UFW 설치 및 IPv6 연결 활성화하기
UFW는 Ubuntu 시스템에 함께 제공되지만 기본적으로 설치되어 있지 않습니다. 먼저 apt
패키지 관리자를 사용하여 UFW를 설치하고 IPv6 연결을 허용하도록 구성하세요.
1. 터미널을 열고 아래 명령어인 apt update
을 실행하여 로컬 패키지 인덱스를 업데이트합니다. 이 명령은 업데이트 중에 사용자 개입을 최소화하기 위해 모든 프롬프트(-y
)를 받아들입니다.

2. 다음으로, 아래 명령어를 실행하여 시스템에 UFW(install uwf
)를 설치합니다. 설치 중에 모든 프롬프트(-y
)를 받아들입니다.

3. 좋아하는 텍스트 편집기로 UFW 구성 파일(/etc/default/ufw)을 엽니다. UFW는 IPv6를 지원하지만 방화벽이 IPv6 연결을 수락하도록 구성되어 있는지 확인해야 합니다.
IPv4만 사용하면 여전히 IPv6 공격에 취약합니다.
4. IPV6 변수로 스크롤을 내리고 아래와 같이 값을 yes로 설정한 다음 변경 사항을 저장하고 편집기를 종료합니다.

5. 마지막으로 아래 명령어를 실행하여 UFW를 비활성화하고 다시 활성화합니다. 이 명령은 변경 사항이 적용되도록 UFW 서비스를 재시작합니다.
명령이 완료되면 방화벽은 이제 IPv4와 IPv6 방화벽 규칙 세트를 작성할 수 있습니다.
방화벽 규칙에 대한 기본 정책 설정
UFW를 시작하는 경우, 규칙이 정의되지 않은 체인에 대한 기본 정책을 설정하는 것이 좋습니다.
UFW를 설정하여 모든 들어오는 연결을 거부하고 모든 나가는 연결을 허용합니다. 이렇게 하면 외부에서 기기에 연결하려는 모든 사용자가 거부되지만 여전히 웹 사이트나 서버에 자유롭게 연결할 수 있습니다.
아래의 ufw
명령어를 실행하여 기본적으로 모든
들어오는
연결을 차단
하십시오.

이제 다음 명령어를 실행하여 기본적으로 모든
나가는
연결을 허용
하십시오.

UFW 방화벽에서 SSH 연결 허용하기
UFW 방화벽에 기본 정책을 설정하여 모든 들어오는 트래픽을 차단했습니다. “허용-거부” 규칙은 일반 사용자에게 좋은 설정입니다. 그러나 서버를 실행중이라면 어떻게 해야할까요? 특정 트래픽을 허용해야합니다. UFW 방화벽에서 SSH 연결을 허용하면 특정 트래픽을 허용할 수 있습니다.
포트 22에서 들어오는 SSH 연결을 허용하는 SSH 서버를 설정할 것입니다. 다른 포트가 아닌 포트 22를 사용하는 이유는 Unix 계열 시스템에서 SSH 데몬이 기본적으로 포트 22에서 수신 대기하기 때문에 기본 SSH 포트를 사용하는 것이 편리합니다.
1. 아래 명령어를 실행하여 시스템에 OpenSSH 서버를 설치하고(install openssh-server
) OpenSSH 서버를 시작하세요(start ssh
).
2. 이제 아래 명령어를 실행하여 들어오는 SSH 연결을 허용하세요. UFW가 SSH 포트를 알고 있기 때문에 포트 22를 지정하지 않아도 됩니다.

/etc/services 파일은 시스템에서 사용 가능한 모든 서비스 목록을 포함하고 있습니다. 텍스트 편집기에서 파일을 열고, ssh로 스크롤 다운하여 포트 번호 (22)가 서비스 설명의 일부로 표시되는지 확인하십시오.

그러나 SSH를 허용하기 위해 포트 번호 (22
)를 지정하는 것이 좋을 수도 있습니다. 그렇다면 대신 다음 명령을 실행하십시오.
3. 이제 UFW를 활성화하기 위해 아래 명령을 실행하십시오.
확인 메시지에 Y를 입력하고 Enter를 눌러 명령을 계속 실행하십시오. UFW는 이제 시스템에서 패킷을 필터링하기 시작합니다.

4. 마지막으로, UFW 방화벽의 상태를 확인하려면 아래 명령 중 하나를 실행하십시오.
- Status: active – 현재 방화벽이 실행 중임을 나타냅니다.
- Logging: on (low) – UFW가 방화벽을 통과하는 모든 패킷을 기록하고 있음을 나타냅니다.
- 기본 설정: 차단 (수신), 허용 (발신), 비활성화 (라우팅) – 기본 정책은 모든 수신 연결을 차단하고 모든 발신 연결을 허용하는 것을 나타냅니다.
- 새 프로필: 건너뛰기 – 방화벽은 현재 기본 규칙 세트를 사용하고 있음을 나타냅니다.

만약 numbered
옵션을 사용하여 명령을 실행하면 아래 출력을 볼 수 있습니다. 번호가 매겨진 규칙 목록과 해당 허용 또는 차단 상태를 볼 수 있습니다.

HTTP와 HTTPS 연결 허용하기
이 시점에서 UFW 방화벽에서 SSH 연결만 허용했지만, 이는 서버의 기능을 제한합니다. HTTP 또는 HTTPS와 같은 다른 유형의 연결을 허용하고 UFW 방화벽에 더 많은 규칙을 추가하세요.
아래 명령 중 하나를 실행하여 수신 HTTP 연결을 허용합니다.

이제 아래 명령 중 하나를 실행하여 수신 HTTPS 연결을 허용합니다.

특정 포트 범위 및 IP 주소에서의 연결 허용
일부 응용 프로그램은 서비스를 제공하기 위해 여러 포트를 사용하며, 여는 포트 범위가 있거나 특정 IP 주소에서의 연결을 허용해야 할 수도 있습니다. 이 경우, UFW 방화벽에 더 많은 규칙을 추가하세요.
아래 명령을 실행하여 5001에서 5009 포트로의 들어오는 연결을 허용하십시오. 규칙이 적용되는 포트 범위 뒤에 프로토콜(tcp
또는 udp
)을 항상 지정해야합니다. 모든 포트가 두 프로토콜 모두에 의해 사용되지 않기 때문입니다.
예를 들어, 일반적으로 사용되는 TCP 포트는 80(HTTP) 및 443(HTTPS)입니다. 그러나 일반적인 UDP 포트에는 53(DNS) 및 67/68(DHCP)이 포함됩니다.

특정 IP 주소에서 SSH 연결을 허용하려면 대신 아래 명령을 실행하십시오. 이 명령은 192.168.1.2
IP 주소에서만 SSH 연결(포트 22
)을 허용합니다.

특정 네트워크 인터페이스에서 트래픽 허용하기
UFW는 eth0가 첫 번째 이더넷 인터페이스이고 wlan0가 첫 번째 Wi-Fi 인터페이스와 같이 특정 네트워크 인터페이스에서만 트래픽을 허용할 수 있습니다.
아래 명령 중 하나를 실행하여 eth0
및 wlan0
인터페이스에서만 HTTP 연결을 허용하십시오.

UFW 방화벽 규칙 삭제
어쩌면 일부 UFW 방화벽 규칙은 더 이상 필요하지 않을 수 있습니다. 그 경우에는 UFW에서 일부 규칙을 제거하고 싶을 수 있습니다. 그러나 먼저 삭제할 규칙의 번호 또는 이름을 알아야합니다.
1. UFW에 추가 된 규칙의 번호 목록을 얻으려면 아래 명령을 실행하십시오.
아래와 같은 출력에서 규칙의 번호 또는 이름을 참고하십시오.

2. 다음으로 아래 명령을 실행하여 5001:5010/tcp
포트 범위인 규칙 번호 4
를 삭제
하십시오.

3. 실제 이름과 허용
상태로 규칙을 삭제
하려면 아래 명령을 실행하십시오. 이 예제에서는 다음 명령을 실행하여 http
규칙을 삭제합니다.

4. 다음으로 아래 명령을 실행하여 허용
상태와 함께 포트 번호 (443
)로 규칙을 삭제
하십시오.

5. 마지막으로, 모든 규칙을 나열하기 위해 1단계에서와 같이 다음 명령을 다시 실행하십시오.
아래와 같이, 5001:5010/tcp
포트 범위, http
및 443
포트에 대한 규칙이 삭제되었습니다.

UFW 방화벽 재설정
큰 규칙 세트를 구성 한 후와 같이 UFW를 기본 설정으로 재설정해야하는 경우가 있을 수 있습니다. 업데이트로 인해 구성이 변경되어 UFW를 다시 구성하고 처음부터 다시 시작해야 할 수도 있습니다.
아래의 ufw reset
명령을 실행하여 모든 방화벽 규칙을 기본 설정으로 재설정하십시오. 이 명령은 UFW를 비활성화하고 현재 방화벽 규칙을 모두 삭제합니다.
계속하려면 ‘Y’를 입력하고 엔터 키를 누르세요.

리셋이 완료되면 UFW가 완전히 비활성화되고, 기본 정책도 사라집니다.
다음 명령을 실행하여 UFW를 다시 활성화하고 방화벽 규칙을 처음부터 구성하세요.
UFW를 더 이상 사용하지 않으려면 다시 활성화할 필요가 없습니다. 아래 명령을 실행하여 UFW가 비활성화되었는지 확인하세요.

결론
이 튜토리얼을 통해 UFW를 사용할 때 방화벽 설정이 너무 어렵지 않다는 것을 알게 되었습니다. 이제 Ubuntu에서 UFW를 사용하여 자체 규칙을 설정하고 구현하는 방법에 대해 잘 이해하고 있어야 합니다.
이제 새로운 지식을 바탕으로 리눅스 머신에서 UFW와 도커 보안에 대해 더 배워보세요.