티스토리 뷰

ORACLE DB/Projects

FTP 서버 구축. VSFTPD

sai505 2012. 12. 2. 19:29

FTP 서버 구축. VSFTPD

 

FTP : FILE TRANSFER PROTOCOL

파일의 업로드 및 다운로드 하는 서비스를 제공

 

준비물

 

1. 전체적인 흐름

전체적인 과정을 알고 가자.

 

ftp라는 서비스를 웹에서 제공하자!

-> 그럼 URL을 ftp://naver.com으로 한다고 하자

-> 도메인 등록해야된다. 다행히 우리는 DNS서버를 구축했다. /var/named 에 이미 있는 naver.com.zone 파일에 ftp형식의 도메인을 추가해주자.

-> ftp라는 서비스를 이용하려면 프로그램이 필요하다. 두가지가 있다 VSFTPD(Very Secure FTPD)와 PROFTPD가 있다. 요즘 추세는 VSFPTD이니까 소스 컴파일식으로 설치

-> 디렉토리는 /usr/local 안에

-> ftp는 파일을 업로드 하는것이므로. /var/ftp라는 디렉토리를 이제 업로드 하는장소가 된다. 이곳이 ftp의 기본 디렉토리다.

-> /var/ftp에 다른사용자들이 접속할수있게해줘야한다.

두가지 경우가 있다. 기본적으로 존재하는 anonymous계정이거나 우리가 생성해준 권한계정이거나. 권한계정은 id와 password가 필요하다. nobody계정을 만들자. 계정을 만들어주되. ftp에 소유자는 보안상 root가 되어야 하고 root가 아닐경우 보고 실행은 가능하되 쓰기는 안되게 설정을 해줘야한다.

-> pam이란 계정권한 정보가 담긴 파일을 /etc/pam.d에 복사해주어야. 원래 계정정보가 담긴 /etc/passwd 와 /etc/shadow 이외에 가상 ftp계정들에게 권한이 주어진다.

-> make 와 make install을 하기전에 미리 만들어야줘야될 디렉토리가있다. /usr/share/empty와 /usr/local/man 안그러면 설치중에 디렉토리를 못찾아서 install 이 완성되지 않는다.

empty 파일은 vsftpd의 기본 필수 파일이다. 없을경우 아래 예제 처럼 될수 있다.

 

 

 

-> vsftpd는 configure 파일이 없다. make와 make install. vsftpd파일은 /usr/local/sbin에 복사가 되고. vsftpd.conf파일은 /etc 에 복사가 되고, vftpd파일도 /etc/xinet.d 디렉토리에 복사가 됩니다.

 

-> vsftpd.conf파일을 설정해주는데. 여기서 데몬방식에 따라 설정이 달라진다.

vsftpd데몬은 standalone모드이고 superdemon모드인 xinetd이 있다. xinetd 방식일 경우 /etc/xinet.d/vsftpd 파일을 수정해줄 필요가 없다.

-> vsftpd데몬을 실행시켜주고 anonymous 계정으로 들어가면 성공이다.

 

 

2. 해보자

 

1. vsftpd 소스 다운로드

]#wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz

 

 

 

2. /usr/local 디렉토리에 작업공간을 만든후. 압축을 풀어보자

]#mv vsftpd-2.3.4.tar.gz /usr/local/vsftpd-2.3.4.tar.gz

]#tar zxf vsftpd-2.3.4.tar.gz

 

 

3. 계정을 만들고 권한을 준다. 계정을 위한 디렉토리또한 생성한다. 계정은 nobody로 하겠다.

  필수 파일인 /usr/share에 empty도 생성하자.

]#useradd nobody  노바디 계정을 만들고

]#mkdir /var/ftp 계정을위한 ftp라는 디렉토리 생성

]#useradd -d /var/ftp ftp ftp계정이 /var/ftp에 접근할수 있도록 권한생성

]#mkdir /usr/share/empty; empty도 생성

 

 

이미 계정과 디렉토리가 존재한다고한다. 있다는것을 확인했으면 그냥 넘어가면 된다.

 

]#chown root.root /var/ftp; chmod og -w /var/ftp

/var/ftp라는 디렉토리를 root소유자로 설정하고 다른계정권한에서 'w'쓰기 권한을 빼자.

 

 

 

4. make 와 make install을 하자

]#make; make install

 

 

 

 

그러면 위에 화면처럼 conf파일과 vsftpd파일이 man디렉토리와 xinetd.d에 옮겨졌다고 나온다.

 

5. 중요 설정파일을 올바른 디렉토리에 복사하자. pam.d와 vsftpd.conf파일

 

 

]#cp vsftpd.conf /etc/vsftpd.conf

 

tail 로 잘갔는지 확인

 

]#cp RedHat/vsftpd.pam /etc/pam.d/vsftpd

 

 

6. 설정파일 수정. /etc/vsftpd.conf

]#vi /etc/vsftpd.conf

anonymous_enable = yes

local_enable = yes

write_enable = yes

local_umask = 022

xferlog_file = /var/log/vsftpd.log

listen = YES (vsftpd stand-alone방식) (superdemon xinetd 방식은 listen = NO)

pam_service_name = vsftpd

 

 

 

 

 

7. dns서버에 zone파일 추가

]#vi /var/named/naver.com.zone

 

 

named데몬 재실행

 

 

 

8. ftp 서비스 끄기 설정. 

]#vi /etc/xinetd.d/vsftpd

disable = no에서 yes로 변경

 

 

 

9. 확인

ftp서버에 접속 해보자. 먼저 자신이 지정해준 ftp서버 ip로 접속해서 다음과 같이 나오면 성공.

 

터미널에서 anonymous 익명 계정으로 접속해보자. 패스워드는 없다. 다음과 같이 나오면 성공.

 

 

 

 

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함