导航:首页 > IDC知识 > ftpd服务器

ftpd服务器

发布时间:2021-01-16 20:12:05

1、如何在linux下开启FTP服务

Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa |grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:

useradd -s /sbin/nologin -d /home/ftp_test ftp_test

目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,

可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:

passwd ftp_test

执行之后输入2次密码确认就设置好了密码

然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf

找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录

现在直接保存配置文件,执行 systemctl start vsftpd.service 启动vsftp服务,然后可以通过命令: systemctl status vsftpd.service 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常

现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2 属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:

配置完这两项以后保存退出,然后执行 systemctl restart vsftpd.service 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的

现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录

以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户

2、linux虚拟机怎么设置ftp服务器??

下面是在虚拟机中的linux的ftp的基本配置(redhat AS 4.0为例):
首先要安装linux下的vsftp软件包。
rpm -qa|gerp vsftpd //查找vsftpd有没有安装
如果没有安装就 vsftpd-2.0.1-5.i386.rpm (在第一张光盘)
在linux中有一个非常重要的一点就是要挂载光驱 mount /media/cdrom
在这里我们就不用源代码安装了。用的是rpm安装
#rpm -ivh vsftpd-2.0.1-5.i386.rpm
这里就安装好了。
service vsftpd start 启动vsftpd服务
如果在不设置任何的情况下,可以以匿名的方式访问该ftp。
注.如果访问不了的时候请大家要把linux的防火墙也要关闭:
iptables -F 清除防火墙
在安装好ftp会产生几个文件:
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd.ftpusers 指定哪些用户不能访问FTP服务器
/etc/vsftpd.user_list 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。
这几个文件就是整个ftp控制和禁止用户的权限配置。。。
下面我们就来设置一个vsftpd的核心文件
# cd /etc/vsftpd/vsftpd.conf 这就是vsftpd的核心配置文件
anonymous_enable=YES/no 是否允许匿名用户登录
anonymous_enable=yes/no 是否允许匿名上传文件
local_enable= YES/no 是否允许本地用户登录
write_enable= YES/no 是否允许本地用户上传
guest_enable=yes/no 是否允许虚拟用户登录;
local_mask=022 设置本地用户的文件生成掩码为022,默认值为077
dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容
xferlog_enable= YES 激活上传和下载日志
connect_from_port_20=YES 启用FTP数据端口连接
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下
userlist_enable= YES 允许vsftpd.user_list文件中的用户访问服务器
userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器
listen= YES/no 是否使用独占启动方式(这一项比较重要)
tcp_wrappers= YES/no 是否使用tcp_wrappers作为主机访问控制方式
最主要的就是这些设置了。(这是一般都是默认的不是太懂的不要动)
大家可以设置下面的设置:
ftpd_banner=welcome to ftp service 设置连接服务器后的欢迎信息
idle_session_timeout=60 限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120 设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60 设置在多长时间后自动建立连接
connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 指明服务器总的客户并发连接数为200
max_per_ip=3 指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec)
anon_max_rate=30000 设置本地用户和匿名用户的最大传输速率限制
pasv_min_port=端口
pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号 设置FTP工作的端口号,默认的为21
chroot_local_user=YES 设置所有的本地用户可以chroot
chroot_local_user=NO 设置指定用户能够chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list(只有/etc/vsftpd.chroot_list中的指定的用户才能执行)
local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;
chroot_list_enable=yes/no 锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path 中指定;
userlist_enable=YES/NO 是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户是否允许拒绝登录;
userlist_file=/etc/vsftpd.user_list 列表文件
这些就是高级设置了。大家可以适当的更改。
#vi /etc/hosts.allow
vsftpd:192.168.5.128:DENY 设置该IP地址不可以访问ftp服务(vsftpd在独占启动方式下支持tcp_wrappers主机访问控制方式)
时间限制:
#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
#vi /etc/xinetd.d/vsftpd/
修改 disable = no
access_time = hour:min-hour:min (添加配置访问的时间限制(注:与vsftpd.conf中listen=NO相对应)
例: access_time = 8:30-11:30 17:30-21:30 表示只有这两个时间段可以访问ftp

配置文件是 /etc/vsftpd/vsftpd.conf 按如下编辑此文件,编辑文件当然用vi了
1)实现匿名用户的上传下载文件
程序代码:
Anonymous_enable=yes 匿名登陆
Connect_form_port_20=yes 启用FTP数据端口的数据连接
Pam_service_name=vsftpd 验证方式
Listen=yes 独立的VSFTPD服务器

