Linux下配置FTP服务器
它可运行在Linux、Solaris等系统中,支持很多其他的FTP 服务器不支持的特征:
非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
分配虚拟IP地址的可能性
一、vsftpd的启动
#service vsftpd start
如果允许用户匿名访问,需创建用户ftp和目录/var/ftp
# mkdir /var/ftp
# useradd –d /var/ftp ftp
二、vsftpd的配置
Vsftpd的配置文件存放在/etc/vsftpd/vsftpdconf 我们可根据实际数要对如下信息进行配置:
1 连接选项
☆监听地址和控制端口
(1) listen_address=ip address
定义主机在哪个IP 地址上监听FTP请求。即在哪个IP地址上提供FTP服务。
(2) listen_port=port_value
指定FTP服务器监听的端口号。默认值为21。
2 性能与负载控制
☆超时选项
(1) idle_session_timeout=
空闲用户会话的超时时间,若是超过这段时间没有数据的传送或是指令的输入,则会被迫断线。默认值是300s
(2) accept_timeout=numerical value
接受建立联机的超时设定。默认值为60s
☆负载选项
(1) max_clients= numerical value
定义FTP服务器最大的兵法连接数。当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
(2) max_per_ip= numerical value
定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将会影响到网际快车、迅雷之类的多线程下载软件。默认值为0,表示不限制。
(3) anon_max_rate=value
设定匿名用户的最大数据传输速度,以B/s为单位。默认无。
(4) local_max_rate=value
设定用户的最大数据传输速度。以B/s为单位。默认无。此选项对所有的用户都生效。
3 用户选项
vsftpd的用户分为3类:匿名用户、本地用户(local user)及虚拟用户(guest)
☆ 匿名用户
(1) anonymous_enable=YES|NO
控制是否允许匿名用户登录
(2) ftp_username=
匿名用户使用的系统用户名。默认情况下,值为ftp
(3) no_anon_password= YES|NO
控制匿名用户登录时是否需要密码。
(4) anon_root=
设定匿名用户的根目录,即匿名用户登录后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/
(5) anon_world_readable_only= YES|NO
控制是否只允许匿名用户下载可阅读的文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。
(6) anon_upload_enable= YES|NO
控制是否允许匿名用户上传文件。除了这个参数外,匿名用户要能上传文件,还需要两个条件,write_enable参数为YES;在文件系统上,FTP匿名用户对某个目录有写权限。
(7) anon_mkdir_wirte_enable= YES|NO
控制是否允许匿名用户创建新目录。在文件系统上,FTP匿名用户必须对新目录的上层目录拥有写权限。
(8) anon_other_write_enbale= YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的`其他权限。如删除、更名等。
(9) chown_uploads= YES|NO
是否修改匿名用户所上传文件的所有权。YES,匿名用户上传得文件所有权改为另一个不同的用户所有,用户由chown_username参数指定。
(10) chown_username=whoever
指定拥有匿名用户上传文件所有权的用户。
☆本地用户
(1) local_enable= YES|NO
控制vsftpd所在的系统的用户是否可以登录vsftpd。
(2) local_root=
定义本地用户的根目录。当本地用户登录时,将被更换到此目录下。
☆虚拟用户
(1) guest_enable= YES|NO
启动此功能将所有匿名登入者都视为guest
(2) guest_username=
定义vsftpd的guest用户在系统中的用户名。
4 安全措施
☆用户登录控制
(1) /etc/vsftpdftpusers
Vsftpd禁止列在此文件中的用户登录FTP服务器。此机制是默认设置的。
(2) userlist_enable= YES|NO
此选项激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。
(3) userlist_file=/etc/vsftpduser_list
指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpduser_list
(4) userlist_deny= YES|NO
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。userlist_enable选项启动后才能生效。默认值为YES,禁止文中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许在文中的用户登录FTP服务器。
☆目录访问控制
(1) chroot_list_enable= YES|NO
锁定某些用户在自己的目录中,而不可以转到系统的其他目录。
(2) chroot_list_file=/etc/vsftpd/chroot_list
指定被锁定在主目录的用户的列表文件。
(3) chroot_local_users= YES|NO
将本地用户锁定在主目中。
新在虚拟机下安装了linux。现在我想启动linux自带的ftp服务器:#service vsftpd start 。如果想linux启动是自动启动ftp服务器:#chkconfig vsftpd on 。
运行putty,以root身份进入,出现了报错 530 Permission denied ,感觉很奇怪,因以普通用户是可以进入的。
原因是我们 /etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list 禁掉了root这个用户。这时我们需要修改这两个文件。
(1)/etc/vsftpduser_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/vsftpdftpusers
# for users that are denied
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
这时我们要在 root 前加上 # 。
(2)/etc/vsftpdftpusers 的默认文件(所有可以登录该FTP的用户属性)
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
这时我们要在 root 前加上 #
拟机装好RedHat后,准备使用filezilla连接,输入IP地址,root用户,密码,快速连接,报错:
530 Permission denied。
故障排除:
1首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。
方法1setup--系统服务--自启动服务
方法2界面设置,service vsftpd restart
2查看配置
vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
vsftpdftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpduser_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpdconf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
3配置修改完成后,执行service vsftpd restart重启vsftpd服务。
按下列步骤开启设置LINXU中的FTP服务:
1、开启linuxh环境下的FTP service
过程如下:
输入命令:
/etc/rcd/initd/vsftpd start
/etc/rcd/initd/vsftpd restart
若要关闭这个服务:
/etc/rcd/initd/ vsftpd stop
2、配置文件:
进入/etc配置vsftpdftpusers和vsftpduser_list,用vi打开他们,将这两个文件里的root给去掉,保存退出。
3、此时可以打开flshFXP,快速连接,输入IP地址、用户名及密码就可以连接linux系统的FTP服务器。
4、vsftpd的配置
在Red Hat Linux 里的vsftpd共有3个配置文件,它们分别是:
vsftpdftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpduser_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpdconf:位于/etc/vsftpd目录下。它是一个文本文件,我们可以用Kate、Vi等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
检测linux系统下ftp服务器是否开启的方法如下:
1、第一步,打开一台Linux的电脑,进入到输入shell指令的命令行状态下,如下图所示。
2、第二步,使用键盘在命令行中输入:”service vsftp status“这个指令,指令的意思是查看ftp服务器的状态,如下图所示。
3、第三步,输入完成之后,点击”回车键“运行该指令,就会显示ftp服务器的开关状态,比如下图就是“inactive”状态,表示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 0000:21 0000: LISTEN
如果看到以上信息,证明ftp服务已经开启。
6如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpdftpusers中注释掉root
#vi /etc/vsftpduser_list中也注释掉root
然后重新启动ftp服务。
7 vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 1921680101
Connected to 1921680101
220 (vsFTPd 205)
User (1921680101:(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/xinetdd ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetdd/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项,保存后退出
0条评论