在工作中,FTP是非常重要的,今天记录下用VSFTP创建一个简单可用的FTP服务器。
第一步 创建帐号
[root@linux vsftpd]# useradd -s /sbin/nologin wujie
[root@linux vsftpd]# passwd wujie
Changing password for user wujie.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
OK,这样,FTP的用户主目录就是默认的 /home/wujie 目录了,如果想要修改这个目录,可以在创建帐号的时候修改,也可以在创建好后修改,命令如下:
[root@linux vsftpd]# usermod -d /var wujie
这样wujie用户的主目录就变成了 /var 这个目录
第二步 安装VSFTP
安装非常的简单,这里简单介绍下,用yum或者rpm安装vsftp.rpm,在系统光盘里都有,网上也可以下到。
第三步 配置VSFTP
1 在安装好VSFTP后,配置文件在 /etc/vsftpd 这个目录,配置文件为: vsftpd.conf
2 其实修改的内容还是蛮多的,但是我这里为了创建简单的,就不搞那么复杂了,主要修改内如如下:
这句是把匿名登陆关闭,我们是要用帐号访问的
anonymous_enable=NO
在大概94行左右,把 chroot_list_enable=YES 这句的注释去了,表示限制FTP登陆打开
在它下面两行,把 chroot_list_file=/etc/vsftpd/chroot_list 注释也去了,表示要限制的帐号在chroot_list 中(除了限制帐号,其它帐号都登录不了)
3 不允许用户删除文件,在配置文件中添加如下命令:
cmds_allowed=ABOR,APPE,CWD,CDUP,FEAT,HELP,LIST,MKD,MDTM,MODE,NLIST,PASS,PASV,PWD,QUIT,RETR,REST,RNFR,RNTO,STAT,STOR,STRU,TYPE,USER
4 然后编辑chroot_list 把需要限制的帐号写入
5.注意: ftp目录权限一定要 chroot_list 中的用户的权限
修改默认目录: 添加这句 local_root=/var/www/html
6 [root@linux vsftpd]# service vsftpd start
为 vsftpd 启动 vsftpd:[确定]
到此为止一个简单的FTP服务器就搭建完成了。
第四步 配合IPTABLES
1 要能通过防火墙,必须开启 20 和 21 两个端口。如果还不行的话,用 lsmod 命令看看加载的内核模块有没有ip_nat_ftp和ip_conntrack_ftp 如果没有的话,执行如下命令: modprobe ip_nat_ftp
2 然后在 /etc/sysconfig/iptables 文件中加入
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
3 在 /etc/sysconfig/iptables-config 文件中加入(或者修改):
IPTABLES_MODULES="ip_nat_ftp"
4 保存,重启iptables,搞定。
附录:cmds_allowed用户权限
# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username
#ACCT
#APPE
#CDUP
#HELP
#MODE
#NOOP
#REIN
#STAT
#STOU
#STRU
#SYST
Linux下创建基本的FTP(VSFTP)
内容版权声明:除非注明,否则皆为本站原创文章。