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

下载本文档

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

文档简介

RHEL5.4配置FTP服务下面是关于在linux下配置FTP服务的讨论,FTP介绍FTP全名是File Transfer Protocol(文件传输协议)FTP可以跨越平台,也可以运行在Internet上面,在linux下面FTP可以通过很多软件来实现,我们linux下面最常用的FTP服务器架设使用vsftpd软件。Vsftpd是一个基于GPL发布的FTP服务器软件,其中vs是指very secure的缩写,由此可以看出,本软件的的初衷是为了服务的安全。FTP也是红帽的默认安装的服务器软件。下面是关于FTP这个服务的属性FTP的相关软件包VsftpdFTP的守护进程/usr/sbin/vsftpdFTP的脚本/etc/init.d/vsftpdFTP的端口21(ftp) 20(ftp-data)FTP的配置文件/etc/vsftpd/vsftpd.conf下面来具体搭建FTP服务安装软件包rootlocalhost # rootlocalhost # yum -y install vsftpdLoaded plugins: rhnplugin, securityThis system is not registered with RHN.RHN support will be disabled.Setting up Install ProcessResolving Dependencies- Running transaction check- Package vsftpd.i386 0:2.0.5-16.el5 set to be updated- Finished Dependency ResolutionDependencies Resolved= Package Arch Version Repository Size=Installing: vsftpd i386 2.0.5-16.el5 Server 140 kTransaction Summary=Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 140 kDownloading Packages:vsftpd-2.0.5-16.el5.i386.rpm | 140 kB 00:00 Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Installing : vsftpd 1/1 Installed: vsftpd.i386 0:2.0.5-16.el5 Complete!rootlocalhost #FTP的软件包就安装成功了,安装完FTP服务以后,系统会自动创建/var/ftp/pub这个目录。rootlocalhost # rootlocalhost # ls -ld /var/ftp/pub/drwxr-xr-x 9 root root 4096 Mar 18 13:00 /var/ftp/pub/rootlocalhost #的确是有这个目录的,并且权限为755。现在我们启动FTP服务,rootlocalhost # rootlocalhost # service vsftpd restartShutting down vsftpd: OK Starting vsftpd for vsftpd: OK rootlocalhost #OK,服务启动成功,默认情况下,当启动FTP服务后,我们不需要做任何配置,FTP服务是可以工作的,并且可以正常访问。在linux下面访问FTP服务的客户端工具一般使用这两个工具#lftp 54 #ftp 54这两个工具的区别是lftp默认就是使用匿名的身份来访问FTP服务的,支持补齐。ftp工具访问的时候需要输入用户名和密码,而且不支持补齐。rootlocalhost # rootlocalhost # lftp 54lftp 54: lsdrwxr-xr-x 9 0 0 4096 Mar 18 05:00 publftp 54:/ cd pub/lftp 54:/pub lsdrwxr-xr-x 3 0 0 4096Aug 19 2009 Clusterdrwxr-xr-x 3 0 0 4096Aug 19 2009 ClusterStoragedrwxr-xr-x 3 0 0 143360 Aug 19 2009 Serverdrwxr-xr-x 3 0 0 4096 Aug 19 2009 VT-rw-r-r- 1 0 0 9244672Aug 19 2009 boot.iso-rw- 1 0 0 843Mar 18 05:00 grub.confdrwxr-xr-x 4 0 0 4096 Aug 19 2009 imagesdrwxr-xr-x 2 0 0 4096 Aug 19 2009 isolinux-rw-r-r- 1 0 0 661 Mar 18 05:00 server.repodrwxrwxrwx 7 0 0 4096 Feb 23 13:14 toolslftp 54:/pubOK,FTP服务可以正常的访问,我们并没有做任何的配置。现在我们来查看一下FTP服务的配置文件,rootlocalhost # rootlocalhost # vim /etc/vsftpd/vsftpd.conf关于/etc/vsftpd/vsftpd.conf这个文件里面的参数解释,anonymous_enable=YES这个代表是否允许匿名用户访问,默认是允许的。local_enable=YES这个是代表是否允许本地用户访问,默认是允许的。write_enable=YES这个是代表所有用户是否有上传的权限,默认是有的。local_umask=022这个是代表本地用户上传的umask值是022,默认也是022。anon_umask=077这个是代表匿名用户上传的umask值是077,默认也是077。anon_upload_enable=YES这个是代表匿名用户是否有上传的权限,默认是没有的。anon_mkdir_write_enable=YES这个是代表匿名用户是否可以在共享目录中建立文件夹的权限,默认是没有的。dirmessage_enable=YES是否显示该目录的说明文件,默认是开启的。xferlog_enable=YES是否激活日志文件,默认是支持的。connect_from_port_20=YES是否启用20号端口,默认是开启的。chown_uploads=YESchown_username=root这个是代表匿名用户上传的文件的拥有人是root,默认是关闭的。ascii_upload_enable=YES这个是代表是否允许用户可以上传一个二进制文件,默认是不允许的。ascii_download_enable=YES这个是代表是否允许用户可以下载一个二进制文件,默认是不允许的。chroot_list_enable=YES这个是代表是否开启chroot的环境,默认没有开启。chroot_list_file=/etc/vsftpd/chroot_list这个是代表写在/etc/vsftpd/chroot_list文件里面的用户是不可以出chroot环境的。默认是可以的。Chroot_local_user=YES这个是代表所有写在/etc/vsftpd/chroot_list文件里面的用户是可以出chroot环境的,和上面的相反。现在我们开始做试验,1. 如何实现匿名用户可以有上传的权限要想实现匿名用户有上传的权限,必须开启匿名用户可以访问的权限。anonymous_enable=YES必须开启这个功能。首先我们必须开启匿名用户上传的权限和创建子目录的权限。anon_upload_enable=YESOK,现在我们重启下服务,试试匿名用户能否上传。rootlocalhost # rootlocalhost # service vsftpd restartShutting down vsftpd: OK Starting vsftpd for vsftpd: OK rootlocalhost #OK,服务启动成功。我们来尝试下,rootlocalhost # rootlocalhost # lftp 54lftp 54: lsdrwxr-xr-x 9 0 0 4096 Mar 18 05:00 publftp 54:/ cd pub/lftp 54:/pub put /etc/inittab put: Access failed: 553 Could not create file. (inittab)lftp 54:/pub我们的匿名用户并不可以上传啊,我们看下/var/ftp/pub这个目录的权限,rootlocalhost # rootlocalhost # ls -ld /var/ftp/pub/drwxr-xr-x 9 root root 4096 Mar 18 13:00 /var/ftp/pub/rootlocalhost #/var/ftp/pub这个目录的权限是755。而我们的匿名用户使用的ftp的身份来访问的。所以匿名用户对/var/ftp/pub这个目录是没有写的权限的。现在我们改变/var/ftp/pub这个目录的权限,rootlocalhost # rootlocalhost # chmod 777 /var/ftp/pub/rootlocalhost # rootlocalhost # ls -ld /var/ftp/pub/drwxrwxrwx 9 root root 4096 Mar1813:00/var/ftp/pub/rootlocalhost #现在我们将/var/ftp/pub这个目录的权限设置成了777,也就是说现在匿名用户对这个目录是有写的权限的。现在我们在来尝试下能否上传文件,rootlocalhost # rootlocalhost # lftp 54lftp 54: lftp 54: lsdrwxrwxrwx 9 0 0 4096 Mar 18 06:59 publftp 54:/ cd pub/lftp 54:/pub put /etc/inittab put: Access failed: 553 Could not create file. (inittab)lftp 54:/pub可以看到,现在匿名用户还是不能够上传文件。这个为什么呢,不过现在selinux跳出来了,很可能是selinux的原因。现在我们来测试下是不是selinux阻挡了我。rootlocalhost # rootlocalhost # getenforce Enforcingrootlocalhost # setenforce 0rootlocalhost # getenforce Permissiverootlocalhost # lftp 54lftp 54: lsdrwxrwxrwx 9 0 0 4096 Mar 18 06:59 publftp 54:/ cd pub/lftp 54:/pub put /etc/inittab 1666 bytes transferred lftp 54:/pubOK,当我们吧selinux设置为警告模式的时候,我们就可以上传了。现在就可以得到结论,就是selinux将我们阻挡了。现在我们就来解决selinux的问题。这个时候selinux的黄色五角星也已经跳了出来,也给我们提供了解决方法。rootlocalhost # rootlocalhost # getsebool -a | grep ftpallow_ftpd_anon_write - offallow_ftpd_full_access - offallow_ftpd_use_cifs - offallow_ftpd_use_nfs - offallow_tftp_anon_write - offftp_home_dir - offftpd_connect_db - offftpd_disable_trans - offftpd_is_daemon - onhttpd_enable_ftp_server - offtftpd_disable_trans - offrootlocalhost #可以看到,允许匿名用户上传的给关闭的了。现在我们设置布尔值,rootlocalhost # rootlocalhost # setsebool -P allow_ftpd_anon_write=1rootlocalhost # rootlocalhost # getsebool -a | grep allow_ftpd_anonallow_ftpd_anon_write - onrootlocalhost #OK,允许匿名用户的上传就给打开了。但是还有一点,/var/ftp/pub的context值是不正确的,现在我们必须调整这个/var/ftp/pub目录的context值。rootlocalhost # rootlocalhost # ls -ldZ /var/ftp/pub/drwxrwxrwx root root system_u:object_r:public_content_t /var/ftp/pub/rootlocalhost # rootlocalhost # chcon -R -t public_content_rw_t /var/ftp/pub/rootlocalhost # rootlocalhost # ls -ldZ /var/ftp/pub/drwxrwxrwx root root system_u:object_r:public_content_rw_t /var/ftp/pub/rootlocalhost #Selinux的问题就解决了,现在我们再来上传文件,rootlocalhost # rootlocalhost # lftp 54lftp 54: lsdrwxrwxrwx 9 0 0 4096 Mar 18 07:22 publftp 54:/ cd pub/lftp 54:/pub put /etc/inittab 1666 bytes transferred lftp 54:/pub ls inittab -rw- 1 14 50 1666 Mar 18 07:23 inittablftp 54:/pubOK,到目前为止,我们的匿名用户就可以上传文件了。总结一下,如果想要开放匿名用户的上传文件的权限,1,开启目录自身的权限2,开启服务控制的权限3,解决selinux的问题2.如何实现匿名用户创建子目录的权限首先我们必须开启匿名用户创建子目录的权限,anon_mkdir_write_enable=YESrootlocalhost # rootlocalhost # lftp 54lftp 54: lsdrwxrwxrwx 9 0 0 4096 Mar 18 07:23 publftp 54:/ cd pub/lftp 54:/pub mkdir testmkdir ok, test created lftp 54:/pub ls | grep testdrwx- 2 14 50 4096 Mar 18 07:27 testlftp 54:/pubOK,是可以创建目录的。那么我们匿名用户上传的文件匿名用户可以删除和下载吗?rootlocalhost # rootlocalhost # lftp 54lftp 54: lsdrwxrwxrwx 10 0 0 4096 Mar 18 07:27 publftp 54:/ cd pub/lftp 54:/pub rm inittab rm: Access failed: 550 Permission denied. (inittab)lftp 54:/publftp 54:/pub get inittab get: Access failed: 550 Failed to open file. (inittab)lftp 54:/pub可以看到,匿名用户上传的文件匿名用户是不可以删除的。也不可以被下载,这个就是vsftpd的安全性的体现。3.如何将用户锁定在自己home目录里面呢?rootlocalhost # rootlocalhost # lftp 54lftp 54: user user1Password: lftp user154: cd .cd ok, cwd=/home/user1/. lftp user154:/. lslftp user154:/. cd . cd ok, cwd=/lftp user154:/ ls drwxr-xr-x 2 0 0 4096 Mar 13 05:35 bindrwxr-xr-x 11 0 0 4040 Mar 18 04:21 devdrwxr-xr-x 96 0 0 12288 Mar 18 05:10 etcdrwxr-xr-x 4 0 0 1024 Mar 08 06:22 homedrwxr-xr-x 13 0 0 4096 Mar 18 03:56 libdrwxr-xr-x 2 0 0 0 Mar 18 04:21 miscdrwxr-xr-x 2 0 0 0 Mar 18 04:21 netdrwxr-xr-x 2 0 0 4096 Aug08 2008 optdr-xr-xr-x 169 0 0 0 Mar 18 04:20 procdrwxr-x- 21 0 0 4096 Mar 18 07:32 rootdrwxr-xr-x 2 0 0 12288Mar 13 05:35 sbindrwxr-xr-x 4 0 0 0 Mar 18 04:20 selinuxdrwxr-xr-x 2 0 0 4096 Aug08 2008 srvdrwxr-xr-x 11 0 0 0 Mar 18 04:20 sysdrwxrwxrwt 50 0 4096 Mar 1807:36 tmpdrwxr-xr-x 14 0 0 4096 Mar 05 18:09usrdrwxr-xr-x 25 0 0 4096 Mar 06 12:16 varlftp user154:/我们可以看到,user1通过ftp服务把我们系统中根下面的目录都给列出来了,这样是非常不安全的,所以很有必要将用户锁定在自己的home目录里面。我们必须在/etc/vsftpd/vsftpd.conf文件里面进行定义,chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list这个/etc/vsftpd/chroot_list文件必须存在,而且写在这个文件里面的用户是不可以跑出自己的home目录的。现在我们在/etc/vsftpd/chroot_list这个文件里面写入user1这个用户,OK,现在我们重启下服务,rootlocalhost # rootlocalhost # service vsftpd restartShutting down vsftpd: OK Starting vsftpd for vsftpd: OK rootlocalhost #OK,服务启动成功,测试下。rootlocalhost # rootlocalhost # lftp 54lftp 54: user user1Password: lftp user154: lslftp user154:/ cd .lftp user154:/ lslftp user154:/ cd .lftp user154:/ lslftp user154:/可以看到,这个user1的确跑不出自己的home目录了。我们知道写在/etc/vsftpd/chroot_list这个文件里面的用户是不可以跑出自己的home目录的。那么如果有很多用户呢,我们是不是还需要把所有的用户的都写在/etc/vsftpd/chroot_list这个文件里面呢,显然,这个是非常麻烦的。我们可以在/etc/vsftpd/vsftpd.conf这个文件里面定义,Chroot_local_user=YES那么这个就和刚才的相反,只有写在/etc/vsftpd/chroot_list文件里面的用户可以跑出自己的home目录,其他的用户均不可以跑出自己的home目录。如果/etc/vsftpd/chroot_list这个文件里面没有定义用户,就代表所有用户均无法跑出自己的home目录。关于FTP的访问控制,在/etc/vsftpd/vsftpd.conf文件中写到pam_service_name=vsftpd 这个就是代表vsftpd服务是支持pam模块的管理的,userlist_enable=YES也是可以对vsftpd做访问控制的,tcp_wrappers=YESvsftpd支持tcp_wrappers防火墙,现在我们来查看一下pam是如何来管理vsftpd服务的,rootlocalhost # rootlocalhost # cd /etc/pam.d/rootlocalhost pam.d# rootlocalhost pam.d# cat vsftpd | grep vsftpdauth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeedrootlocalhost pam.d#这个里面就定义了写在/etc/vsftpd/ftpusers里面的用户是不可以访问ftp服务的。现在我们就来试一下,rootlocalhost # rootlocalhost # lftp 54lftp 54: user user1Password: lftp user154: lslftp user154:/OK,user1现在是可以登陆ftp的,现在我们在/etc/vsftpd/ftpusers里面添加user1这个用户。rootlocalhost vsftpd# rootlocalhost vsftpd# cat ftpusers | grep user1user1rootlocalhost vsftpd#已经将user1添加到这个文件里面去了,OK,现在我们重启下服务,rootlocalhost # rootlocalhost # service vsftpd restartShutting down vsftpd: OK Starting vsftpd for vsftpd: OK rootlocalhost #OK,服务启动成功,测试下。rootlocalhost # rootlocalhost # lftp 54lftp 54: user user1Password: lftp user154: lsls: Login failed: 530 Login incorrect. 可以看到,user1现在就登录失败了。现在我们在来了解下userlist_enable=YES的作用,同样的在/etc/vsftpd/user_list这个文件中定义,现在我们来查看一下这个文件,# vsftpd userlist# If userlist_deny=NO, only allow users in this file# If userlist_deny=YES (default), never allow users in this file, and# do not even prompt for a password.# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers# for users that are denied.可以看到,如果userlist_deny=NO,就代表vsftpd服务仅允许写在这个文件里面的用户可以访问,如果userlist_deny=YES,就代表写在这个文件里面的用户不可以访问vsftpd服务,这个也是默认的。现在我们在/etc/vsftpd/user_list文件中添加user2,rootlocalhost # rootlocalhost # cd /etc/vsft

温馨提示

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

评论

0/150

提交评论