vsftpd는 Linux에서 잘 알려진 FTP 서버입니다. 물론 FTP 서버 구축을 위한 첫 번째 선택입니다.
이 글에서는 CentOS 6.4에서 vsftpd를 설치하고 가상 사용자가 FTP에 로그인하도록 구성하는 과정을 소개합니다.
텍스트:
하나: vsftpd 설치
vsftpd 설치 여부 확인
rpm -qa | grep vsftpd #如果没有,就安装,并设置开机启动 yum -y install vsftpd chkconfig vsftpd on
둘: 가상 사용자 기반 구성
소위 가상 사용자는 실제 계정을 사용하지 않고 매핑 목적으로만 사용합니다. 실제 계정 및 설정 권한. 가상 사용자는 CentOS 시스템에 로그인할 수 없습니다.
구성 파일을 수정하세요
/etc/vsftpd/vsftpd.conf를 열고 다음과 같이 구성하세요
anonymous_enable=NO #设定不允许匿名访问 local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问 chroot_list_enable=YES #使用户不能离开主目录 ascii_upload_enable=YES ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能 pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证 以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加 guest_enable=YES #设定启用虚拟用户功能 guest_username=ftp #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名 进行认证 chroot_list_file=/etc/vsftpd/vuser_passwd.txt
먼저 Berkeley DB 도구를 설치하세요. 많은 사람들이 db_load를 찾지 못하는 문제는 이 패키지가 설치되어 있지 않다는 것입니다.
yum install db4 db4-utils
그런 다음 사용자 비밀번호 텍스트 /etc/vsftpd/vuser_passwd.txt를 만듭니다. 홀수 줄은 사용자 이름이고 짝수 줄은 비밀번호입니다
test 123456
그런 다음 가상 사용자 인증을 위한 db 파일을 생성합니다
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
그런 다음 인증 파일 /etc /pam.d/vsftpd를 편집하고 원래 명령문을 모두 주석 처리한 후 다음 두 문장을 추가합니다.
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
마지막으로 가상 사용자 구성 파일을 만듭니다
mkdir /etc/vsftpd/vuser_conf/ vi /etc/vsftpd/vuser_conf/test #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效 内容如下 local_root=/ftp/www #虚拟用户根目录,根据实际情况修改 write_enable=YES anon_umask=022 #掩码 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
Set Selinux(selinux가 켜짐)
setsebool -P ftp_home_dir=1 #设置ftp可以使用home目录 sersebool -P allow_ftpd_full_access=1 #设置ftp用户可以有所有权限
FTP 루트 디렉터리 권한 설정
mkdir /ftp/www #创建目录 chmod R 755 /ftp chmod R 777 /ftp/www
최신 vsftpd에서는 기본 디렉터리에 대한 쓰기 권한이 필요하지 않으므로 ftp는 755이고, 그런 다음 기본 디렉터리 아래 하위 디렉터리에 777 권한을 설정합니다
Set 방화벽을 올려보세요
/etc/sysconfig/iptables를 엽니다
" -A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”에서 아래에 추가하세요:
-A INPUT m state --state NEW m tcp p dport 21 j ACCEPT
그런 다음 저장하고 닫습니다. 파일을 다운로드한 후 터미널에서 다음 명령을 실행하여 방화벽 구성을 새로 고칩니다.
service iptables restart
OK, "service vsftpd start"를 실행하면 FTP 서버에 액세스할 수 있습니다.
PASV 모드 구성
vsftpd는 기본적으로 PASV 모드를 활성화하지 않습니다. 이제 FTP는 PORT 모드를 통해서만 연결할 수 있습니다. 기본적으로 PASV를 활성화하려면 다음 구성을 전달해야 합니다.
/etc/vsftpd/vsftpd.conf 열기 그리고 마지막에
pasv_enable=YES #开启PASV模式 pasv_min_port=40000 #最小端口号 pasv_max_port=40080 #最大端口号 pasv_promiscuous=YES
를 추가하세요. 방화벽 구성에서 40000~40080 포트를 열어주세요
-A INPUT m state --state NEW m tcp p dport 40000:40080 j ACCEPT
iptabls 및 vsftpd를 다시 시작
service iptables restart service vsftpd restart
이제 PASV 모드를 사용하여 FTP 서버에 연결할 수 있습니다~
일반적인 실수:
질문 1:
그런데 구성 단계를 따랐더니 다시 시도해 보니 매번
530 로그인이 잘못되었습니다
이리저리 검색해 보니 검증을 위해 vsftpd.vu를 etc의 루트 디렉터리에 생성한 것으로 나타났습니다. /etc/pam.d/vsftpd.vu
질문 2:
위의 문제를 수정했지만 여전히 로그인할 수 없습니다. 메시지가 표시됩니다:
500 OOPS: anon_world_readable_only 구성 파일의 잘못된 bool 값
인터넷 검색을 해보니 구성 파일 끝에 공백이 있으면 안 된다고 말하는 사람이 있었습니다. 자신의 구성 파일을 열고 anon_world_readable_only 끝뿐만 아니라 전체 파일 끝에도 여러 개의 공백이 있는지 확인하세요. 선. 아쉽게도 웹페이지에서 구성을 복사하여 붙여넣을 때는 주의하세요.
질문 3:
500 OOPS: vsftpd: 'guest_username'에 지정된 사용자를 찾을 수 없습니다: aaA
이 질문은 결국 매우 이상합니다. '아아아'
위의 단계를 따르면 설치가 매우 간단하므로 주의하세요.
위 내용은 CentOS에서 FTP 서버 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!