본문 바로가기

Anything

휴대폰으로 찍은 사진을 편하게 옮기는 방법? vsftpd 돌리기 for Linux

주의: 개인적으로 왠만하면 데스크톱에 서버 돌리는거 추천안합니다. 그런데 편의 목적상 없으면 귀찮기 마련이지요... 

그래서 포스팅 합니다...



일단, 제가 고른 FTP 클라이언트는 이놈입니다. 제일 무난해보입니다. 이걸로 필요할때 그램으로 바로 넘길거에요. 로컬 네트워크에서 다이렉트로 파일 넘기는 것 만큼 빠른 방법이 없죠. 심지어 스트리밍도 됩니다. 서버 데몬으로는 vsftpd를 사용할건데요, 위에서 언급했듯 데스크톱에서 서버 돌리는 것은 그다지 권장하고 싶지가 않아요. 보안 문제도 있고, 그에 따른 수많은 문제가 있기 때문이죠. 심지어 sftp도 아니고 ftp인데... 설치는 간단하게 아래 명령어 한줄이면 끝납니다.

jaehoon@jaehoon ~ $ sudo apt-get install vsftpd

그리고 나서, 설정 몇가지를 해줄겁니다.


1. vsftpd 설정 - write_enable, anonymous 비활성화

2. rc.local - vsftpd 자동 실행 금지


더군다나 노트북이라면 꽉꽉 틀어막으세요. 필요할 때에만 켜서 써야 합니다. vsftpd 설정은 /etc/vsftpd.conf 한개입니다. nano를 활용해서 2가지 값만 바꿀거에요.



anonymous_enable을 주석(#)을 푸시고 NO를 써넣습니다. 그리고 나서 write_enable을 풀어주면 끝입니다. 저장하고 나가세요. 이제 rc.local 파일을 수정해봅시다. 맨 마지막 줄에 exit 0가 있는데 그거 앞에다가 써야 합니다. (jaehoon.d 경로 명은 아무렇게나 바꾸셔도 됩니다)

/bin/bash /etc/jaehoon.d/vsftpd_kill.sh &

exit 0

이걸 적고 저장하신 뒤, /etc/jaehoon.d/vsftpd_kill.sh 파일 컨텐츠를 채워 넣습니다.

#!/bin/bash


VSFTPD_STAT=`service vsftpd status | grep Active | awk -F":" '{ print $2 }' | awk -F" " '{print $1}'`

# 바로 윗줄에서 에러가 난다면 이걸 rc.local에다가 바로 넣으셨을 겁니다. 따로 빼주셔야 합니다.


if [ "$VSFTPD_STAT" != "inactive" ]; then

service vsftpd stop

fi

이대로 저장하시고, chmod +x /etc/jaehoon.d/vsftpd_kill.sh 를 실행해서 실행권한을 줍니다. 얘가 부팅한 직후에 vsftpd가 돌고 있으면 죽일겁니다. 그리고 나서 apt-get install rcconf 로 rcconf를 설치합니다.

jaehoon@jaehoon ~ $ sudo rcconf

이걸로 vsftpd를 찾아서 비활성화시킵니다. 그러고 나면 일단 ftpd에 관한 2가지 안전장치가 생겼어요.


이제 준비는 완료되었습니다. (여기에 더불어 ufw 방화벽 설정도 함께 사용하시면 정말 금상첨화일 겁니다) ftp가 필요할 때 sudo service vsftpd start 명령으로 ftp를 켜서 안드로이드 앱으로 파일 올린 후 다시 sudo service vsftpd stop으로 막아서 쓰면 정말 안전하게 잘 활용하실 수 있을겁니다. 그냥 ftp보다는 sftp가 훨씬 안전한데 그건 openssh-server패키지를 깔기만 해도 sftp모듈이 함께 깔리기 때문에 소개하지 않았습니다.


ftp는 되도록이면 로컬 네트워크에서만 사용하시길 바랄게요. ^^