由于是私用,本次安装前早已关闭了防火墙,所以省了一些步骤使可以直接进行FTP服务安装,如果防火前没有关闭,可以修改配置文件.

1.   关闭防火墙


[root@localhost ~]#systemctl stop firewalld.service         #关闭防火墙

[root@localhost ~]#systemctl  disable firewalld.service     #禁止防火墙开机启动

2.   如果考虑安全问题不想关闭防火墙,再次可安装iptables防火墙

[root@localhost ~]#yum install iptables-service    #安装iptable防火墙

[root@localhost ~]#cat /etc/sysconfig/iptables    #编辑iptables防火墙配置文件
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

配置ps:21端口是ftp服务端口;10060到10090是Vsftpd被动模式需要的端口,可自定义一段大于1024的tcp端口。

[root@localhost ~]#systemctl restartiptables.service #重启防火墙使配置生效

[root@localhost ~]#systemctl enableiptables.service      #使防火墙开机启动

3.   关闭SELINUX

先在这里说一下为什么关闭SELINUX,因为后期维护很麻烦!!!!

[root@localhost ~]#cat /etc/selinux/config   #修改selinux配置文件
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加

[root@localhost ~]#sentenforce 0          #使配置立即生效

4.   安装vsftpd

[root@localhost ~]#vsftpd –v          #查看系统里面是否有ftp服务

[root@localhost ~]#yum install –y csftpd      #安装vsftpd

[root@localhost ~]#yum install -y psmiscnet-tools systemd-devel libdb-devel perl-DBI  

#安装vsftpd虚拟用户配置依包

[root@localhost ~]#systemctl  start  vsftpd.service        #启动

[root@localhost ~]#systemctl  enable vsftpd.service       #设置vsftpd开机启动

5.   匹配vsftp服务器

[root@localhost ~]#cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak    #备份默认配置文件

然后可以直接复制并执行下面命令,完成设置

sed -i"s/anonymous_enable=YES/anonymous_enable=NO/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#anon_upload_enable=YES/anon_upload_enable=NO/g"'/etc/vsftpd/vsftpd.conf'

sed -i "s/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'

sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#ascii_download_enable=YES/ascii_download_enable=YES/g"'/etc/vsftpd/vsftpd.conf'

sed -i"s/#ftpd_banner=Welcome to blah FTP service./ftpd_banner=Welcome to FTPservice./g" '/etc/vsftpd/vsftpd.conf'

echo -e"use_localtime=YES\nlisten_port=21\nchroot_local_user=YES\nidle_session_timeout=300

\ndata_connection_timeout=1\nguest_enable=YES\nguest_username=ftp

\nuser_config_dir=/etc/vsftpd/vconf\nvirtual_use_local_privs=YES

\npasv_min_port=10060\npasv_max_port=10090

\naccept_timeout=5\nconnect_timeout=1">> /etc/vsftpd/vsftpd.conf


ps:在此注意标红的字段,nguest_username=ftp是等会我们需要新建的一个系统用户,在这里先可以将名称命名,也可先创建用户,再执行匹配服务器的操作;反之也可先创建用户。

1.   建立虚拟用户名单

[root@localhost ~]#touch  /etc/vcftpd/virt_users

## 编辑虚拟用户名单文件:(第一行是账号,紧跟换行是密码,多用户类推即可,注意:不能使用root做用户名,系统保留),下面是新建两个虚拟用户 user1和user2

[root@localhost ~]#cat  /etc/vcftpd/virt_users

user1
123456
user2
123456

2.   生成虚拟用户数据文件

[root@localhost ~]#db_load -T -t hash -f/etc/vsftpd/virt_users /etc/vsftpd/virt_users.db

[root@localhost ~]#chmod  600  /etc/vsftpd/virtusers.db     #设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

3.   在 /etc/pam.d/vsftpd 的文件头部加入一下信息

[root@localhost ~]#cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_bak         #修改前先备份

[root@localhost ~]#cat  /etc/pam.d/vsftpd       #修改文件内容,将下面两句加在vsftpd文件的头部,加载后面会无效

#%PAM-1.0

auth sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virt_users    

account sufficient/lib64/security/pam_userdb.so db=/etc/vsftpd/virt_users

#上面两句是新加的

注意:如果系统为32位,上面改为lib,否则配置失败

session   optional     pam_keyinit.so    force revoke

auth required  pam_listfile.soitem=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth      required     pam_shells.so

auth      include      password-auth

account   include      password-auth

session   required     pam_loginuid.so

session   include      password-auth

4.   新建系统用户 ftp , 用户目录为/home/FTPpath, 用户登录终端设为/bin/false(即使之不能登录系统)

[root@localhost ~]#useradd  ftp –d /home/FTPpath –s /bin/false

[root@localhost ~]#chown ftp:ftp/home/FTPpath –R

5.   建立虚拟用户个人vsftp的配置文件

[root@localhost ~]#mkdir  /etc/vsftpd/vconf

[root@localhost ~]#cd /etc/vsftpd/vconf

[root@localhost ~]#touch user1 user2          #创建两个虚拟用户的配置文件

[root@localhost ~]#mkdir –p /home/FTPpath/file      #新建ftp数据传输并有用户权限的文件夹

[root@localhost ~]#mkdir  -p /home/FTPpath/soft

[root@localhost ~]cat user1
local_root=/home/FTPpath/file
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES

[root@localhost ~]cat user2
local_root=/home/FTPpath/soft
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
allow_writeable_chroot=YES

1.   最后重启vsftpd服务器

[root@localhost ~]#systemctl  restart vsftpd.service

注意:

Vsftpd的服务器部署安装已经完成,但是在上传和下载可能 会出现权限不够的情况,导致不能下载和上传文件

将要上传到服务器上的文件夹的权限改为777,如

[root@localhost ~]#chmod-R 777 /home/FTPpath

软连接也是很有用的一个命令, 它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,

1.软链接:

建立软链接:ln -s/usr/local/node-v4.2.6-linux-x86/bin/node /usr/local/bin/node

解释:将/usr/local/node-v4.2.6-linux-x86/bin/下的node映射到/usr/local/bin/下的node

删除软链接:rm -rf/usr/local/bin/node

例如: [root@localhost~]#ln -s /home/apache-tomcat-7.0.59-x64/webapps/project/ /home/FTPpath/tangyong

将project文件中内容软连接到tangyong文件中,

删除软连接切记最后不可加 ”/”  否则会将文件夹删除

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