Linode는 Vultr, 디지털오션(DigitalOcean)과 경쟁하는 VPS 서비스로 경쟁사와 가격대비 스펙이 거의 동일해 파이를 나눠가지는 업체입니다.
Vultr 같은 경우 초보자도 접근하기 쉬운 깔끔한 인터페이스와 VPS 서버 외부의 방화벽 지원, 스냅샷등의 기능을 지원하는데 Linode는 웨상에서 디스크 파티션 구성, 커널 변경, root 패스워드 설정등 타사에 비해 시스템에 깊숙한 곳까지 쉽게 접근해 설정할 수 있어 좀더 엔지니어 지향의 인터페이스를 구현하고 있습니다.
이번 포스트에서는 Linode에 가상 서버를 개설하고 기본적인 보안 설정을 세팅하는 것에 대해서 간단하게 설명하겠습니다.
목차
Linode 가입과 결제
Linode 메인 페이지에서 이메일과 이름, 비밀번호 입력만으로 간단하게 계정이 만들어 집니다. 가입시 작성한 이메일을 확인 후 로그인 하면 끝.
클라우드 서비스의 특성상 ‘사용한 만큼 과금’ 하는 후불제이기 때문에 처음 시작할때 예치금이 필요합니다. Linode에서 제일 저렴한 서비스가 한달 사용료가 $5부터 시작하기 때문에 $5만 먼저 결제한 다음 사용하면 되겠습니다.
Linode에 로그인한 다음 메뉴의 Account – Update Credit Card를 차례대로 들어가 신용카드 정보를 입력합니다.
Account – Make A Payment 메뉴에서 결제할 금액(Amount to Charge)과 카드 뒷면의 CVV를 입력하면 결제 진행이 완료됩니다.
Linode 서버 설치
관리 페이지 상단의 Linodes 를 클릭한 다음 인스턴스 플랜과 로케이션을 지정합니다. 인스턴스는 다운그레이드가 되지 않기 때문에 개인 홈페이지나 블로그를 위해 사용한다면 가장 저렴한 인스턴스부터 시작해 리소스가 부족할 경우 상위 인스턴스로 업그레이드 하는 것이 좋습니다.
로케이션은 특별한 이유가 없다면 우리나라에서 가장 가까운 일본을 선택한 다음 하단의 Add this Linode! 를 클릭해 인스턴스를 생성합니다.
참고로 Linode에서는 ‘서버’ 라는 명칭 대신 ‘Linode’ 라는 명칭을 사용합니다.
인스턴스가 활성화 되면 Linodes 페이지에 생성한 VPS의 IP, 로케이션, 플랜 정보를 확인할 수 있습니다. 맨 오른쪽의 Dashboard를 클릭합니다.
대시보드 메뉴의 Deploy an Image 를 선택합니다.
Image에서 설치할 리눅스 배포판을 선택 후 Root Password 항목에 리눅스 관리자 암호로 사용할 패스워드를 입력한 다음 Deploy 버튼을 클릭합니다.
대시보드에서 Boot 버튼으로 설정한 가상 서버를 부팅합니다.
Linode SSH 접속
설치한 리눅스를 관리하기 위해서 SSH로 접속합니다. 기본적으로 Putty등의 텔넷 프로그램을 사용해 SSH를 접속할 수 있으며 프로그램 없이 웹에서 제공하는 원격 관리 기능을 이용해서도 접속할 수 있습니다.
웹에서 SSH로 접속을 원하는 경우 Linodes – Remote Access 페이지로 이동한 다음 페이지 하단의 Console Access 항목에서 ‘Launch Lish Console’ 클릭합니다.
접속시 계정은 root, 패스워드는 인스턴스 개설시 설정한 암호입니다.
Linode 보안 설정
리눅스 업데이트
~# apt-get update ~# apt-get upgrade
서버 특성상 한번 세팅되어 서비스가 시작되면 커널 업데이트를 제외하고 버전을 올리기 쉽지 않기 때문에 초반에 업데이트를 실시합니다.
호스트 이름 변경
~# vi /etc/hostname
Vultr 같은 경우 생성한 인스턴스 이름을 기준으로 호스트 네임이 자동으로 들어가는데 Linode 같은 경우 기본인 localhost로 지정되기 때문에 여러 서버를 관리해 구분이 필요한 경우에는 위 명령어를 입력해 호스트 이름을 변경합니다.
~# vi /etc/hosts
호스트 이름을 변경한 경우 로컬 호스트의 기본 IP 주소인 127.0.0.1이 가리키는 호스트명 또한 추가하면 로컬 네트워크상에서 호스트 이름으로 접속할 수 있습니다. 위 명령어를 통해 호스트 설정 파일을 연 다음 아래 내용을 추가합니다.
127.0.0.1 호스트 이름
시스템 날짜 변경
Linode에서 설치한 리눅스는 기본적으로 UTC 표준시가 세팅되어 있는데 이런 경우 서버의 로그 관련 날짜가 국내 시간과 9시간 차이가 나기 때문에 타임존을 KST로 설정합니다.
보통 타임존을 설정할때 tzselect
를 사용하는데 리노드에 설치되는 우분투 17.10에 잘 먹히지 않아 프로필 및 웹서버에 커맨드를 추가 해야하는등의 번거로운 작업이 생겨 좀더 직관적으로 localtime 파일을 변경하는 것이 편합니다.
~# rm /etc/localtime ~# ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime ~# date
위 명령어를 차례대로 입력해/usr/share/zoneinfo/Etc/UTC
기준으로 되어있는 로컬 시간을 KST로 변경한 다음 날짜를 확인합니다.
사용자 추가와 SSH root 접속 제한
일반적으로 우분투를 설치할때 사용자 계정을 설정 후 sudo 명령어로 슈퍼유저 권한을 얻는데 Linode 같은 경우 기본적으로 root 계정이 활성화 되어 있어 보안에 좋지 않습니다. 특히 SSH가 열려있는 경우 root 계정은 해킹 대상이 되기 쉽기 때문에 사용자 계정을 추가한 다음 root 계정을 SSH에서 접속하지 못하게 비활성화 하는 것이 보안에 유리합니다.
~# adduser 계정명 ~# usermod -aG sudo 계정명
위 명령어를 통해 슈퍼유저 권한을 취득할 계정을 생성한 후 sudo 그룹에 추가합니다.
~# vi /etc/ssh/sshd_config
계정 생성이 끝나면 SSH 설정 파일을 위 명령어를 통해 에디터로 연 다음
PermitRootLogin no
위 구문을 찾아 Yes를 no로 변경합니다.
~# service sshd restart
ssh 데몬을 재시작하면 설정이 적용됩니다.
방화벽 기본 설정
Linode는 VPS 앞단에 별도의 방화벽을 제공하고 있지 않기 때문에 운영체제에서 직접 방화벽을 설정해야 합니다.
우분투에서는 ufw로 쉽게 방화벽을 설정할 수 있으며 기본적으로 비활성화 상태입니다. ufw를 미리 설정한 다음 활성화 해야 하며 혹시라도 설정에 문제가 있어 SSH 접속이 불가능하다면 Linode의 웹 관리를 통해 접속해야 하므로 필히 설정을 마친 다음 ufw를 활성화 하길 바랍니다.
ufw allow 80/tcp ufw allow 443/tcp
웹서버의 기본 포트인 80, 443 포트를 개방합니다.
ufw allow from 허용할IP to any port 22 proto tcp
보안에 가장 신경써야 하는 SSH 같은 경우 위 명령어 처럼 특정 IP만 허용하게 해서 해킹 시도를 방지합니다. 집이나 직장등 서버에 접속하는 환경의 IP를 등록하면 되겠죠?
~# ufw enable
허용할 포트 설정이 끝나면 위 명령어로 방화벽을 활성화 합니다.
참고 : 우분투 UFW 방화벽 설정 방법
1 댓글. Leave new
안녕하세요. 저도 라이트세일 이용해서 블로그를 운영중입니다.
이곳에 자주 와서 도움 많이받고 있습니다.
감사합니다!