CentOS 7

CentOS7下的各种应用


CentOS6/7/8 搭建vsftp服务器

<h1>搭建设备接入网关FTP</h1> <p>================================================================== 【需求】 为设备接入网关配置ftp用户,给多媒体POS机升级程序及下发广告时使用,指定一个ftp用户,访问指定ftp目录,可上传下载文件; 用户名(密码):dev_ftpuser(310012) 设备接入服务: </p> <p>==================================================================</p> <h3>1、创建用户,出于安全考虑,不允许ftp用户登录本地系统</h3> <pre><code class="language-bash">[root@RHEL65 ~]# useradd easytong #创建此用户用来运行易通程序; [root@RHEL65 ~]# passwd easytong [root@RHEL65 ~]# useradd -s /sbin/nologin -g easytong dev_ftpuser [root@RHEL65 ~]# passwd dev_ftpuser</code></pre> <h3>2、FTP工作目录(此ftp目录在设备接入服务启动时会自动生成,也可以手工先创建)</h3> <pre><code class="language-bash">/usr/local/ET_EquipmentGateWayService/ftp</code></pre> <h3>3、安装并配置ftp</h3> <h4>3.1、安装ftp</h4> <pre><code class="language-bash">[root@RHEL65 ~]# rpm -qa vsftpd #没有返回说明vsftpd未安装; [root@RHEL65 ~]# yum install vsftpd ftp</code></pre> <h4>3.2、备份配置文件</h4> <pre><code class="language-bash">[root@RHEL65 ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak</code></pre> <h4>3.3、创建vsftpd.conf文件</h4> <pre><code class="language-bash">[root@RHEL65 ~]# vi /etc/vsftpd/vsftpd.conf</code></pre> <h4>3.4、把下面内容添加到/etc/vsftpd/vsftpd.conf文件,并保存退出:</h4> <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> <pre><code class="language-bash">[root@RHEL65 ~]# touch /etc/vsftpd/chroot_list</code></pre> <h3>5、创建用户文件并添加指定目录</h3> <pre><code class="language-bash">[root@RHEL65 ~]# vi /etc/vsftpd/dev_ftpuser #添加如下内容: local_root=/usr/local/ET_EquipmentGateWayService/ftp</code></pre> <h3>6、关闭防火墙、SELinux调试FTP</h3> <h4>6.1、查看selinux状态:</h4> <pre><code class="language-bash">[root@RHEL65 ~]# /usr/sbin/sestatus -v SELinux status: enabled Current mode: enforcing ......</code></pre> <h4>6.2、关闭防火墙、SELinux</h4> <pre><code class="language-bash">[root@RHEL65 ~]# service iptables stop [root@RHEL65 ~]# setenforce 0 #关闭不需重启系统;</code></pre> <h3>7、启动ftp并验证ftp可正常工作</h3> <pre><code class="language-bash">[root@RHEL65 ~]# service vsftpd start 分别以icbc_ftpuser、bc_ftpuser、bog_ftpuser、psbc_ftpuser、dev_ftpuser登录验证 访问目录是否为指定的目录,可以上传、下载数据;</code></pre> <h3>8、开启SELinux、防火墙</h3> <h4>8.1、开启并设置SELinux</h4> <pre><code class="language-bash">[root@RHEL65 ~]# setenforce 1 [root@RHEL65 ~]# setsebool -P ftp_home_dir on [root@RHEL65 ~]# 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@RHEL65 ~]# service iptables status [root@RHEL65 ~]# 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> <p>分别以不同用户进行验证。</p> <h3>11、设置ftp随机启动</h3> <pre><code class="language-bash">[root@RHEL65 ~]# chkconfig vsftpd on #RHEL7.x的随机启动有所变化,如下: [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 (21 编辑 /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、报错处理:vsftpd 530 login incorrect,密码是正确的</h3> <pre><code class="language-bash">vim /etc/pam.d/vsftpd 注释掉 #auth required pam_shells.so</code></pre> <p>OK,验证通过。</p> <p>================================================================== 浙江正元 田世明 2016/5/7 -----------修订说明: 修改内容:</p> <pre><code class="language-bash">allow_writeable_chroot=YES #vsftpd版本从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录(即ftp配置文件中指定的主目录)不能再具有写权限了! 如果检查发现还有写权限,就会报该错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()。 https://www.cnblogs.com/wi100sh/p/4542819.html 或者chmod 500 /raf/ftp</code></pre> <p>修订时间:2018.06.21</p> <p>-----------修订说明: 客户使用过程中发现,多媒体POS升级时间过久,速度不够快。 修改内容:增加参数项:max_clients=300 最大客户端连接数为300<br /> 修证时间:2018.08.24</p> <p>-----------修订说明: CentOS7.6安装vsftpd并正确配置后,ftp ip 输入用户名登录时报错:vsftpd 530 login incorrect 的N中情况 解决办法: vim /etc/pam.d/vsftpd 注释掉</p> <pre><code class="language-bash">#auth required pam_shells.so</code></pre> <p>重启 systemctl restart vsftpd 来源:<a href="https://blog.csdn.net/wlchn/article/details/50855447">https://blog.csdn.net/wlchn/article/details/50855447</a> 修证时间:2019.02.28</p> <p>FTP连接报错530 Permission denied解决方法 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> 修证时间: 2019.11.06</p>

页面列表

ITEM_HTML