分类: 系统运维
2009-06-15 09:36:45
六、有关FAQ
限制指定的本地用户不能访问,而其他本地用户可访问
local_enable=YES userlist_enable= YES userlist_deny=YES userlist_file= /etc/vsftpd.user_list |
使文件/etc/vsftpd.user_list中 指定的本地用户不能访问FTP服务器,而其他本地用户可访问FTP服务器。
限制指定的本地用户可以访问,而其他本地用户不可访问
local_enable=YES userlist_enable= YES userlist_deny= NO userlist_file= /etc/vsftpd.user_list |
使文件/etc/vsftpd.user_list中 指定的本地用户可以访问FTP服务器,而其他本地用户不可以访问FTP服务器。
添加只访问ftp的不能登录系统的用户
FTP用户一般是不能登录系统的,这也是为了安全。在系统中,没有权限登录系统的用户一般也被称之为虚拟用户;虚拟用户也是要写进/etc/passwd中;这只是一种虚拟用户的方法,但说实在的并不是真正的虚拟用户,只是把他登录SHELL的权限去掉了,所以他没有能力登录系统;
如果我们想把beinan这个用户目录定位在/opt/beinan这个目录中,并且不能登录系统;我们应该如下操作
adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan
硬盘空间有限,如何把帐号ftp默认的家目录更改到别处?
我的硬盘空间有限,如何把帐号ftp默认的路径/var/ftp更改到别处?或者是,我的linux所有的目录都放在/根分区,因为空间紧张,我能否把ftp这个用户的默认路径放到别的分区??
对于ftp这个用户的管理,我们应该查看/etc/passwd ,然后修改ftp用户那行;
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
比如我们想把ftp用户的家目录改为/opt/ftp,则要把类似上一行改为
ftp:x:14:50:FTP User:/opt/ftp:/sbin/nologin
然后我们要建立ftp用户的新的家目录;
[root@localhost ~]# mkdir /opt/ftp
[root@localhost ~]# chmod 755 /opt/ftp
[root@localhost ~]# chown root:root /opt/ftp
如果默认的ftp磁盘空间紧张,我们其实也可以用虚拟路径映射的方法来解决;也就是mount --bind的办法;看情况吧,哪个适合就是最好的方法;
vsFTPd的服务器和防火墙及SELINUX的关系
我在论坛上看到有些弟兄说vsFTPd服务器启动正常,但却不能访问或用户不能上传文件,我感觉应该是防火墙或SELINUX的事;可能FTPD服务器被防火墙或SELINUX的安全机制防住了。所以您必须要让防火墙通过ftp,当然也要让SELINUX通过ftp服务器才行;
在Fedora/Redhat/CentOS中,您要设置一下防火墙,可以把防火墙关掉,或者在自定义中让ftp “通过”防火墙;
[root@localhost ~]# system-config-securitylevel-tui
或者运行一下如下的命令,清除防火墙规则(通用);
[root@localhost beinan]# iptables -F
关于SELINUX服务器的解说 ,可能老手或新手对SELINUX都有点麻烦,建议您SELINUX;或者让vsFTPd服务器跳过SELINUX启动;也就是说要用到 ;这在Fedora/Redhat/CentOS中这样启动vsFTPd服务器是有效的;
当然您可也可以关掉SELINUX,在/etc/selinux/config 配置文件如下;
/etc/selinux/config
# 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 #
这样就把
SELINUX
服务器关掉了,请重新启动系统;
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
cannot change directory:/home/***
ftp服务器连接失败,错误提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
解决方法:
# setsebool ftpd_disable_trans 1
# service vsftpd restart
<>
500 OOPS: vsftpd: not configured for standalone, must be started from inetd
原因:vsftpd-
解决办法:修改/etc/xinetd.d/vsftpd 中disable 的值为yes (取消xinetd.d对vsftp的管理)
同时在vsftpd.conf配置文件中需要添加listen=YES 项。
这样就可以通过 /usr/sbin/vsftpd + 你的配置文件启动。
500 OOPS: vsftpd: refusing to run with writable anonymous root
原因:给vsftp的匿名账户默认的主目录配置了过高的文件权限。
解决办法:可以将该目录的权限修正为
[root@localhost ~]# chown root:root 匿名账户目录
[root@localhost ~]# chmod 755 匿名账户目录
以上是我第一次配置vsftp时遇到的问题。
<>
由于安全问题,公司内网所有U口都封闭。本人就利用LINUX的vsftpd来配置数据的传输,问题很简单。
比如:基于AS5.2redhat配置如下:
1. vi /etc/vsftpd/vsftpd.conf
把anonymous_enable=YES 改为 anonymous_enable=no
2. vi /etc/selinux/conf
把set SELINUX=enforce 改为 set selinux=disabled
3. 在终端上:(1) service iptables stop
(2) service vsftpd start
注意:如果获取不到IP地址: (1)/sbin/ifconfig
VSFTP 报“cannot change directory”所引申到的问题
在RHEL5中,SELINUX可以用来加强系统的安全性,但如果设置不当,则会给你带来很多麻烦。
所以一般情况下,很多RHCE习惯在X下去打开终端来操作,这样操作的好处是一旦SELINUX阻止掉某一操作,桌面的右上角会弹出一个黄色的五角星。单击这个五角星,会显示SELINUX阻止了哪些操作,并且提供解决的方法。你只需要将解决的代码复制到终端中去运行一下就OK。但千万注意,有时候它所提供的解决代码的路径不一定和你系统设置的文件或者服务的路径相一致,如果是这样,请你自己改一下。如果不改,造成的后果可能是致命的(系统崩溃,无法启动)。
当然,你可以将SELINUX永久关闭掉,但不建议你这么去做。在RHCE的考试中,关掉SELINUX会被扣分而影响你的总成绩。如果你想临时关掉它,可以键入如下命令: setenforce 0
在使用FTP时如果报错“cannot change directory。。。”十有八九就是SELINUX阻止掉了。你可以用setenforce 0 暂时关掉SELINUX后再尝试一下。或者关闭SELINUX对FTP的阻止
setsebool ftpd_disable_trans 1
七、项目实践