这样你就可以实现匿名登陆ftp了,但还不能上传文件
程序代码:
Anon_upload_enable=yes 开放上传权限
Anon_mkdir_write_enable=yes 可创建目录的同时可以在此目录中上传文件
Write_enable=yes 开放本地用户写的权限
Anon_other_write_enable=yes 匿名帐号可以有删除的权限
加上上面的这段,你就可以实现匿名ftp的上传下载文件了
然后你保存文件,用service vsftpd start来启动vsftp的服务,然后就可以用ftp了
注意:确定你的防火墙 iptables上打开21端口,不然在登陆ftp的时候会提示socket错误,拒绝连接。还有就是当你再次编辑vsftp.conf后用 service vsftpd restart重起的时候总是提示你不能关闭vsftp服务,这时候你用service vsftpd status察看一下他的状态,如果提示你vsftpd被locked 那可能是因为你的vsftpd.conf中配置的有错误,你要重新编辑他,直到能正常重起他为止,一次配置不对,多配置几次就好了
2)实现本地用户上传下载
程序代码:
新建一个用户
adser 用户名 增加一个用户
passwd 用户名 增加用户的密码
然后看/etc/passwd中最后一行就是你刚才添加的用户信息
然后编辑/etc/vsftpd/vsftpd.conf文件,
Local_enable=yes 允许使用本地用户来登陆ftp
在/etc/vsftpd.ftpuser中可以增加想要阻止登陆ftp的用户
限制用户只能在自己的目录中
Chroot_list_enable=yes 文件中的名单可以调用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no,在文件中加入用户名

vsftpd.conf的参数
程序代码:
Anonymous_enable=yes 允许匿名登陆
Dirmessage_enable=yes 切换目录时,显示目录下.message的内容
Local_umask=022 FTP上本地的文件权限,默认是077
Connect_form_port_20=yes 启用FTP数据端口的数据连接
Xferlog_enable=yes 激活上传和下传的日志
Xferlog_std_format=yes 使用标准的日志格式
Ftpd_banner=XXXXX 显示欢迎信息
Pam_service_name=vsftpd 验证方式
Listen=yes 独立的VSFTPD服务器
Anon_upload_enable=yes 匿名用户上传权限
Anon_mkdir_write_enable=yes 创建目录的同时可以在此目录中上传文件
Write_enable=yes 本地用户写的权限
Anon_other_write_enable=yes 匿名帐号可以有删除的权限
Anon_world_readable_only=no 匿名用户浏览权限
Ascii_upload_enable=yes 启用上传的ASCII传输方式
Ascii_download_enable=yes 启用下载的ASCII传输方式
Banner_file=/var/vsftpd_banner_file 用户连接后欢迎信息使用的是此文件中的相关信息
Idle_session_timeout=600(秒) 用户会话空闲后10分钟
Data_connection_timeout=120(秒) 将数据连接空闲2分钟断
Accept_timeout=60(秒) 将客户端空闲1分钟后断
Connect_timeout=60(秒) 中断1分钟后又重新连接
Local_max_rate=50000(bite) 本地用户传输率50K
Anon_max_rate=30000(bite) 匿名用户传输率30K
Pasv_min_port=5000 将客户端的数据连接端口改在
Pasv_max_port=6000 5000—6000之间
Max_clients=200 FTP的最大连接数
Max_per_ip=4 每IP的最大连接数
Listen_port=5555 从5555端口进行数据连接
Local_enble=yes 本地帐户能够登陆
Write_enable=no 本地帐户登陆后无权删除和修改文件
Chroot_local_user=yes 本地所有帐户都只能在自家目录
Chroot_list_enable=yes 文件中的名单可以调用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no
Userlist_enable=yes 在指定的文件中的用户不可以访问
Userlist_deny=yes
Userlist_file=/etc/vsftpd.user_list
Banner_fail=/路径/文件名 连接失败时显示文件中的内容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 将虚拟服务绑定到某端口
Guest_enable=yes 虚拟用户可以登陆
Guest_username=所设的用户名 将虚拟用户映射为本地用户
Chown_uploads=yes 改变上传文件的所有者为root
Chown_username=root
Deny_email_enable=yes 是否允许禁止匿名用户使用某些邮件地址
Banned_email_file=//任意指定的路径/xx/
Pasv_enable=yes 服务器端用被动模式
User_config_dir=/任意指定的路径//任意文件目录指定虚拟用户存放配置文件的路径

