linux ftp 搭建和相关问题解决

1. 查看是否安装vsftp
rpm –qa|grep vsftpd
如果出现 vsftpd-2.0.5-16.el5_5.1 说明已经安装 vsftp

安装vsftp
yum -y install vsftpd
2. 测试是否安装成功(ip 改成自己啊,不要用俺的此次登录为匿名登录 user: anonymous 密码为空 如果成功登录会有下面内容 这说明vsftpd安装成功)如果没有ftp命令,请运行yum install -y ftp

[[email protected] ~]#service vsftpd start

为 vsftpd 启动 vsftpd:[确定]
[[email protected] ~]#ftp 127.0.0.1
Connected to127.0.0.1.
220 (vsFTPd 2.0.5)
530 Please loginwith USER and PASS.
530 Please loginwith USER and PASS.
KERBEROS_V4 rejectedas an authentication type
Name(127.0.0.1:root): anonymous
331 Please specifythe password.
Password:
230 Loginsuccessful.
Remote system typeis UNIX.
Using binary mode totransfer files.
ftp> bye
221 Goodbye.
[[email protected] ~]#

3. 修改配置文件/etc/vsftpd/vsftpd.conf

[[email protected] ~]#vi /etc/vsftpd/vsftpd.conf

取消下面内容前面的注释或添加

anonymous_enable=YES/NO 是否允许匿名用户访问

chroot_list_enable=YES   限定用户不可以离开主目录

chroot_list_file=/etc/vsftpd/chroot_list

loca_enable=YES/NO 本地用户是否可以访问 注:如果为NO 则所有虚拟用户都将不能访问原因:虚拟用户访问在主机上其实是以本地用户访问的

pam_service_name=vsftpd pam认证文件名在/etc/pam.d/vsftpd

guest_enable=YES 启用虚拟用户功能

guest_username=ftp 指定虚拟用户的宿主用户 –centos 里面已经有内置的ftp用户了(注:此用户在chroot_list_file=/etc/vsftpd/chroot_list文件里所指定的用户)

user_config_dir=/etc/vsftpd/vuser_conf 设置虚拟用户个人vsftp的服务配置文件

(此文件后面不能出现空格)

4. 查看是否安装 db4 db4-utils

[[email protected] ~]#rpm -qa|grep db4 运行后出现下面内容 说明已经安装可以使用db_load命令(主要是 db4-utils)
db4-devel-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-devel-4.3.29-10.el5_5.2
db4-4.3.29-10.el5_5.2
db4-tcl-4.3.29-10.el5_5.2
db4-utils-4.3.29-10.el5_5.2
[[email protected] ~]#

如果没安装则要安装db4-utils
4.1安装db4-utils
[[email protected] ~]#yum -y install db4-utils
5. 创建 chroot_list_file=/etc/vsftpd/chroot_list文件

[[email protected] ~]#vi /etc/vsftpd/chroot_list (编辑文件把 /etc/vsftpd/vsftpd.conf 中guest_username的值写到文件中本例中为 ftp)

或者直接按下面进行操作

[[email protected] ~]#touch /etc/vsftpd/chroot_list

[[email protected] ~]# echoftp >> /etc/vsftpd/chroot_list (此处ftp 也要是/etc/vsftpd/vsftpd.conf中的guest_username的值)
6. 创建虚拟用户目录(密码文本)

[[email protected] ~]#vi /etc/vsftpd/vftpuser.txtx (奇数行为用户名 ,偶数行为密码)

本文中添加如下(用cat 命令查看)

[[email protected] ~]#cat /etc/vsftpd/vftpuser.txtx
hope
hope
aa
zzzzz
[[email protected] ~]#
7.生成虚拟用户的db文件

[[email protected] ~]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txtx /etc/vsftpd/vftpuser.db
8. 生成虚拟用户的认证文件

[[email protected]]# vi /etc/pam.d/vsftpd
#%PAM-1.0

