下边主要是说怎样在centos下边配置一个ftp服务器,我找了几个教程,每位教程都有各自的优点,我就结合了她们的优点来总结出一篇更好的教程啦,参考文章在末位给出,如有侵权,请联系我,多谢。其中有一个经验教训就是在防火墙哪里,倘若其他都配置好了,通过ftp顾客端还是联接不上的话,通常来说就是服务器的防火墙配置问题,可以直接把防火墙关掉来试一下,通常来说就可以了;并且确认了是防火墙的配置问题以后,防火墙还是要重新打开的(为了安全),之后再检测防火墙ftp的具体配置。
安装前打算
选用CentOS7.264位的系统,阿里云在公共镜像中提供了该系统镜像,用户可直接在控制台北更换此系统。并通过远程链接步入到系统中。
vsftpd是linux下的一款精巧轻柔,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。
1.安装vsftpd,直接yum安装就可以了
yum install -y vsftpd
出现右图表示安装成功。
相关配置文件:
cd /etc/vsftpd
/etc/vsftpd/vsftpd.conf //主配置文件,核心配置文件/etc/vsftpd/ftpusers //黑名单,这个里面的用户不允许访问FTP服务器/etc/vsftpd/user_list //白名单,允许访问FTP服务器的用户列表
启动服务
chkconfig vsftpd on //设置开机自启动service vsftpd restart //重新启动ftp服务netstat -antup | grep ftp //查看ftp服务端口
2.安装完成以后就要重启vsftpd服务
到vsftpd的主配置文件上面
把这个改为NO默认是YES(改为NO就是严禁匿名用户登入,不须要注释)
同时根据右图配置,不可以让ftp用户跳出自己的家目录,否则太危险了,须要做限制,默认是注释掉的,把#号去除之后重启vsftpd。
(注意:这儿也可以把chroot_list_file=/etc/vsftpd/chroot_list的注释打开)
3.创建ftp用户
(yuanfei这个用户智能联接ftp未能登入系统,默认家目录是在var/www/html文件夹下边)
给yuanfei这个用户设置密码
之后给家目录更改权限,否则你没法上传文件
4.更改selinux
默认是enforcing把他更改为disabled
由于更改selinu后须要重启服务,由于服务器不可以重启所以执行前面这个命令,临时更改selinux的策略,无需重启!
5.重启vsftpd服务,但是上次手动启动
6.配置防火墙(要打开21端口)
打开/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
在REJECT行之前添加如下代码
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存和关掉文件linux安装ftp服务命令,重启防火墙
service iptables start
(ps.这一步也可以直接关掉防火墙linux安全加固,而且不建议这样做,关掉防火墙方式如下:
7.顾客端测试。直接使用ftp://服务器ip地址:ftp端口(假如不填端口则默认访问21端口)
附表1:假如以上配置防火墙还是不行的话,就根据以下方式尝试:
基本的vsftpd服务配置好了。并且这样配置完成后顾客端并不能联接上linux安装ftp服务命令,主要应当是默认防火墙设置下,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
添加(注意这儿添加要在REJECT行之前添加)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
3.重启iptables使新的规则生效
[root@localhost ~]# service iptables restart
到此linux服务器系统,应当是可以了,若软件测试联接过程中,在用户验证的时侯出现了错误503,应当是selinux设置的问题:可以用下边的命令检测
[root@localhost ~]#getsebool -a |grep ftpallow_ftpd_anon_write --> offallow_ftpd_full_access --> offallow_ftpd_use_cifs --> offallow_ftpd_use_nfs --> offallow_tftp_anon_write --> offftp_home_dir --> offftpd_connect_db --> offftpd_disable_trans --> offftpd_is_daemon --> onhttpd_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
参考:
附表2:介绍下vsftpd.conf的配置文件参数说明。
cat /etc/vsftpd/vsftpd.conf
用户登录控制
参数说明anonymous_enable=YES接受匿名用户no_anon_password=YES匿名用户login时不寻问口令anon_root=(none)匿名用房主目录local_enable=YES接受本地用户local_root=(none)本地用房主目录
用户权限控制
参数说明write_enable=YES可以上传(全局控制)local_umask=022本地用户上传文件的umaskfile_open_mode=0666上传文件的权限配合umask使用anon_upload_enable=NO匿名用户可以上传anon_mkdir_write_enable=NO匿名用户可以建目录anon_other_write_enable=NO匿名用户更改删掉chown_username=lightwiter匿名上传文件所属用户名
参考:
以上教程参考:
欢迎关注陌陌公众号“ismallboy”,并在公众号下边回复"ftp”,获得本文最新内容和更好的阅读体验。