centos FTP服务器的架设和配置&iptables手册说明

http://blog.csdn.net/loftyscholar/article/details/7184829

http://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html#ACKNOWLEDGEMENTS

本文参考了网上的几篇博文,在CentOS上搭建FTP服务器,两种搭建方式:gssftp与vsftpd。


RedHat和CentOS都自带了一个gssftp服务,使用方式如下:

1 进入gssftp目录
[root@linux local]# cd /etc/xinetd.d
[root@linux xinetd.d]# ls
chargen cups-lpd daytime-udp echo-udp gssftp krb5-telnet rsync time-udp
chargen-udp daytime echo eklogin klogin kshell time 
2 编辑gssftp文件,将server_args改为-l,将disable改为no:
[root@linux xinetd.d]# vi gssftp
# default: off
# description: The kerberized FTP server accepts FTP connections \
# that can be authenticated with Kerberos 5.
service ftp
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/ftpd
#server_args = -l -a
server_args = -l
log_on_failure += USERID
#disable = yes
disable = no
}
3 重启xinetd服务:
[root@linux xinetd.d]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
这时查看21端口已经打开:
[root@linux xinetd.d]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 22543/xinetd
如果防火墙没有打开端口,则开放21端口并重启防火墙服务:
[root@linux xinetd.d]# vi /etc/sysconfig/iptables
[root@linux xinetd.d]# service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]

5  用户登录

到这里ftp服务就可用了,可以使用linux系统用户登录或者其他用户登录。gssftp不能指定共享目录,仅供内部测试使用,便捷的FTP服务需要利用vsftp来搭建。


vsftpd安装配置


1.安装vsftpd
一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装: 
yum -y install vsftpd
touch /var/log/vsftpd.log # 创建vsftp的日志文件
在CentOS中,这样就可以完成了一个简单的匿名FTP的搭建。你可以通过访问ftp://yourip来进行,不过这个FTP没有任何权限。

2.基于匿名的FTP架设


参考本博客上几篇关于Vsftpd的CentOS FTP服务配置文章。


3.基于虚拟用户的FTP架设
所谓虚拟用户就是没有使用真实的帐户,只是通过某种手段达到映射帐户和设置权限的目的。
1)我们在/etc/vsftpd/vsftpd.conf中做如下CentOS FTP服务配置:
anonymous_enable=NO 设定不允许匿名访问
local_enable=YES 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。
chroot_list_enable=YES 使用户不能离开主目录
xferlog_file=/var/log/vsftpd.log 设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。
pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。默认vsftpd.conf中不包含这些设定项目,需要自己手动添加CentOS FTP服务配置。 
guest_enable=YES 设定启用虚拟用户功能。
guest_username=ftp 指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
2)创建chroot list,将用户ftp加入其中: 
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
3)进行认证: 
首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。
yum install db4 db4-utils
然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码
ftpuser1
ftppass1
ftpuser2
ftppass2
接着,.生成虚拟用户认证的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
最后,创建虚拟用户个性CentOS FTP服务文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
内容如下:
local_root=/opt/var/ftp1 虚拟用户的根目录(根据实际修改)
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

4.启动vsftp服务器 
mkdir /opt/var/ftp/ftpuser1
chmod 777 /opt/var/ftp/ftpuser1
service vsftpd start
TroubleShootings:

1.553 Could not create file

一般都是SELinux的问题,设置SELinux的一个值,重启服务器即可。
setsebool -P ftpd_disable_trans 1 
service vsftpd restart


2.500 OOPS: bad bool value in config file for: write_enable

注意你的CentOS FTP服务文件中保证每一行最后没有任何空格,一般出错就是在多余的空格上。

注:后半部分待测试。


http://www.cnblogs.com/zhenmingliu/archive/2012/04/25/2470646.html



费事坏了。。

但客户端访问提示如下错误:

500 OOPS: cannot change directory:/home/ftp

原因是他的CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。

//查看SELinux设置

 

# getsebool -a|grep ftp

ftp_home_dir-->off

 

//使用setsebool命令开启

 

 

# setsebool ftp_home_dir 1

 

由于操作系统一旦重启后,这种设置需要重新设置,这里使用-P参数实现.

 

//setsebool使用-P参数,无需每次开机都输入这个命令

 

# setsebool -P ftp_home_dir 1

 

http://www.blogjava.net/zhouf/articles/340148.html


暂时可以上传了



以下是最正确的

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

http://icedot.blog.51cto.com/61369/772452

客户公司要架设两台FTP服务器分别给两个地点的分公司使用,但是这两台服务器都比较老了,一台HP 380G5 ,一台HP 380 G4,所以他们计划用linux,用什么版本他们就没说,于是我计划用CentOS6.2,其实安装和配置vsFTP都很简单,网上也很多了,不过还是详细记录一下好 
环境:CentOS6.0+vsFTP 0:2.2.2-6.el6_2.1 