session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=denyfile=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account include system-auth
session include system-auth
session required pam_loginuid.so

注释掉/etc/pam.d/vsftpd中所有的内容 反正已经不要本地用户的认证了

特别注意 以下区别
32位系统增加以下两句:
auth required pam_userdb.so db=/etc/vsftpd/vftpuser
account required pam_userdb.so db=/etc/vsftpd/vftpuser
64位系统增加以下两句:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vftpuser

这里我发现加了db后缀以后就不识别数据库了,51cto大大的一篇教程里面就是加了db,结果完全读不了数据库,当然也就不能认证啦。

注:db=/etc/vsftpd/vftpuser 中的vftpuser 是你生成的虚拟用户的db文件

9. 创建每个虚拟用户自己的配置文件,配置文件的路径是/etc/vsftpd/vsftpd.conf中的

user_config_dir=/etc/vsftpd/vuser_conf路径

在 /etc/vsftpd/vuser_conf/下面创建以用户名为名称的文件(名称是/etc/vsftpd/vftpuser.txtx 下面的奇数行)

[[email protected]]# cat /etc/vsftpd/vftpuser.txtx
hope
hope
aa
zzzzz

[[email protected]]# mkdir vuser_conf

[[email protected]]# vi /etc/vsftpd/vuser_conf/hope

内容如下

local_root=/var/www(虚拟用户的根目录根据实际修改)
write_enable=YES (可写)
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022

10. 给文夹权限(否则不能上传 权限可自定 本人给的是 777)

[[email protected]]# chmod 777 /var/www/
11. 重启vsftpd

[[email protected]]# service vsftpd restart

到此安装配置完成 如果出现连接被 同位体重置 或其它错误 请查看SELinux的当前模式

12. 登录测试

[[email protected] vsftpd]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as anauthentication type

Name (127.0.0.1:root): hope

331 Please specify the password.

Password:

500 OOPS: cannot changedirectory:/var/www

Login failed.

ftp>

查看方法

[[email protected] vsftpd]# getenforce

Enforcing 如果出现(Enforcing )

关闭方法:[[email protected] vsftpd]#setenforce 0(0|1 开|关)

再次测试 登录成功

[[email protected] vsftpd]# chmod 777/var/www/

[[email protected] vsftpd]# ftp 127.0.0.1

Connected to 127.0.0.1.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as anauthentication type

Name (192.168.1.107:root): hope

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

查看系统是多少位的命令

[[email protected] ~]# getconf LONG_BIT

64 (64|32)

一般windows访问ftp服务器的话可能出现的问题有没有权限的问题,在鸟哥的linux服务器架构篇里面就有解决办法

如同
前言谈到的, FTP 使用两个埠口,加上常有随机启用的数据流埠口,以及被动式联机的
服务器埠口等, 所以,你可能得要进行:
加入 iptables 的 ip_nat_ftp, ip_conntrack_ftp 两个模块

开放 port 21 给因特网使用

开放前一小节提到的 port 65400~65410 埠口给 Internet 联机用

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf
# 增加底下这几行即可啊!
pasv_min_port=65400
pasv_max_port=65410
[[email protected] ~]# /etc/init.d/vsftpd restart

加入模块:虽然 iptables.rule 已加入模块,不过系统档案还是修改一下好
了:
[[email protected] ~]# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
# 加入模块即可!两个模块中间有空格键隔开!然后重新启动 iptables 服务
啰!
[[email protected] ~]# /etc/init.d/iptables restart
# 2. 修改 iptables.rule 的脚本如下:
[[email protected] ~]# vim /usr/local/virus/iptables/iptables.rule
iptables -A INPUT -p TCP -i $EXTIF --dport 21 --sport 1024:65534 -j
ACCEPT
# 找到上面这一行,并将前面的批注拿掉即可!并且新增底下这一行喔!
iptables -A INPUT -p TCP -i $EXTIF --dport 65400:65410 --sport

1024:65534 -j ACCEPT
重启防火墙就可以了

