리눅스에서의 FTP데몬은 여러가지가 있는데 그중에서 vsftp를 선택한 이유는
보안부분을 강조한 서버데몬이라서, REDHAT 에서도 기본 FTP 데몬으로 채택하고 있다고 함.
역시 http://pkgs.fedoraproject.org/repo/pkgs 에서 vsftp를 찾아서 받고 압축풀고 해봅시다.
vsftpd 받을때 2.3 이상인거 받기 why? 그나마 안정적임... 밑에껀 좀 쉣구림 2.0.5는 나중에 listen도 없음......... 짜증..
암튼 시작.
1. vsftpd소스 받고 + make
[root@server103 ~]# mkdir -p /usr/local/ftp
[root@server103 ~]# cd /usr/local/ftp/
[root@server103 ftp]# wget http://pkgs.fedoraproject.org/repo/pkgs/vsftpd/vsftpd-2.3.2.tar.gz/bad7b117d737a738738836041edc00db/vsftpd-2.3.2.tar.gz
[root@server103 ftp]# tar zxvf vsftpd-2.3.2.tar.gz
[root@server103 ftp]# cd vsftpd-2.3.2
여기가면 INSTALL 읽어보면 설치방법이 잘 나와있다.
[root@server103 vsftpd-2.3.2]# make
2. make install
make install 하기전에 해야할 몇가지가 있다 (INSTALL 읽어보면 나와있음)
1.
[root@server103 vsftpd-2.3.2]# useradd nobody
* 대부분 nobody user가 생성되어 있을 것이다.
--> why? vsftpd를 운영하기 위해서는 'nobody' 사용자가 필요하다고 함
2.
[root@server103 vsftpd-2.3.2]# mkdir /usr/share/empty
* 이것도 생성되어있을 수 있으니까, 없으면 만들고.
--> why? vsftpd는 empty라는 디렉토리를 필요로 한다. 이 디렉토리는 ftp user가 쓰기권한을 가져서는 안된다고 함,
3.
[root@server103 vsftpd-2.3.2]# mkdir /var/ftp
[root@server103 vsftpd-2.3.2]# useradd -d /var/ftp ftp
만약 ftp 사용자가 있을 경우에는 아래 명령어들도 해주기
[root@server103 vsftpd-2.3.2]# chown root.root /var/ftp
[root@server103 vsftpd-2.3.2]# chmod og-w /var/ftp
--> why? anonymous FTP 사용을 위해 ftp 사용자가 필요하다. 이 사용자의 홈디렉토리 즉, anonymous 접근의 루트를 /var/ftp로 설정하고, ftp 사용자가 소유권이나 쓰기권한을 가져선 안된다. 이 디렉토리의 소유자와 그룹을 root로 하고, 반드시 ftp 사용자의 홈디렉토리의 권한을 root.root로 셋팅해야 익명접속에 문제가 없다고 함.
4.
[root@server103 vsftpd-2.3.2]# mkdir -p /usr/local/sbin
[root@server103 vsftpd-2.3.2]# mkdir -p /usr/local/man/man{5,8}
--> why? make install할 때, vsftpd파일은 /usr/local/sbin에 복사가 되고, vsftpd.conf.5 파일과 vsftpd.8 파일이 각각 /usr/local/man/man5 와 /usr/local/man/man8 의 디렉토리로 복사된다고 하니까 만들어 놓자.
5.
[root@server103 vsftpd-2.3.2]# cp vsftpd.conf /etc
--> why? make install할때, vsftpd.conf 이 config 파일을 카피하지 않으니 우리가 직접 /etc 디렉토리에 카피해주기. 그리고 vsftpd가 /etc/vsftpd.conf << 이 위치에서 파일을 읽는다고 하니까 복사꼭 해주야함.
6.
[root@server103 vsftpd-2.3.2]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
--> why? local계정 사용자들의 로그인 인증을 위한 일.
다 했다면 이제 make install
[root@server103 vsftpd-2.3.2]# make install
3. vsftpd 실행
시스템의 local 사용자들의 접속을 허가 하기 위해 (아까 5번에서 복사된거) 복사된 /etc/vsftpd.conf 를 열고 설정을 알맞게 바꿔야함.
[root@server103 vsftpd-2.3.2]# vi /etc/vsftpd.conf
line 12, 15, 18, 21 앞의 주석#을 지워버리기
12의 anonymous_enable=NO --> 익명계정 접속여부
15의 local_enable=YES --> 로컬계정 접속여부
18의 write_enable=YES --> 파일 업로드 사용여부
21의 local_umask=022 --> 파일 업로드 시 퍼미션
line 109 에서
vsftpd를 standalone 모드로 실행하려면
listen=YES
vsftpd를 xinetd 모드로 실행하려면
listen=NO
그리고 /etc/xinetd.d/vsftpd 를 열고 맨 마지막 disable 에서 no 설정해주기
[root@server103 vsftpd-2.3.2]# vi /etc/xinetd.d/vsftpd
disable = no
실행해봅시다
standalone모드로 실행할 때는
[root@server103 vsftpd-2.3.2]# /usr/local/sbin/vsftpd & (&를 넣는 이유는 실행 후 프롬프터로 바로 나오려고)
(또는 직접 sbin에 가서 ./vsftpd &로 실행)
[root@server103 vsftpd-2.3.2]# ps -ef | grep vsftpd
잘 실행되는지 확인하기.
xinetd 모드로 실행할 때는
우선 xinetd가 설치해야되는데 (이미 있을수도 있음)
Fedora 3번 설치 CD에서 /Fedora/RPMS에 있는 xinetd-2.3.13-6.i386.rpm 를 설치해야한다.
cd /media/cdrecorder/Fedora/RPMS --> rpm -Uvh xinetd-2.3.13-6.i386.rpm
[root@server103 vsftpd-2.3.2]# /etc/init.d/xinetd restart
마지막에 OK 뜨면 정상적으로 실행이 시작된거임.
이제 anonymous로 접속해서 login suscceful이 뜨면 성공이다.
[root@server103 vsftpd-2.3.2]# ftp localhost
Connected to server103.
220 (vsFTPd 2.3.2)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): anonymous
331 Please specify the password.
Password:
230 Login successful. --> 나오면 성공!
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>quit (-->나올때 명령어)
++
이거 다하고 네임서버할때 썼던 zone file에 가서 (naver.com.zone)
ftp IN A (누구꺼아이피주소)
마지막줄에 넣어주고
named 죽였다가 다시 키고 service named restart 해주기
그럼 누구꺼아이피로 접속을 하면 그아이피컴퓨터의 /var/ftp 안에 있는 파일들이 보인다.
그럼 미션 컴플릿!
bin : 일반 실행파일들 위치
etc :vsftpd 서버 운영을 위한 환경설정 파일들 위치 (vsftpd.conf)
man : vsftpd 관련 명령어들에 대한 man page 파일 위치
sbin : root(수퍼유저) 가 실행할 파일 위치
var : 로그파일들, 실행시 프로세스 ID를 저장하는 파일들 위치
'Linux' 카테고리의 다른 글
리눅스 웹서버 구축 (Apache, Php, Mysql) (0) | 2012.12.03 |
---|---|
리눅스 메일서버 구축 (sendmail 소스 컴파일 방법) (0) | 2012.12.03 |
리눅스 네임서버 구축 (소스 컴파일 방법) (0) | 2012.11.27 |
네임서버=DNS서버 개념잡기 (0) | 2012.11.27 |
LVM - Logical Volume Manager (0) | 2012.11.21 |