分类 运维 下的文章

1 获取数据盘的设备名称
fdisk -lu
/dev/vdb1是新增数据盘

2 安装Parted工具
yum install -y parted

3 开始分区
parted /dev/vdb1
设置GPT分区格式
mklabel gpt
划分一个主分区、分区名为primary且100%容量给到第一个分区
mkpart primary 1 100%
检查分区是否对齐
align-check optimal 1
如果分区是对齐的,结果如下
1 aligned
查看分区表
print
退出Parted工具
quit

4 使系统重读分区表
partprobe

5 查看新分区信息
fdisk -lu /dev/vdb1

6 配置/etc/fstab文件并挂载分区
备份/etc/fstab文件
cp /etc/fstab /etc/fstab.bak

7 在/etc/fstab里写入新分区信息
echo blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g' /mnt ext4 defaults 0 0 >> /etc/fstab

8 查看/etc/fstab中的新分区信息
cat /etc/fstab

9 挂载/etc/fstab配置的文件系统

1 查看系统当前服务状态
service --status-all

2 停用当前ftp服务以免端口占用
Pure-FTPd

3 安装vsftpd
yum install vsftpd

4 默认配置项说明
vim /etc/vsftpd/vsftpd.conf

#关闭匿名用户访问
anonymous_enable=NO
#允许用户写权限
allow_writeable_chroot=YES
#本地用户锁定在自己的主目录中
chroot_local_user=YES
#不使用chroot_list_file指定的用户列表,没有任何“例外”用户
chroot_list_enable=NO
#主动模式端口为20
connect_from_port_20=YES
#日志路径在vsftpd_log_file
dual_log_enable=YES
#启用虚拟用户
guest_enable=YES
#虚拟用户映射为本地用户
guest_username=huchangyi
#ipv4
listen=YES
#ipv6
listen_ipv6=NO
#允许本地用户登录
local_enable=YES
#建立文件夹的权限为777-022=755
local_umask=022
#可插拔验证模块名称
pam_service_name=vsftpd
#主动
port_enable=YES
#被动
pasv_enable=YES
#被动模式传输数据的端口范围
pasv_min_port=10000
#被动模式传输数据的端口范围
pasv_max_port=10000
#屏蔽ftpusers列表中的用户
userlist_enable=YES
#屏蔽user_list列表中的用户
userlist_deny=YES
#user_list列表路径
userlist_file=/etc/vsftpd/user_list
#虚拟用户文件夹路径
user_config_dir=/etc/vsftpd/user_conf
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/etc/vsftpd/ftp.log
vsftpd_log_file=/etc/vsftpd/vsftpd.log
#对登录用户开启写权限
write_enable=YES

5 查看系统用户
cat /etc/passwd

6 虚拟用户权限独立控制
mkdir /etc/vsftpd/user_conf
vim /etc/vsftpd/user_conf/test

write_enable=YES
#虚拟用户和本地用户有相同的权限
#virtual_use_local_privs=YES
#不是只读
anon_world_readable_only=NO
#下载
anon_upload_enable=YES
#下载文件和创建文件夹
anon_mkdir_write_enable=YES
#下载、删除和重命名
anon_other_write_enable=YES
local_root=/home/huchangyi

7 重启
systemctl restart vsftpd

8 新建虚拟账号教程

8.1 建立虚拟用户口令库文件
建立口令文件(名字随便) 奇数是用户 偶数是密码
vim /etc/vsftpd/login.txt

test
t123456

8.2 生成vsftpd的认证文件

使用db_load命令生成认证文件
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

设置认证文件只对用户可写可读
chmod 600 /etc/vsftpd/login.db

8.3 建立虚拟用户所需的pam配置文件
cd /etc/pam.d
vim /etc/pam.d/vsftpd

文件内容如下:
auth required /lib/security/pam_userdb.so (so表示调用的共享模块)
db=/etc/vsftpd/login(.db要去掉) (自动生成认证文件)
account required /lib/security/pam_uesrdb.so
db=/etc/vsftpd/login(.db要去掉) (以认证文件为标准验证帐号)

最终调整为
auth sufficient pam_userdb.so db=/etc/vsftpd/login
account sufficient pam_userdb.so db=/etc/vsftpd/login

sufficient
表示该模块验证成功是用户通过认证的充分条件。只要这个模块验证成功了,就代表没有必要继续去认证这个用户了。
那么相应的行为就是只要被sufficient标记的模块一旦认证成功,就会立即返回给应用,报告成功;
但是需要注意的是sufficient的优先级低于required,那么如果有required失败,刚最终的结果也是失败的;
当sufficient认证失败时,相当于optional。

8.4 建立虚拟用户所要访问的目录并设置相应权限
即:建立所以ftp虚拟用户帐号使用的系统用户帐号的映射文件并设置该帐号
宿主目录的权限
useradd huchangyi -d /home/huchangyi -s /sbin/nologin
注意不能给虚拟用户设密码 他只起映射作用

8.5 设置vsftpd.conf配 置文件
在配置文件中添加虚拟用户的配置内容
vim /etc/vsftpd/vsftpd.conf

guest_enable=YES
guest_username=huchangyi
pam_service_name=vsftpd

9 重启服务
systemctl restart vsftpd

10 报错问题解决
euler系统报错 无法初始化数据库:
gdbmtool /etc/vsftpd/login.pag store test test1234

宝塔面板设置禁ping后无法登录问题排查

1 根据设置页面关键词查找配置项
宝塔Linux面板默认端口
find /www/server/panel -type f -name "*"|xargs grep "宝塔Linux面板默认端口"

2 根据sqlite文件查看对应配置项
yum install -y lrzsz
sz /www/server/panel/data/default.db

3 查看php登录失败日志
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
access_log /www/wwwlogs/tcp-access.log tcp_format;
error_log /www/wwwlogs/tcp-error.log;
include /www/server/panel/vhost/nginx/tcp/*.conf;

4 查看论坛
关闭防火墙。。。
systemctl stop firewalld
解决