Linux 网络系统管理 赛题 FTP配置

部署FTP站点(匿名用户)

c 复制代码
mkdir -p /var/ftp/文档中心    //创建目录
cd /var/ftp/文档中心
mkdir 产品技术文档 公司品牌宣传 常用软件工具 公司规章制度
chown -R ftp.ftp /var/ftp/文档中心   //修改所属主和所属组,避免用户无法读写目录中的数据
c 复制代码
yum -y install vsftpd.x86_64    //安装vsftpd
systemctl restart vsftpd
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak   //备份配置文件
vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=yes      //允许匿名用户登陆anonymous
    local_enable=NO	//禁止本地用户登陆
    #local_umask=022   //注释此行表示取消对本地用户设置新增文件的权限掩码
    write_enable=YES		//具有写入权限
    anon_upload_enable=YES	//允许匿名用户具备上传权限
    anon_umask=022    //设置匿名用户的新增文件的权限掩码
    anon_mkdir_write_enable=YES		//允许匿名用户创建目录
    anon_other_write_enable=NO			//禁止匿名用户修改或删除文件
ss -lnt |grep 21    //查看端口是否允许

部署FTP专属站点

建立用户并设置主目录

c 复制代码
useradd -d /var/ftp/项目部  user1
useradd -d /var/ftp/行政部  user2
passwd user1
passwd user2
//在共享目录下放置测试文件
touch /var/ftp/项目部/1.txt
touch /var/ftp/行政部/2.txt

创建另外一个ftp配置文件

c 复制代码
vim /etc/vsftpd/vsftpd2100.conf
    anonymous_enable=NO    //禁止匿名用户登陆
    local_enable=YES	//允许用户名登陆
    write_enable=YES	//允许写入
    local_umask=022	//创建文件的默认权限为755
    chroot_local_user=YES	//禁止用户切换目录
    chroot_list_enable=YES		//开启chroot_list功能
    chroot_list_file=/etc/vsftpd/chroot_list    //chroot_list文件目录
    pam_service_name=vsftpd   //服务名称为vsftpd
    listen_port=2100   //对应端口为2100
vim /etc/vsftpd/chroot_list     //创建chroot_list文件
    user1
    user2    //将要收到禁止切换目录的用户添加进去
systemctl restart vsftpd@vsftpd2100    //开启vsftpd2100服务
ss -tlnp|grep 2100    //查看2100端口是否开启

客户端

c 复制代码
[root@Client ~]# ftp 192.168.0.7 2100
ftp> pwd    //登陆user1查看路径
257 "/var/ftp/项目部"

ftp> ls   //之前写的文件也在里面
227 Entering Passive Mode (192,168,0,7,204,178).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Aug 09 14:29 2.txt
226 Directory send OK.
    
ftp> get 2.txt    //下载到主目录
local: 2.txt remote: 2.txt
227 Entering Passive Mode (192,168,0,7,227,195).
150 Opening BINARY mode data connection for 2.txt (0 bytes).
226 Transfer complete.

ftp> mkdir test.txt    //创建成功
257 "/var/ftp/项目部/test.txt" created
ftp> ls    //权限为755
227 Entering Passive Mode (192,168,0,7,35,204).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Aug 09 14:29 2.txt
drwxr-xr-x    2 1003     1003            6 Aug 09 15:10 test.txt
226 Directory send OK.

ftp> cd /root
550 Failed to change directory.    //禁止切换目录

比赛

使用ftp服务上传网页代码。

使用vsftpd服务;

ftp的上传文件根目录即为web服务器的网站根目录;

ftp登录的用户为ftpuser;

通过ftp上传的文件用户为webuser, 文件权限为644,目录权限为755。

c 复制代码
yum -y install vsftpd
vim /root/ftp_vuser     //创建用户密码的文本文件
    ftpuser
    123
db_load -T -t hash -f /root/ftp_vuser /etc/vsftpd/ftp_vuser.db
//从/root/ftp_vuser文件中生成虚拟用户数据库文件ftp_vuser.db
chmod 600 /etc/vsftpd/ftp_vuser.db    //修改文件权限为600,不修改可能报错
useradd -d /data/share/htdocs/skills -s /sbin/nologin webuser
//添加虚拟用户的映射账户,创建映射用户的宿主目录
chmod 777 /data/share/htdocs/skills
c 复制代码
vim /etc/pam.d/vsftpd.login //为虚拟用户建立PAM认证文件
    auth	required	pam_userdb.so	db=/etc/vsftpd/ftp_vuser //指定虚拟用户数据库文件
    account	required	pam_userdb.so	db=/etc/vsftpd/ftp_vuser
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
vim /etc/vsftpd/vsftpd.conf
	local_enable=YES  //不用管
	write_enable=YES //允许执行写操作
	chroot_local_user=YES //所有用户被限制在ftp目录内,不能跨出该目录,除非有例外情况
	pam_service_name=vsftpd.login //PAM认证文件   
	//下面需要自己补充
	allow_writeable_chroot=YES // 允许写入根路径
	local_root=/data/share/htdocs/skills //设置ftp文件主目录(登录ftp后显示的目录)
	支持虚拟用户配置
	guest_enable=yes //启用虚拟用户
	guest_username=webuser //虚拟用户映射到的系统账号
	user_config_dir=/etc/vsftpd/vusers_dir //虚拟用户配置文件存放目录
