linux 安装ftp服务

通常情况下,向服务器上传代码、文件,vsftp用的还是比较多的。下面是本人安装配置的过程。 
安装步骤 
1.通过yum来安装vsftpd

[root@localhost ~]# yum -y install vsftpd

2.设置为开机启动

[root@localhost ~]# chkconfig vsftpd on

针对centos7:  systemctl enable vsftpd.service

3.vsftpd服务器的基本配置

vsftpd服务器的配置文件保存在“/etc”目录和它的子目录中。

(1)  vsftpd.conf文件中的配置项

vsftpd.conf文件中所有的配置记录都包括配置项和配置值两部分内容,中间用等号连接。

  vsftpd.conf文件中的默认配置使用于最常用的FTP服务器配置需求,去除注释行后的配置文件中包括如下配置内容,让其配置生效:

   vi /etc/vsftpd/vsftpd.conf

chroot_local_user=YES      #这行可能需自己写

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
 
 
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
local_root=/home/upload/

说明:可以设置访问的路径(访问者只能特定目录下的文件):local_root=/Backup

          service vsftpd restart

    重启ftp服务器就可以了,此时你可通过在网页中输入ftp://192.168.xxx.xxx(这里输入你的服务器ip地址) 验证之。

 

vsftpd.conf文件中的默认配置的含义如下:

  anonymous_enable=YES,表示FTP可以允许匿名登陆

  local_enable=YES,表示允许本地用户登陆

  write_enable=YES,表示FTP服务器开放对本地用户的写权限

  local_umask=022,设置本地用户的文件生成掩码

  dirmessage_enable=YES,当切换到FTP服务器中的某个目录时,将显示该目录下的“.message”隐含文件了内容

  xferlog_enable=YES,FTP将启用上传和下载日志

  connect_from_port_20=YES,ftp将启用ftp数据端口的连接请求

  xferlog_std_format=YES,ftp将使用标准的ftpd xferlog日志格式

  pam_service_name=vsftpd,设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下。

  userlist_enable=YES,ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器

  listen=YES,ftp服务器将处于独立启动模式

  tcp_wrappers=YES,ftp服务器将使用tcp_wrappers作为主机访问控制模式。

 

(2)  ftpusers文件 

vi /etc/vsftpd/ftpusers

  ftpusers文件位于“/etc/vsftpd”目录中,用于保存不允许进行ftp登陆的本地用户帐号,这些帐号(包括root用户在内)通常不是普通用户帐号,而是在系统中具有较高权限的帐号。禁止这些用户可以提高系统的安全性

(3) user_list文件

vi /etc/vsftpd/user_list

user_list文件位于“/etc/vsftpd”目录中,具有与ftpusers文件类似的访问控制功能,但是使用起来更加灵活。

(1)       设置登陆的用户帐号

当vsftpd.conf配置文件中包括以下设置时,user_list文件中的用户帐号被禁止进行ftp登陆。

 

userlist_enable=YES
userlist_deny=YES

userlist_deny设置项设置使用user_list文件,userlist_deny设置为YES表示user_list文件用于设置禁止登陆的用户帐号。

  (2)       设置只允许登陆的用户帐号

当vsftpd.conf配置文件中包括以下设置时,只有user_list文件中的用户帐号能够进行ftp登陆

userlist_enable=YES
userlist_deny=NO

userlist_enable设置项设置使用user_list文件,userlist_deny设置为NO表示user_list文件用于设置只允许登陆的用户帐号,文件中未包括的用户帐号被禁止ftp登陆

5、  匿名用户登陆目录

当用户匿名登陆ftp服务器时,将进入“/var/ftp”目录,并且将该目录作为根目录,即匿名用户不能离开该目录,只能进入该目录的子目录

 

4.配置保存后重启vsftpd服务:

重启:[root@localhost ~]# /bin/systemctl restart  vsftpd.service

启动:[root@localhost ~]# /bin/systemctl start  vsftpd.service

停止:[root@localhost ~]# /bin/systemctl stop  vsftpd.service

针对centos7:  systemctl restart vsftpd

添加用户及额外配置 
1.设置vsftp的帐号。

[root@localhost ~]# useradd -d /home/htdocs -g root -s /sbin/nologin 用户名

2.为添加的账号设置密码

[root@localhost ~]# passwd 用户名
根据提示操作123

如果提示linux ftp 用户不能覆盖、写入、创建文件的权限问题,则设置如下:

chown ftp用户:用户组 -R 你的ftp目录        #改变目录权限
chmod 755 -R 你的ftp目录                         #设置目录可编辑

例子:

chown ftpu:root -R /home/upload
chmod 755 -R /home/upload

这样的话,基本的vsftpd服务配置好了。但是这样配置完成后客户端并不能连接上,主要应该是默认防火墙设置下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。 
1.添加ip_conntrack_ftp 模块

[root@localhost ~]# vi /etc/sysconfig/iptables-config

添加下面一行

IPTABLES_MODULES="ip_conntrack_ftp"

2.打开21端口

[root@localhost ~]# vi /etc/sysconfig/iptables

添加

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

3.重启iptables使新的规则生效

[root@localhost ~]# service iptables restart

到此,应该是可以了,若软件测试连接过程中,在用户验证的时候出现了错误503,应该是selinux设置的问题:可以用下面的命令检查

[root@localhost ~]#getsebool -a |grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off

这是selinux的问题,我们只要打开ftp_home_dir的值开启为on:,allow_ftpd_full_access也一同开启即可。

[root@localhost ~]#setsebool -P ftp_home_dir 1
[root@localhost ~]#setsebool -P allow_ftpd_full_access 1

 

附:vsftp中文说明

anonymous_enable=YES是否允许匿名ftp,如否则选择NO
local_enable=YES是否允许本地用户登录
local_umask=022默认的umask码
anon_upload_enable=YES是否允许匿名ftp用户访问
anon_upload_enable=YES是否允许匿名上传文件
anon_mkdir_write_enable=YES是否允许匿名用户有创建目录的权利
dirmessage_enable=YES是否显示目录说明文件,默认是YES但需要收工创建.message文件
xferlog_enable=YES是否记录ftp传输过程
connect_from_port_20=YES是否确信端口传输来自20(ftp-data)
chown_upload=YES
chown_username=username
是否改变上传文件的属主,如果是需要输入一个系统用户名,你可以把上传的文件都改成root属主
xferlog_file=/var/log/vsftpd.logftp传输日志的路径和名字默认是/var/log/vsftpd.log
xferlog_std_format=YES

是否使用标准的ftp xferlog模式

idle_session_timeout=600设置默认的断开不活跃session的时间
data_connection_timeout=120设置数据传输超时时间
nopriv_user=ftpsecure运行vsftpd需要的非特权系统用户默认是nobody
async_abor_enable=YES是否允许运行特殊的ftp命令async ABOR.
ascii_upload_enable=YES
ascii_download_enable=YES
是否使用ascii码方式上传和下载文件
ftpd_banner=Welcome to chenlf FTP service.定制欢迎信息
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
是否允许禁止匿名用户使用某些邮件地址,如果是输入禁止的邮件地址的路径和文件名
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
是否将系统用户限止在自己的home目录下,如果选择了yes那么chroot_list_file=/etc/vsftpd.chroot_list中 列出的是不chroot的用户的列表
max_clients=Number如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是0不限止
message_file设置访问一个目录时获得的目录信息文件的文件名,默认是.message

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值