linux2

5일차 리눅스 정리 FTP, vsftp

컴공 2013. 2. 7. 00:19
반응형

FTP.... 이런 갤탭 강제 업데이트당함.. 정기호 noose...강사님 ㅠ 헐. 카페가입 안할뻔 했네....

FTP(File Transfer Protocol)  #20번
=> 파일을 전송하는 서비스(U/D)
(평문통신 => sniff취약 -> "root" 접근이 기본적으로 제한된다)

주 서비스 program = proftp (Redhat, Frdora) , vsftp (centos) proftp가 vsftp보다 조금 더 낫다

pkg - vsftpd~.rpm  (rpm -qa|grep vsftpd 로 설치여부를 확인한다.)

# /etc/rc.d/init.d/vsftpd restart
포트의 과부하를 줄이기 위해 기본적으로 동작하고 있지 않다.
anonymous계졍으로 비번없이도 접근이 가능하다. - ex) 유투브, 토렌트, 미러사이트, 네이버나 심파일 자료실

[service!!!]
# ntsysv : 부팅시 동작시킬 서비스를 정의한다.
# chkconfig httpd on : ntsysv와 유사하며 httpd를 on하거나 off할 수 있다.

pasv_enable=NO를 /etc/vsftpd/vsftpd.conf에 추가해줘야지 방화벽을 우회해서 접속한다. 혹은 및에 추가부분을 사용한다. active시에는 공유기를 사용하는 유저는 사용하지 못한다.

* 추가 *

아래의 메시지가 출력되면서 접속이 안될때

오류메시지 : 500 OOPS: cannot change directory:/home/seok

selinux의 설정으로 접근이 안되는것인데 이부분을 수정해줍니다.

- 접근 허용 설정(ON:1/OFF:0) // -P는 리붓후에도 계속 적용을 의미
setsebool -P ftp_home_dir 1

- 접근 불가 설정
# setsebool -P ftp_home_dir 0

- selinux 모든 설정 확인(항목별 on/off로 표시)

getsebool -a 

/etc/vsftpd/vsftpd.conf  vsftpd의 메인 환경설정 파일
/usr/sbin/vsftpd           실행파일
/etc/rc.d/init.d/vsftpd   vsftpd의 데몬파일
/etc/vsftpd/ftpusers      기본적으로 접속 불가능한 사용자 설정파일( = /user_list
/etc/xinetd.d/vsftpd      xinetd 기반의 서비스 파일 ( /etc/xinetd.d는 기본적으로 xinetd 기반의 서비스 파일들이 저장되어 있다) 그러나 vsftpd는 기본 설정이 standalone 방식이라 해당파일에 대한 정보확인이 어렵다

anonymous_enable=YES   // anonymous를 접근 가능케할지 여부 YES는 허용

local_enable=YES        // " /etc/passwd "파일에 있는 사용자 계정(root포함)의 사용을 허가할지에 관한 것


write_enable=YES        // fftp를 이용해서 업로드를 가능하게 할 것인가의 여부.


local_umask=022        // FTP접속 후 생성되는 파일은 644, 디렉토리는 755로 기본 설정

#anon_upload_enable=YES      //  익명사용자는 업로드를 허용하지 않는 것이 일반적이다.

dirmessage_enable=YES  // 디렉토리에 있는 " .message" 파일을 사용자에게 출력해줄지 여부를 설정한다.

xferlog_enable=YES      // 파일 전송시 발생하는 로그를 기록할지에 대한 옵션이며 기본적으로 /var/log/xferlog에 기록된다.

# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES   // 기본적으로 SELinux에서 다 먹는다. 20번 포트를 위해서는 standalone(각각 데몬관리)
                                         //xinetd는 21번만 사용한다. (모든 데몬 한번에 관리)

#idle_session_timeout=600      // full load = 과부하때문에 사용. 네트워크가 가장 과부하가 심함
                                          // 주석 처리로 미지정시 기본값 300초이다.
#data_connection_timeout=120  // FTP 서버로 부터 전송 뒤 지정시간 안에 다음 전송이 안되면 종료

#nopriv_user=ftpsecure       // 일반 사용자로 vsftpd 데몬을 실행하고자 할 떄 사용하는 옵션
#ftpd_banner=Welcome to blah FTP service. // FTP접속시 기본 제공되는 배너값 무시하고 사용자 지정값
#ls_recurse_enable=YES      // ls -R 옵션을 허용할 것인가에 대한 옵션. FTP 부하를 줄이기 위해 허용 x
#listen=YES  xinetd로 관리시 NO,   standalone 방식은 YES
#listen_port= 변경할 ftp 서비스 포트번호 변경 (정보 변경시 해당 포트 방화벽 해제)

★★★ 디렉토리 이동제한 하기 (보안설정이 필요할 때)

chroot_local_user=yes
chroot_list_enable=yes
chroot_list_file=/some/where

★★★ 디렉토리 이동제한 하기 (보안설정이 필요할 때)
- chroot_list_enable
=> chroot_list 파일의 사용유무
디렉터리 이동에 대한 제한 받을 사용자 정의 yes시에는 접속 제한

- chroot_list_file
=> chroot_list 파일을 지정
기본값 : /etc/vsftpd/chroot_list

- chroot_local_user
=> "/etc/passwd" 파일 내의 모든 사용자를 제한
->"root"도 포함

실습문제
FTP 서비스에서 root 사용자가 접속이 불가능한 사항을 수정하여 'root' 사용자로 접속할 수 있도록 설정파일을 수정하시오.

1) system-config-firewall 에서 우선적으로 ftp 포트를 개방하여 준다
2) /etc/rc.d/init.d/vsftpd restart 로 vsftp를 기동한다

/etc/vsftpd/ftpusers
/etc/vsftpd/userlist

zone과 reg 그리고 vsftp부분만 수정해주면 끝난다.
/etc/vsftpd/vsftpd.conf
pasv_enable=no
/etc/rc.d/init.d/vsftpd restart
ntsysv에서 추가해줘도 됨.

반응형