mkdir /etc/vsftpd/vusers_dir
c 复制代码
vim /etc/vsftpd/vusers_dir/ftpuser     //创建虚拟用户的权限配置文件
    virtual_use_local_privs=NO
	write_enable=YES		//虚拟用户可写入
	anon_world_readable_only=NO
	anon_upload_enable=YES	//虚拟用户可上传
	anon_mkdir_write_enable=YES		//虚拟用户可创建文件
	anon_other_write_enable=YES			//虚拟用户可重命名,删除
	anon_umask=022   //设置虚拟用户创建文件的权限为755
systemctl restart vsftpd

客户端

c 复制代码
yum -y install lftp
lftp -u ftpuser:123 ftp.sdskills.org

比赛2

禁止使用不安全的FTP,请使用"CSK Global Root CA"证书颁发机构,颁发的证书,启用FTPS服务;

用户webadmin,登录ftp服务器,根目录为/webdata/;

登录后限制在自己的根目录;

允许WEB管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx的文件。

限制用户的下载最大速度为100kb/s;最大同一IP在线人数为2人;

用于通过工具或者浏览器下载的最大速度不超过 100kb/s

一个IP地址同时登陆的用户进程/人数不超过2人。

c 复制代码
yum install vsftpd -y   //安装vsftpd
yum -y install openssl
mkdir /CA
cd /CA   //进入证书目录
mkdir certs
mkdir newcerts
mkdir private
touch index.txt
openssl genrsa -out	private/ftp.key 4096     //生成密钥
openssl req -new -key private/ftp.key -out certs/ftp.csr   //生成证书请求文件
openssl ca -keyfile private/cakey.pem -cert cacert.pem -in certs/ftp.csr -out ftp.crt    //根证书服务器颁发证书(web跟根证书服务器是同一台可以直接颁发)	
    
openssl ca -revoke /csk-rootca/newcerts/01.pem  #吊销证书
c 复制代码
mkdir /webdata   //创建要求的目录
chmod 777 /webdata/   //给目录最高权限,它就算最高也会被限制
useradd webadmin   //创建要求的用户  
passwd webadmin   //为用户设置密码
c 复制代码
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak    //备份配置文件 
vim /etc/vsftpd/vsftpd.conf  
    chroot_local_user=YES    //锁定所有系统用户在主目录中
	force_local_data_ssl=YES    //启用证书认证
	force_local_logins_ssl=YES     //启用证书登录
	ssl_enable=YES		//启用ssl
	rsa_cert_file=/ca/ftp.crt    //证书文件路径
	rsa_private_key_file=/ca/ftp.key  //密钥文件路径
	local_root=/webdata   //设置本地用户登录的主目录
	allow_writeable_chroot=YES   //系统用户具有读写权限
	deny_file={*.doc,*.docx,*.xlsx}   //拒绝文件后缀,doc,docx,xlsx
	local_max_rate=100000   //本地用户最大传输速率
	max_per_ip=2   //每个IP同时发起最大连接数为2
systemctl restart vsftpd   //重启vsftpd

客户端

c 复制代码
yum -y install lftp  //安装ftp服务
vim /etc/lftp.conf
    set ssl:verify-certificate no   //不验证证书,不然拒绝访问
touch test.doc
touch test.docx
touch test.xlsx
touch test.txt     //创建测试文件
c 复制代码
lftp -u webadmin:123 172.16.100.202/ftp.sdskills.com
257 "/"
lftp webadmin@ftp.sdskills.com:/> put test.doc
put: Access failed: 550 Permission denied. (test.doc)
lftp webadmin@ftp.sdskills.com:/> put test.xlsx
put: Access failed: 550 Permission denied. (test.xlsx)
lftp webadmin@ftp.sdskills.com:/> put test.dec 
lftp webadmin@ftp.sdskills.com:/> ls
-rw-r--r--    1 1001     1001            0 Sep 05 20:49 test.dec
lftp webadmin@ftp.sdskills.com:/> cd /root/
cd: Access failed: 550 Failed to change directory. (/root)

vsftpd

安装vsftpd及相关依赖
c 复制代码
yum -y install vsftpd* pam* db4*

