Linux下搭建FTP服务器
Linux 下我们使用vsftp来作为我们的ftp server.
Server OS : Redhat 6.3
1.检查server上是否已经安装了vsftpd
rpm -qa | grep vsftpd
2.假如没有相应的vsftpd rpm包,我们需要下载安装
yum install vsftpd
3.配置vsftpd配置文件。
# ls /etc/vsftpd/
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
vim vsftpd.conf
修改对应的值如下:
anonymous_enable=NO #禁止匿名用户登录
local_enable=YES #允许本地实体用户登录
write_enable=YES #允许用户上传数据
local_umask=022 #建立新目录(755)与文件(644)的权限
dirmessage_enable=YES #若登录目录下有.message则会显示该文件内容 可以自己在登录目录下创建.message文件并写入信息
xferlog_enable=YES #启动日志文件记录,记录于/var/log/xferlog
connect_from_port_20=YES #支持主动式连接功能
xferlog_std_format=YES #支持WuFTP的日志文件格式
local_root=/home/xx/ftp #限制登录用户只能在/home/xx/ftp目录下操作
chroot_local_user=YES #限制登录用户在主目录内local_root定义目录
chroot_list listen=YES #使用stand alone方式启动vsftpd
pam_service_name=vsftpd #支持PAM模块的管理
userlist_enable=YES #支持/etc/vsftpd/user_list文件内的账号登录控制
tcp_wrappers=YES #支持TCP Wrappers的防火墙机制
这里为了为了安全,我们可以编辑 user_list 这个文件,把禁止通过FTP登录系统的账号添加进去。这样的话,这些账户尝试远程登录的时候。会被拒绝登录。
举个栗子:
>ftp xxxxxxx
用户(xxxxxx:(none)): root
530 Permission denied.
登录失败。
我在server上创建了一个专门为ftp使用的账户 test_ftp,所以我在vsftpd.conf里面把local_root=/home/xx/ftp 改成了 local_root=/home/test_ftp/ftp
这样用test_ftp账户上传的文件会被放到 /home/test_ftp/ftp目录下。
3.重启vsftpd 服务,尝试使用ftp传输文件。
service vsftpd restart
4.在另外的机器上打开命令行:
ftp xxxxxx
配置顺利的话,现在就可以用ftp传输文件了。