葫芦七朵花 發表於 2021-12-1 00:21:00

CentOS安装并配置vsftpd服务

<p><strong>一、操作系统环境</strong></p>
<p>本例中将在CentOS 7.6中安装FTP服务,具体安装的版本为vsftpd x86_64 3.0.2-29.el7_9,并进行配置。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
</pre>
</div>
<p>  </p>
<p><strong>二、通过yum安装vsftpd</strong></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># yum install vsftpd
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1960974/202111/1960974-20211130203040856-195392062.png"></p>
<p><strong>三、设置vsftpd配置文件(基本配置)</strong></p>
<p>vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf。如果对配置文件进行了更改,需要重启vsftpd服务后配置才会生效。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">//禁止匿名用户登陆
Anonymous_enable=NO

//是否将所有用户限制在主目录
//当设置为YES表示限制FTP用户跳出自己的家(根)目录(该项默认值是NO,即在安装vsftpd后不做配置的话,FTP用户是可以向上切换到要目录之外的)
Chroot_local_user=YES

//是否启用chroot_list_file配置项指定的用户列表文件来限制用户
//YES为启用,NO禁用(包括注释掉也为禁用)
//如果启用此项配置,需同时新建一个chroot_list,内容为空即可
chroot_list_enable=YES

//用于指定用户列表文件
chroot_list_file=/etc/vsftpd/chroot_list

//允许用户有写的权限
allow_writeable_chroot=YES
</pre>
</div>
<p>  </p>
<p><strong>四、常用的操作命令</strong></p>
<p>1.&nbsp;查看vsftpd服务运行状态</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># systemctl status vsftpd
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1960974/202111/1960974-20211130203656492-863260555.png"><img src="https://img2020.cnblogs.com/blog/1960974/202111/1960974-20211130203706588-477425126.png">2. 启动vsftpd服务</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># systemctl start vsftpd
</pre>
</div>
<p>3. 停止vsftpd服务</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># systemctl stop vsftpd
</pre>
</div>
<p>4. 重启vsftpd服务</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># systemctl restart vsftpd
</pre>
</div>
<p>5. 查看vsftpd的安装位置</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz</pre>
</div>
<p>6. 查看vsftpd的监听端口</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># netstat -npal|grep vsftpd
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1960974/202111/1960974-20211130204143628-2103132448.png">7. 开机自动启动(作为服务运行)</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">chkconfig vsftpd on
</pre>
</div>
<p>  </p>
<p><strong>五、创建FTP用户</strong></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">//创建用户(没有登录权限)
//-d 新账户的主目录
//-g 新账户主组的名称或ID
//-s 新账户的登陆shell
//执行此命令会同步对应的创建文件夹(如果不存在)
# useradd ftpusername -d /ftp_upload -g ftp -s /sbin/nologin

//设置密码
# passwd ftpusername
</pre>
</div>
<p>  </p>
<p><strong>六、修改FTP服务的端口号</strong></p>
<p>1. 对配置文件/etc/vsftpd/vsftpd.conf进行调整。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">//修改vsftpd监听端口
listen_port=9021

//启用PASV被动模式
pasv_enable=YES

//修改vsftpd传递数据的最小端口
pasv_min_port=9001

//修改vsftpd传递数据的最大端口
pasv_max_port=9020

//用于检测PASV的安全检查,YES为关闭安全检查
pasv_promiscuous=YES
</pre>
</div>
<p>2.&nbsp;修改linux services&nbsp;</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># vim /etc/services</pre>
</div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">//找到下面的行改成9021端口
ftp      9021/tcp
ftp      9021/udp
</pre>
</div>
<p>3. 修改防火墙配置,开放所需的端口</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># firewall-cmd --permanent --add-port=9001-9021/tcp
</pre>
</div>
<p>  </p>
<p><strong>七、可能遇到的问题</strong></p>
<p>1. 使用FTP客户端连接时提示错误530,原因为SELINUX对FTP的限制,解决方法如下:</p>
<p>(1)&nbsp;设置关闭SELINUX对FTP的限制</p>
<p><img src="https://img2022.cnblogs.com/blog/1960974/202209/1960974-20220914230151864-2022306145.png"></p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># getsebool -a |grep ftp
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1960974/202112/1960974-20211201001729120-306018615.jpg">需要将其中的tftp_home_dir和ftpd_full_access 设置为on,回车以后,要等很久才会有反应。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">#setsebool -P ftp_home_dir 1
#setsebool -P allow_ftpd_full_access 1</pre>
</div>
<p>&nbsp;</p>
<p>(2) 暂时关闭SELINUX</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">set enforce 0
</pre>
</div>
<p>  </p>
<p>(3) 永久关闭SELINUX(不推荐,且需要重新启动服务器)</p>
<p><img src="https://img2022.cnblogs.com/blog/1960974/202209/1960974-20220914230210017-1231483053.png"></p>
<p>vim /etc/selinux/config,修改为 SELINUX = disabled,保存退出。</p>
<p>如果碰到550拒绝访问,请执行sudo setsebool -P ftp_home_dir 1,然后重启服务器,执行reboot命令</p>
<p><img src="https://img2020.cnblogs.com/blog/1960974/202112/1960974-20211201001425966-1824242801.jpg"></p>
<p>&nbsp;</p>
<p>(4)&nbsp;&nbsp;pam认证文件配置错误</p>
<p>修改/etc/pam.d/vsftpd<br>将auth required pam_shells.so 改为 auth required pam_nologin.so</p>
<p>&nbsp;</p>
<p><strong>八、参考资料</strong></p>
<p>https://www.jianshu.com/p/225b291bc4a9</p>
<p>https://www.cnblogs.com/ismallboy/p/6785270.html</p>
<p>https://www.jianshu.com/p/9b6389a26336</p>
<p>https://blog.csdn.net/sinat_30802291/article/details/81706152</p>
<p>https://blog.csdn.net/jiecy/article/details/109450397</p>
<p>https://blog.csdn.net/qq_40606798/article/details/82286273</p>
<p>http://www.51gjie.com/linux/1002.html</p>
<p>https://blog.csdn.net/bluishglc/article/details/42398811</p><br><br>
来源:https://www.cnblogs.com/yangjisen/p/15626007.html
頁: [1]
查看完整版本: CentOS安装并配置vsftpd服务