vsftpd : ftp 软件
pam : 认证模块
DB4 : 支持文件数据库
vsftpd配置文件说明
c 复制代码
/etc/vsftpd/vsftpd.conf      		//vsftpd核心配置文件
/etc/vsftpd/ftpusers					//用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list					//指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_config_migrate.sh			//是vsftpd操作的一些变量和设置脚本
/var/ftp/				//默认情况下匿名用户的根目录 
vsftpd配置详解
属性 属性值 含义
anonymous_enable YES/NO 是否允许匿名用户(anonymous)登录FTP,如果该设置被注释,则默认允许
local_enable YES/NO 是否允许本地系统用户登录
write_enable YES/NO 是否开启任何形式的FTP写入命令,上传文件
local_umask xxx 本地用户的umask设置,如果注释该设置则默认为077,但一般都设置为022
anon_upload_enable YES/NO 是否允许匿名用户上传文件,如果要设置为允许,则需要先开启write_enable,否则无效,此外对于目录还要具有写权限
anon_mkdir_write_enable YES/NO 是否允许匿名用户创建新目录
dirmessage_enable YES/NO 当进入某个目录时,发送信息提示给远程用户
xferlog_enable YES/NO 是否开启 上传/下载 的日志记录
connect_from_port_20 YES/NO 是否使用20端口来连接FTP
shown_uploads YES/NO 匿名上传的文件是否由某一指定用户 chown_username 所有
shown_username 有效用户名 匿名上传的文件由该设定的用户所有
xferlog_file 有效路径 设置日志文件的保存位置,默认为/var/log/vferlog
c 复制代码
cp vsftpd.conf{,.bak}   //将文件复制后加上.bak
vsftpd配置匿名用户
c 复制代码
vim vsftpd.conf   //进入主配置文件

cat vsftpd.conf | grep -v ^#    //-v  反向查找  ^开头   查找开头不带#的内容
c 复制代码
write_enbale=YES

anon_umask=022    //设置匿名用户文件的权限掩码
anonymous_enable=YES    //允许匿名用户的访问
anon_upload_enable=YES    //允许匿名用户上传文件
anon_mkdir_write_enable=YES   //允许匿名用户创建目录
anon_other_write_enable=YES			//允许匿名用户拥有其他的写入权限(改名,删除,覆盖)

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES 

//剩下的都是默认参数

anon_root=/var/ftp				//匿名用户的FTP根目录
anon_max_rate=0			//限制最大传输速率(字节/秒)0为无限制
c 复制代码
netstat -lnpt | grep vsftpd   //查看FTP进程
权限设置
c 复制代码
cd /var/ftp   //进入FTP根目录
//如果匿名用户需要在此目录上  上传文件,需要把目录的属主,属组改为FTP
chown -R ftp.ftp pub/    //属主,属组都修改为FTP

后面需要重启服务
vsftpd配置系统用户

创建用户

c 复制代码
useradd zhangsan   //创建用户
useradd	lisi
passwd	zhangsan
passwd	lisi    //设置密码

修改配置文件

c 复制代码
vim /etc/vsftpd/vsftpd.conf
local_enable=YES      //是否允许本地系统用户访问
local_umask=077				//本地用户所上传文件权限掩码
local_root=/var/ftp			//设置本地用户的FTP根目录,如果不指定默认是系统用户的home目录
chroot_local_user=YES			//标识所有写在/etc/vsftpd/chroot_list文件里面的用户是可以出chroot环境的
allow_writeable_chroot=YES
write_enable=YES

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd

userlist_enable=YES
userlist_deny=YES
tcp_wrappers=YES

//配置不能多空格,会导致服务起不来

local_max_rate=0			//限制最大传输速率(字节/秒)0为无限制
chroot_list_enable=YES      //标识是否开启chroot的环境,默认没有开启
chroot_list_file=/etc/vsftpd/chroot_list       //表示写在/etc/vsftpd/chroot_list文件里面的用户是不可以出chroot环境的,默认是可以的

添加用户进白名单

c 复制代码
vim /etc/vsftpd/user_list
zhangsan
lisi
vsftp配置虚拟用户

建立虚拟FTP用户账号

c 复制代码
useradd -s /sbin/nologin vu      	

创建虚拟用户文件

c 复制代码
cd /etc/vsftpd/
vim user
wangwu
12345
maliu
12345

基数代表用户名,偶数行代表密码

创建数据文件

通过db_load工具创建出Berkeley DB格式的数据库文件

c 复制代码
db_load -T -t hash -f user user.db

-f  指定数据原文件
-T	允许非Berkeley DB的应用程序使用文本格式转化的DB数据文件	
-t	hash	读取文件的基本方法

建立支持虚拟用户的PAM认证文件

c 复制代码
vim /etc/pam.d/vsftpd.vu
auth	required	/lib64/security/pam_userdb.so	db=/etc/vsftpd/user
account	required	/lib64/security/pam_userdb.so	db=/etc/vsftpd/user

