이제 드디어 기본 설정이 끝났고 본격적으로 FTP 프로그램을 깔아본다.

FTP는 File Transfer Protocol의 약자이다. 파일 전송을 위한 규격이라고 할 수 있다. 인터넷 브라우저에서 사이트 주소 앞에 흔히 붙는 http라는 것도 Hyper-Text Transfer Protocol의 약자이다. 한국 사람은 한국말로 해야 말이 통하고 미국 사람은 영어 해야 말이 통하듯이 서로 뭘 주고받을 것인지, 말이 통하기 위한 규격이라고 생각하면 된다.

FTP 프로토콜로 접속을 하게 되면 목표 서버에 나는 파일을 다운로드 하려고 그 서버에 접속하는 거라고 말하는 셈이다.


# proftp 설치하기


$ sudo apt-get install proftpd-basic


내가 봤던 매뉴얼에서는 sudo apt-get install proftpd 입력하라고 되어있었는데 어차피 apt-get이 지원하는 패키지 이름을 검색해보고 자동으로 proftpd-basic 깐다고 하니 그냥 처음부터 proftpd-basic 설치하면 될 것 같다.


중간에 어떤 모드로 설치할 것인지 물어보는데, 기본 세팅대로 standalone으로 설치한다.

standalone 버전은 말그대로 proftpd 프로세스가 독립적으로 실행되는 상태이고, 다른 모드 이름이 기억은 안나는데 그 모드는 외부 접속을 처리하는 다른 독립 프로그램이 있고 걔가 여러 가지 요청을 처리하다가 ftp 관련 요청이다 싶으면 proftpd 프로세스를 종속적으로 만들어서 처리를 맡기는 형식으로 기억한다.

내 기억이 잘못됐을 수도 있고 더 이상의 설명은 (나도 모르는 부분이라) 불가능하므로 나랑 비슷한 수준의 초보자라면 곱게 standalone으로 설치하자.


설치가 다 끝났다면 약간의 설정을 해주자.



# proftp 설정하기


설정 파일은 /etc/proftpd/proftpd.conf 파일 안에 저장되어 있다. 텍스트 편집기로 열어준다. 물론 얘도 sudo 넣어서 열어줘야 한다.


$ sudo nano /etc/proftpd/proftpd.conf


ServerName 같은 거는 서버 이름이니까 적당히 원하는 대로 바꿔줘도 되고, 다른 설정은 다른 데서 검색해보고 공부해서 고쳐도 되지만 내가 설명해 줄 건 DefaultRoot 옵션이다.


이 옵션은 보안을 위해 필요한 것인데, 나중에 이 서버를 주변 친구들이나 다른 사람에게 공개할 때 아무나 내 서버에 접속해서 중요한 파일을 헤집어놓고 다니면서 설정을 바꿔놓는다면 큰 문제가 생길 것이다.

그래서 보안을 위해서는 공개를 위한 디렉토리를 따로 만들어놓고 일반 사용자들은 그 제한된 디렉토리 안에서만 접근할 수 있도록 바꿔야 한다. 따라서 DefaultRoot 옵션이 적용될 수 있도록 주석을 해제해줘야 한다. 기본적으로 DefaultRoot 앞에 '#' 글자가 붙어서 설정에 영향을 미치지 않는 주석으로 처리가 되어있는데, 이 #을 지워서 설정이 적용되게 한다. 아래 그림처럼.



스크롤 내려서 찾기 힘들면 '^W Where Is' 라고 써있는게 텍스트 검색 단축키 설명이다. Ctrl+W 눌러서 defaultroot 입력하고 엔터치자. 기본적으로 대소문자 구별은 안한다.


저기서 ~ 라고 써있는 게 리눅스에서의 홈디렉토리를 가리킨다고 보면 된다. DefaultRoot 옵션을 통해 각 계정별로 지정된 홈디렉토리를 루트, 즉 최상위 디렉토리로 지정을 하기 때문에 그 상위 디렉토리로 못넘어가게 막는 것이다.


조금 자세히 설명을 해보자면, 라즈베리파이의 관리자 계정인 pi가 있고 이 pi의 홈디렉토리는 /home/pi/가 된다.


이 pi 홈디렉토리 밑에 guest 라는 이름의 디렉토리를 만든다. (/home/pi/guest/) 그리고 이 /home/pi/guest/를 홈디렉토리로 하는 guest라는 계정을 만든다.


