FTP 는 File Transfer Protocol이 약자로, TCP/IP 환경에서 파일을 전송하기 위한 프로토콜이다.

vsFTPD를 설치하여 ftp서버를 구축해 보겠다. 

우선 아래의 사이트에서 다운로드를 받는다.

http://vsftpd.beasts.org

아래의 명령어를 순서대로 입력하면 무리없이 설치 및 구동 가능하다

# tar xvfz vsftpd-2.3.4.tar.gz
# cd vsftpd-2.3.4

# mkdir -p /usr/local/sbin /usr/local/man/man{5,8}
# make

# cp vsftpd.conf /etc
# cp install_dir/RedHat/vsftpd.pam /etc/pam.d/ftp
local 계정 사용자들의 로그인 인증을 위해 설치 디렉토리안의 RedHat 안에 있는
vsftpd.pam 파일을 /etc/pam.d 디렉토리에 ftp 라는 이름으로 복사


# mkdir /usr/share/empty/
VSFTP 는 empty 라는 디렉토리를 필요로 한다. 기본구성은 /usr/share/empty 다.

# make install


환경설정

- VSFTP 를 운영하기 위해서는 nobody 사용자가 필요
# useradd nobody
이미 있는 사용자인 경우가 많음.


- Anonymous FTP 에서 사용할 ftp 계정 생성
# mkdir /var/ftp
# useradd -d /var/ftp ftp
# chown root.root /var/ftp
반드시 ftp 유저의 홈디렉토리의 권한을 root.root 로 셋팅해야 익명접속이 문제없이 된다.

# chmod og-w /var/ftp
폴더에 권한을 설정한다.(og-w = 755)
drwxr-xr-x   2 root    root     4096 12월  5 23:31 ftp

 

#vi /etc/vsftpd.conf

18행 : write_enable=YES
27행 : anon_upload_enable=YES
31행 : anon_mkdir_write_enable=YES
아무줄 : ftpd_banner= 접속환영메시지~

# /usr/local/sbin/vsftpd &

*** 문제가 생겼을때 해결법 (링크참조 : http://dinggur.tistory.com/42)
# vi /etc/xinetd.d/vsftp ::: disable = yes
# /etc/rc.d/init.d/xinetd restart
# /usr/local/sbin/vsftpd &

위와같이 설치 및 설정하면 ftp서버 구동 완성이다.



아래는 친절한(?) 그림설명



다운로드 사이트


설치


디렉토리 만들어주기
아래와 같은 형식으로 명령하면
하위디렉토리까지 지나치는 상위디렉토리 모두 생성(-p)
/usr/local/sbin, /usr/local/man/man5, /usr/local/man/man8 생성됨.


기계어로 번역해주고(make)


필요파일 복사후 인스톨


make install후 필요한 디렉토리와 유저 만드려 했으나 이미 만들어져 있음.


nobody계정 있는것도 확인해보고


/var/ftp폴더에 권한 설정
이곳이 사용자가 외부에서 접속할 ftp폴더이다.
권한은 쓰기못하도록 755로 주자. og-w=755


이제 환경설정을 해줄 차례
# vi /etc/vsftpd.conf
로 내용과 같이 주석을 없애준다. 좌우 비교로 쉽게 알아볼수있다.


이제 vsftpd를 백그라운드에서 실행한다.
# /usr/local/sbin/vsftpd &
혹시라도 경로 다 타이핑 하기 귀찮을시,
본인의 적당한 폴더에 심볼릭 링크(# ln -s 원본경로 심볼릭링크)를 만들어준다.


이제 윈도우에서 적당한 ftp클라이언트 프로그램을 설치후 가동시킨 ftp서버에 접속해 본다.
간단하게 호스트 부분에 ftp서버가 가동중인 IP주소만 입력시키면 된다.
접속 완료후 파일을 업로드 해보려 했으나 실패. 권한이 없다.


이제 시험삼아 ftp유저에게 /var/ftp 폴더의 권한을 넘겨보자.


500 OOPS: vsftpd: ~~~~ 오류를 내면서 접속조차 불가능.
링크를 참고하여 해결해보자. (해결법 : http://dinggur.tistory.com/42)


# vi /etc/xinetd.d/vsftpd
로 진입하여 disable = no 부분을 yes로 변경


내용이 바뀌었으니 xinetd를 재시작 시켜준다.


이제 ftp폴더의 권한을 다시 root로 바꿔주고 (# chown root.root /var/ftp) 접속해보자.
사전에 리눅스에서 /var/ftp폴더에 임시로 아무파일이나 하나 넣어두었다.
왼쪽으로 끌고 가니 다운로드 성공.


이제, DNS서버까지 구동된 상태라면 ftp와 연동시켜 보도록 하자.
이렇게 하면, 192.168~ 등과 같이 IP주소가 아닌, 내가 지정해준 URL주소로 ftp 접속이 가능하다.
우선 named.conf 파일을 편집한다. 아래와같이 마스터네임서버를 지정해주고, db파일도 선언해준다.


위에서 선언해준 db파일에 환경을 지정해주도록 하자. 아래와 같이 www, ftp로 접속할수 있게 설정
이제 내 DNS서버로 설정된 상태에서 (/etc/resolv.conf 에서 확인) ftp.server110.com으로 접속을 해보자.
문제없이 접속이 된다면 성공!

Posted by 딩구르
,