在Linux中搭建一个FTP服务器

1、安装

检查是否已经安装了vsftpd服务器

rpm –qa | grep vsftpd

若果美元安装vsftpd,下面使用yum安装

yum -y install vsftpd

2、启动ftp服务

启动vsftpd相关的几个命令,启动,关闭,重启等

service vsftpd start 
 service vsftpd stop 
 service vsftpd restart

这个时候启动ftp服务器之后,通过root用户就已经可以访问服务器了,可以借助工具如:filezilla,xftp等等,完成对服务器上传下载文件的功能了

3、vsftpd的添加新用户

添加用户username,并指定用户目录且用户不能登陆系统只能登录FTP

useradd username -d /ftp/username -s /sbin/nologin

对username这个用户设置密码

passwd username

设置完成之后会有提示设置密码成功

对username这个用户指定的文件路径设置权限,没有权限会出现无法获取目录的提示

chmod 755 /ftp/username

4、vsftpd的配置

ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是:

  • vsftpd.conf 主配置文件
  • ftpusers 该文件用来指定那些用户不能访问ftp服务器。
  • user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp

vsftpd.conf 配置文件的一些参数说明

anonymous_enable=YES //开启匿名登录 
 local_enable=YES //开启本地用户登录 
 write_enable=YES //本地用户写权限 
 local_umask=022 //上传文件后默认权限 
 dirmessage_enable=YES 
 xferlog_enable=YES //开启下载日志 
 connect_from_port_20=YES //链接端口 
 xferlog_std_format=YES //标准日志格式 
 chroot_local_user=YES //限制用户不能切换目录 
 chroot_list_enable=YES //被限制的用户列表 
 chroot_list_file=/etc/vsftpd/chroot_list //列表存放位置,不能跨目录的用户 
 listen=NO 
 listen_ipv6=YES 
 pam_service_name=vsftpd //服务名称 
 userlist_enable=YES //启用登录用户限制 
 tcp_wrappers=YES 
 anon_root=/ftp //匿名用户登录目录 
 use_localtime=YES //使用本地时间userlist_enable=YES 
 userlist_deny=NO //这个列表里的人不拒绝,其他人拒绝(包括匿名) 
 userlist_file=/etc/vsftpd/user_list //放置可以访问ftp的用户

将刚刚新增的username用户添加到user_list 列表,如果有多个用户,一行一个用户

ftpusers文件
这个文件中默认是屏蔽掉了root用户的,如果想要root用户可以访问,将root这一行添加#号注释掉就可以了
想屏蔽其他用户,另起一行将用户名添加保存

5、开机自启动设置

查看vsftpd 启动状态

chkconfig –list vsftpd

显示如下

vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

设置开机启动

chkconfig vsftpd on

再次查看启动状态

vsftpd 0:on 1:off 2:on 3:on 4:on 5:on 6:off

表示设置成功了

6、防火墙设置

打开/etc/sysconfig/iptables文件

vi /etc/sysconfig/iptables

如果没有这个文件的情况下周末办:
1、随便写一条iptables命令配置个防火墙规则:如:

iptables -P OUTPUT ACCEPT

2、保存一下子

service iptables save

这样只后就可以正常编辑iptables文件了

在reject行之前添加如下代码,这里设置的端口是默认的21,对于自己需要的二端口也可以自己定义设置

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT

保存和关闭文件,重启防火墙

service iptables start

6、重启一下ftp服务器就可以了

service vsftpd restart

可以开始上传文件了