要将一块新硬盘配置成虚拟卷并持久挂载到系统,可以按照以下步骤操作。这里以Linux系统为例,假设硬盘设备为 /dev/sdb
(具体设备名可通过 lsblk
或 fdisk -l
确认):
步骤 1:分区(可选)
如果需要对硬盘分区,可以使用 fdisk
或 parted
工具:
sudo fdisk /dev/sdb
- 输入
n
创建新分区,按提示设置分区大小(如全盘使用可直接回车跳过)。 - 输入
w
保存并退出。
步骤 2:创建物理卷(PV)
如果使用LVM(逻辑卷管理),将分区或整块磁盘初始化为物理卷:
sudo pvcreate /dev/sdb # 整盘作为PV
# 或
sudo pvcreate /dev/sdb1 # 分区作为PV
步骤 3:创建卷组(VG)
将物理卷加入卷组(可自定义卷组名,如 my_vg
):
sudo vgcreate my_vg /dev/sdb
步骤 4:创建逻辑卷(LV)
从卷组中划分逻辑卷(如分配全部空间):
sudo lvcreate -l 100%FREE -n my_lv my_vg
-l 100%FREE
表示使用所有剩余空间,也可指定大小(如-L 10G
)。
步骤 5:格式化逻辑卷
选择文件系统(如ext4、xfs等)并格式化:
sudo mkfs.ext4 /dev/my_vg/my_lv
步骤 6:创建挂载点并临时挂载
sudo mkdir /mnt/my_mount
sudo mount /dev/my_vg/my_lv /mnt/my_mount
步骤 7:配置持久化挂载
编辑 /etc/fstab
文件,添加一行确保重启后自动挂载:
sudo nano /etc/fstab
添加内容(根据实际设备路径调整):
/dev/my_vg/my_lv /mnt/my_mount ext4 defaults 0 2
- 若使用UUID更可靠,可通过
blkid /dev/my_vg/my_lv
获取UUID后替换设备路径。
验证配置
- 测试挂载是否生效:
sudo mount -a
- 检查挂载状态:
df -h | grep my_mount
替代方案:直接使用设备(非LVM)
若无需LVM,可直接格式化并挂载:
sudo mkfs.ext4 /dev/sdb # 整盘格式化
sudo mkdir /mnt/my_mount
sudo mount /dev/sdb /mnt/my_mount
然后在 /etc/fstab
中添加:
/dev/sdb /mnt/my_mount ext4 defaults 0 2
注意事项
- 数据备份:操作前确保重要数据已备份。
- 设备名一致性:若系统动态分配设备名(如
/dev/sdb
可能变化),建议使用UUID替代。 - 权限设置:挂载后可通过
chown
调整目录权限。
通过以上步骤,新硬盘将被配置为虚拟卷(LVM)或直接分区,并实现系统重启后自动挂载。
注意在分区后使用:partprobe 来更新内核分区信息
udevadm settle 确保设备节点就绪
硬盘分区-》告知内核-》创建文件系统(会输出UUID)-》/etc/fstab挂载-》用df -h检查
新服务器安全配置指南(Linux)
当新部署一台服务器时,必须立即实施严格的安全措施,以防止未授权访问、数据泄露和恶意攻击。以下是 系统化安全配置流程,涵盖从基础加固到高级防护的完整方案。
1. 初始安全配置(首次登录前)
(1) 修改默认密码 & 禁用弱密码
- 修改 root 密码(如果通过控制台登录):
passwd
- 设置强密码策略(通过
/etc/security/pwquality.conf
):minlen = 12 # 最小长度12位 minclass = 4 # 至少包含大小写字母、数字、特殊字符 retry = 3 # 密码错误尝试次数
(2) 禁用 root 远程登录
- 编辑
/etc/ssh/sshd_config
:PermitRootLogin no
- 重启 SSH 服务:
systemctl restart sshd
(3) 创建专用管理用户
- 添加新用户并赋予 sudo 权限:
useradd -m -s /bin/bash admin_user passwd admin_user usermod -aG sudo admin_user
- 配置 SSH 密钥认证(禁用密码登录):
mkdir -p /home/admin_user/.ssh chmod 700 /home/admin_user/.ssh echo "ssh-rsa AAAAB3NzaC1yc2E... user@host" > /home/admin_user/.ssh/authorized_keys chmod 600 /home/admin_user/.ssh/authorized_keys chown -R admin_user:admin_user /home/admin_user/.ssh
2. 网络层安全加固
(1) 配置防火墙(iptables/nftables/firewalld)
使用 firewalld(CentOS/RHEL)
# 安装并启动
yum install firewalld -y
systemctl enable --now firewalld# 默认拒绝所有入站流量,仅放行必要端口
firewall-cmd --set-default-zone=drop
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-port=80/tcp # HTTP
firewall-cmd --permanent --add-port=443/tcp # HTTPS
firewall-cmd --reload
使用 iptables(通用方案)
# 清空现有规则
iptables -F# 默认策略:拒绝所有入站,允许已建立连接
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT# 允许SSH(22端口)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 保存规则(CentOS 7+)
service iptables save
(2) 禁用不必要的服务
- 查看运行中的服务:
systemctl list-units --type=service
- 停止并禁用无用服务(如 Telnet、FTP):
systemctl stop telnet systemctl disable telnet
3. 系统层安全加固
(1) 更新系统 & 安装安全补丁
# CentOS/RHEL
yum update -y# Ubuntu/Debian
apt update && apt upgrade -y
(2) 配置 SSH 安全
编辑 /etc/ssh/sshd_config
:
Port 2222 # 修改默认SSH端口(可选)
Protocol 2 # 仅使用SSHv2
PermitRootLogin no # 禁止root登录
PasswordAuthentication no # 禁用密码登录(仅允许密钥)
ClientAliveInterval 300 # 会话超时时间
MaxAuthTries 3 # 最大尝试次数
重启 SSH:
systemctl restart sshd
(3) 启用 Fail2Ban(防暴力破解)
# 安装
yum install fail2ban -y # CentOS
apt install fail2ban -y # Ubuntu# 配置SSH防护
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sed -i 's/^#$$sshd$$/[sshd]/' /etc/fail2ban/jail.local
sed -i 's/^#enabled = false/enabled = true/' /etc/fail2ban/jail.local# 启动服务
systemctl enable --now fail2ban
4. 文件系统与权限安全
(1) 设置文件系统挂载选项
编辑 /etc/fstab
,添加 noexec,nosuid,nodev
限制:
/dev/vda1 / ext4 defaults,noexec,nosuid,nodev 0 1
noexec
:禁止执行二进制文件(适用于/tmp
)。nosuid
:忽略 SUID/SGID 权限。nodev
:禁止设备文件。
(2) 限制 SUID/SGID 文件
查找并清理可疑文件:
find / -perm -4000 2>/dev/null # 查找SUID文件
find / -perm -2000 2>/dev/null # 查找SGID文件
(3) 设置磁盘配额
# 安装quota工具
yum install quota -y# 启用配额(/etc/fstab中添加usrquota,grpquota)
mount -o remount / # 重新挂载生效# 初始化配额数据库
quotacheck -cug /
quotaon /
5. 日志与监控
(1) 配置集中式日志(rsyslog + ELK)
# 安装rsyslog
yum install rsyslog -y# 配置远程日志服务器(修改/etc/rsyslog.conf)
*.* @192.168.1.100:514 # 发送到日志服务器# 重启服务
systemctl restart rsyslog
(2) 启用审计日志(auditd)
# 安装并启动
yum install audit -y
systemctl enable --now auditd# 监控关键文件(如/etc/passwd)
auditctl -w /etc/passwd -p wa -k passwd_changes
(3) 设置日志轮转(logrotate)
编辑 /etc/logrotate.conf
或创建自定义规则:
/var/log/auth.log {dailyrotate 7compressmissingoknotifempty
}
6. 高级安全措施
(1) 配置 SELinux(强制访问控制)
# 检查状态
getenforce# 临时启用(Enforcing模式)
setenforce 1# 永久启用(修改/etc/selinux/config)
sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config
(2) 使用 AppArmor(Ubuntu)
# 安装
apt install apparmor apparmor-utils -y# 启用特定服务保护
aa-enforce /usr/sbin/nginx
(3) 配置入侵检测(OSSEC/Wazuh)
# 安装OSSEC
wget https://github.com/ossec/ossec-hids/archive/refs/tags/3.9.0.tar.gz
tar -xzf 3.9.0.tar.gz
cd ossec-hids-3.9.0
./install.sh
7. 安全检查清单
类别 | 检查项 | 工具/命令 |
---|---|---|
账户安全 | 禁用root远程登录 | grep PermitRootLogin /etc/ssh/sshd_config |
密码策略强化 | grep minlen /etc/security/pwquality.conf | |
网络防护 | 防火墙规则 | iptables -L -n 或 firewall-cmd --list-all |
SSH端口变更 | ss -tulnp | grep ssh | |
系统加固 | 更新系统 | yum check-update 或 apt update |
安装Fail2Ban | systemctl status fail2ban | |
日志监控 | 集中式日志配置 | grep @ /etc/rsyslog.conf |
审计日志启用 | auditctl -l |
8. 面试回答示例
"新服务器的安全配置需要从 账户安全、网络防护、系统加固、日志监控 四个维度展开:
- 账户安全:禁用root远程登录,创建专用管理用户并配置SSH密钥认证,设置强密码策略。
- 网络防护:通过防火墙(iptables/firewalld)限制入站流量,仅开放必要端口,并部署Fail2Ban防暴力破解。
- 系统加固:更新系统补丁,禁用不必要的服务,启用SELinux/AppArmor强制访问控制。
- 日志监控:配置rsyslog集中日志,启用auditd审计关键文件,设置日志轮转防止磁盘占满。
最终通过 最小权限原则 和 纵深防御 确保服务器安全。"