1、如何搭建ftp服务器 linux
Red Hat Linux下架设FTP服务器
FTP,即File Transfer Protocol,文件传输协议。它是目前Internet上最流行的数据传送方法之一。利用FTP协议,我们可以在FTP服务器和FTP客户端之间进行双向数据传输,既可以把数据从FTP服务器上下载到本地客户端,又可以从客户端上传数据到远程FTP服务器。
1.安装vsftpd服务器
vsftpd是目前Linux最好的FTP服务器工具之一,其中的vs就是“Very Secure”(很安全)的缩写,可见它的最大优点就是安全,除此之外,它还具有体积小,可定制强,效率高的优点。
如果选择完全安装RedHat Linux 9.0,则系统会默认安装vsftpd服务器。我们可以在终端命令窗口输入以下命令进行验证:
[root@ahpeng root] rpm -qa | grep vsftpd
如果结果显示为“vsftpd-1.1.3-8”,则说明系统已经安装vsftpd服务器。如果安装RedHat Linux 9.0时没有选择vsftpd服务器,则可以在图形环境下单击“主菜单→系统设置→添加删除应用程序”菜单项,在出现的“软件包管理”对话框里确保选中“FTP服务器”选项,然后单击“更新”按钮,按照屏幕提示插入第3张安装光盘即可开始安装。
另外,你也可以直接插入第3张安装光盘,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安装包,然后在终端命令窗口运行以下命令即可开始安装进程:
[root@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm
2.启动/重新启动/停止vsftpd服务
从Red Hat Linux9.0开始,vsftpd默认只采用standalone方式启动vsftpd服务,方法是在终端命令窗口运行以下命令:
[root@ahpeng root] /etc/rc.d/init.d/vsftpd start
重新启动vsftpd服务:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart
关闭vsftpd服务:
[root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop
确认vsftpd服务已经启动后,我们可以在任意一台Windows主机的DOS命令窗口里输入“ftp FTPAddres”(用实际的FTP服务器IP地址或者域名代替FTPAddres),注意用户名、密码都是ftp(ftp是匿名用户的映射用户账号),如下所述:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
F:\Peter>;ftp FTPAddress
Connected to FTPAddress
220 (vsFTPd 1.1.3) //vsftpd的响应请求
User (FTPAddress:(none)): ftp //输入用户账号ftp
331 Please specify thepassword.
Password: //输入密码ftp
230 Login successful. Havefun.
ftp>;
3.vsftpd的配置
在Red HatLinux 9.0里的vsftpd共有3个配置文件,它们分别是:
vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。它是一个文本文件,我们可以用Kate、Vi等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
(1)用户登录控制
anonymous_enable=YES,允许匿名用户登录。
no_anon_password=YES,匿名用户登录时不需要输入密码。
local_enable=YES,允许本地用户登录。
deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。
banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。
(2)用户权限控制
write_enable=YES,开启全局上传权限。
local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。
anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。
anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。
chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!
chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。
chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。
chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。
nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。
async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!
ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。
注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。
这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。
(3)用户连接和超时选项
idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。
data_connection_timeout=120,设定默认的数据连接超时时间。
(4)服务器日志和欢迎信息
dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。
ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。
xferlog_enable=YES,启用记录上传/下载活动日志功能。
xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。
2、linux怎么搭建ftp服务器
1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/ftp2、建用户:在root用户下:useradd-d/home/ftptest//增加用户test,并制定test用户的主目录为/home/ftppasswdtest//为test设置密码3、更改用户相应的权限设置:(对于一般情况,简单添加一个用户的话,这一步,可以不要!!一般情况下,配置ftp也不需要这一步)usermod-s/sbin/nologintest//限定用户test不能telnet,只能ftpusermod-s/bin/bashtest//用户test恢复正常usermod-d/testtest//更改用户test的主目录为/test4,修改/etc/vsftpd/vsftpd.conf文件如下:anonymous_enable=NO##.local_enable=YES##.write_enable=YES最后在该文件的最后面添加如下行:userlist_enable=YESuserlist_deny=NOuserlist_file=/etc/vsftpd/vsftpd.user_list最后保存/etc/vsftpd/vsftpd.conf文件。5、限制用户只能访问/home/test,不能访问其他路径修改/etc/vsftpd/vsftpd.conf如下:chroot_list_enable=YES//限制访问自身目录#(defaultfollows)chroot_list_file=/etc/vsftpd/vsftpd.chroot_list编辑/etc/vsftpd/vsftpd.chroot_list文件,将受限制的用户添加进去,每个用户名一行添加后如下:test/home/ftp编辑/etc/vsftpd/vsftpd.user_list文件,将受限制的用户添加进去,每个用户名一行添加后如下:test改完配置文件,不要忘记重启vsFTPd服务器[root@linuxsir001root]#/etc/init.d/vsftpdrestart启动后,在进行测试,使用本地用户test及其密码登录,成功。如果此时还不能执行写操作或登录时出现其它错误,则要查看test用户对应的文件夹/home/ftp,test用户是否有对此文件夹的写权限。6、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:(对于一般情况,简单添加一个用户的话,这一步,可以不要!!一般情况下,配置ftp也不需要这一步)usermod-s/usr/bin/passwdtest//用户telnet后将直接进入改密界面
3、linux怎么搭建ftp服务器
vsftpd是一款在Linux发行版中最受推崇的服务器程序。特点是小巧轻快,安全易用。并且是一个完全免费开放源码的ftp软件方法/步骤1、用在线安装 yum install vsftpd pam* db4*-y使用命令将vsftp配置为系统服务 chkconfig --level 35 vsftpd on2、配置vsftpd服务的宿主 useradd vsftpdadmin -s /sbin/nologin -M 这个vsftpdadmin只是用来替换root的,并不需要登录3、建立ftp虚拟宿主帐户 useradd vsftpuser -s /sbin/nologin -M 这ftpuser只个虚拟帐户的宿主,本身是不用登录的4、配置vsftpd.conf 配置之前要先备份一下原来的 vi /etc/vsftpd/vsftpd.conf anonymous_enable=YES -- anonymous_enable=NO //不允许匿名用户访问,默认是允许。chroot_list_enable=YES -- chroot_list_enable=YES //不允许FTP用户离开自己主目录 增加 #设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。 user_config_dir=/etc/vsftpd/vconf/userlocal#这一步非常重要,要记住这一步。一会要根据这个配置新建文件夹 #修改端口号 ftp_data_port=4040 reverse_lookup_enable=NO pasv_enable=yes pasv_min_port=48790 pasv_max_port=48800 listen_port=48796 #端口可以根据你自己实际情况配置,也可以用默认端口。但是为了安全考虑根据自己实际情况配置5、建立虚拟用户文件 mkdir /etc/vsftpd/vconf touch /etc/vsftpd/vonf/vir_user6、建立虚拟用户 vi /etc/vsftpd/vonf/vir_user virtualuser //用户名 12345678 //密码7、生成数据库 db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_user.db8、设置数据库文件访问权限 chmod 600 /etc/vsftpd/vconf/vir_user chmod 600 /etc/vsftpd/vconf/vir_user.db9、修改/etc/pam.d/vsftpd auth sufficient pam_userdb.so db=/etc/vsftpd/vconf/vir_user account sufficient pam_userdb.so db=/etc/vsftpd/vconf/vir_user (要想同时使用系统用户和虚拟用户,就需要把required改成sufficient)10根据第四步配置的user_config_dir=/etc/vsftpd/vconf/userlocal 新建userlocal文件夹 mkdir /etc/vsftpd/vconf/userlocal11、根据第六步建立的用户名建立一个文件 例如第六步建立的帐号是virtualuser,则新建一个virtualuser文件 touch /etc/vsftpd/conf/userlocal/virtualuser12、编辑该用户访问的文件路径 vi /etc/vsftpd/conf/userlocal/virtualuser 输入如下 local_root= //需要指定的网站根目录,例如www.baidu.com所在文件夹为/www/baidu anonymous_enable=NO #禁止匿名用户访问 write_enable=YES #开启写权限 local_umask=022 #上传后文件的权限掩码 anon_upload_enable=NO #关闭匿名下载 anon_mkdir_write_enable=NO #关闭匿名创建文件夹 idle_session_timeout=60 #会话自动关闭时间 60是因分钟 data_connection_timeout=120 #数据延迟时间 max_clients=10 #最大连接数 max_per_ip=5 #同一个ip同时允许5个IP联机 local_max_rate=1048576 #实体用户传输速度限制,单位B/s。0代表不限制13、配置就此完成,重启vsftpd服务:service vsftpd restart。查看系统端口状态:netstas -tulnp。如果能看到48796端口正在被vsftpd调用说明启动成功。如有不清楚的可以再继续看看百度经验。
4、linux创建ftp服务器的基本命令
1.先挂装光来盘 mount /dev/cdrom /media
2.然后切换到源media目录下 cd /media/Server
3.安装 vsftpd 软件 rpm -ivh vsftpd*.rpm
4.安装完以后通过配置 /etc/vsftpd/vsftpd.conf 文件来决定ftp是匿名的还是本地的
5、linux里ftp服务器怎么配置根目录?
1、deepin linux默认没有安装命令行的ftp客户端,在终端执行ftp命令会提示未找到内命令。
2、要安装命令行下的ftp客户端,只需容要执行如下命令即可。sudo apt-get install ftp。
3、安装完成就可以使用命令行下的ftp命令连接ftp服务器了,如下图所示。
4、也可以执行ftp命令,进入交互模式后,通过子命令open来打开ftp服务器。
6、如何在linux系统下的搭建 FTP服务器
FTP服务器配置VSFTP主配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数:
anonymous_enable=yes/no 是否允许匿名用户访问
anon_upload_enable=yes/no 是否允许匿名用户上传文件
anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录
anon_other_write_enable=yes/no 匿名用户和虚拟用户是否拥有删除权限
local_enable=yes/no 是否允许本地用户登陆
write_enable=yes/no 设置全局是否可写
anon_root=/var 指定匿名用户目录
chroot_local_user=yes 锁定所有用户到用户主目录
chroot_list_enable=yes/no 锁定列表中的用户到主目录,需要配合下一参数使用
chroot_list_file=/etc/vsftpd/chroot_list 指定存储被锁定用户的列表文件位置
chown_uploads=yes/no 匿名用户上传所有者指定功能,需要与下一参数配合使用
chown_username=用户名 指定匿名用户上传文件的所有者
max_clients=300 最大客户端连接数为300
anon_max_rate=30000 匿名用户和虚拟用户限速为30K/S
local_max_rate=30000 本地用户限速为30K/S
max_per_ip=10 每个IP最大连接数
listen_port=22 更改监听端口
实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,最大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件:
直接添加以下选项: [root@LidadeFedora vsftpd]# service vsftpd restart
添加用户ftp1,设置登录脚本为 /sbin/nologin:
vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件"testLocal",在"/var/ftp/pub"新建一个文件"testAnon"。
由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才能读取该文件
7、linux 搭建的ftp服务器 怎么上传
在创建FTP服务器之有先命令: ps -ef |grep vsftpd
查一下系统有没有安装vsftpd这个服务专器,如果没有安装。
然后再执属行:yum install vsftpd -y
进行在线安装vsftpd这个服务。
安装成功以后需要把匿名登陆的这个功能关闭了。
使用命令: vim /etc/vsftpd/vsftpd.conf
然后在里成找到:?
anonymous_enable=NO
然后再查看一下vsftpd这个服务有没有启动。
使用命令: chkconfig --list
如果你一样没有启动。
没有启动使用启动:chkconfig --level 35 vsftpd on
再接下来就是创建用户名。
创建用户名:useradd jingyan
再然后就是创建密码。
命令:passwd jingyan
再输入两次密码就可以了。
最后重启一下服务:service vsftpd start
如果出现启动失败则可以使用:/etc/rc.d/init.d/vsftpd restart
成功链接FTP服务器上。
8、linux怎么搭建ftp服务器
安装vsFTP软件抄 启动服务之袭后 useradd -d /houme/FTPTEST -m FTPTEST passwd FTPTEST 输入密码 这样就有一个FTP用户可以用FTP来连接你的FTP服务器 当然记得设置分配的目录的权限和组权限
9、linux虚拟机怎么搭建ftp服务器
详解中搭建一个ftp服务器。
ftp工作是会启动两个通道:
控制通道 , 数据通道
在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)
PORT模式:
在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。
PASV模式:
传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。
安装ftp
#rpm -qa vsftpd 查看是否已经安装
#yum install -y vsftpd
#rpm -ql vsftpd
/etc/logrotate.d/vsftpd. vsftpd的日志文件
/etc/pam.d/vsftpd PAM认证文件
/etc/rc.d/init.d/vsftpd 启动脚本
/etc/vsftpd vsftpd的配置文件存放的目录
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件
/etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh vsftpd操作的一些变量和设置
/usr/sbin/vsftpd vsftpd的主程序
其他一些说明文档和手册文件略!
/var/ftp 匿名用户主目录
/var/ftp/pub 匿名用户的下载目录
#service vsftpd start
#chkconfig --level vsftpd
#chkconfig --level 2345 vsftpd on
2 匿名用户的登录名:ftp(anonymous) 密码空 ,登录的目录为/var/ftp
用匿名用户登录的时候默认是只有下载的权限,没有上传,创建和删除的权限:
#vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES 上传
anon_mkdir_write_enable=YES 创建
anon_other_write_enable=YES 删除
#service vsftpd restart
为了安全应该禁止匿名用户的登录:
123456 #vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#anon_upload_enable=YES 上传
#anon_mkdir_write_enable=YES 创建
#anon_other_write_enable=YES 删除
#service vsftpd restart
3 创建一个直接登录系统用户来登录ftp:
#useradd -s /sbin/nologin viong
#passwd viong
用户具有 上传 创建 下载 切换目录
------------------------------------------------------------------
4 加强vsftp安全设置:
限制系统用户锁定在家目录:
#vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list 限制更多的系统用户,把需要限制的用户加入/etc/vsftpd/chroot_list中即可
#touch /etc/vsftpd/chroot_list
#cut -d: -f 1 /etc/passwd >>/etc/vsftpd/chroot_list 将本地用户都加入到chroot_list
限制重要系统用户不能登录ftp:
#cat /etc/vsftpd/ftpusers 默认已经添加了系统中一些比较重要的用户
#echo "viong" >>/etc/vsftpd/ftpusers 此时viong不能登录ftp
利用ftp用户策略允许登录ftp的系统用户:
/etc/vsftpd/user_list 只有在这个文件中的用户才能登录系统:
#vim /etc/vsftpd/vsftpd.conf
#在userlist_enable=YES 的后面添加
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
设置登录ftp目标ip地址:用iptables设置
---------------------------------------
搭建支持SSL加密传输的vsftpd:
#openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem 生成证书
#vim /etc/vsftpd/vsftpd.conf
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
下面是ssl参数一些定义,根据自己需求去修改:
ssl_enable=yes/no //是否启用 SSL,默认为no
allow_anon_ssl=yes/no //是否允许匿名用户使用SSL,默认为no
rsa_cert_file=/path/to/file //rsa证书的位置
dsa_cert_file=/path/to/file //dsa证书的位置
force_local_logins_ssl=yes/no //非匿名用户登陆时是否加密,默认为yes
force_local_data_ssl=yes/no //非匿名用户传输数据时是否加密,默认为yes
force_anon_logins_ssl=yes/no //匿名用户登录时是否加密,默认为no
force_anon_data_ssl=yes/no //匿名用户数据传输时是否加密,默认为no
ssl_sslv2=yes/no //是否激活sslv2加密,默认no
ssl_sslv3=yes/no //是否激活sslv3加密,默认no
ssl_tlsv1=yes/no //是否激活tls v1加密,默认yes
ssl_ciphers=加密方法 //默认是DES-CBC3-SHA
#service vsftpd restart
用flashftp连接:
连接类型为:FTP使用公开SSL(验证SSL)
地址:192.168.137.130:21
登录类型:普通
用户:viong
密码:123
10、linux怎么配置ftp服务器
一、下载vsftpd软件
sudo apt-get install vsftpd
我这里已经是安装过了
二、配置vsftpd.conf文件,这里是不允许匿名登录的情况
1、进入etc目录
cd /etc/
2、进入编辑
sudo vi vsftpd.conf
3、去掉Listen=YES anonymous_enable=NO local_enable=YES write_enable=YES前面的#号
要注意的是,如果你没有涉及到ipv6地址,listen_ipv6=YES记得要注释掉,不然的话会出现connection refused,至少我是这样了TAT
4、在文件末尾插入
pasv_min_port=10060
pasv_max_port=10090
此为vsftpd被动模式(pasv)的端口范围
5、保存退出
三、添加FTP用户
1、在一个合适的地方创建文件夹,这个文件夹作为用户的根目录,并设置好权限。例如:/home/ubuntu/ftp
2、执行如下语句添加用户(username为用户名)
sudo useradd -d /home/ubuntu/ftp -s /bin/bash username
3、执行如下语句设置密码(username为用户名)
sudo passwd username
四、启动ftp服务
sudo service vsftpd start
五、Enjoy!