FTP服务的基础配置
Linux FTP服务配置
FTP服务器配置 VSFTP主配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数: anonymous_enable=yes/no 是否允许匿名用户访问 anon_upload_enable=yes/no 是否允许匿名用户上传文件 anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录 anon_other_write_enable=yes/no 匿名用户和虚拟用户是否拥有删除权限 local_enable=yes/no 是否允许本地用户登陆 write_enable=yes/no 设置全局是否可写 anon_root=/var 指定匿名用户目录 chroot_local_user=yes 锁定所有用户到用户主目录 chroot_list_enable=yes/no 锁定列表中的用户到主目录,需要配合下一参数使用 chroot_list_file=/etc/vsftpd/chroot_list 指定存储被锁定用户的列表文件位置 chown_uploads=yes/no 匿名用户上传所有者指定功能,需要与下一参数配合使用 chown_username=用户名 指定匿名用户上传文件的所有者 max_clients=300 最大客户端连接数为300 anon_max_rate=30000 匿名用户和虚拟用户限速为30K/S local_max_rate=30000 本地用户限速为30K/S max_per_ip=10 每个IP最大连接数 listen_port=22 更改监听端口 实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,最大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件: 直接添加以下选项: [root@LidadeFedora vsftpd]# service vsftpd restart 添加用户ftp1,设置登录脚本为 /sbin/nologin: vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件"testLocal",在"/var/ftp/pub"新建一个文件"testAnon"。 由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才能读取该文件 设置/var/ftp/pub权限为777,表示所有用户均有读写权限. 由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。 客户端用Flashfxp测试:新建站点"VsftpTest",输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击"连接"按钮: 由于没有使用选项:local_root,登陆本地用户时自动跳转到该用户的主目录.没有使用chroot_local_user=yes,所以本地用户可以浏览整个文件系统中他有权限读取的文件和文件夹: 切换到目录"/var/ftp/pub",该目录的权限为777,上传一个10M以上的文件,测试ftp1的上传速度: 新建文件夹和删除权限测试省略。下面测试匿名用户权限:勾选"匿名"选项并连接: 匿名用户登陆成功: 进入pub目录,尝试删除testAnon文件失败,说明这里是配置文件中的anon_other_write_enable=no生效了。最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许下载的要求: 最后测试匿名用户的下载速度: vsftp的配置参数总共也就10来行,但是想要使用好它,绝没有单单理解这10来行这么简单,需要对每一行所定义的参数都理解透彻才可以. 匿名用户的配置: anonymous_enable=YES //允许匿名用户登录 anon_root=/var/ftp/anonymous //设定匿名用户登录后的根目录 anon_upload_enable=YES //允许匿名用户上传文件 只需要打开如上的参数即可,不用做其他的设置.本地用户登录配置 首先说一下概念,什么是本地用户,本地用户就是你系统/home目录下的用户,当然有的用户建立时候使用-m命令,使用户在/home下没有目录,但是这个词的意思就是系统里面有的用户. local_enable=YES //允许本地用户登录 local_root=/home //限制本地用户登录后的根目录 eg: [root@centos ftp]# ftp 192.168.0.125 Connected to 192.168.0.125. 220 (vsFTPd 2.0.5) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (192.168.0.125:root): xu 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,0,125,135,123) 150 Here comes the directory listing. drwx------ 2 505 503 4096 Jun 26 09:42 chuan drwx------ 2 507 507 4096 Jun 30 22:26 ftp drwx------ 2 504 502 4096 Jun 26 09:42 joe drwx------ 2 506 503 4096 Jun 26 09:43 laomeng drwx------ 2 502 504 4096 Jun 26 09:42 master drwx------ 2 503 502 4096 Jun 26 09:42 mike drwx------ 2 500 500 4096 Jun 25 21:34 xiaochuan drwxrwxrwx 2 508 508 4096 Jun 30 22:39 xu drwx------ 2 501 501 4096 Jun 25 20:25 xujunchuan 226 Directory send OK. ftp> pwd 257 "/home" 限制用户目录部分 chroot_local_use=YES|NO //是否将本地用户锁定在家目录 chroot_list_enable=YES|NO //是否锁定使用者在家目录中 chroot_list_file=/etc/vsftpd/chroot_list //一般情况下都将这个文件写在/etc/vsftpd目录下,这个文件就是设置锁定用户的一个列表文件,其中一行就代表一个用户 设置欢迎信息 dirmessage_enable=YES message_file=.message [root@centos ftp]# cd /home [root@centos home]# vi .message welcomt to VSFTP............. C:\Documents and Settings\Administrator>ftp 192.168.0.125 Connected to 192.168.0.125. 220 (vsFTPd 2.0.5) User (192.168.0.125:(none)): xu 331 Please specify the password. Password: 230-welcomt to VSFTP............. 230 Login successful. ftp> 虚拟账户配置 本地账户vuser,目录定在/var/ftp/vuser.虚拟账户may密码123;ccc密码123 随意哪个目录建立vuser.txt,按行将虚拟账户及其密码输入进去,我在/目录下设置的,格式如下: may 123 ccc 123 [root@centos /]# db_load -T -t hash -f vuser.txt /etc/vsftpd/vuser.db [root@centos /]# cd /etc/vsftpd/ [root@centos vsftpd]# ls ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vuser.db [root@centos vsftpd]# vi chroot_list vuser [root@centos vsftpd]# ls chroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh vuser.db [root@centos vsftpd]# vi vsftpd.conf //进入配置文件,更改如下配置 anonymous_enable=NO local_enable=YES //虚拟帐户对应的是系统本地用户,所以必须开启这一项 anon_upload_enable=YES //开启此项以后,使用虚拟账户后可以上传文件. write_enable=YES //开启用户写权限.与上面那个参数需要同时开启,才可以上传文件 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES guest_username=vuser chroot_list_enable=YES //将虚拟用户锁定在其对应本地账户设置时的根目录下. chroot_list_file=/etc/vsftpd/chroot_list 多虚拟账户对应不同目录的VSFTP 本地用户vuser,ftpvip.虚拟账户ftp1,ftp2密码均是123.ftp1对应vuser,ftp2对应ftpvip. 修改vuser.txt,添加新的虚拟账户. [root@centos vsftpd]# vi /vuser.txt may 123 ccc 123 ftp1 123 ftp2 123 [root@centos vsftpd]# useradd -d /var/ftp/vip ftpvip 修改主conf参数,增加以下配置,填写"user_config_dir=/ftpconfig",这个就是定义不同账户对应不同目录的重要所在. pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES user_config_dir=/ftpconfig ftp1和ftp2用户的具体参数配置都需要/ftpconfig下的ftp1和ftp2文件来定义.我将已经写好的配置如下: [root@centos vsftpd]# cat /ftpconfig/ftp1 local_root=/var/ftp/vuser guest_username=vuser anon_world_readable_only=no [root@centos vsftpd]# cat /ftpconfig/ftp2 local_root=/var/ftp/vip guest_username=ftpvip anon_world_readable_only=no vsftp的含义就是Very Security Ftp,下面就简要的说一下它的配置和使用方法,通过本文的介绍也希望您能了解在Linux下配置一个网络服务的基本过程 1.相关配置文件 /etc/vsftpd.conf,vsftpd.ftpuser,vsftpd.user_list,/etc/xinetd.d/vsftpd 2.配置vsftp 主要是修改/etc/vsftpd.conf就可以了,相关参数如下: anonymous_enable=YES 是否允许匿名ftp,如否则选择NO local_enable=YES 是否允许本地用户登录 local_umask=022 默认的umask码 anon_upload_enable=YES 是否允许匿名上传文件 anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利 dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件 xferlog_enable=YES 是否记录ftp传输过程 connect_from_port_20=YES 是否确信端口传输来自20(ftp-data) chown_upload=YES chown_username=username 是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主 xferlog_file=/var/log/vsftpd.log ftp传输日志的路径和名字默认是/var/log/vsftpd.log xferlog_std_format=YES 是否使用标准的ftp xferlog模式 idle_session_timeout=600 设置默认的断开不活跃session的时间 data_connection_timeout=120 设置数据传输超时时间 nopriv_user=ftpsecure 运行vsftpd需要的非特权系统用户默认是nobody async_abor_enable=YES 是否允许运行特殊的ftp命令async ABOR.这里我翻译的不爽,原文如下: When enabled, a special FTP command known as "async ABOR" will be enabled. Only ill advised FTP clients will use this feature.Addtionally, this feature is awkward to handle, so it is dis-abled by default. Unfortunately, some FTP clients will hang when cancelling a transfer unless this feature is available, so you may wish to enable it. ascii_upload_enable=YES ascii_download_enable=YES 是否使用ascii码方式上传和下载文件 ftpd_banner=Welcome to chenlf FTP service. 定制欢迎信息 deny_email_enable=YES banned_email_file=/etc/vsftpd.banned_emails 是否允许禁止匿名用户使用某些邮件地址,如果是输入禁止的邮件地址的路径和文件名 chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 是否将系统用户限止在自己的home目录下,如果选择了yes那么chroot_list_file=/etc/vsftpd.chroot_list中列出的是不chroot的用户的列表 max_clients=Number 如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是0不限止 message_file 设置访问一个目录时获得的目录信息文件的文件名,默认是.message 没发现有限止带宽的地方,如果谁知道请告诉我,详细的帮助说明请参考man vsftpd.conf 3 配置实例 以下是我的配置文件.允许匿名FTP,允许上传,chroot用户目录,上传文件属主改为root anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES chown_uploads=YES chown_username=root xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES pam_service_name=vsftpd chroot_local_user=YES VSFTP故障排除: 匿名用户 /var/ftp 本地用户 /home/username 配置vsftpd时,强烈建议 •# cp /etc/vsftpd.conf /etc/vsftpd.conf1 //备份,vsftpd.conf是个比较苛刻的主文件,修改时不小心在有效行后加一个空格就会使服务启用失败 # diff /etc/vsftpd.conf /etc/vsftpd.conf1 //文件内容比较 •做一步,重启一下,测试 # vi /etc/vsftpd.conf anonymous_enable=YES // :7 ,匿名帐户可登陆 local_enable=YES // :10 ,本地帐户可以登陆 write_enable=YES // :13 ,用户通过ftp在服务器上是否有写权限 local_umask=022 // :17 ,创建时默认权限。文件夹=777-umask,文件=666-umask anon_upload_enable=YES // :22 ,允许匿名帐户上传 anon_mkdir_write_enable=YES // :26 ,允许匿名帐户创建文件夹 chown_uploads=YES // :41 ,开启匿名帐户上传自动更改所属功能 chown_username=bob // :42 ,属主改为bob idle_session_timeout=600 // :52 ,空闲会话超时时间 ascii_upload_enable=YES // :76 ,以ASCII方式上传 ftpd_banner=Welcome to blah FTP service. // :80 ,欢迎界面 chroot_list_enable=YES // :91 ,开启用户更改根目录功能,默认为禁用更改根 chroot_list_file=/etc/vsftpd.chroot_list // :93 ,该文件中所有用户无法更改根 查看文件其它参数 # man vsftpd.conf anon_other_write_enable=YES // 允许匿名帐户删除、重命名 anon_root=/ftp // 更改匿名帐户根目录,默认为"/var/ftp" local_root=/local // 更改本地帐户根目录为/local,默认为用户主目录~ userlist_enable=YES // 开启用户列表功能 userlist_deny=YES // 用户列表文件中所有帐户全拒绝。NO时,只有列表中用户能登陆 userlist_file=/etc/vsftpd.user_list // 用户列表文件 anon_max_rate=0 // 匿名用户最大传输速率,0为无限 local_max_rate=0 // 本地用户最大传输速率,0为无限 max_clients=0 // 最大客户端连接数,0为无限 pasv_max_port=0 // 客户端端口最大限制,0为无限制 pasv_min_port=0 // 客户端端口最小限制,0为无限制 测试: 方法一、IE(不建议) 方法二、cmd(强烈推荐),有回显提示。 ftp常用测试命令 ? 帮助 bye 退出 quit 退出 exit 退出(仅linux客户端) cd 服务器端路径更改 lcd 本地路径更改 pwd 显示服务器端当前路径 dir 显示服务器端当前目录中内容(显示权限) ls 显示服务器端当前目录中内容(在linux中使用时也显示权限) put 上传 get 下载 mkdir 建文件夹 rmdir 删除文件夹 rename 重命名 delete 删除文件 实验一、针对于本地用户的设置 1、限定只有本地帐户能登陆,匿名帐户无法登陆 2、本地帐户bob不可以更改自已主目录以外的其他目录 3、在本地帐户中只有bob能登陆,alice不能登陆 4、本地帐户可以上传文件,以ASCII方式上传 5、登陆时显示欢迎信息“Welcome to my ftp site” # vi /etc/vsftpd.conf anonymous_enable=NO // 1、:7;需改 local_enable=YES // 1、:10;默认,确认 230 Login successful. Have fun. 验证:登陆成功提示 Login failed. 验证:登陆失败提示 chroot_list_enable=YES // 2、:91;需删除开头#号注释 chroot_list_file=/etc/vsftpd.chroot_list // 2、:93;需删除开头#号注释 ftp> pwd 257 "/" 验证:成功显示 257 "/home/bob" 验证:改之前显示 userlist_enable=YES // 3、添加 userlist_deny=NO // 3、添加 userlist_file=/etc/vsftpd.user_list // 3、添加 write_enable=YES // 4、:13;默认,确认 ascii_upload_enable=YES // 4、:76;需删除开头#号注释 ftpd_banner=Welcome to my ftpsite // 5、:80;需删除开头#号注释,需修改 x: > ftp 192.168.1.201 Connected to 192.168.1.201. 220 Welcome to my ftp site 验证:未登陆提示 # echo bob >> /etc/vsftpd.user_list // 3、添加新行bob # echo bob > /etc/vsftpd.chroot_list // 2、需存在该文件 # chkconfig vsftpd on // 超级守护立即启动、开机自动启动 # service xinetd restart // 重启vsftpd服务 测试: x: > ftp linux.wnt.com.cn 实验二、针对于匿名帐户的设置 1、只有匿名帐户可以登陆 2、在FTP目录下创建incoming目录 3、允许匿名访问,但不允许在ftp目录中创建,删除 4、允许匿名用户在incoming目录中上传,创建,删除目录。 5、匿名帐户上传的文件,自动变为alice所属 6、用户空闲600秒自动中断 7、匿名帐户最大传输速率50kbytes/sec 8、客户端口连接范围50000到60000 # vi /etc/vsftpd.conf anonymous_enable=YES // 1、:7或“/anonymous” 确认 local_enable=NO // 1、:10或“/local” 修改 anon_upload_enable=YES // 4、:22或“/upload” 删除注释 anon_mkdir_write_enable=YES // 4、:26或“/mkdir” 删除注释 anon_other_write_enable=YES // 4、:27 添加 chown_uploads=YES // 5、:41或“/chown” 删除注释 chown_username=alice // 5、:42 删除注释,再修改 idle_session_timeout=600 // 6、:52或“session” 删除注释 anon_max_rate=50000 // 7、 添加 pasv_min_port=50000 // 8、 添加 pasv_max_port=60000 // 8、 添加 # mkdir /var/ftp/incoming // 2、 # chmod go+w /var/ftp/incoming // 4、 g(group)组、o(other)其它人全有写权限 # chkconfig vsftpd on ==> # service xinetd restart 实验三、针对于超级守护的安全性限制(8。0版本可配,因9。0后vsftpd改为独立守护进程不能用此方法) 1、限定192.168.1.0/24能访问 2、10.0.0.0不能访问 3、每个客户机最大连接数1 4、服务器最大连接数200 5、只有13:00到17:00期间能访问ftp服务器 # vi /etc/xinetd.d/vsftpd only_from = 192.168.1.0 // 1、添加在括号内 no_access = 10.0.0.0 // 2、添加在括号内 per_source = 1 // 3、添加在括号内 instances = 200 // 4、添加在括号内 access_times = 13:00-17:00 // 5、添加在括号内 ftp客户连接常见故障现象 现象0: > ftp: connect :连接被拒绝 原因: 服务没启动 解决: # chkconfig --level 35 vsftpd on 现象1: 500 OOPS: cannot open user list file 原因: 不存在文件“/etc/vsftpd.user_list”或文件中不存在该帐户 解决: # echo username >> /etc/vsftpd.user_list 现象2: 530 Permission denied. Login failed. 原因: “/etc/vsftpd.user_list”文件中不存在当前登陆用户 解决: # echo username >> /etc/vsftpd.user_list 现象3: 500 OOPS: cannot open chroot() user list file Login failed. 原因: 不存在文件“/etc/vsftpd.chroot_list” 解决: # echo username >> /etc/vsftpd.chroot_list 现象4: 500 OOPS: missing value in config file Connection closed by remote host. 原因: “=”等号前值有问题,或只有一个空格 解决: 修正相应的值即可,可能过 diff 来比较查找 现象5: 500 OOPS: bad bool value in config file Connection closed by remote host. 原因: “=”等号后值有问题 解决: 将“=”等号后值确认修改 现象6: 500 OOPS: unrecognised variable in config file Connection closed by remote host. 原因: 参数前有空格 解决: 将参数前空格删除 现象7、 确认存在“local_enable=YES”,但本地用户无法登陆 原因: 验证参数被误删除 解决: 添加“pam_service_name=vsftpd” 现象8、 500 OOPS: chdir 500 OOPS: child died Connection closed by remote host. 原因: 用户主目录没有权限或没有主目录 解决: 正确设置用户主目录权限 RHEL4 VSFTP安装: 实验环境:AS4最小化安装 实验目标:架设VSFTP服务器 编辑: leige_linux 2009.5.29 联系方式: http://leige.cublog.cn 使用rpm命名可顺利安装该软件包 # rpm -ivh vsftpd-2.0.1-5.i386.rpm 安装完后默认就可以启动vsftp服务了, [root@localhost ~]# service vsftpd start Starting vsftpd for vsftpd: [ OK ] 但是默认我们只能看,不能上传。 1,下面我们开启匿名用户上传 [root@localhost /]# vi /etc/vsftpd/vsftpd.conf anon_upload_enable=YES anon_mkdir_write_enable=YES [root@localhost /]# service vsftpd restart Shutting down vsftpd: [ OK ] Starting vsftpd for vsftpd: [ OK ] 2,将FTP本地用户禁锢在宿主目录中 ,在vsftpd.conf文件中添加设置项 chroot_local_user=YES 重新启动vsftpd服务,# service vsftpd restart 3.建立虚拟帐号 a,建立虚拟用户口令库文件 [root@localhost ~]# cat logins.txt mike 123 john 321 口令库文件中奇数行设置用户名,偶数行设置口令 b,生成vsftpd的认证文件(在第3张光盘中安装) [root@localhost RPMS]# rpm -ivh db4-utils-4.2.52-7.1.i386.rpm warning: db4-utils-4.2.52-7.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] 1:db4-utils ########################################### [100%] [root@localhost RPMS]# db_load -T -t hash -f /root/logins.txt /etc/vsftpd/vsftpd_login.db 生成认证文件 c, 设置认证文件只对用户可读可写 # chmod 600 /etc/vsftpd/vsftpd_login.db d,建立虚拟用户所需的PAM配置文件 手工建立vsftpd.vu文件 # cat /etc/pam.d/vsftpd.vu auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login e,建立虚拟用户及要访问的目录并设置相应的权限 建立所有FTP虚拟用户帐号使用的系统用户帐号,并设置该帐号宿主目录的权限 # useradd -d /home/ftpsite virtual # chmod 700 /home/ftpsite f,设置vsftpd.conf配置文件 在配置文件中添加虚拟用户的配置内容 guest_enable=YES guest_username=virtual pam_service_name=vsftpd.vu 重新启动vsftpd服务程序 g,对vsftpd.conf文件修改后需要重新启动vsftpd服务程序 # service vsftpd restart 现在就应该可以用虚拟帐号登陆了, 4,对虚拟用户设置不同的权限 设置主配置文件 在vsftpd.conf文件中添加用户配置文件目录设置 user_config_dir=/etc/vsftpd_user_conf 建立用户配置文件目录 使用mkdir命令建立用户配置文件目录 # mkdir /etc/vsftpd_user_conf 为虚拟用户建立单独的配置文件 用户配置文件名称与用户名相同 /etc/vsftpd_user_conf/mike /etc/vsftpd_user_conf/john 里面的内容如下: anon_world_readable_only=NO 表示用户可以浏览FTP目录和下载文件 anon_upload_enable=YES 表示用户可以上传文件 anon_mkdir_write_enable=YES 表示用户具有建立和删除目录的权限 anon_other_write_enable=YES 表示用户具有文件改名和删除文件的权限 没有的配置项默认按照vsftpd.conf的配置内容 5,FTP服务器的资源限制 max_clients=100 允许最大的客户端连接数 max_per_ip=5 同一IP最大客户端的连接数 local_max_rate=5000000 设置本地用户最大传输数率 anon_max_rate=2000000 匿名用户最大的传输数率 虚拟用户: 一:基本知识 1:虚拟用户:与系统无关联,不能登入系统,只能访问FTP服务器 2:vsftp的服务进程是vsftpd 3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf . 4:vsftpd的用户文件是/etc/vsftpd/ftpusers 5:vsftpd的用户文件是/etc/vsftpd/user_list 6:推荐使用虚拟用户登入vs-FTP服务器 二:建立虚拟用户的过程 1:创建虚拟用户文本文件,添加虚拟用户和密码 touch /etc/vsftpd/vuser.txt mike 123456 john 123456 2:生成虚拟数据库文件 db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db 3:配置PAM文件,目的是对客户端进行验证 编辑/etc/pam.d/vsftpd文件,批注所有内容,后添加: auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser 4:修改虚拟数据库文件vuser.db的权限为 700 chmod 777 vuser.db 5:增加一个实体用户vuser ,使用它来对应所有虚拟用户,虚拟用户使用实体用户来访问ftp服务器。 useradd -d /var/ftp/vuser vuser mkdir /var/ftp/vuser chown vuser.vuser /var/ftp/vuser 6:修改vsftpd.conf配置文件,使虚拟用户可以访问vsftpd服务器 guest_enable=YES ####激活虚拟账户 guest_username=vuser ####把虚拟账户绑定为实体账户vuser pam_service_name=vsftpd ####使用PAM验证 7:使用虚拟用户mike成功访问ftp服务器 三:控制虚拟用户的访问 1:设置虚拟用户的主配置文件,编辑vsftpd.conf文件,激活: user_config_dir=/etc/vsftpd/vsftpd_user_conf 2: 建立vsftpd_user_conf mkdir /etc/vsftpd/vsftpd_user_conf 3:设置虚拟用户配置文件,与虚拟账户同名 touch /etc/vsftpd/vsftpd_user_conf/mike 4:编辑虚拟账户mike的配置文件mike,是虚拟账户mike获得相应的权限 anon_world_readable_only=NO ###浏览FTP目录和下载 anon_upload_enable=YES ###上传 anon_mkdir_write_enable=YES ###建立和删除目录 anon_other_write_enable=YES ####改名和删除文件 Linux FTP服务配置主要涉及到的是VSFTP服务器的配置,VSFTPd(Very Secure FTP Daemon)是一个安全的FTP服务器,提供对匿名用户和本地用户的不同访问权限控制。配置文件位于`/etc/vsftpd/vsftpd.conf`,其中包含了许多关键参数用于定制FTP服务器的行为。 1. **匿名用户访问**: - `anonymous_enable`: 控制是否允许匿名用户访问,`yes`表示允许,`no`则禁止。 - `anon_upload_enable`: 设置匿名用户是否可以上传文件,`yes`为允许,`no`为禁止。 - `anon_mkdir_write_enable`: 是否允许匿名用户创建目录,`yes`为允许,`no`为禁止。 - `anon_other_write_enable`: 控制匿名用户是否有删除和重命名文件的权限,`yes`为允许,`no`为禁止。 - `anon_root`: 设置匿名用户的根目录,例如`/var/ftp`。 2. **本地用户访问**: - `local_enable`: 是否允许本地用户登录,`yes`为允许,`no`为禁止。 - `write_enable`: 设置全局是否允许写入,`yes`为允许,`no`为禁止。 - `chroot_local_user`: 是否将所有本地用户限制在他们的家目录中,`yes`为限制,`no`为不限制。 - `chroot_list_enable`: 是否启用锁定列表,`yes`为启用,`no`为禁用。 - `chroot_list_file`: 存储不受chroot限制的用户列表文件的位置。 3. **权限和速率限制**: - `max_clients`: 设置最大并发连接数。 - `anon_max_rate` 和 `local_max_rate`: 分别设置匿名用户和本地用户的上传/下载速率上限。 - `max_per_ip`: 每个IP的最大连接数。 4. **其他设置**: - `listen_port`: 定义FTP服务器监听的端口号,例如设置为22。 - `chown_uploads` 和 `chown_username`: 设置匿名用户上传文件的所有者。 在配置过程中,可以创建新的本地用户如`ftp1`,并设置其登录脚本为`/sbin/nologin`,限制其目录权限,例如设置`local_root`,并根据需求调整速率限制。同时,为了安全考虑,可能需要关闭SSH服务(默认使用22端口)并重启VSFTPd服务。 在客户端测试时,可以使用FTP客户端工具(如FlashFXP)连接服务器,验证配置是否正确。例如,测试`ftp1`用户的上传和下载速度,以及匿名用户的访问权限。 为了确保安全,还应根据实际需要配置文件和目录的权限,比如设置`/var/ftp/pub`为777,使得所有用户都能读写。此外,可以使用`chroot_list`文件来锁定特定用户的根目录,限制他们访问系统其他部分。 VSFTPd的配置是一个细致的过程,需要根据实际情况调整各项参数,以满足安全性和功能性的需求。理解每个参数的含义并合理设置,是构建一个稳定且安全的FTP服务的关键。
相关推荐
吴雄辉