그러면 pi 계정은 홈 디렉토리가 /home/pi/ 이므로 여기서부터 시작해 그 하위 디렉토리(/home/pi/guest/ 포함)는 전부 접근할 수있지만, 반대로 guest 계정은 홈 디렉토리가 /home/pi/guest/ 이므로 여기서부터 시작해야 하기 때문에 더 상위 디렉토리인 /home/pi/ 디렉토리는 접근할 수도 없고 여기에 무슨 파일들이 있는지 알 수 없게 되는 것이다.


그래서 저 옵션을 설정함으로써 어느 수준의 보안을 구현할 수 있다는 말이다.


그러면 이제 저장을 하고 텍스트 편집기를 종료하자.



# ProFTP 재시작하기


설정을 바꿨다면 변경된 내용을 적용하기 위해 proftp 서비스를 재시작해야 한다.


$ sudo service proftpd restart

$ sudo /etc/init.d/proftpd resart // 위 명령어와 같은 일을 한다. 둘 중에 아무거나 편한 거 쓰면 된다.


# 컴퓨터 인터넷 브라우저에서 ftp 접근해보기


크롬을 쓰든 인터넷 익스플로러를 쓰든 파이어폭스를 쓰든, 심지어 윈도우 탐색기라도 좋다. 주소창에 ftp://<라즈베리파이 IP 주소>를 쳐보자.


<라즈베리파이 IP 주소> 부분에 공유기에서 확인한 내부 IP 주소를 넣을 수도 있고, 1. 유선랜 고정 IP 할당 게시물에서 포트포워딩을 통해 외부 접근이 가능하게 만들어 두었으므로 공유기가 할당받은 외부 IP 주소를 넣을 수도 있다.


내부 IP 주소를 넣는다면 컴퓨터가 같은 공유기에 연결이 되어 있어야만 접근할 수 있다.

외부 IP 주소를 넣는다면 집이 아니라 카페나 도서관 와이파이를 잡더라도 외부 IP 주소를 외워서 적어넣으면 접근 가능하다.


IP 주소를 외워다가 치기 복잡하면 우리가 흔히 아는 알파벳 형태로 된 도메인(www.google.com 이라든가)을 IP 주소에 부여해야 한다. 이것은 DDNS 서비스라고 하여 나중에 다시 설명하기로 한다.



ftp://<IP 주소> 치고 들어가면 계정과 비밀번호를 물어보는데, 지금 라즈베리파이에서 쓰는 계정 그대로 치고 들어가면 된다.

기본 설정 그대로라면 pi / raspberrypi 치면 되겠지. 로그인 후에 위 캡쳐사진처럼 홈디렉토리 아래의 파일들이 그대로 나온다면 성공이다.


지금까지의 글들이 스크롤이 어마어마하게 긴 것에 비해 겉으로 드러나는 게 별로 없었는데, 이번엔 스크롤도 짧고 할 것도 별로 없는 주제에 뭔가 어마어마한 성취를 이뤄낸 것 같이 보인다.

여기까지 무사히 완수했다면 스스로에게 박수를 쳐주자.


만약 문제가 생겼다면 댓글을 달아주시길...


WRITTEN BY
Chaz
서울소재 모 대학교 공대 졸업하고 일개미가 된 일명 비둘기가 거주하는 곳입니다

트랙백  0 , 댓글  5개가 달렸습니다.
  1. 안녕하세요 2015.07.16 22:22 신고
    댓글을 보실지 잘모르겟네요.. 반대로 vi에서 주석처리를 하기위해 저 #을 치게되면 L과 비슷한 상형문자가 입력되는데 이경우에는 어떻게 해결해야되나요? 아직 리눅스 기초 부분을 공부중인데 전혀모르겟네요.. #이 주석처리라면 반대로 #을 입력하기위해서는 어떻게해야되나요?
    • 댓글을 보실지 모르겠지만 2015.07.25 08:59 신고
      http://200315193.tistory.com/1111
      이거 보시고 키보드 설정 하시면 됨
    • 답변이 늦었습니다. 요즘 블로그 관리를 안했더니..
      다른분께서 답변 잘 달아주셨네요. 라즈베리파이가 원래 영국의 비영리재단에서 만든거라 시간 설정이나 키보드 매핑 같은게 다 영국이 기본이라 이상한 데서 걸리적거리는 게 있더라구요 ㅎㅎ;
  2. proftp를 따로 css 작업해서 적용이 되나요?
  3. 막힘없이 잘 따라오고 있습니다. ㅎㅎ 설명을 잘 해주셔서 중간중간 배우는 것도 많네요. 감사합니다!
secret