第一步:安装vsftp pam db4 
yum install vsftpd pam* db4*-y 
========================================================================================

Installed: 
  db4-cxx.i686 0:4.7.25-16.el6              db4-devel.i686 0:4.7.25-16.el6  db4-devel-static.i686 0:4.7.25-16.el6  db4-java.i686 0:4.7.25-16.el6    
  db4-tcl.i686 0:4.7.25-16.el6              pam-devel.i686 0:1.1.1-10.el6   pam_ldap.i686 0:185-11.el6             pam_pkcs11.i686 0:0.6.2-11.1.el6 
  pam_ssh_agent_auth.i686 0:0.9-70.el6_2.2  vsftpd.i686 0:2.2.2-6.el6_2.1 

Dependency Installed: 
  pcsc-lite-libs.i686 0:1.5.2-6.el6

======================================================================================== 
通过setup对系统服务及防火墙进行配置,然后reboot系统 
或者使用命令将vsftp配置为系统服务 
chkconfig --level 35 vsftpd on


第二步:配置vsftpd服务的宿主 
#useradd vsftpdadmin -s /sbin/nologin 
这个vsftpdadmin只是用来替换root的,并不需要登录

第三步:建立ftp虚拟宿主帐户 
#useradd ftpuser -s /sbin/nologin 
这ftpuser只个虚拟帐户的宿主,本身是不用登录的

第四步:配置vsftpd.conf 
更改配置前最好备份一下然后再改 
vim /etc/vsftpd/vsftpd.conf


修改下面红色字体的部分为蓝色字体的形式,紫色字体是配置原有的 
anonymous_enable=YES  -->  anonymous_enable=NO   //不允许匿名用户访问,默认是允许。 
#chroot_list_enable=YES  -->  chroot_list_enable=YES      //不允许FTP用户离开自己主目录,默认是被注释掉的。 
#chroot_list_file=/etc/vsftpd/chroot_list --> chroot_list_file=/etc/vsftpd/chroot_list  //如果开启了chroot_list_enable=YES,那么一定要开启这个,这条是锁定登录用户只能家目录的位置,如果不开启用户登录时就会报500 OOPS的错。 
注意:/etc/vsftp/chroot_list本身是不存在的,这要建立vim /etc/vsftp/chroot_list,然后将帐户输入一行一个,保存就可以了 
local_enable=YES      //允许本地用户访问,默认就是YES,不用改 
write_enable=YES      //允许写入,默认是YES,不用改 
local_umask=022       //上传后文件的权限掩码,不用改 
dirmessage_enable=YES //开启目录标语,默认是YES,开不开无所谓,我是默认就行 
xferlog_enable=YES    //开启日志,默认是YES,不用改 
connect_from_port_20=YES   //设定连接端口20 
xferlog_std_format=YES   //设定vsftpd的服务日志保存路径,不用改 
(这步后面要有几个操作才能运行,也就是touch这个文件(见第五步),因为它本身不存在,而且还要给文件写入的权限) 
#idle_session_timeout=600  -->  idle_session_timeout=600  //会话超时,客户端连接到ftp但未操作,默认被注释掉,可根据个人情况修改 
#async_abor_enable=YES  -->   async_abor_enable=YES     //支持异步传输功能,默认是注释掉的,去掉注释 
#ascii_upload_enable=YES  -->   ascii_upload_enable=YES   //支持ASCII模式的下载功能,默认是注释掉的,去掉注释 
#ascii_download_enable=YES  -->   ascii_download_enable=YES   //支持ASCII模式的上传功能,默认是注释掉的,去掉注释 
#ftpd_banner=Welcome to blah FTP service  //FTP的登录欢迎语,本身是被注释掉的,去不去都行 
#chroot_local_user=YES  --> chroot_local_user=YES    //禁止本地用户登出自己的FTP主目录,本身被注释掉,去掉注释 
pam_service_name=vsftpd  //设定pam服务下vsftpdd的验证配置文件名,不用改 
userlist_enable=YES    //拒绝登录用户名单,不用改 
TCP_wrappers=YES    //限制主机对VSFTP服务器的访问,不用改(通过/etc/hosts.deny和/etc/hosts.allow这两个文件来配置) 
增加 
guest_enable=YES    //设定启用虚拟用户功能。 
guest_username=ftpuser   //指定虚拟用户的宿主用户。 
virtual_use_local_privs=YES   //设定虚拟用户的权限符合他们的宿主用户。 
user_config_dir=/etc/vsftpd/vconf   //设定虚拟用户个人Vsftp的配置文件存放路径