3、linux 有哪几种 ftp服务器,哪一个性能最完善

linux下常用的ftp服务器软件linux下常用的ftp服务器软件主要有:ProFTPD
、WU-FTPD
、VSFTPD、
Pure-FTP
。最常见就这几个回,而且也是linux中带的,比较答容易配置。我喜欢用VSFTPD。

4、linuxftp服务器有什么用

应该是用vsftpd的最多,号称是非常安全的ftp服务器(very secure ftpd) 不用代码的话,可以使用rpm安装方式。一般在版Linux的系统光盘里就会有相应权的安装程序,例如rhel4的话就在第一张光盘里(/media/cdrom/RedHat/RPMS/)。

5、如何搭建ftp服务器

Ubuntu自带的FTP服务器是vsftpd
1、安装vsftpd

sudo apt-get install vsftpd
安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地 址。应该可以看到一个空白内容的ftp空间。
默认设置下匿名用户可以下载,但不能写入或是上传
2、设置 vsftpd.conf文件
现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。
首先找到设置vsftpd的文件,位置在/etc/vsftpd.conf
sudo gedit /etc/vsftpd.conf

服务器的配置 
1. 匿名服务器的连接(独立的服务器)

在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项:
Anonymous_enable=yes (允许匿名登陆)

Dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
Local_umask=022 (FTP上本地的文件权限,默认是077)
Connect_form_port_20=yes (启用FTP数据端口的数据连接)*
Xferlog_enable=yes (激活上传和下传的日志)

Xferlog_std_format=yes (使用标准的日志格式)
Ftpd_banner=Moonlight Ftp Server (欢迎信息)
Pam_service_name=vsftpd (验证方式)*
Listen=yes (独立的VSFTPD服务器)*

功能:只能连接FTP服务器,不能上传和下传

注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项

2. 开启匿名FTP服务器上传权限

在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (开放上传权限)
Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
Write_enable=yes (开放本地用户写的权限)
Anon_other_write_enable=yes (匿名帐号可以有删除的权限)

3. 开启匿名服务器下传的权限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去

4.普通用户FTP服务器的连接(独立服务器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帐户能够登陆)
Write_enable=no (本地帐户登陆后无权删除和修改文件)
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传

5. 用户登陆限制进其它的目录,只能进它的主目录
设置所有的本地用户都执行chroot
Chroot_local_user=yes (本地所有帐户都只能在自家目录)
设置指定用户执行chroot
Chroot_list_enable=yes (文件中的名单可以调用)
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可

6. 限制本地用户访问FTP

Userlist_enable=yes (用userlistlai 来限制用户访问)

Userlist_deny=no (名单中的人不允许访问)

Userlist_file=/指定文件存放的路径/ (文件放置的路径)

注:开启userlist_enable=yes匿名帐号不能登陆

