Firefish를 설치해보자 (비전문가 대상)

안복잡한 방화벽 ufw 설치하기

구매한 도메인과 빌린 컴퓨터의 IP 주소를 연결해주기 전에, 방화벽을 먼저 설치해줍시다.

방화벽: 지정된 통로로만 다니렴

빌린 컴퓨터의 보안 수준을 높기기 위해 방화벽을 설치해줄 겁니다.

방화벽은 현실의 방화벽에서 따온 말이 맞는데요, 특정 포트만 접속을 허용하거나, 너무 많은 횟수의 접속을 막아서 암호를 막 대입해보는(*무작위대입*) 것들을 막아주는 역할을 합니다.

그러니까 다른 말로 하자면, 내가 지정해준 길로만 다니라는 얘기입니다. 그 외의 길은 다 막겠다는거죠. ㅎㅎ

ufw: 안 복잡한 방화벽 (uncomplicated firewall)

이번에는 방화벽 중에서도 ufw를 설치하고 설정해볼겁니다.

ufw는 이름 그대로, 사용 방법이 매우 쉽습니다. 간단하게 설정해놓을 때에 유용하죠. 그 외에는 자동으로 막아준다던가 하는 fail2ban 같은 고급 방화벽도 있지만 이번에는 설치하지 않을거에요.

패키지 매니저: 프로그램을 설치할 때에는 apt-get 혹은 apt

그런데 잠깐, 우분투 리눅스에 프로그램을 설치하려면 어떻게 해야하나요?

우분투를 대부분의 리눅스 변종(*배포판*)에는 명령어로 프로그램을 설치할 수 있는 방법을 제공합니다. 프로그램이 모여있는 서버가 있고, 거기에서 받아서 설치까지 해주는거죠.

  • 명령어 apt = 패키지 관리자: 프로그램을 다운받아서 설치하거나 제거하는 등의 관리작업을 해줍니다.
  • 패키지 저장소(repo): 이런저런 프로그램들이 저장되어 있는 외부 서버입니다. 여기에서 다운받게 됩니다.

물론 관리자 권한이 필요합니다.

# 설치
sudo apt install 프로그램명

# 검색
apt search 프로그램명

# 이게 설치되어 있던가...?
apt show 프로그램명

# 제거
sudo apt remove 프로그램명

# 설정까지 날려버리기
sudo apt purge 프로그램명

ufw 설치

sudo apt install ufw 를 실행해야겠죠?

실행 예시

ch@my-firefish-instance:~$ sudo apt install ufw
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ufw is already the newest version (0.36.1-4build1).
ufw set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
ch@my-firefish-instance:~$

됐네요.

ufw 설정

ufw 진짜 쉽습니다.

ssh 접속에 사용하는 22번 포트는 제한을 걸고, 홈페이지 / SNS 역할을 해줄 80 & 443 포트는 열어줍니다.

  • sudo ufw limit 22 -> 원격 접속에 사용 (여러 번 실패하면 접속이 막힙니다!)
  • sudo ufw allow 80 -> firefish 홈페이지 운영에 필요 (비보안 연결)
  • sudo ufw allow 443 -> firefish 홈페이지 운영에 필요 (보안 연결)

혹시 아예 접속을 막고 싶으면, deny 로 설정하면 됩니다. (sudo ufw deny 포트번호)

실행 예시

ch@my-firefish-instance:~$ sudo ufw limit 22
Rules updated
Rules updated (v6)
ch@my-firefish-instance:~$ sudo ufw allow 80
Rules updated
Rules updated (v6)
ch@my-firefish-instance:~$ sudo ufw allow 443
Rules updated
Rules updated (v6)
ch@my-firefish-instance:~$

ufw 활성화

이제 설정도 되었으니 방화벽을 활성화합시다.

<!> 방화벽을 활성화하기 전에 22 포트를 허용(allow) 혹은 제한(limit)으로 설정하지 않았다면, 접속이 끊기거나 다시는 내 서버에 접속할 수 없을수도 있습니다. 위에서 설명한 규칙을 추가했는지 잘 따라했는지 다시한번 확인해주세요.

sudo ufw enable
# "접속이 끊길 수 있습니다. 계속 하시겠습니까?" 에는 y 를 넣으세요.

# 이게 됐으면, 다음에는
sudo ufw status
# 로 상태를 확인해봅시다.

실행 예시

ch@my-firefish-instance:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
ch@my-firefish-instance:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         LIMIT       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
22 (v6)                    LIMIT       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

ch@my-firefish-instance:~$

이 창을 닫지 말고, 새 창을 열어서 빌린 서버 컴퓨터에 접속할 수 있는지 다시 확인해봅시다. 접속이 안 되면 어딘가 설정이 잘못된 겁니다.

스포일러: "오라클 클라우드"여서 다음 글에서 (제가) 고생하게 됩니다.

댓글

댓글 본문
버전 관리
sftblw
현재 버전
선택 버전
graphittie 자세히 보기