修改配置文件

c 复制代码
vim /etc/vsftpd/vsftpd.conf
write_enable=YES			//是否启用写入权限(上传,删除文件)
dirmessage_enable=YES			//用户切换进入目录时显示,message文件
xferlog_enable=YES			//启用日志文件,记录到/var/log/xferlog
connect_from_port_20=YES			//允许服务器主动模式(从20端口建立数据连接)
xferlog_std_format=YES  			//启用标准的xferlog日志格式,禁用此项将使用vsftpd自己的格式
listen=YES      //是否以独立运行的方式监听服务
userlist_enable=YES				//是否启用user_list列表文件
tcp_wrappers=YES			//是否启用tcp_wrappers主机访问控制
allow_writeable_chroot=YES
guest_enable=YES			//设置启用虚拟用户功能
guest_username=vu			//设置虚拟 用户的宿主用户
pam_service_name=vsftpd.vu		//用户认证PAM文件位置
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES			//设置虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/user_dir			//设置虚拟用户个人vsftp的配置文件存放位置


listen_address=192.168.1.1			//设置监听FTP服务的IP地址
listen_port=21							//设置监听FTP服务的端口号
download_enable=YES				//是否允许下载文件
pasv_enable=YES			//允许服务器被动模式
pasv_max_port=24600			//设置被动模式服务器的最大端口号
pasv_min_port=24500			//设置被动模式服务器的最小端口号
userlist_deny=YES				//是否禁用user_list列表文件
max_clients=0			//限制并发客户端连接数
max_per_ip=0				//限制同一IP地址的并发连接数
ascii_upload_enable=YES			//表示是否允许用户可以上传一个二进制文件,默认是不允许
chown_username=root				//表示匿名用户上传的文件的拥有人是root,默认关闭
ascii_download_enable=YES		//表示是由允许用户可以下载一个二进制文件,默认不允许
nopriv_user=vsftpd			//设置支撑vsftpd服务的宿主用户为手动建立的vsftpd用户
async_abor_enable=YES			//设置支持异步传输的功能
ftpd_banner=Welcome to awei FTP servers			//设置vsftpd的登录标语

为虚拟用户创建个人的配置文件

c 复制代码
mkdir /etc/vsftpd/user_dir
vim /etc/vsftpd/user_dir/zhao    //如果用户叫zhao就以zhao命名
local_root=/etc/vsftpd/data    //虚拟用户的数据存放路径

mkdir /etc/vsftpd/data   //创建虚拟用户数据存放目录
chmod 777 /etc/vsftpd/data/   //给予权限

lftp

c 复制代码
-f:指定lftp指令要执行的脚本文件
-c:执行指定的命令后退出
--help:限制帮助信息
--version:限制指令的版本号
c 复制代码
lftp 192.168.107.129   //登录ftp服务器

get  hahaa -o /   //下载hahaha到/目录下
mirror test/    //mirror可以下载ftp上的目录

选拔赛

c 复制代码
 yum -y install vsftpd
 vim /etc/vsftpd/vsftpd.conf 
	anonymous_enable=NO   //不允许匿名
    listen_port=2121   //监听2121
	pasv_enable=YES  //开启被动模式
	pasv_max_port=31500   //端口范围31000-31500
	pasv_min_port=31000
	idle_session_timeout=210    //设置会话超时时间210
	userlist_deny=YES   //限制用户

useradd ZZFTP001
useradd ZZFTP002

 vim /etc/vsftpd/user_list 
     ZZFTP002

systemctl restart vsftpd

firewall-cmd --add-port=2121/tcp
mkdir /home/ZZFTP001/WordFile
chmod -R 777   /home/ZZFTP001/
测试
lftp ZZFTP001:123@10.10.10.13:2121    //我把防火墙关了
	get WordFile
相关推荐
人类群星闪耀时22 分钟前
未来运维的发展趋势:运维领域的新技术与趋势
运维
落非27 分钟前
NFS存储基础操作
运维
MarcoAI1 小时前
github SSH连接(windows)
windows·ssh·github
Vanish_ran1 小时前
gitlab与jenkins
运维·gitlab·jenkins
朱容君1 小时前
Linux系统编程多线程之读写锁讲解
linux·开发语言
大风吹PP凉1 小时前
38配置管理工具(如Ansible、Puppet、Chef)
linux·运维·服务器·ansible·puppet
康熙38bdc1 小时前
Linux 进程间通信——共享内存
linux·运维·服务器
jwybobo20071 小时前
redis7.x源码分析:(3) dict字典
linux·redis
scoone1 小时前
ssh登陆服务器后支持Tab键命令补全
linux·shell
微刻时光2 小时前
Docker部署Nginx
运维·nginx·docker·容器·经验