열렬히.뛰기

born2beroot - UFW 설정

école 42 > born2beroot > born2beroot - UFW 설정

UFW란?

방화벽이란?

미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템. 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크(ex. 인터넷) 간의 장벽을 구성함

UFW의 개념

  • Uncomplicated Firewall
  • 데비안 계열 및 다양한 리눅스 환경에서 작동되는 사용하기 쉬운 방화벽 관리 프로그램
  • 방화벽은 netfilter를 사용하여 filtering을 수행하는데, 이 필터들 중 리눅스에서 가장 많이 사용하는 것이 iptable.
  • 그러나 이 기본 모듈 소프트웨어만으로는 절차상 번거로운 면이 있어 iptable의 작업을 간편화해준 것이 UFW다.

UFW 설정

  1. sudo 모드로 들어간다.
bash
su - 
  1. ufw를 설치한다.
bash
apt-get install ufw -y
  • apt-get 명령어에 -y 옵션을 사용하면, 사용자에게 패키지를 설치하거나 업그레이드하기 전에 "yes/no"와 같은 대화형 메시지를 보여주지 않고 자동으로 "yes"를 입력.
  1. ufw의 상태를 확인한다. 만약 그 값이 inactive면 enable(활성화)한다.
bash
ufw status verbose 
ufw enable
  • 성공시 Firewall is active and enabled on system startup이라고 나온다.
  1. 포트 설정

이 상태에서 ufw status verbose를 한번 더 쳐보자. 아마 이렇게 나올 것이다.

status  : active
Logging : on (low)
Default : deny(incoming), allow(outgoing), disabled(routed)
New profiles : skip

각각의 의미는 다음과 같다.

  • "Logging: on (low)"는 로깅이 활성화되어 있고, 로그 레벨이 낮은 수준으로 설정되어 있다는 것을 의미합니다. 로그 레벨이 낮은 경우, 방화벽의 로깅 정보가 적게 기록됩니다. 로그 레벨은 0부터 7까지 지정할 수 있으며, 숫자가 작을수록 로그 정보가 상세하게 기록됩니다.
  • "deny (incoming)": 인바운드 연결에 대해 기본적으로 차단하는 것을 의미합니다. 이는 외부에서 내부로 들어오는 연결을 차단하겠다는 것을 의미합니다. 이후, 명시적으로 허용하는 규칙을 추가해야 해당 포트로의 인바운드 연결이 가능합니다.
  • "allow (outgoing)": 아웃바운드 연결에 대해 기본적으로 허용하는 것을 의미합니다. 이는 내부에서 외부로 나가는 연결은 자유롭게 가능하다는 것을 의미합니다.
  • "disabled (routed)": 라우팅 기능에 대해서는 방화벽이 비활성화 되어있다는 것을 의미합니다. 이는 패킷을 중계하는 기능을 말하며, 기본적으로 이 기능에 대해서는 차단하는 것이 일반적입니다.
  • "New profiles: skip"은 ufw가 현재 사용 가능한 프로필에서 변경 사항이 없음을 나타냅니다. 이는 ufw가 현재 설정된 프로필을 그대로 유지하고 있다는 것을 의미합니다.

기본적으로 모든 incoming을 deny로 바꾼뒤, 포트 4242만 허용하게 만들어준다.

그리고 다시 상태를 살펴보자.

bash
ufw allow 4242
ufw status verbose

다음과 같이 나와있을 것이다.

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
4242                       ALLOW IN    Anywhere                  
4242  (v6)                 ALLOW IN    Anywhere                  

이외 명령어

  • sudo ufw status numbered

    열어둔 포트의 index state를 확인할 수 있음

  • sudo ufw deny [port index]

    열어둔 포트의 index number를 넣어 다시 deny 상태로 바꿀 수 있다.

bash
ufw deny 8080