7. 安全选项

Idle_session_timeout=600(秒) (用户会话空闲后10分钟)
Data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
Accept_timeout=60(秒) (将客户端空闲1分钟后断)
Connect_timeout=60(秒) (中断1分钟后又重新连接)
Local_max_rate=50000(bite) (本地用户传输率50K)
Anon_max_rate=30000(bite) (匿名用户传输率30K)
Pasv_min_port=50000 (将客户端的数据连接端口改在
Pasv_max_port=60000 50000—60000之间)
Max_clients=200 (FTP的最大连接数)
Max_per_ip=4 (每IP的最大连接数)
Listen_port=5555 (从5555端口进行数据连接)

8. 查看谁登陆了FTP,并杀死它的进程

ps –xf |grep ftp
kill 进程号
最后重启动服务
sudo /etc/init.d/vsftpd restart

6、prftpd服务器的重启命令是什么???

ProFTPD 服务器的管理;
ProFTPD服务器的启动程序是在安装目录的sbin中,也就是proftpd;我们还是以安装目录/opt/proftpd 为准来说明;

[root@localhost ~]# /opt/proftpd/sbin/proftpd
注:服务器的启动;
[root@localhost ~]# pgrep proftpd

注:查看服务器是不是启动起来了;如果没有进程,说明失败;
[root@localhost ~]# pkill proftpd

注:杀死proftpd的进程;也就是关掉服务器;
注意:我们更改proftpd.conf后,要重启proftpd ,否则改动不会生效。这时就要用到pkill proftpd ,然后再重启proftpd 服务器;每次改动proftpd.conf都要这么做;
下面是几个查看ProFTPD服务器状态的命令,您也可以尝试一下,具体用法自己尝试吧;
[root@localhost ~]# /opt/proftpd/bin/ftpcount

[root@localhost ~]# /opt/proftpd/bin/ftpwho

[root@localhost ~]# /opt/proftpd/bin/ftptop

[root@localhost ~]# /opt/proftpd/bin/

7、linux的ftp服务器用哪个啊?

应该是用vsftpd的最多,号称是非常安全的ftp服务器(very secure ftpd)
不用代码的话,可以使用rpm安装方式。一般在Linux的系回统光盘里就会有相应的答安装程序,例如rhel4的话就在第一张光盘里(/media/cdrom/RedHat/RPMS/)。

8、LINUX 下如何开启 ftp 服务器

1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:
#which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件

2. 查看ftp 服务器状态
#service vsftpd status

3. 启动ftp服务器
#service vsftpd start

4. 重启ftp服务器
#service vsftpd restart

5. 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,证明ftp服务已经开启。

6.如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpd.ftpusers中注释掉root
#vi /etc/vsftpd.user_list中也注释掉root
然后重新启动ftp服务。

7. vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!

这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。

8. 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetd.d ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetd.d/gssftp ,将 修改两项内容:

(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。

方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2.,保存后退出

  (b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右

  (c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出.

9、做 ftp linux用什么服务器

应该是用vsftpd的最多,号称是非常安全的ftp服务器(very secure ftpd)
不用代码的话,可以使用rpm安装方式。一般版在Linux的系统光盘权里就会有相应的安装程序,例如rhel4的话就在第一张光盘里(/media/cdrom/RedHat/RPMS/)。

10、如何在linux上设置一个ftp服务器

1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:
#which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件

2. 查看ftp 服务器状态
#service vsftpd status

3. 启动ftp服务器
#service vsftpd start

4. 重启ftp服务器
#service vsftpd restart

5. 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,证明ftp服务已经开启。

6.如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpd.ftpusers中注释掉root
#vi /etc/vsftpd.user_list中也注释掉root
然后重新启动ftp服务。

7. vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!

这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。

8. 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetd.d ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetd.d/gssftp ,将 修改两项内容:

(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。

方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2.,保存后退出

(b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右

(c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出.

与ftpd服务器相关的知识