CentOS 7

CentOS7下的各种应用


vsftpd安装与配置

<h3>需求:</h3> <p>创建用户easytong、dev_ftpuser,系统用户easytong用于运行程序。ftp用户dev_ftpuser用于ftp访问,限制用户dev_ftpuser在指定的主目录下,匿名用户不允许访问。</p> <h3>1、创建用户</h3> <p>出于安全考虑,一般不允许ftp用户登录Linux系统;</p> <pre><code class="language-bash">[root@CentOS7 ~] # useradd easytong [root@CentOS7 ~] # passwd easytong [root@CentOS7 ~] # useradd -s /sbin/nologin -g easytong dev_ftpuser [root@CentOS7 ~] # passwd dev_ftpuser</code></pre> <h3>2、设置FTP工作目录</h3> <p>此ftp目录在设备接入服务启动时会自动生成,也可以手工先创建</p> <pre><code class="language-bash">[root@CentOS7 ~] # mkdir -pv /opt/EasyTong/ET_EquipmentGateWayService/ftp [root@CentOS7 ~] # chown -R easytong:easytong /opt/EasyTong/ 或 [root@CentOS7 ~] # mkdir -pv /usr/local/EasyTong/ET_EquipmentGateWayService/ftp [root@CentOS7 ~] # chown -R easytong:easytong /usr/local/EasyTong/ET_EquipmentGateWayService/ftp</code></pre> <h3>3、安装并配置ftp</h3> <h4>3.1、安装ftp</h4> <pre><code class="language-bash">[root@CentOS7 ~] # rpm -qa vsftpd [root@CentOS7 ~] # yum install vsftpd ftp</code></pre> <h4>3.2、备份原配置文件</h4> <p><code>[root@CentOS7 ~] # mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak</code></p> <h3>3.3、创建vsftpd.conf文件</h3> <p><code>[root@CentOS7 ~] # vi /etc/vsftpd/vsftpd.conf</code> 把下面内容添加到/etc/vsftpd/vsftpd.conf文件中,并保存退出</p> <pre><code class="language-bash">anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO dirmessage_enable=YES connect_from_port_20=YES pasv_enable=YES #pasv_address=60.191.37.211 #内外映射时,需要添加此行; xferlog_enable=YES xferlog_std_format=YES userlist_enable=NO chroot_local_user=YES chroot_list_enable=YES allow_writeable_chroot=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES #listen_port=5521 #修改ftp端口(/etc/services)时,需添加此行;否则报错:500 OOPS: tcp_wrappers is set to YES but no tcp wrapper support compiled in。 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES #CentOS 8 中,需要注销此行。 user_config_dir=/etc/vsftpd pasv_min_port=61001 #内外网映射时,路由器的NAS上需要打开这些端口(61001-61011); pasv_max_port=61011 #端口映射时,注意:内外端口要相同,否则在ftp登录后,用ls查看时,无法使用; max_clients=300 max_per_ip=3 reverse_lookup_enable=NO #allow_writeable_chroot=YES #vsftpd版本从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()。 #CentOS 8 不需要此行。</code></pre> <h3>4、创建文件chroot_list</h3> <p>手工创建文件chroot_list,限制用户在指定目录 <code>[root@CentOS7 ~] # touch /etc/vsftpd/chroot_list</code></p> <h3>5、创建用户文件并添加指定目录</h3> <pre><code class="language-bash">[root@CentOS7 ~]# vi /etc/vsftpd/dev_ftpuser #添加如下内容: local_root=/opt/EasyTong/ET_EquipmentGateWayService/ftp</code></pre> <h3>6、关闭防火墙、SELinux调试FTP</h3> <h4>6.1、查看selinux状态</h4> <p><code>[root@centos7 ~] # /usr/sbin/sestatus -v</code> 或:getenforce</p> <h3>6.2、关闭防火墙、SELinux</h3> <pre><code class="language-bash">[root@CentOS7 ~]# systemctl stop firewalld [root@CentOS7 ~]# setenforce 0 #关闭不需重启系统;</code></pre> <h3>7、启动ftp并验证ftp可正常工作</h3> <p>以用户dev_ftpuser登录验证,访问目录是否为指定的目录,验证是否可上传、下载数据;</p> <pre><code class="language-bash">[root@CentOS7 ~]# systemctl start vsftpd [root@CentOS7 ~]# ftp 172.16.3.240 Connected to 172.16.3.240 (172.16.3.240). 220 (vsFTPd 3.0.3) Name (172.16.3.240:root): dev_ftpuser 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp&gt; </code></pre> <h3>8、开启SELinux、防火墙</h3> <h4>8.1、开启并设置SELinux</h4> <pre><code class="language-bash">[root@CentOS7 ~]# setenforce 1 [root@CentOS7 ~]# setsebool -P ftp_home_dir on [root@CentOS7 ~]# setsebool -P allow_ftpd_full_access on ## CentOS7设置如下: [root@CentOS7 ~]# setsebool -P tftp_home_dir on [root@CentOS7 ~]# setsebool -P ftpd_full_access on [root@CentOS7 ~]# getsebool -a |grep ftp 关注下面两个开关是否打开: allow_ftpd_full_access --&gt; on ftp_home_dir --&gt; on</code></pre> <h4>8.2、查看防火墙运行情况</h4> <pre><code class="language-bash">[root@CentOS7 ~]# service iptables status [root@CentOS7 ~]# iptables -nL #查看防火墙打开的端口;</code></pre> <h3>9、打开ftp所需端口,添加如下内容,再重启防火墙</h3> <pre><code class="language-bash">[root@RHEL65 ~]# vi /etc/sysconfig/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 61001:61010 -j ACCEPT #-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT [root@RHEL65 ~]# service iptables restart</code></pre> <h3>10、验证ftp是否按需求设置成功;</h3> <h3>11、设置ftp随机启动</h3> <p><code>[root@RHEL65 ~]# chkconfig vsftpd on</code></p> <pre><code class="language-bash">[root@RHEL75 ~]# systemctl enable vsftpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.</code></pre> <h3>12、reboot验证ftp</h3> <h3>13、其它需求:更改 vsftpd 的端口号</h3> <pre><code class="language-bash">vsftpd启动后,默认的ftp端口是21,现在我想把ftp端口改成 801 ,修改后能保证用户上传下载不受影响 (1)编辑 /etc/vsftpd/vsftpd.conf 文件,在该配置文件中添加此行:listen_port=801 (2)编辑 /etc/services 文件,将其中的 ftp 21/tcp 改为 ftp 801/tcp,ftp 21/udp 改为 ftp 801/udp (3)执行 /etc/init.d/vsftpd restart 重新启动 vsftpd 服务。启动完成后可以使用 netstat -ntpl | grep vsftpd 命令可以查看到系统现监听的 vsftpd 的端口为 801 (4)使用 lftp 192.168.0.1:801(192.168.0.1 是 vsftpd 服务器的地址 ),这样就可以访问到 ftp 服务器了。</code></pre> <h3>14、报错处理</h3> <h4>14.1 报错:vsftpd 530 login incorrect</h4> <p>报错:vsftpd 530 login incorrect,密码是正确</p> <pre><code class="language-bash">vim /etc/pam.d/vsftpd 注释下面这行 #auth required pam_shells.so</code></pre> <h4>14.2 报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()。</h4> <p><code>allow_writeable_chroot=YES</code> vsftpd版本从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录(即ftp配置文件中指定的主目录)不能再具有写权限了! 如果检查发现还有写权限,就会报该错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()。 要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项: allow_writeable_chroot=YES 或者 <code>chmod 500 /raf/ftp</code> <a href="https://www.cnblogs.com/wi100sh/p/4542819.html">https://www.cnblogs.com/wi100sh/p/4542819.html</a></p> <h4>14.3 多媒体POS升级时间过久,速度不够快</h4> <p>客户使用过程中发现,多媒体POS升级时间过久,速度不够快。 修改内容:增加参数项:max_clients=300 最大客户端连接数为300</p> <h4>14.4 ftp登录报错:vsftpd 530 login incorrect</h4> <p>CentOS7.6安装vsftpd并正确配置后,ftp ip 输入用户名登录时报错:vsftpd 530 login incorrect 的N中情况 解决办法: vim /etc/pam.d/vsftpd 注释掉 <code>#auth required pam_shells.so</code> 重启 <code>systemctl restart vsftpd</code> 来源:<a href="https://blog.csdn.net/wlchn/article/details/50855447">https://blog.csdn.net/wlchn/article/details/50855447</a></p> <h4>14.5 FTP连接报错530 Permission denied</h4> <p>vsftpd.user_list:位于/etc/vsftpd目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。 <a href="https://blog.csdn.net/weiyuefei/article/details/51285765">https://blog.csdn.net/weiyuefei/article/details/51285765</a></p>

页面列表

ITEM_HTML