在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
可以开始上传文件了