版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在linux 中,搭建ftp服务器的方法, 谢谢, 浏览次数:629次悬赏分:20 | 解决时间:2011-1-4 12:40 | 提问者:weiyong0719 最佳答案 FTP不安全,万不得已情况下,才可使用。vsftp安全性相对较好可采用sftp代替FTPLinux另外常用的FTP:proftpvsftppureftp下面以VSFTP为例:安装方式一:源码包安装useradd -s /bin/false -d /var/ftp ftpvirtualcd .makemake installcp vsftpd.conf /etc/usr/local/sbin/vsftpd & #启动
2、安装方式二:rpm安装,推荐rpm -ivh vsftpd-2.0.1-5.i386.rpm或者 yum install vsftpd/etc/init.d/vsftpd start两种方式安装完成后,配置方法都一样,下面开始讲配置。首先讲主配置文件常见配置vi /etc/vsftpd/vsftpd.confanonymous_enable=NO #禁止匿名登录local_enable=NO #禁止本地用户登录 write_enable=YES #对本地用户的写权限local_umask=022 #本地用户文件生成掩码dirmessage_enable=YES #显示隐藏文件xferlog_e
3、nable=YES #启用上传和下载日志connect_from_port_20=YES #服务器将启用FTP数据端口的连接请求xferlog_std_format=YES #服务器将使用标准的ftpd xferlog日志格式pam_service_name=vsftpd #设置PAM认证服务的配置文件名称userlist_enable=YES #设置文件中指定的用户是否可以访问vsftpd服务器listen=YES #FTP服务器将处于独立启动模式 tcp_wrappers=YES #使用tcp_wrappers作为主机访问控制方式 chroot_local_user=YES #将FTP本地
4、用户禁锢在宿主目录中 chroot_list_enable=YES #将用户禁锢在宿主目录中listen_address= #侦听地址pasv_enable=YES #是否允使用被动模式,默认是允许的。pasv_min_port=10000 #指定使用被动模式时打开端口的最小值pasv_max_port=10004 #指定使用被动模式时打开端口的最大值。max_clients=100 #设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制 max_per_ip=5 #同一IP地址允许的最大客户端连接数,值为0时表示不限制,即线程 local_max_rate=50
5、0000 #设置本地用户的最大传输速率,单位为bytes/sec,值为0时表示不限制 anon_max_rate=200000 #设置匿名用户的最大传输速率,单位为bytes/sec,值为0表示不限制 use_localtime=YES #在vsftp之中的时间默认值是显式GMT时间,因此我们会发现上面的时间与我们时寄存取的时间差八小时。改了这一项就好了。listen_port=10021 改端口one_process_model=NO yes可增加性能,增加负载,便降低安全,建议NOnopriv_user=nobody 默认以nobody运行vsftp对外服务,建议使用stand alone
6、方式启动,性能好。仅内部人员,建议用super daemon启动,修改如下:listen=NO略vsftp默认使用GMT时间,建议修改如下:use_localtime=YES/etc/vsftpd.ftpusers #保存不允许进行FTP登录的本地用户帐号,提高系统的安全性/etc/vsftpd.user_list #禁止vsftpd.user_list中的用户userlist_enable=YESuserlist_deny=YES #仅允许vsftpd.user_list中的用户userlist_enable=YESuserlist_deny=NO 日志:vsftpd_log_file=/v
7、ar/log/vsftpd.log下面开始讲vsftp四种“用户认证”的方式一、匿名用户 ftp anonymous/var/ftp 默认主目录在/etc/vsftpd/vsftpd.conf中:anonymous_enable=YESanon_upload_enable=YESanon_other_write_enable=YES #可删除chmod -R 777 /var/ftp/pub/修改/var/ftp/pub的SELinux权限执行以下命令,修改/var/ftp/pub这目录的类型:chcon -R -t ftpd_anon_rw_t /var/ftp/pub/anon_root=
8、/var/www/html/ftp #改匿名用户的宿主目录二、本地用户默认支持,使用各自的宿主目录。不安全local_root=/opt #新增这一项,改成其他路径三、虚拟用户 PAM文件方式 推荐建立虚拟用户口令库文件# cat logins.txt mikepwabcdjohnpw1234生成vsftpd的认证文件db_load -T -t hash -f logins /etc/vsftpd/vsftpd_login.dbchmod 600 /etc/vsftpd/vsftpd_login.db 新创建虚拟用户所需的PAM配置文件cat /etc/pam.d/vsftpd.vuauth
9、required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 新创建虚拟用户的系统用户所要访问的目录并设置相应权限# useradd -s /bin/false -d /home/ftpsite ftpvirtual# chmod 700 /home/ftpsite#设置vsftpd.conf配置文件,支持虚拟用户guest_enable=YESguest_username=ftpvi
10、rtualpam_service_name=vsftpd.vu user_config_dir=/etc/vsftpd/vsftpd_user_conf #添加用户配置文件目录设置/etc/vsftpd/vsftpd_user_conf/mike (同名),这里没有的设置默认按vsftpd.conf的设置执行anon_world_readable_only=NO #可以浏览FTP目录和下载文件anon_upload_enable=YES #用户可以上传文件,等同于 write_enable=yes 允许上传anon_mkdir_write_enable=YES #具有建立和删除目录的权利 an
11、on_other_write_enable=YES #具有文件改名和删除文件的权限 local_root=/data/userspace #设置虚拟用户登录后的主目录anon_max_rate=1024000 #以Bytes/s为单位,这里限8Mbit,范围大概在80%到120%之间四、虚拟用户 mysql认证方式 推荐1. mysql安装见mysql笔记2.1 openssl-0.9.8e 源程序预编译时在日志中可能出现md5.h "Present But Cannot Be Compiled的错误,卸载下面某些包可能解决问题。cyrus-sals-sql cyrus-sasl-n
12、tlm cyrus-sasl-gssapi cyrus-sasl-devel openldap-devel然后移除系统可能自带的:mv /usr/bin/openssl /usr/bin/openssl.OFFmv /usr/include/openssl /usr/include/openssl.OFFln -s /usr/local/ssl/bin/openssl /usr/bin/opensslln -s /usr/local/ssl/include/openssl /usr/include/openssl配置库文件搜索路径#echo "/usr/local/ssl/lib&q
13、uot; >> /etc/ld.so.conf#ldconfig -v2.2 或者安装openssl-0.9.8e的rpm包3. pam_mysql-0.7RC1.tar.gz#./configure -with-mysql=/usr/local/mysql -with-openssl=/usr/local/ssl如果mysql是rpm安装的,则不带-with-mysql参数,如果openssl是rpm安装的,参数为-with-opensslmake;make install注意pam_mysql.so路径,可能在/usr/lib/security/pam_mysql.so或/li
14、b/security/pam_mysql.sovi /etc/pam.d/vsftp.mysql #新建,仅两行auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp tabl
15、e=users usercolumn=name passwdcolumn=passwd crypt=24.0 准备数据库、表和数据mysql> create database vsftp;mysql> grant select on vsftp.* to vsftpdlocalhost identified by '123456'mysql> grant select on vsftp.* to vsftpd identified by '123456'mysql> use vsftp;mysql> create
16、table users ( -> id int AUTO_INCREMENT NOT NULL, -> name char(20) binary NOT NULL, -> passwd char(48) binary NOT NULL, -> primary key(id) -> );mysql> insert into users(name,passwd) values('hlc',password('hlc');mysql> insert into users(name,passwd) values('hol
17、ly',password('holly');5.0 修改主配置文件vi /etc/vsftpd/vsftpd.confguest_enable=YESguest_username=vsftplisten=YESpam_service_name=vsftpd.mysql以上完成了vsftp的配置,下面是补充:dirmessage_enable=YES #设置欢迎语 在每个目录下建立.message,写入欢迎语即可。db_load支持包(前面三个即可):db4db4-develdb4-utilsdb4-javadb4-tclLinux建议关闭selinux或征对FTP不做任
18、何安全setsebool -P -ftpd_disable_trans onsetsebool -P -allow_ftpd_full_access onservie vsftpd restart或者需要重启服务器底下列出FTP访问中所出现数字代码的含意。110 重新启动标记应答。 120 服务在多久时间内ready。 125 数据链路端口开启,准备传送。 150 文件状态正常,开启数据端口。 200 命令执行成功。 202 命令执行失败。 211 系统状态或是系统求助响应。 212 目录的状态。 213 文件的状态。 214 求助的讯息。 215 名称系统类型。 220 新的联机服务read
19、y。 221 服务的控制端口关闭,可以注销。 225 数据链接开启,但无传输动作。 226 关闭数据端口,请求的文件操作成功。 227 进入passive mode。 230 用户登录。 250 请求的文件操作完成。 257 显示目前的路径名称。 331 用户名称正确,需要密码。 332 登入时需要帐户信息。 350 请求的操作需要进一部的命令。 421 无法提供服务,关闭控制连结。 425 无法开启数据链路。 426 关闭联机,终止传输。 450 请求的操作未执行。 451 命令终止:有本地的错误。 452 未执行命令:磁盘空间不足。 500 格式错误,无法识别命令。 501 参数语法错误。
20、 502 命令执行失败。 503 命令顺序错误。 504 命令所接的参数不正确。 530 未登入。 532 储存文件需要账户登入。 550 未执行请求的操作。 551 请求的命令终止,类型未知。 552 请求的文件终止,储存位溢出。 553 未执行请求的的命令,名称不正确。如何在LINUX上建立虚拟用户 浏览次数:582次悬赏分:0 | 提问时间:2011-3-18 10:55 | 提问者:472994948 推荐答案 为vsftpd 建立虚拟用户ftp 2009-07-21 16:07:34 阅读155 评论0 字号:大中小 订阅 Linux的FTP服务支持3种用户:1.匿名帐户2.本地帐户
21、3.虚拟用户为什么要使用虚拟用户:匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活.如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来实现. 但是,本地帐户默认情况下是可以登陆Linux系统的,这样对Linux系统来说是一个安全隐患.那么怎么能在灵活的赋予FTP用户权限的前提下,保证 FTP服务器乃至整个Linux系统的安全呢?使用虚拟用户就是一种解决办法.下面,我们就一起来学习,该怎样在Linux下配置FTP服务器的虚拟用户.开始配置前,让我们先大概了解下FTP虚拟用户的工作原理:虚拟用户,顾名思义,并不是一个合法的Linux系统帐户,但是他可以用来登陆
22、该系统上运行的FTP服务器.当用户在连接上FTP服务器后,会被要求输入用户名和密码.FTP服务器在拿到这个用户名和密码后,会调用相应的PAM认证模块对,和系统中的FTP认证文件进行相比较.如果该用户名和密码与FTP认证文件中的某条记录相符,就通过认证,然后该帐户就被映射成一个Linux下的本地帐户,然后根据使用该本地帐户对FTP资源进行访问.否则则断开该连接请求.了解了FTP虚拟用户的工作原理后,我们就可以开始配置FTP虚拟用户了.整个过程可以分这几个步骤:1.准备一个虚拟用户的口令库文件.该文件中保存的用户名和密码是用户连接FTP服务器时,需要输入的用户名和密码.文件可以自己创建,位置无关紧
23、要,文件格式为:奇数行为用户名,偶数行为密码.例如:touch login.txt /创建一个名为login.txt的虚拟用户口令库文件 vi login.txt /编辑该口令库文件 mike /虚拟用户mike 123 /虚拟用户mike的密码 john /虚拟用户john 321 /虚拟用户john的密码保存退出.2.用刚才建立的虚拟用户口令库文件生成FTP服务器的认证文件.该认证文件是一个被加密后的密文.PAM在调用相应的认证模块后,会对从FTP服务器发来的用户名和密码进行加密,然后在跟该文件进行对比,发现相符条目后,登陆用户才会被允许登陆.db_load -T -t hash -f l
24、ogin.txt /etc/vsftpd/vsftpd_login.db /在运行该命令前,别忘记安装db4-utils软件包,该包包含有db_load命令等.关于该命令的使用不在本文讨论范围内.其中-f参数后跟的为刚才创建的虚拟用户口令库文件.最后的路径为生成的FTP认证文件的存放位置.为了进一步保证安全,可以将该FTP认证文件的权限设置为600.3.建立虚拟用户所需要的PAM配置文件.由于FTP服务器在接受到用户的用户名和口令后会调用PAM认证,所以我们还要创建虚拟用户的PAM配置文件.我们将该文件保存在/etc/pam.d目录下,文件名暂时取为:vsftpd.这里要注意一点就是,该文件名
25、要与FTP服务主配置文件(/etc/vsftpd/vsftpd.conf)中的pam_service_name=vsftpd选项的选项值相同.创建好该文件后,将下面的内容加入到该文件中:auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login改好后,保存退出(注意,/etc/pam.d/vsftpd 这个文件只能有上面两行代码有效,其他内容请用#号注释掉).注意3个红色文
26、件的文件名.该3个文件为1个文件,只不过在使用中写法不同.4.由于用户在通过PAM的认证后要被映射成一个本地用户,所以我们还要建立一个本地用户供虚拟用户使用.我们只需要对该本地用户赋予FTP主目录的适当访问权限就行.即使FTP服务器遭到攻击,这个本地用户也没有访问其他目录的权限,相对比较安全一些.useradd -d /home/ftpsite virtual /用户名为virtual,主目录为FTP的根chmod 700 /home/ftpsite /将其权限设置为700,可以根据实际情形进行修改*更正(ftp目录归属与被用于ftp的虚拟用户的情况下)*000(-) 可切仅可登陆500(r-
27、x-) 可见文件列表,可下载,不可上传与ftp上不同名的文件,不可删除、改名、新建文件夹700(rwx-) 可上传下载文件,可修改文件名,可删除文件,可建立文件夹,可移动文件(可做全部操作)(vsftpd 配置许可的情况下)5.在FTP的主配置文件中,启用FTP虚拟用户.增加如下选项即可:guest_enable=YESguest_username=virtual /将虚拟用户映射成本地的哪个用户.这里用的是virtual,刚才建 立的那个用户.pam_service_name=/etc/vsftpd/vsftpd /切记要修改该项的值6.配置到这里就完成了,别忘记重启FTP服务进行测试.7.
28、为不同的虚拟用户分配权限默认情况下,虚拟用户拥有相同的权限,就是virtual的权限,我们可以根据实际需求对不同的虚拟用户分配权限.首先在FTP的主配置文件中加一个选项:user_config_dir=/etc/vsftpd_user_conf /文件名和路径都可以自己定义然后创建该目录.mkdir /etc/vsftpd_user_conf下面就可以在该目录下编辑不同虚拟用户的权限配置文件了,比如要对mike编辑其权限.touch mike /建立mike的权限文件.文件名要与虚拟用户名相同可以根据实际需求为该文件添加下面的选项和值:anon_world_readable_only=NO /
29、表示用户可以浏览FTP目录和下载文件anon_upload_enable=YES /表示用户可以上传文件anon_mkdir_write_enable=YES /表示用户有创建和删除目录的权限anon_other_write_enable=YES /表示用户具有文件改名和删除文件的权限 另外:修改 /etc/selinux 文件夹下的 config 文件,SELINUX=enforcing 修改为 SELINUX=disabled到这里,虚拟用户就算完成配置完成了.不过,有一个问题,好象在配置完虚拟用户后,不关FTP主配置文件里怎样配置,匿名用户和本地用户都不能登陆FTP服务器了.该怎样解决这
30、个问题呢?如果不能上传文件,如果其他配置都和上面一样,而且ftp主目录的权限设置为777都不能上传的话,则可能是防火墙的问题:= 以下转自:(/bbs/Topic.aspx?BoardID=18&TopicID=321) =Vsftpd匿名用户无法上传的解决在CentOS下,通过#yum -y install vsftpd安装好vsftpd并通过编辑/etc/vsftpd/vsftpd.conf进行配置anonymous_enable=YESlocal_enable=YESwrite_enable=YESanon_upload_enable=YES
31、anon_mkdir_write_enable=YESanon_other_write_enable=YES在/var/ftp/下建立upload目录,设置/var/ftp/upload目录的属性为777,将其属主改为ftp用户chmod -R 777 /var/ftp/uploadchown ftp:ftp /var/ftp/upload重启vsftpd。至此,按理说vsftpd的匿名用户在ftp的upload目录下应具有下载、上传、建目录、删除的权限,但在上传时,却出现了错误200 Switching to Binary mode.200 PORT command successful.C
32、onsider using PASV.553 Could not create file.试了好多天,一直在配置文件上和目录权限上找原因,可都没有解决问题。今天,看到一篇文章,说出现Consider using PASV是防火墙的原因。通过setup打开防火墙配置项,看到有SELinux项,有强制、允许、禁用三项,选禁用后,vsftpd的匿名用户就可以进行上传,建目录等操作了。 或者运行命令setsebool -P ftpd_disable_trans 1然后重启vsftpd服务,也可解决这个问题。解决了上传的问题后,又有了新的问题,就是匿名用户上传的文件无法下载。经查上传的文件的属性为-rw-。先是在配置文件中,修改local_umask=022项,没有解决问题,增加如下项anon_world_readable_only=NO则能下载,具体原因不详。 后来增加anon_umask-022项,则上传的文件属性为-rw-r-r-,匿名用户可以正常下载。vsftpd用户目录问题服务器技术 2009-10-12 17:13:03 阅读216 评论
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药剂师模拟2025年效期药品排查冲刺卷及答案
- 咸阳市法院系统招聘考试真题及答案2025年
- 河北省衡水市2023-2024学年高三上学期语文期中考试试卷(含答案)
- 工程师施工管理安全规范与质量控制
- 幼儿教师职业技能培训小学教育面试实战
- 市场总监市场细分策略
- 肿瘤病人营养护理
- 广告学面试实战经验分享不同行业岗位选择指南
- 同业业务部经理职业发展路径规划
- 外部审计师职业生涯发展规划
- 贵州国企招聘:2025贵州凉都能源有限责任公司招聘10人备考题库含答案详解(综合题)
- 西藏自治区昌都市小学三年级上学期数学期末测试卷
- xx公司混凝土质量控制培训课件-完整版
- 传承三线精神、砥砺奋进前行课件
- 员工考证培训协议书
- 2025年郑州水务集团有限公司招聘80人模拟试卷带答案解析
- 2025吉林省吉林市磐石市总工会招聘工会社会工作者8人备考公基题库附答案解析
- hiv透析应急预案
- 11.交通信号控制技术与智能系统设计
- 甲流的症状及预防知识PPT课件-2
- ECMO IABP完整版可编辑
评论
0/150
提交评论