木子设计

LZG个人博客

本人专注于web领域开发,博客主要记录学习php/html/css/javascript,框架Yaf/Laravel/TP/CI,Linux及一些常用工具过程中遇到的问题及解决心得,希望对技术推广及他人学习提供薄力。

ftp安装配置

发布时间:2016-08-28 15:55:05

http://www.centoscn.com/CentOS/help/2014/1030/4021.html
开启了防火墙时,做如下设置,开启相关端口,修改 /etc/sysconfig/iptables
首先看看vsftpd装了没有
rpm -q vsftpd
没装的话就先安装吧
yum -y install vsftpd
设置开机启动vsftpd ftp服务
systemctl enable vsftpd.service
启动vsftpd服务
systemctl start vsftpd
配置vsftpd服务器
vi /etc/vsftpd/vsftpd.conf

解决卡的问题
#这个和默认的一样,300秒无操作强制短线
idle_session_timeout=300
//死连接或者空闲连接2秒后服务器断开,这个是起实质作用的,出现我上面的问题后2秒会自己断开
data_connection_timeout=2
//保证新上传的目录有写入权限
local_umask=002

将下面三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list

改为
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

用adduser增加用户ftpuser,用-d指定目录。显示的用法看adduser.(注意文件夹权限要更改)
useradd -d /home/wwwroot/ -g ftp  ftpuser
用passwd设置用户的密码
passwd ftpuser
重新启动vsftpd
systemctl restart vsftpd

配置防火墙
如果以上设置完了之后,还是不能正常访问,那很有可能是防火墙屏掉的原因了。再配置防火墙
vi /etc/sysconfig/iptables   #打开/etc/sysconfig/iptables文件
添加如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT  #FTP21端口的
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT  #telnet23端口
重启iptables
service iptables restart

ftp配置的备注说明
如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在
文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).
或者, 设置如下
chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd/chroot_list
然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd/chroot_list(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)
中即可(一行一个用户名).
新的安全更新中如果设置了不能访问主目录上的目录,则主目录不能有写权限,或者在配置文件最下面写入:

allow_writeable_chroot=YES

删除ftp用户  userdel ftp (-r同时删除主目录)


完整权限设计应该是:把目录设为apache组拥有读写权限,再把ftp用户添加到apache组中,其中ftp配置项local_umask=002是关键
权限:
假设是/var/www/html
这个目录的权限应该是770,owner是root,group是ftp
chmod 770 /var/www/html
chown root:ftp /var/www/html
将一个已有用户 cnzhx 增加到一个已有用户组 apache 中,不带-A参数会直接把用户移动到apache组下
usermod -a -G apache cnzhx
ps aux |grep httpd  查看apache的运行用户
cat /etc/group | grep ftp 查看ftp组下所有用户
groups apache 查看apache用户所在组

修改文件为apache用户所有 chown apache:apache /var/www/html


vsftpd怎么改变用户的默认目录?
直接修改用户的主目录就行了.
在/etc/passwd里面.