구매한 도메인과 빌린 컴퓨터의 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:~$
이 창을 닫지 말고, 새 창을 열어서 빌린 서버 컴퓨터에 접속할 수 있는지 다시 확인해봅시다. 접속이 안 되면 어딘가 설정이 잘못된 겁니다.
스포일러: "오라클 클라우드"여서 다음 글에서 (제가) 고생하게 됩니다.