连接linux的ftp服务器?centos连接ftp服务器
今天给各位分享连接linux的ftp服务器的知识,其中也会对centos连接ftp服务器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
如何在linux下开启FTP服务
按下列步骤开启设置LINXU中的FTP服务:
1、开启linuxh环境下的FTP service
过程如下:
输入命令:
/etc/rc.d/init.d/vsftpd start
/etc/rc.d/init.d/vsftpd restart
若要关闭这个服务:
/etc/rc.d/init.d/ vsftpd stop
2、配置文件:
进入/etc配置vsftpd.ftpusers和vsftpd.user_list,用vi打开他们,将这两个文件里的root给去掉,保存退出。
3、此时可以打开flshFXP,快速连接,输入IP地址、用户名及密码就可以连接linux系统的FTP服务器。
4、vsftpd的配置
在Red Hat Linux里的vsftpd共有3个配置文件,它们分别是:
vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd.conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。它是一个文本文件,我们可以用Kate、Vi等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
怎么通过linux访问服务器上的ftp
这个直接推荐你看看这里:
文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行。
通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端。
FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。
20端口:数据传输,用于上传、下载文件数据。
FTP数据传输的类型:
主动模式:FTP服务端主动向FTP客户端发起连接请求。
被动模式:FTP服务端等待FTP客户端的连接请求。
11.2安装vsftpd服务程序
Vsftpd即“Very Secure FTP Daemon”是一款运行在类Unix操作系统的FTP服务端程序,Vsftpd主打的是安全性、完全开源及免费、速率高、支持IPv6、虚拟用户功能等等其他FTP服务端软件不具备的功能。
安装vsftpd服务程序包:
[root@linuxprobe~]# yum install vsftpd-y
Loaded plugins: langpacks, product-id, subscription-manager
…………………省略部分安装过程………………
---> Package vsftpd.x86_64 0:3.0.2-9.el7 will be installed
--> Finished Dependency Resolution
…………………省略部分安装过程…………………
Installed:
vsftpd.x86_64 0:3.0.2-9.el7
Complete!
清空默认的防火墙默认规则:
[root@linuxprobe~]# iptables-F
保存清空后的防火墙规则表:
[root@linuxprobe~]# service iptables save
Vsftpd的程序与配置文件:
主程序/usr/sbin/vsftpd
用户禁止登陆列表/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件/etc/vsftpd/vsftpd.conf
先来分析下vsftpd程序的主配置文件吧:
[root@linuxprobe~]# cat/etc/vsftpd/vsftpd.conf
主配置文件长达123行,但大部分是以#号开始的,这些都是注释信息,我们可以过滤掉它们。
备份vsftpd的主配置文件:
[root@linuxprobe~]# mv/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak
过滤掉所有包含#号的行,并将过滤结果写回到vsftpd.conf文件中:
[root@linuxprobe~]# grep-v"#"/etc/vsftpd/vsftpd.conf_bak>/etc/vsftpd/vsftpd.conf
此时再分析下vsftpd程序的主配置文件吧:
[root@linuxprobe~]# cat/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
vsftpd程序配置文件参数的作用:
参数作用
listen=[YES|NO]是否以独立运行的方式监听服务。
listen_address=IP地址设置要监听的IP地址。
listen_port=21设置FTP服务的监听端口。
download_enable=[YES|NO]是否允许下载文件。
userlist_enable=[YES|NO]
userlist_deny=[YES|NO]是否启用“禁止登陆用户名单”。
max_clients=0最大客户端连接数,0为不限制。
max_per_ip=0同一IP地址最大连接数,0位不限制。
anonymous_enable=[YES|NO]是否允许匿名用户访问。
anon_upload_enable=[YES|NO]是否允许匿名用户上传文件。
anon_umask=022匿名用户上传文件的umask值。
anon_root=/var/ftp匿名用户的FTP根目录。
anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录。
anon_other_write_enable=[YES|NO]是否开放匿名用户其他写入权限。
anon_max_rate=0匿名用户最大传输速率(字节),0为不限制。
local_enable=[YES|NO]是否允许本地用户登陆FTP。
local_umask=022本地用户上传文件的umask值。
local_root=/var/ftp本地用户的FTP根目录。
chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,更加的安全。
local_max_rate=0本地用户最大传输速率(字节),0为不限制。
11.3 Vsftpd的验证方式
vsftpd程序提供的FTP服务可选认证方式,分别为匿名访问、本地用户和虚拟用户:
匿名访问:任何人无需验证口令即可登入FTP服务端。
本地用户:使用FTP服务器中的用户、密码信息。
虚拟用户:创建独立的FTP帐号资料。
顾名思义匿名访问就是所有人均可随意登入FTP服务,这样自然会产生安全问题,一般用于存放公开的数据。
而本地用户与虚拟用户则需要用户提供帐号及口令后才能登入FTP服务,更加的安全,而虚拟用户则是最安全的。
下面的实验环节将使用两台红帽RHEL7系统的主机,读者需要提前配置网卡的IP地址等信息:
主机名称操作系统 IP地址
FTP服务端红帽RHEL7操作系统 192.168.10.10
FTP客户端红帽RHEL7操作系统 192.168.10.20
11.3.1匿名访问模式
FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露。
vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数:
[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf
参数作用
anonymous_enable=YES允许匿名访问模式。
anon_umask=022匿名用户上传文件的umask值。
anon_upload_enable=YES允许匿名用户上传文件
anon_mkdir_write_enable=YES允许匿名用户创建目录
anon_other_write_enable=YES允许匿名用户修改目录名或删除目录
确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。
[root@linuxprobe~]# systemctl restart vsftpd
[root@linuxprobe~]# systemctl enable vsftpd
ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:"systemctl enable vsftpd"。
如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.10.20)尝试登入FTP服务了。
ftp命令用于使用FTP服务,格式为:“ftp [参数] [FTP主机]”。
红帽RHEL7系统中ftp命令默认没有安装,请执行"yum install ftp-y"即可安装完毕。
在客户端尝试登入FTP服务:
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): anonymous
331 Please specify the password.
Password:敲击回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
550 Permission denied.
上面操作中已经将防火墙规则清空,在vsftpd.conf文件中也已经允许匿名用户创建目录与写入权限,那怎么会被拒绝了呢?
这里建议读者先不要往下看,思考后用自己的方法解决下这个问题,长期这样你的Linux的排错能力一定会练出来的。
回想前面的参数细节,匿名访问模式的FTP根目录为/var/ftp:
[root@linuxprobe~]# ls-ld/var/ftp/pub
drwxr-xr-x. 3 root root 16 Jul 13 14:38/var/ftp/pub
原来匿名用户的FTP根目录所有者/组都是root,所以匿名用户没有写入权限,那我们将所有者修改为ftp试试吧。
[root@linuxprobe~]# chown ftp/var/ftp/pub
此时再用ftp命令尝试登入FTP服务并创建文件:
ftp> mkdir files
550 Create directory operation failed.
可恶!又报错了!!虽然这次报错代码还是550,但前面提示权限拒绝,这次是操作失败,马上想到是SELinux服务在捣鬼。
查看所有与ftp相关的SELinux规则:
[root@linuxprobe~]# getsebool-a| grep ftp
ftp_home_dir--> off
ftpd_anon_write--> off
ftpd_connect_all_unreserved--> off
ftpd_connect_db--> off
ftpd_full_access--> off
ftpd_use_cifs--> off
ftpd_use_fusefs--> off
ftpd_use_nfs--> off
ftpd_use_passive_mode--> off
httpd_can_connect_ftp--> off
httpd_enable_ftp_server--> off
sftpd_anon_write--> off
sftpd_enable_homedirs--> off
sftpd_full_access--> off
sftpd_write_ssh_home--> off
tftp_anon_write--> off
tftp_home_dir--> off
设置SELinux服务对ftp服务的访问规则策略为允许。
[root@linuxprobe~]# setsebool-P ftpd_full_access=on
此时再来创建文件或目录就没有问题了:
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): anonymous
331 Please specify the password.
Password:敲击回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
257"/pub/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.
请注意:当您完成本实验后请还原虚拟机快照再进行下一个实验,否则可能导致配置文件冲突而报错。
11.3.2本地用户模式
既然要使用本地用户模式,而本地用户模式确实要比匿名访问模式更加的安全,所以本实验中会关闭匿名访问模式。
vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:
[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf
参数作用
anonymous_enable=NO禁止匿名访问模式。
local_enable=YES允许本地用户模式。
write_enable=YES设置可写入权限。
local_umask=022本地用户模式创建文件的umask值。
userlist_deny=YES参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。
userlist_enable=YES允许“禁止登陆名单”,名单文件为ftpusers与user_list。
确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。
[root@linuxprobe~]# systemctl restart vsftpd
[root@linuxprobe~]# systemctl enable vsftpd
ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:”systemctl enable vsftpd“。
如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.10.20)尝试登入FTP服务了~
我们先来看下ftpusers或user_list文件中禁止登陆用户名单:
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:
[root@linuxprobe~]# useradd linuxprobe
为linuxprobe用户设置密码:
[root@linuxprobe~]# passwd linuxprobe
Changing password for user linuxprobe.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
在客户端尝试登入FTP服务:
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:输入用户的本地密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
550 Create directory operation failed.
有了上面配置匿名访问模式的经验,这次再遇到了“操作被拒绝”,应该马上想到SELinux了吧。
查看所有与ftp相关的SELinux规则:
[root@linuxprobe~]# getsebool-a| grep ftp
ftp_home_dir--> off
ftpd_anon_write--> off
ftpd_connect_all_unreserved--> off
ftpd_connect_db--> off
ftpd_full_access--> off
ftpd_use_cifs--> off
ftpd_use_fusefs--> off
ftpd_use_nfs--> off
ftpd_use_passive_mode--> off
httpd_can_connect_ftp--> off
httpd_enable_ftp_server--> off
sftpd_anon_write--> off
sftpd_enable_homedirs--> off
sftpd_full_access--> off
sftpd_write_ssh_home--> off
tftp_anon_write--> off
tftp_home_dir--> off
设置SELinux对FTP服务的规则为允许:
[root@linuxprobe~]# setsebool-P ftpd_full_access=on
此时再来创建文件或目录就没有问题了:
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): linuxprobe
331 Please specify the password.
Password:输入用户本地密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir files
257"/home/linuxprobe/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.
在linux中怎样搭配ftp服务器
一. FTP说明
linux系统下常用的FTP是vsftp,即Very Security File Transfer Protocol.还有一个是proftp(Profession ftp)。我们这里也是简单的说明下vsftp的配置。
vsftp提供3种远程的登录方式:
(1)匿名登录方式
就是不需要用户名,密码。就能登录到服务器电脑里面
(2)本地用户方式
需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你linux系统里面,已经有的用户。
(3)虚拟用户方式
同样需要用户名和密码才能登录。但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有的(没有该用户帐号)
二. Vsftp的安装配置
2.1安装
vsftp的安装包,可以在安装里找到。用yum安装过程也很简单。
安装命令:yum install vsftpd
2.2.相关命令
2.2.1启动与关闭
[root@singledb~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@singledb~]# service vsftpd stop
Shutting down vsftpd: [ OK ]
[root@singledb~]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[root@singledb~]#/etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [FAILED]
[root@singledb~]#/etc/init.d/vsftpd stop
Shutting down vsftpd: [ OK ]
[root@singledb~]#/etc/init.d/vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[root@singledb~]#/etc/init.d/vsftpd status
vsftpd(pid 3931) is running...
[root@singledb~]#
2.2.2.其他命令
--查看vsftpd启动状态
[root@singledb~]# chkconfig--list vsftpd
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@singledb~]# chkconfig vsftpd on
[root@singledb~]# chkconfig--list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
这里看到,默认情况下从2到5设置为on了。2到5是多用户级别。这个对应的是linux不同的运行级别。
我们也可以加level选项来指定:
[root@singledb~]# chkconfig--level 0 vsftpd on
[root@singledb~]# chkconfig--list vsftpd
vsftpd 0:on 1:off 2:on 3:on 4:on 5:on 6:off
我们看到0已经设置为on了。
我们可以使用man chkconfig来查看帮助:
--level levels
Specifies the run levels an operation should pertain to. It is given as a string of numbers from 0 to 7. For example,--level 35 specifies runlevels 3 and 5.
传统的init定义了7个运行级(run level),每一个级别都代表系统应该补充运行的某些特定服务:
(1)0级是完全关闭系统的级别
(2)1级或者S级代表单用户模式
(3)2-5级是多用户级别
(4)6级是重新引导的级别
(1)查看防火墙
我一般都是把系统的防火墙关闭了。因为开了会有很多限制。
[root@singledb~]#/etc/init.d/iptables status
Table: nat
Chain PREROUTING(policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING(policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all-- 192.168.122.0/24!192.168.122.0/24
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
Table: filter
Chain INPUT(policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
2 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
3 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:67
4 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
Chain FORWARD(policy ACCEPT)
num target prot opt source destination
1 ACCEPT all-- 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED
2 ACCEPT all-- 192.168.122.0/24 0.0.0.0/0
3 ACCEPT all-- 0.0.0.0/0 0.0.0.0/0
4 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
5 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
You have new mail in/var/spool/mail/root
--添加开放21号端口:
[root@singledb~]#/sbin/iptables-I INPUT-p tcp--dport 21-j ACCEPT
[root@singledb~]#/etc/init.d/iptables status
Table: nat
Chain PREROUTING(policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING(policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all-- 192.168.122.0/24!192.168.122.0/24
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
Table: filter
Chain INPUT(policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
2 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
3 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
4 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:67
5 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
Chain FORWARD(policy ACCEPT)
num target prot opt source destination
1 ACCEPT all-- 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED
2 ACCEPT all-- 192.168.122.0/24 0.0.0.0/0
3 ACCEPT all-- 0.0.0.0/0 0.0.0.0/0
4 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
5 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
--保存配置
[root@singledb~]#/etc/rc.d/init.d/iptables save
Saving firewall rules to/etc/sysconfig/iptables: [ OK ]
--重启防火墙:
[root@singledb~]# service iptables{start|stop|restart}
(2)查看关闭selinux
[root@singledb~]# sestatus
SELinux status: disabled
我这里在安装操作系统的时候就关闭了selinux,如果没有关闭,可以修改如下文件来关闭:
[root@singledb~]# cat/etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing- SELinux security policy is enforced.
# permissive- SELinux prints warnings instead of enforcing.
# disabled- SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted- Only targeted network daemons are protected.
# strict- Full SELinux protection.
SELINUXTYPE=targeted
[root@singledb~]#
保存退出并重启系统reboot
三. FTP配置文件
FTP安装好之后,在/etc/vsftpd/目录下会有如下文件:
[root@singledb~]# cd/etc/vsftpd/
[root@singledb vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@singledb vsftpd]#
vsftpd.conf:主配置文件
ftpusers:指定哪些用户不能访问FTP服务器
user_list:指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。
[root@singledb vsftpd]# cat user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES(default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks/etc/vsftpd/ftpusers
# for users that are denied.
我们过滤掉#的注释后,查看一下vsftpd.conf文件:
[root@singledb ftp]# cat/etc/vsftpd/vsftpd.conf|grep-v'^#';
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=yes
tcp_wrappers=YES
至于这些参数的意思,在注释里有详细的说明。
我们可以在vsftpd.conf文件设置如下参数:
(1)ftpd_banner=welcome to ftp service:设置连接服务器后的欢迎信息
(2)idle_session_timeout=60:限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
(3)data_connection_timeout=120:设置客户机在进行数据传输时,设置空闲的数据中断时间
(4)accept_timeout=60设置在多长时间后自动建立连接
(5)connect_timeout=60设置数据连接的最大激活时间,多长时间断开,为别人所使用;
(6)max_clients=200指明服务器总的客户并发连接数为200
(7)max_per_ip=3指明每个客户机的最大连接数为3
(8)local_max_rate=50000(50kbytes/sec)本地用户最大传输速率限制
(9)anon_max_rate=30000匿名用户的最大传输速率限制
(10)pasv_min_port=端口
(11)pasv-max-prot=端口号定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
(12)listen_address=IP地址设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
(13)listen_port=端口号设置FTP工作的端口号,默认的为21
(14)chroot_local_user=YES设置所有的本地用户可以chroot
(15)chroot_local_user=NO设置指定用户能够chroot
(16)chroot_list_enable=YES
(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中的指定的用户才能执行)
(18)local_root=path无论哪个用户都能登录的用户,定义登录帐号的主目录,若没有指定,则每一个用户则进入到个人用户主目录;
(19)chroot_local_user=yes/no是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;
(20)chroot_list_enable=yes/no锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path中指定;
(21)userlist_enable=YES/NO是否加载用户列表文件;
(22)userlist_deny=YES表示上面所加载的用户是否允许拒绝登录;
(23)userlist_file=/etc/vsftpd/user_list列表文件
限制IP访问FTP:
#vi/etc/hosts.allow
vsftpd:192.168.5.128:DENY设置该IP地址不可以访问ftp服务
FTP访问时间限制:
#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
ftp的配置基本上只有这些了。
默认情况下,ftp根目录是/var/ftp。如果要修改这个目录位置,可以更改/etc/passwd文件:
[root@singledb ftp]# cat/etc/passwd| grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
创建一个用户来访问FTP,并指定该用户的FTP目录:
[root@singledb u02]# useradd-d/u02/qsftp qs
[root@singledb u02]# passwd qs
Changing password for user qs.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
这里指定的是/u02/qsftp这个目录,要注意个目录的权限。
更改用户不能telnet,只能ftp:
usermod-s/sbin/nologin username//用户只能ftp,不能telnet
usermod-s/sbin/bash username//用户恢复正常
禁止用户ssh登陆
useradd username-s/bin/false
更改用户主目录:
usermod-d/bbb username//把用户的主目录定为/bbb
然后用qs这个用户就可以访问了。
以上只是一些简单的设置。在用户权限这块还有很多内容可以研究。比如特定用户的特定权限。安全性等。以后在研究了。