第五步:建立日志文件 
#touch /var/log/vsftpd.log    //日志文件 
#chown vsftpdadmin.vsftpdadmin /var/log/vsftpd.log   //属于vsftpdadmin这个宿主

第六步:建立虚拟用户文件 
#mkdir /etc/vsftpd/vconf/ 
#touch /etc/vsftpd/vconf/vir_user

第七步:建立虚拟用户 
#vim /etc/vsftpd/vconf/vir_user 
virtualuser           //用户名 
12345678           //密码

注意:第一行用户名,第二行是上一行用户名的密码,其他人的以此类推

第八步:生成数据库 
#db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db

第九步:设置数据库文件的访问权限 
#chmod 600 /etc/vsftpd/vconf/vir_user.db 
#chmod 600 /etc/vsftpd/vconf/vir_user

第十步:修改/etc/pam.d/vsftpd内容 
echo "auth required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" > /etc/pam.d/vsftpd 
echo "account required pam_userdb.so db=/etc/vsftpd/vconf/vir_user" >> /etc/pam.d/vsftpd 

第十步:创建用户的配置文件 
注意:用户配置文件的名字要和创建的“虚拟用户”名字对应 
#touch /etc/vsftpd/vconf/virtualuser 
#vim /etc/vsftpd/vconf/virtualuser 
输入: 





local_root=/home/virtualuser           //虚拟用户的个人目录路径 
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 
local_max_rate=1048576     //本地用户的最大传输速度,单位是Byts/s,我设定的是10M

 

第十一步:建立虚拟用户目录 
如果不建立虚拟用户的个人目录,那么所有的虚拟用户登录后所在的目录都是同一个目录下 
# mkdir /home/virtualuser 
# chown ftpuser.ftpuser ./virtualuser 
# chmod 600 /home/virtualuser 
配置就此完成,如果想增加新的用户,只要按照上面的第七步、第十步进行就可以了。

遇到的问题                                                    问题 
其实这回遇到的问题不多。 
1,450:读取目录列表失败 
在配置完第一台vsftp后(上面的配置就是)再用同样的过程做第二台,完成后用客户端和浏览器死活无法登录报错: 
450:读取目录列表失败 
只有在命令提示符和Termin下通过ftp 192.168.88.30后ls没有问题 
对比了之前的配置,每一步都没错,难到是PASV问题,于是在vsftpd.conf加上了一句pasv_enable=NO,然后……没然后了,一切都正常了

2、中文乱码 
这个是老生常谈的问题,好象也一直没有什么好的解决办法,网上也有提出改i18n,不过客户提出不用改,他们公司主要都是英文档,也我也省事了,不过还是当个问题记录吧

3、500 OOPS:cannot change directory:/home/pmfile
新建用户后登录报错,刚开始以为是selinux的问题,后来一想不对,其他的帐号都没事,肯定刚才己关闭了selinux,那么就是权限问题了,果然是刚才忘了把权限给虚拟ftp宿主权限了:chown -R ftpuser.ftpuser /home/publicfile

4、530错误:Login incorrect.
这是一个让我觉的搞笑的问题,第二台vsftp服务我用自己的本上的客户端(FileZilla)登录没问题,而客户用他的本登录就不行,用的软件都一样,不同的是我用的是Ubuntu,他用的是win7,但在win7的命令提示符下他却也能登录也能ls,不是权限问题,不是pam问题,这两块都着手试过,结果发现是客户在终端输入的密码错误,之前我还一再问他到底有没有输错密码,他也十分肯定的说没有,结果……

5、外网无法登录,550错误,错误: 读取目录列表失败

这个问题很是挠头,在做完第二台服务器后让客户先从内网登录,一切都很正常,而从外网登录时就会出现“550 Permission denied.”“错误: 连接超时”“错误: 读取目录列表失败”,难到是权限?
试来试去什么PASV、什么权限更改全做了(这一步是我着实不想做的,要是登录用户权限有问题内网也该无法登录),最后让客户的网管带我去查了一下他们路由器的配置,我才发现他们的内网映射没有开放TCP20端口,开放后就OK了



=====================================================

500 OOPS: cannot change directory:/home/xxxxx

500 OOPS: priv_sock_get_cmd centos

一直是这样

居然是权限问题

chmod 700 /home/xxxxx

可以登录了

http://blog.chinaunix.net/uid-7271021-id-3086186.html

转载于:https://my.oschina.net/macleo/blog/139001

购物商城项目采用PHP+mysql有以及html+css jq以及layer.js datatables bootstorap等插件等开发,采用了MVC模式,建立一个完善的电商系统,通过不同用户的不同需求,进行相应的调配和处理,提高对购买用户进行配置….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值