centos6.5配置FTP服务器.doc_第1页
centos6.5配置FTP服务器.doc_第2页
centos6.5配置FTP服务器.doc_第3页
centos6.5配置FTP服务器.doc_第4页
centos6.5配置FTP服务器.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Centos 6.5 安装配置FTP服务器1、检查是否已经安装vsftprpm -qa | grep vsftpd出现 vsftpd-.-* 说明已经安装安装vsftpd通过yum安装: yum -y install vsftpd 通过rpm安装: rpm -ivh vsftpd-.-*.rpm测试是否安装成功: service vsftpd start设置开机启动: chkconfig vsftpd on关闭selinux修改配置文件: vim /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled.修改vsftpd配置文件vim /etc/vsftpd/vsftpd.conf找到并修改如下内容:anonymous_enable=NO (是否允许匿名)将底下三行#chroot_list_enable=YES# (default follows)#chroot_list_file=/etc/vsftpd.chroot_list改为chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list保存退出添加FTP用户新增FTP用户”ftpuser”: useradd -d /home/ftp -s /sbin/nologin ftpuser -s:禁止登录SSH权限设置用户”ftpuser”的密码:passwd ftpuser (根据提示输入密码)编辑文件chroot_list:vi /etc/vsftpd/chroot_list内容为ftp用户名,每个用户占一行,如:peterjohn添加防火墙规则vi /etc/sysconfig/iptables1、开放21、20端口# iptables -A INPUT -p tcp -dport 20 -j ACCEPT# iptables -A INPUT -p tcp -dport 21 -j ACCEPT如果OUTPUT默认也是DROP,那么还需要添加一下规则。# iptables -A OUTPUT -p tcp -sport 20 -j ACCEPT2、接受所有状态为ESTABLISHED、RELATED的连接# iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT有关related状态的说明:RELATED状态在有双通道的服务中会出现的。比如ftp服务的控制通道和数据通道。client发送syn请求到server的21端口,中间的linux系统变为NEW状态。server回复syn+ack应答包给client,中间的linux变为ESTABLISHED状态。当ftp的控制通道建立完后,会建立数据通道,而数据通道的第一个包就是RELATED状态,以后的包又变成ESTABLISHED状态。3、配置iptables# vi /etc/sysconfig/iptables-config找到IPTABLES_MODULES,取消注释,添加ip_conntrack_ftp模块,保存。ip_conntrack_ftp模块可以让iptables支持被动模式的ftp连接。IPTABLES_MODULES=ip_conntrack_ftp4、保存iptables规则、重启。service iptables restart重启vsftpdservice vsftpd restart访问FTP使用本地PC访问 :ftp:/服务器ip 也可以通过 FileZilla等工具访问安装完成+vsftpd 文件布局/etc/vsftpd/vsftpd.conf 主配置文件/usr/sbin/vsftpd 主程序/etc/rc.d/init.d/vsftpd 启动脚本/etc/pam.d/vsftpd PAM认证文件/etc/vsftpd.ftpusers 禁止使用vsftpd的用户列表文件/etc/vsftpd.user_list 禁止或允许使用vsftpd用户列表文件/var/ftp 匿名用户主目录/var/ftp/pub 匿名用户下载目录/etc/logrotate.d/vsftpd.log 日志文件 +二.系统帐户1.建立Vsftpd服务的宿主用户:rootlocalhost# adduser -d /data guest -s /sbin/nologin默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要。这里建立名字为vsftpd的用户,用他来作为支持Vsftpd的建立Vsftpd虚拟宿主用户: nowhere# useradd virtusers -s /sbin/nologin+三 、vsftpd的配置#anonymous_enable=YESanonymous_enable=NO 设定不允许匿名访问local_enable=YES 设定本地用户可以访问。注意:如果该项目设定为NO那么所有虚拟用户将无法访问。write_enable=YES 设定可以进行写操作。local_umask=022 设定上传后文件的权限掩码。anon_upload_enable=NO 禁止匿名用户上传。anon_mkdir_write_enable=NO 禁止匿名用户建立目录。dirmessage_enable=YES 设定开启目录标语功能。xferlog_enable=YES 设定开启日志记录功能。connect_from_port_20=YES 设定端口20进行数据连接。chown_uploads=NO 设定禁止上传文件更改宿主。chroot_local_user=YES 设定登陆后.只可以访问自己的属主目录.不可访问上一层目录文件xferlog_file=/var/log/vsftpd.log 设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败。xferlog_std_format=YES 设定日志使用标准的记录格式idle_session_timeout=600 设定空闲连接超时时间,这里使用默认。data_connection_timeout=120 设定单次最大连续传输时间,这里使用默认nopriv_user=vsftpd 设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题 比如日志文件就必须给与该用户写入权限等。async_abor_enable=YES 设定支持异步传输功能。ascii_upload_enable=YESascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。ftpd_banner=Welcome to blah FTP service _ 设定Vsftpd的登陆标语。chroot_list_enable=NO 禁止用户登出自己的FTP主目录。ls_recurse_enable=NO 禁止用户登陆FTP后使用ls -R的命令。该命令会对服务器性能造成巨大开销。如果该项被允许,那么挡多用户同时使用该命 令时将会对该服务器造成威胁。listen=YES 设定该Vsftpd服务工作在StandAlone模式下。pam_service_name=vsftpd 设定PAM服务下Vsftpd的验证配置文件名。userlist_enable=YES 设定userlist_file中的用户将不得使用FTP。tcp_wrappers=YES 服务器使用tcp_wrappers作为主机的访问控制方式。以下这些是关于Vsftpd虚拟用户支持的重要配置项目。默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置。guest_enable=YES 设定启用虚拟用户功能。guest_username=virtusers 指定虚拟用户的宿主用户。virtual_use_local_privs=YES 设定虚拟用户的权限符合他们的宿主用户。user_config_dir=/etc/vsftpd/vconf 设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。保存退出。max_clients= 99 服务器的最大并发数max_per_ip=5 用户最大线程数anon_max_rate=1000000 设置本底账号最大传输率为1Mbps禁止某些IP段得主机匿名访问服务器tcp_wrappers=YES 编辑 /etc/hosts.allow增加 vsftpd:1:DENY查看ftp日志xferlog_enable=YES 上传和下载日志文件记录 /var/log/vsftpd.logxferlog_std_format=YES 传输日志文件将以标准xferlog的格式书写 /var/log/xferlogxferlog_file= /var/log/xferlogdual_log_enable=YESvsftpd_log_file=/var/log/vsftpd.log通过本底数据文件实现虚拟用户访问安装db4-utilsyum install db4-utils创建本地映射用户,修改本底映射用户目录权限useradd -d /data/ftp/temp -s /sbin/nologin gamechmod o=rwx /data/ftp/temp修改 /etc/vsftpd/vsftpd.confguest_enable=YESguest_username=zqgamexw生成虚拟用户文件/etc/vsftpd/vsftpuser.txttest001 虚拟user123456 虚拟passwd生成虚拟用户数据文件db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db修改生成的用户数据文件权限 chmod 600 /etc/vsftpd/vsftpuser.db修改PAM 认证文件 /etc/pam.d/vsftpd 注销原有内容后添加auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuseraccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuse建立Vsftpd的日志文件,并更该属主为Vsftpd的服务宿主用户:rootlocalhost# touch /var/log/vsftpd.logrootlocalhost# chown vsftpd.vsftpd /var/log/vsftpd.log建立虚拟用户配置文件存放路径:rootlocalhost# mkdir /etc/vsftpd/vconf/制作虚拟用户数据库文件先建立虚拟用户名单文件:rootlocalhost# touch /etc/vsftpd/virtusers建立了一个虚拟用户名单文件,这个文件就是来记录vsftpd虚拟用户的用户名和口令的数据文件,这里给它命名为virtusers。为了避免文件的混乱,我把这个名单文件就放置在/etc/vsftpd/下。编辑虚拟用户名单文件:rootlocalhost# vi /etc/vsftpd/virtusers-ftp001123456ftp002123456ftp003123456-编辑这个虚拟用户名单文件,在其中加入用户的用户名和口令信息。格式很简单:“一行用户名,一行口令”。3.生成虚拟用户数据文件:rootlocalhost# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db4.察看生成的虚拟用户数据文件rootlocalhost# ll /etc/vsftpd/virtusers.db-rw-r-r- 1 root root 12288 Sep 16 03:51 /etc/vsftpd/virtusers.db需要特别注意的是,以后再要添加虚拟用户的时候,只需要按照“一行用户名,一行口令”的格式将新用户名和口令添加进虚拟用户名单文件。但是光这样做还不够,不会生效的哦!还要再执行一遍“ db_load -T -t hash -f 虚拟用户名单文件虚拟用户数据库文件.db ”的命令使其生效才可以!设定PAM验证文件,并指定虚拟用户数据库文件进行读取1.察看原来的Vsftp的PAM验证配置文件:rootlocalhost# cat /etc/pam.d/vsftpd-#%PAM-1.0session optional pam_keyinit.so force revokeauth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers nerr=succeedauth required pam_shells.soauth include system-authaccount include system-authsession include system-authsession required pam_loginuid.so-2.在编辑前做好备份:rootlocalhost# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup3.编辑Vsftpd的PAM验证配置文件rootlocalhost# vi /etc/pam.d/vsftpd-#%PAM-1.0auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusersaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers以上两条是手动添加的,上面的全部加#注释了.内容是对虚拟用户的安全和帐户权限进行验证。!这里有个要注意说明的:如果系统是64位系统在这里的所有lib后面要加入64!如下这样才可以:#%PAM-1.0auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusersaccount required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers五.虚拟用户的配置1.规划好虚拟用户的主路径:rootlocalhost# mkdir /opt/vsftp/ 2.建立测试用户的FTP用户目录:rootlocalhost# mkdir /opt/vsftp/ftp001 /opt/vsftp/ftp002 /opt/vsftp/ftp0033.建立虚拟用户配置文件模版: rootlocalhost# cp /etc/vsftpd/vsftpd.conf.backup /etc/vsftpd/vconf/vconf.tMP4.定制虚拟用户模版配置文件:rootlocalhost# vi /etc/vsftpd/vconf/vconf.tmp-local_root=/opt/vsftp/virtuservirtuser 这个就是以后要指定虚拟的具体主路径。anonymous_enable=NO设定不允许匿名用户访问。write_enable=YES设定允许写操作。local_umask=022设定上传文件权限掩码。anon_upload_enable=NO设定不允许匿名用户上传。anon_mkdir_write_enable=NO设定不允许匿名用户建立目录。idle_session_timeout=600 (根据用户要求.可选)设定空闲连接超时时间。data_connection_timeout=120设定单次连续传输最大时间。max_clients=10 (根据用户要求.可选)设定并发客户端访问个数。max_per_ip=5 (根据用户要求.可选)设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件。local_max_rate=50000 (根据用户要求.可选)设定该用户的最大传输速率,单位b/s。pam_service_name=vsftpdchroot_local_user=YES-这里将原vsftpd.conf配置文件经过简化后保存作为虚拟用户配置文件的模版。这里将并不需要指定太多的配置内容,主要的框架和限制交由Vsftpd的主配置文件vsftpd.conf来定义,即虚拟用户配置文件当中没有提到的配置项目将参考主配置文件中的设定。而在这里作为虚拟用户的配置文件模版只需要留一些和用户流量控制,访问方式控制的配置项目就可以了。这里的关键项是local_root这个配置,用来指定这个虚拟用户的FTP主路径。5.更改虚拟用户的主目录的属主为虚拟宿主用户:rootlocalhost# chown -R virtusers.virtusers /opt/vsftp/6.检查权限:rootlocalhost# ll /opt/vsftp/total 24drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:14 ftp001drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:00 ftp002drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:00 ftp003.给测试用户定制:1.从虚拟用户模版配置文件复制:rootlocalhost# cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/ftp001 2.针对具体用户进行定制:rootlocalhost# vi /etc/vsftpd/vconf/ftp001- local_root=/opt/vsftp/ftp001 (FTP用户ftp001 的登陆目录文件)anonymous_enable=NOwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOidle_session_timeout=300data_connection_timeout=90max_clients=1max_per_ip=1local_max_rate=25000pam_service_name=vsftpdchroot_local_user=YES-七.启动服务:rootlocalhost# service vsftpd startStarting vsftpd for vsftpd: OK 八.测试:1.在虚拟用户目录中预先放入文件:rootlocalhost# touch /opt/vsftp/ftp001/test.txt2.从其他机器作为客户端登陆FTP:可以IE或FTP客户端软直接访问ie里输入 (服务器IP)弹出对话框后.输入FTP用户名和密码-注意:在/etc/vsftpd/vsftpd.conf中,local_enable的选项必须打开为Yes,使得虚拟用户的访问成为可能,否则会出现以下现象:-rootlocalhost# ftpftp open 2Connected to 2.500 OOPS: vsftpd: both local and anonymous access disabled!-原因:虚拟用户再丰富,其实也是基于它们的宿主用户virtusers的,如果virtusers这个虚拟用户的宿主被限制住了,那么虚拟用户也将受到限制。补充:1.要查看服务器自带的防火墙有无挡住FTP 21端口 导致不能访问2.查看 SELinux 禁用没有.要禁用3.500 OOPS:错误 有可能是你的vsftpd.con配置文件中有不能被实别的命令,还有一种可能是命令的YES 或 NO 后面有空格。4.要仔细查看各个用到的文件夹权限,及用户属主权限等1 如何新加FTP用户打开密码文件里加入(一行是用户.一是密码.依次类推)#vi /etc/vsftpd/virtusers加入用户后 保存退出#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db (然后生成新的虚拟用数据文件)#cp /etc/vsftpd/vconf/vconf.tmp d (新建d用户,用虚拟用户模板vconf.tmp文件生成d虚拟用户文件)#vi /etc/vsftpd/vconf/d (打开D虚拟用户文件.在第一行最后加入该用户对应的FTP目录)#mkdir /opt/vsftp/WWW (新建WWW目录为d FTP用户登陆目录)#service vsftpd restart-2 如何修改FTP 用户登陆密码打开密码文件里加入(第一行是用户.第二是密码.依次类推,只要改对应用户下面的密码即可)#vi /etc/vsftpd/virtusers #db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db (然后生成新的虚拟用数据文件)#service vsftpd restart1 安装并启动服务 #rpm qa | grep vsftpd ;查看是否安装vsftpd服务#yum install vsftpd ;安装vsftpd服务/etc/init.d/vsftpd start ;启动服务#chkconfig vsftpd on ;让系统服务随着系统启动而启动配置相关文档:#vi /etc/vsftpd/vsftpd.conf复制代码禁止匿名用户访问:anonymous_enable=YES,将YES改为NO在文件末尾加如下的设置:pasv_enable=YES ;允许被动模式pasv_min_port=10000 ;被动模式使用端口范围pasv_max_port=10010local_max_rate=200000 ;用户宽带限制chroot_local_user=YES ;禁用户离开主目录注意:设置pasv端口后,需要修改防火墙,如在centOs里,修改如下:iptables -A RH-Firewall-1-INPUT -p tcp -dport 10000:10010 -j ACCEPT2 添加虚拟主机用户添加用户edwin, 用户目录指定为/var/www/ftp/edwin,且此用户不能登陆系统.#mkdir /var/www/ftp/edwin#useradd s /sbin/nologin -g ftp d /var/www/ftp/edwin edwin注-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/var/www/#passwd edwin 这是我设置的密码#chown R edwin:ftp /var/www/ftp/edwin四, VsFTPd相关的配置详解1.匿名用户相关设置anonymous_enable=YES ,将YES改为NO, 禁止匿名用户登陆#non_mkdir_write_enable=YES ,将#注释去掉,允许匿名用户创建目录#non_upload_enalbe=YES ,将#去掉,允许匿名用户上传anon_world_readable_only=YES ,允许匿名用户下载,默认是禁止的,这个可以自行添加。Anon_other_write_enable=YES ,将其设为YES的话,就除了上传和创建目录外,还可以重命名,删除文件,默认是NOno_anon_password=NO ,将其设为YES,匿名用户不会查询用户密码直接登陆。ftp_username=ftp ,匿名用户登陆系统的账号默认为ftp,此项最好不要改,否则设置不当会给系统的安全带来威胁。2.FTP服务端口的指定listen_port=8021 ,指定命令通道为8021,默认为21listen_data_port=8020 ,指定数据通道为8020,默认为203.上传模式的设置pasv_enable=YES ,是否允使用被动模式,默认是允许的。pasv_min_port=10000 ,指定使用被动模式时打开端口的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论