오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 3. FTP(펌)
오드로이드 XU4 + OMV 로 FTP 설정하는 방법과 접속 방법을 알려 드리려 합니다.
FTP만 설정해도 어지간히 활용하실 수 있어요.
* 해당 가이드를 따라하셔도 카페나 지하철 등 외부 네트워크를 통한 접속은 불가능합니다. 포트포워딩을 설정해 줘야 하는데, 이에 관해선 다른 게시글로 포스팅하겠습니다.
* 해당 가이드는 OMV에서 어떻게 FTP 서버를 열고, 어떤 FTP 클라이언트로 FTP 서버에 접속하는지를 간략히 소개하기 위해 쓰였습니다. 때문에 각 프로그램의 사용법에 대해선 필요 이상으론 자세히 다루지 않았습니다.
0. FTP와 보안
진행하기 앞서 FTP에 대해서 간단히 알아야 합니다.
FTP는 File Transfer Protocol의 약자입니다. 말 그대로 파일 전송 프로토콜인데요, 프로토콜이라 하면 어떤 행위를 하기 위한 상호간 약속이라고 보시면 됩니다. FTP는 파일을 주고받을 때 서로 사용하는 약속같은 거죠. 서버가 FTP 서버를 열면, 그 약속에 따라 FTP 클라이언트에서 접속해 파일을 주고 받는 겁니다.
문제는 FTP가 보안에 굉장히 취약하단 점입니다. 모든 데이터가 평문으로 전송돼요. 서버에 FTP 접속할 때 로그인하는 그 사용자 계정 정보부터 패킷에 평문으로 담겨 보내집니다. 어느 IP에 어떤 포트로 접속하는 지, 현재 위치에서 어떤 파일들과 디렉토리들이 있는지도 뜨구요. Spoofing 등으로 전송 경로를 가로채 파일의 내용까지도 알 수 있겠죠. 리눅스에서 계정 관리가 제대로 안 됐다면 SSH에 해당 계정으로 접속도 가능하겠네요.
그래서 보통 SFTP를 사용합니다. SFTP(SSH File Transfer Protocol)는 SSH에서 제공하는 간단한 FTP 서비스를 사용하는 것입니다. SSH(Secure Shell) 는 기본적으로 암호화 통신으로만 이루어집니다. 패킷을 뜯어봐도 암호화된 문자만 뜨므로 제대로 해석할 수 없어요. 때문에 SFTP라면 암호화된 통신으로 파일을 주고 받을 수 있어 더 안전합니다. SSH가 정확히 무엇인지는 생략하겠습니다. 참고로 OMV에선 SSH가 기본적으로 활성화되어 있습니다.
FTP 서버를 이용해야만 한다면 FTPS를 사용합니다. FTPS(File Transfer Protocol Secure)는 FTP에 SSL(Secure Sockets Layer 또는 TLS, Transport Layer Security)을 입힌 거에요. 간단하게 보안을 위한 계층을 하나 더 씌워 모든 통신을 암호화시킵니다. 하지만 이건 도메인도 필요하고, 인증 기관으로부터 SSL 인증서도 발급받고, 갱신하고, FTP에 설정도 이것 저것 바꿔야만 하므로 귀찮죠. 그래서 SFTP를 많이 사용합니다.
여기까지 보면 FTP는 굳이 사용할 필요가 없다고 느껴지실 겁니다. SSH만 사용해도 돼 보여요. 하지만 또 각각의 장단점은 있을 수 있어요. 그래서 결국 사용자의 선택일텐데, 전 개인적으로 SFTP 사용을 추천드립니다. SFTP가 보편화되면서 대부분의 FTP 클라이언트 프로그램에서도 SFTP를 당연히 지원하게 됐거든요.
지금은 OMV에서 사용자 계정을 만들고, 또한 그 계정은 Shell이 부여되지 않아 터미널에 접속할 수 없는 상태입니다. 또한 OMV NAS에서 그렇게 중요하지 않은 자료들을 다룰 수도 있고, 활용할 수도 있으니 FTP 서버에 대한 포스팅을 시작하겠습니다. 무엇보다 OMV에서 SFTP를 파일 공유 목적으로 사용하려면 현재 OMV 사용자 계정에 홈 디렉토리를 생성하고, Shell도 부여해야 하며, 터미널에서 직접 공유 폴더를 지정해줘야 합니다. 필요하다 생각되면 진행하겠습니다.
아무쪼록, 보안이 취약하다는 건 알고 진행해 주세요.
해당 사항은 FTP 자체 특성이므로 어떤 기성 NAS나 자작 NAS를 사용하더라도 똑같이 적용됩니다.
1. FTP 설정 및 활성화
OMV FTP 메뉴로 갑시다.
여기서도 간단히 활성화 켜주시고, 아래 고급 설정 부분으로 갑니다.
Passive FTP 부분을 활성화합니다. 그리고 나중에 포트포워딩도 49152~65534까지 하셔야합니다. 한글로는 수동 FTP 라고 나와있을 겁니다.
왜냐하면, FTP가 Active(능동) 모드와 Passive(수동) 모드가 있는데, 능동 모드일 경우 데이터를 보낼 때 서버가 클라이언트에 접속해 보냅니다. 때문에 클라이언트가 서버로부터 들어올 포트를 열어둬야 해요. 방화벽을 사용하는 서버 사이 전송일 경우에도 그렇고 이런 게 잘 될 리가 없습니다.
반면에 수동 모드는 전부 클라이언트에서 서버로 접속하는 형태입니다. 처음에 21번 포트로 서버에 들어왔다가, 서버가 정해진 포트 범위 내에서 하나를 골라 이걸 쓰라고 응답합니다. 그러면 그 포트를 통해 서버로 데이터 수신을 위한 접속을 합니다. 이건 서버만 방화벽 설정하면 되죠.
참고: https://extrememanual.net/3504
그리고 조금 더 밑으로 내려가 전송 기록 활성화도 체크하신 뒤 저장/적용합시다.
마지막으로 공유 탭으로 가 공유 폴더를 추가해줍니다.
2. FTP 접속
FTP 서버를 열었으니, FTP 클라이언트를 통해 접속할 수 있습니다. Chrome 등 사용하시던 웹브라우저나 FileZilla, 알FTP, XFtp, Cyberduck 등 FTP 클라이언트 프로그램 또는 안드로이드나 iOS 앱을 통해서도 접속이 가능합니다.
여기선 웹브라우저와 프로그램, 안드로이드 접속 방법을 하나씩 알려드리겠습니다.
1) Chrome 으로 접속하기
대부분 많이들 쓰시는 Chrome 웹브라우저로 접속하는 방법이 있습니다. 파일 업로드는 불가능하지만, 가장 간편하게 접속해 파일을 다운로드 하실 수 있습니다.
방법은 주소창에 ftp://{오드로이드IP}/ 를 적으시면 됩니다. 접속하시게 되면,
이런 로그인 프롬프트가 뜨는데요, OMV NAS 사용자 계정으로 로그인하시면,
이렇게 OMV FTP 설정에서 추가된 공유 폴더가 나타납니다. 기가 막히네요.
해당 공유 폴더에 권한이 있는 OMV 사용자 계정으로 로그인하셨다면 바로 다운로드 하실 수 있지만, 권한이 없다면 해당 공유 폴더에 접근하실 수 없거나 다운로드하실 수 없습니다.
2) FileZilla 로 접속하기
FileZilla는 대단히 유명한 오래된 오픈 소스 FTP 클라이언트 프로그램입니다. 윈도우, 리눅스, 맥을 모두 지원하며, FTP 전용 클라이언트 프로그램이기 때문에 FTP, SFTP, FTPS 등을 모두 지원하고 업/다운로드가 간단합니다.
FileZilla 다운로드 링크로 가셔서 클라이언트 프로그램을 다운로드 받고 설치합니다.
설치한 프로그램을 실행하시면,
이런 화면이 뜨는데요. 여기서 호스트에 자신의 오드로이드 IP, 사용자명과 비밀번호에 OMV NAS 사용자 계정을 입력해주시면 됩니다. 포트는 21번이구요. 참고로 FTP 서비스의 기본 포트는 21번입니다. 약속 같은 건데, 입맛대로 바꿔줄 순 있어요.
OMV NAS 사용자 계정으로 로그인하면 이렇게 됩니다. 로그인이 잘 됐다는 메시지와 함께 오른쪽 아래에 5TB 공유 폴더가 보이네요.
파일을 업/다운로드가 제대로 되는 지 테스트 겸 속도도 보겠습니다. 목적지 경로에 파일을 끌어다가 놓으시면 됩니다.
업로드
다운로드
보시면 업로드 93MB/s, 다운로드 113.2 MB/s 로 굉장히 준수하네요. XU4가 UAS를 껐는데도 이런 속도가 나와서 놀랍습니다.
3) 안드로이드에서 접속하기
안드로이드에서 FTP 서버에 접근할 때, 전 ES 파일 탐색기를 추천합니다. 무료버전이라 광고가 덕지덕지 많은 것 빼곤 기능도 많고, 무엇보다 이걸 대체할 앱이 없어요.
플레이스토어에서 ES 파일 탐색기를 검색해 설치하고, 실행해 봅시다. 참고로 테스트 기기는 갤럭시 노트 4 입니다. 처음에 안내 화면이 나오는데, 하나씩 넘겨 완료하면,
이런 화면이 뜹니다. 여기서 왼쪽 위의 Navigation Drawer Open 버튼을 클릭해준 후 네트워크-FTP 메뉴로 들어가면,
이 화면이 떠요. 밑의 스캔 버튼이 있어 해당 네트워크 내의 FTP 서버를 자동으로 스캔을 해 주기도 하지만, 저희는 명시적으로 딱 잘라 이용하기 위해 오른쪽 위의 새로 만들기 버튼을 눌러 줍시다. 누르면 FTP냐, SFTP냐, 이런 걸 묻는데 FTP를 선택해주면,
이렇게 새로운 FTP 서버를 추가하기 위한 Dialog가 떠요. 제 스크린샷을 참고하여 각 항목별로 알맞게 적어줍시다. Mode는 수동 모드이고, 인코딩은 Auto로 되어있을텐데 안전하게 UTF-8로 바꿔줍시다.
그리고 확인을 누르면,
이래이래 방금 설정한 FTP 서버가 떠요. 이 곳을 들어가면 귀신같이 자신이 설정한 공유 폴더가 뜹니다. 이제 사용할 수 있어요.
공유 폴더에서 파일을 다운로드 하는 방법은, 파일을 지긋이 잠깐 누르고 있으면 여러 개를 선택할 수 있는데, 이 상태에서 필요한 파일을 선택한 뒤
아래의 기타를 누르면 위와 같은 메뉴들이 뜨는데, 여기서 이동이나 복사를 클릭하시면 됩니다. 그러면,
이렇게 다운로드 받을 위치를 선택하라 합니다. 전 Download에 들어가 확인을 눌렀어요.
이런 전송 중이란 Dialog가 뜹니다. 숨기기를 누르면 알림으로 남아있어 얼마나 진행됐는지 알 수 있구요. 속도는 지금 공유기가 802.11ac를 지원하지 않는 공유기라 느리네요. 5GHz 802.11ac를 지원하는 공유기라면 20 MB/s 이상 속도가 나올 겁니다.
반대로 업로드는, 안드로이드의 공유 기능을 이용하시면 됩니다.
기본적으로 제공되는 내 파일 등의 파일 탐색기 앱을 쓰셔도 되지만, 여기선 갤러리를 예로 들게요. 갤러리에서 업로드하고 싶은 사진들을 선택하신 뒤 공유 버튼을 누르면,
이렇게 공유가 가능한 어플리케이션 목록이 뜹니다. ES 에 저장을 눌러 줍시다. 느낌상 Send by LAN 같은데 지금은 아니에요.
그럼 또 이렇게 경로를 선택하라는 Dialog가 뜹니다. 이번엔 반대로 올라가죠. 왼쪽 위의 "<-" 버튼을 누르시면,
아까 생성한 OMV NAS의 FTP 설정 폴더가 보입니다. 저 곳으로 들어가 적절한 경로에서 선택하시면 아까 다운로드 할 때 뜬 Dialog가 뜨면서 진행됩니다.
FTP의 또 다른 대표적인 활용 방법으로 동영상 스트리밍이 있는데, 이건 다른 게시글에서 다루도록 하겠습니다.
=> nPlayer 를 이용해 FTP, WebDAV, Samba, DNLA 동영상 스트리밍하기
* 한글 깨짐 방지
FTP 클라이언트가 UTF8을 제대로 지원해야 한글이 문제없이 들어가는 것 같네요
윈도우 PC에선 파일질라나 XFtp를 추천드립니다 :)
출처 : http://awesometic.tistory.com/51?category=964085