孩儿她爸 發表於 2020-4-22 15:33:00

Centos 安装vsftpd

<h1>一、安装准备工作</h1>
<h2>1、问题1</h2>
<p class="title-article">Linux安装FTP时报错,No package vsftp available. Error: Nothing to do</p>
<p>先安装Install Repository,执行命令</p>
<div class="cnblogs_code">
<pre>wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm</pre>
</div>
<p>有可能会遇到问题&nbsp;-bash: wget: command not found</p>
<p>那就先安装wget</p>
<h3>方法1、rpm 安装</h3>
<p><br>rpm 下载源地址:http://mirrors.163.com/centos/6.2/os/x86_64/Packages/<br><br>下载wget的RPM包:http://mirrors.163.com/centos/6.2/os/x86_64/Packages/wget-1.12-1.4.el6.x86_64.rpm<br><br>rpm ivh wget-1.12-1.4.el6.x86_64.rpm 安装即可。<br><br>如果客户端用的是SecureCRT,linux下没装rzsz 包时,rz无法上传文件怎么办?我想到的是安装另一个SSH客户端:SSH Secure Shell。然后传到服务器上安装,这个比较费劲,所以推荐用第二种方法,不过如果yum包也没有安装的话,那就只能用这种方法了。<br><br></p>
<h3>方法2、yum安装</h3>
<p>&nbsp;</p>
<p>这种比较快捷</p>
<div class="cnblogs_code">
<pre>yum -y install wget</pre>
</div>
<h1>二、开始安装vsftpd</h1>
<h2>1、在线安装vsftpd</h2>
<p>yum install -y vsftpd</p>
<h2>2、启动ftp</h2>
<p>systemctl start vsftpd.service</p>
<h2>3、查看ftp是否启动</h2>
<div class="cnblogs_code">
<pre>service vsftpd status </pre>
</div>
<p>安装ftp工具</p>
<p><img src="https://img2020.cnblogs.com/blog/1126660/202004/1126660-20200422152512969-33929981.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;测试匿名链接ftp,出现ftp&gt;表示成功</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/1126660/202004/1126660-20200422152614929-855479367.png" alt=""></p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/1126660/202004/1126660-20200422152746976-104558343.png" alt=""></p>
<h2>4、去掉匿名登录</h2>
<p>  修改文件&nbsp;/etc/vsftpd/vsftpd.conf</p>
<div class="cnblogs_code">
<pre>#是否匿名登录
anonymous_enable=YES 修改为 NO<br><code>chroot_local_user=YES&nbsp;</code></pre>
<div><code>  #用于指定用户列表文件中的用户是否允许切换到上级目录。</code><code>默认值为NO。</code></div>
<div><code>  #通过搭配能实现以下几种效果:</code><code>&nbsp;</code></div>
<div><code>  #①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;</code><code>未在文件中列出的用户,不能切换到其他目录。</code><code>&nbsp;</code></div>
<div><code>  #②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;</code><code>未在文件中列出的用户,可以切换到其他目录。</code><code>&nbsp;</code></div>
<div><code>  #③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。</code><code>&nbsp;</code></div>
<div><code>  #④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。</code><code>&nbsp;</code></div>
<div><code>  chroot_list_enable=YES&nbsp;</code></div>
<div><code>  chroot_list_file=/etc/vsftpd/chroot_list&nbsp;</code></div>
<div><code>  allow_writeable_chroot=YES&nbsp;</code></div>
<div><code>  #加上这行解决了无法登陆的问题&nbsp;</code></div>
<pre><br><br><br></pre>
</div>
<p>  重启ftp:</p>
<div class="cnblogs_code">
<pre># systemctl restart vsftpd.service</pre>
</div>
<p>  </p>
<h3> 查看ftp运行状态</h3>
<p>  </p>
<div class="cnblogs_code">
<pre>  # systemctl status vsftpd.service</pre>
</div>
<p>  <img src="https://img2020.cnblogs.com/blog/1126660/202005/1126660-20200508102555524-1061544766.png" alt="" width="774" height="135"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>5、创建新的ftp用户组和目录和其它设置</h2>
<p>  ①创建用户组</p>
<div class="cnblogs_code">
<pre># groupadd ftpgroups</pre>
</div>
<p>  </p>
<p>  ②创建ftp目录</p>
<div class="cnblogs_code">
<pre># mkdir /home/ftp</pre>
</div>
<p>  </p>
<p>  ③创建ftp用户,指定可访问目录,并加入到用户组,命名为ftpuser</p>
<div class="cnblogs_code">
<pre># useradd -d /home/ftp/ -g ftpgroups ftpuser</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1126660/202005/1126660-20200508104451093-1500059825.png" alt="" width="552" height="103"></p>
<p>&nbsp;</p>
<p>&nbsp;这里出现警告,是因为我们用mkdir创建了,继续操作就行了</p>
<p>  </p>
<p>  ④设置ftp用户只能登录ftp,不能访问服务器</p>
<div class="cnblogs_code">
<pre># usermod -s /sbin/nologin ftpuser</pre>
</div>
<p>  </p>
<p>  ⑤设置ftpuser用户密码</p>
<p>  我这里设置ftp.1234</p>
<div class="cnblogs_code">
<pre># passwd ftpuser</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1126660/202005/1126660-20200508105134262-479617298.png" alt=""></p>
<p>  </p>
<p>  ⑥设置设置账户权限</p>
<div class="cnblogs_code">
<pre># chown -R ftpuser /home/ftp/
# chmod 777 /home/ftp/</pre>
</div>
<p>&nbsp;  </p>
<p>  ⑦增加用户进入list使它能访问根目录</p>
<div class="cnblogs_code">
<pre># vi /etc/vsftpd/chroot_list</pre>
</div>
<p>  添加上用户:ftpuser</p>
<p>&nbsp;</p>
<p>  ⑧编辑pam认证文件,注销一行</p>
<div class="cnblogs_code">
<pre># vi /etc/pam.d/vsftpd</pre>
</div>
<p>  #auth required pam_shells.so</p>
<p>  继续,然后重启ftp服务</p>
<p>&nbsp;</p>
<p>  ⑨重新设置一下权限</p>
<div class="cnblogs_code">
<pre># chown -R ftpuser /home/ftp/
# chown 777 /home/ftp/
# setsebool allow_ftpd_full_access on
# systemctl restart vsftpd.service</pre>
</div>
<p>  这里有一点问题就是,关闭防火墙可以访问ftp,开启就无法访问,待解决中....</p>
<div class="cnblogs_code">
<pre>关闭防火墙
systemctl stop firewalld.service
重启防火墙
systemctl restart firewalld.service</pre>
</div>
<p>&nbsp;</p>
<h2>6、访问ftp服务</h2>
<p>  我这里的&nbsp;ftp://192.168.20.200/</p>
<p>&nbsp;</p>
<h2>7、修改ftp默认端口</h2>
<p>  1、修改vsftpd.conf</p>
<p>  文件路径:/etc/vsftpd/vsftpd.conf,在最后添加或者修改以下内容</p>
<div class="cnblogs_code">
<pre>#登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证;
pam_service_name=vsftpd

#vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;
userlist_enable=YES

#设置vsftpd与tcp wrapper结合进行主机的访问
tcp_wrappers=YES

allow_writeable_chroot=YES

#修改的端口
listen_port=2121
pasv_enable=YES
pasv_min_port=1050
pasv_max_port=1060
pasv_promiscuous=YES
ftpd_banner=Welcome to FTP service</pre>
</div>
<p>2、修改iptables</p>
<p>路径:/etc/sysconfig/iptables,添加一下两行,对应vsftpd.conf文件里&nbsp;</p>
<pre>listen_port=2121
pasv_min_port=1050
pasv_max_port=1060</pre>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre>-A INPUT -p tcp -m state --state NEW -m tcp --dport 1050:1060 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2121 -j ACCEPT</pre>
</div>
<p>3、开放端口</p>
<p>依次执行</p>
<div class="cnblogs_code">
<pre>#添加端口
# firewall-cmd --zone=public --add-port=2121/tcp --permanent

# firewall-cmd --zone=public --add-port=1050-1060/tcp --permanent

#重启防火墙
# systemctl restart firewalld.service

#查看监听端口
# netstat -ntpl | grep vsftpd
命令安装netstat:yum -y install net-tools</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1126660/202006/1126660-20200602173100146-626751597.png" alt="" width="963" height="75"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;4、现在可以用端口访问了</p>
<p>ftp://192.168.20.200:2121/</p>
<p>如果不行,看看telenet是否能通</p>
<p>&nbsp;cmd→telnet 192.168.20.200 2121</p>
<p>出来下面的界面,说明端口修改成功</p>
<p><img src="https://img2020.cnblogs.com/blog/1126660/202006/1126660-20200602173305048-1603607811.png" alt="" width="830" height="176"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>参考文章:https://www.cnblogs.com/letyouknowdotnet/p/11403097.html</p>
<p>附带linux常用命令:https://www.cnblogs.com/w-yu-chen/p/12870033.html</p>

</div>
<div id="MySignature" role="contentinfo">
    内容仅供参考,并非百分百解决您的问题。<br><br>
来源:https://www.cnblogs.com/w-yu-chen/p/12752427.html
頁: [1]
查看完整版本: Centos 安装vsftpd