[root@localhost ~]# mkdir /usr/local/proftpd
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4rc2.tar.gz
[root@localhost src]# tar xvfz pro*
[root@localhost src]# cd pro*
[root@localhost proftpd-1.3.4rc2]# ./configure --prefix=/usr/local/proftpd
--enable-autoshadow --enable-shadow
처음에 만들었던 proftpd 폴더에 설치파일을 옮김
[root@localhost proftpd-1.3.4rc2]# make
[root@localhost proftpd-1.3.4rc2]# make install
[root@localhost proftpd-1.3.4rc2]# cd /usr/local/proftpd/etc/
[root@localhost etc]# vi proftpd.conf
그룹 -> nobody로 변경
디폴트 루트 주석을 지움
젤 아래부분에 3줄 지우고 입력
<Directory pub/upload/*> 업로드조건
<Limit READ> - 제약조건 추가
DenyAll
</Limit>
<Limit STOR MKD>
AllowALL - 제약조건 추가
</Limit>
</Directory>
<Directory pub/download/*> 다운로드조건
<Limit READ>
AllowAll
</Limit>
<Limit STOR MKD>
DenyALL
</Limit>
</Directory>
proftpd.conf 파일을 수정한뒤에는 killall proftpd를 사용하여 ftp를 종료한뒤 재시작 해야함
proftp 서버 시작
[root@localhost etc]# cd ../sbin/proftpd
[root@localhost sbin]# ./proftpd
proftp 서버 종료
[root@localhost sbin]# killall proftpd // 어느 디렉토리에서든 사용가능
마지막으로 upload폴더와 download폴더를 생성후 권한 설정
루트 폴더 밑에 /var/ftp/pub 폴더 만들어서 권한을 설정한다.
[root@localhost sbin]# chown ftp:ftp download
[root@localhost sbin]# chown ftp:ftp upload
pub 폴더에서 vi /etc/xinetd.d/gssftp
들어가서 disable = yes로 변경
service xinetd restart
포트가 다르면 굳이 위에 작업을 하지 않아도됨(포트막음)
FTP가동↓
cd /usr/local/proftpd
cd sbin
./proftpd
FTP 킬
killall proftpd
테스트
ftp localhost 엔터
anonymous 엔터 (전에 만들었던 계정들도 가능)
비밀번호 없으니깐 엔터
ftp> 요렇게 뜸
cd pub
cd upload : 아무것도 없음
mkdir ppp
cd download : 아무것도 없음 (다운로드에는 파일을 생성못함 오로지 다운로드만 됨)
quit
cd /var/ftp/pub/download
touch test.dat
ftp localhost
anonymous
cd /pub/download
lcd /home
get test.dat [ Transfer Complete 다운완료 ]
FTP 주요 명령어
open [주소]
user [아이디]
status // 상태 확인
bin // 바이너리 모드로 변환
ascii // 아스키모드로 변환
lcd // 로컬 컴퓨터 이동
pwd // 원격 컴퓨터 현재 경로
mget // 여러개의 파일 가져오기
mput // 여러개의 파일 붙여넣기
prompt // 확인절차 무시
hash // # 을 이용하여 전송되는 상황 보여줌
bye // 종료
FTP만 사용할 수 있는 유저 만들기
1. noshell 빈파일 만들기
[root@localhost ~]# touch /bin/noshell
[root@localhost ~]# chmod 755 /bin/noshell
2. /etc/shells에 목록추가
[root@localhost ~]# echo “/bin/noshell” >> /etc/shells
3. /etc/passwd 수정
[root@localhost ~]# vi /etc/passwd
원하는 계정 마지막 부분 /bin/noshell 수정