首页 > 代码库 > centos7架设vsftpd服务
centos7架设vsftpd服务
网络控制相关命令:
systemctl status network 网络状态
systemctl restart network 网络重启
查看网络状态: nmcli connection show -a
配置网卡信息: vi /etc/sysconfig/network-scripts/eno….
重启网卡: systemctl restart network
——————————————————————————
防火墙设置相关命令:
firewall-cmd --zone=public --add-port=80/tcp –permanent
firewall-cmd --reload #重启firewall
firewall-cmd --list-ports #列出开放的端口
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
网卡配置信息:
cd /etc/sysconfig/network-scripts/
vi ifcfg-eno16777736
-----------固定IP网卡配置—开始-----------
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLERED=yes
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=9451adc6-6f7d-410a-be1c-eca7fb61f1ef
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.1.30
PREFIX=24
GATEWAY=192.168.1.1
DNS1=192.168.1.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
-----------固定IP网卡配置—结束-----------
VSFTPD按照与配置
安装软件及服务:
yum install vsftpd*
yum install pam*
yum install db4*
创建vsftpd进程所需要的用户,包括宿主用户和虚拟宿主用户
useradd vsftpd -s /sbin/nologin
useradd overlord -s /sbin/nologin
其他用户相关命令
userdel –r [用户名]
id [用户名]
su [用户名]
cat /etc/passwd
配置Vsftpd的配置文件
注意两坑:
1、 如果没有IPV6的网络,主要要将IPV6的配置注释掉
2、 allow_writeable_chroot=YES #解决父目录不能写的报错
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
allow_ftpd_full_access
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=vsftpd
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to Vsftp FTP service.^_^
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=NO
listen=YES
#listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_username=virtftpuser
guest_enable=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf/
allow_writeable_chroot=YES
其他(没有试验):
如果允许被动模式的话:
防火墙中还需要添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9010:9020 -j ACCEPT
vsftpd.conf中需要添加
pasv_enable=yes
pasv_min_port=9010
pasv_max_port=9020
listen_port=21
制作虚拟用户数据库文件
touch /etc/vsftpd/virtusers
vi /etc/vsftpd/virtusers
----------------------------
kanecruise
123456
near
123456near
mello
123456mello
----------------------------
编辑这个虚拟用户名单文件,在其中加入用户的用户名和口令信息。格式很简单:“一行用户名,一行口令”。
生成虚拟用户数据文件:
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
察看生成的虚拟用户数据文件
ll /etc/vsftpd/virtusers.db
设定PAM验证文件,并指定虚拟用户数据库文件进行读取
在编辑前做好备份:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
编辑Vsftpd的PAM验证配置文件
vi /etc/pam.d/vsftpd
-------------------------------------------------------------------------------
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=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
-------------------------------------------------------------------------------
虚拟用户的配置
1.规划好虚拟用户的主路径:
[root@KcentOS5 ~]# mkdir /opt/vsftp/
2.建立测试用户的FTP用户目录:
[root@KcentOS5 ~]# mkdir /opt/vsftp/ huangju / /opt/vsftp/ryan/
3.建立虚拟用户配置文件模版:
cp /etc/vsftpd/vsftpd.conf.backup /etc/vsftpd/vconf/vconf.tmp
4.定制虚拟用户模版配置文件:
vi /etc/vsftpd/vconf/vconf.tmp
————————————————————————————————anonymous_enable=NO
local_root=/opt/vsftp/huangju
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
————————————————————————————————
更改虚拟用户的主目录的属主为虚拟宿主用户:
chown -R overlord.overlord /opt/vsftp/
从虚拟用户模版配置文件复制:
cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/kanecruise
针对具体用户进行定制:
vi /etc/vsftpd/vconf/kanecruise
启动服务:systemctl start vsftpd
加入开机启动 systemctl enable vsftpd
重启:systemctl restart vsftpd
centos7架设vsftpd服务