时间: 2024-08-11 05:44:28

linux ftp 搭建和相关问题解决的相关文章

linux ftp 安装及相关命令

文章出自http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503864.html Hadoop集群(第3期)_VSFTP安装配置 1.VSFTP简介 VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点. 在速度方面,使用ASCII代

linux FTP 搭建

系统:Centos6.5 软件:vsftpd 安装 yum install vsftpd 安装好后,service vsftpd start 就可以访问了,只不过是不需要用户密码认证. 配置用户密码认证 安装完后的配置文件在:/etc/vsftpd 目录下,我们只需要更改vsftpd.conf 即可: vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO        #NO表示不允许匿名访问,YES为允许 增加FTP认证用户: useradd -g f

Apache虚拟主机的搭建及相关问题解决

在开发的过程中,很多时候项目的部署都需要在本地进行虚拟服务器的模拟搭建,所以具体的配置流程为下,并且把自己遇到的问题跟大家分享. 1.Apache配置文件httpd.conf 找到   # Virtual hosts 这句前面的#不用去 //如果去掉了,你就会发现localhost和你设置的域名路径都会访问不了项目!!   #Include conf/extra/httpd-vhosts.conf 去掉本行注释 #  //这个是一定一定要去掉的!!! 还有 severname localhost

linux ftp搭建

# No anonymous login anonymous_enable=NO # Let local users login # If you connect from the internet with local users, you should enable TLS/SSL/FTPS local_enable=YES # Write permissions write_enable=YES # 1. All users are jailed by default: chroot_lo

Linux -- SELinux相关问题解决办法

一.如何解决SELinux问题? 说起SELinux,多数Linux发行版缺省都激活了它,可见它对系统安全的重要性,可惜由于它本身有一定的复杂性,如果不熟悉的话往往会产生一些看似莫名其妙的问题,导致人们常常放弃使用它,为了不因噎废食,学学如何解决SELinux问题是很有必要的. 我们以CentOS环境为例重现一个非常常见的SELinux问题: 首先需要确认SELinux处于激活状态,可以使用getenforce或sestatus命令: shell> getenforce  Enforcing  

【初学菜鸟作--FTP的搭建与相关设置】

创建ftp服务器,设置并验证其控制参数 安装vsftp ftp服务的安装 [[email protected] Server]# rpm -ivhvsftpd-2.0.5-28.el5.x86_64.rpm [[email protected] ~]# vim /etc/vsftpd/vsftpd.conf 主配置文件重要参数 anonymous_enable=YES匿名用户可否访问,为NO时匿名用户不可登陆 local_enable=YES                     是否启用本地

在Linux中搭建一个FTP服务器

在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/ftp/ftp2. 两个小组互相不能访问各自的文件,需要限制用户不能离开自己的工作目录. [实现步骤] 1.检查安装vsftpd服务器 以root进入终端后(其他账户进入终端的可以用su root 输入密码后进入root 模式)之后,在终端命令窗口输入以下命令进行验证:# rpm –qa | grep

linux ftp服务器搭建

linux ftp服务 主动模式port:服务器主动发起数据连接.客户端向服务器21端口建立ftp数据连接.服务器从20端口向客户端随机端口发送数据. 被动模式pasv:服务器被动等待数据连接.如果客户机防火墙禁止主动模式,会采用被动模式.客户端向服务器21端口建立ftp数据连接.需要传输数据时,客户端向服务器设定范围内的端口(非20)建立数据连接. 开始: 关闭安全系统 setenforce  0 关闭防火墙 service  iptables stop 1.  安装软件包 mount   /

Linux FTP服务器的搭建与配置+基于关系型数据库实现用户认证

一.服务器端的安装: yum install vsftpd 1)查看安装后生成的哪些文件 [[email protected] ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd  <==========主志日志文件 /etc/pam.d/vsftpd<==================认证文件 /etc/rc.d/init.d/vsftpd<=============服务脚本 /etc/vsftpd<======================