Linux服务器设置是确保系统稳定、安全运行的核心工作,涵盖系统初始化、权限管理、网络配置、安全加固等多个环节,以下从实际操作出发,详细说明关键步骤及注意事项。
系统初始化与基础配置
新服务器首次启动后,需完成基础系统优化,首先更新系统软件包:在Ubuntu/Debian中使用sudo apt update && sudo apt upgrade -y
,CentOS/RHEL中则用sudo yum update -y
,确保系统组件为最新版本,修复潜在漏洞。
时区配置影响日志记录和定时任务,执行sudo timedatectl set-timezone Asia/Shanghai
将时区设为北京时间,主机名配置便于服务器识别,通过sudo hostnamectl set-hostname server-name
设置唯一主机名(如“web-server-01”)。
磁盘分区需根据业务需求规划,若新增数据盘,可用fdisk -l
查看磁盘情况,使用fdisk /dev/sdb
分区(输入n创建新分区,t修改分区类型为8e(LVM),w保存),然后格式化:mkfs.ext4 /dev/sdb1
,最后挂载到指定目录(如/data
),并配置/etc/fstab
实现开机自动挂载,避免重启后挂载失效。
用户与权限管理
默认root用户权限过高,需创建普通用户并分配sudo权限,执行sudo adduser admin
创建用户,sudo passwd admin
设置密码,随后编辑/etc/sudoers
文件(使用visudo
安全编辑),在文件末尾添加admin ALL=(ALL) NOPASSWD:ALL
,使admin用户无需密码即可执行sudo命令(生产环境建议保留密码验证)。
为提升安全性,可配置密钥登录替代密码,在客户端生成SSH密钥对:ssh-keygen -t rsa -b 4096
,将公钥(~/.ssh/id_rsa.pub
)通过ssh-copy-id admin@服务器IP
上传至服务器,再修改/etc/ssh/sshd_config
配置文件,设置PasswordAuthentication no
禁用密码登录,重启SSH服务:sudo systemctl restart sshd
。
不同用户权限需精细化控制,可通过用户组实现,例如创建webgroup
组:sudo groupadd webgroup
,将用户加入组:sudo usermod -aG webgroup admin
,设置目录所属组:sudo chown -R admin:webgroup /var/www
,并设置权限为775
(组内用户可读写执行)。
网络配置与防火墙设置
静态IP配置确保服务地址固定,Ubuntu系统使用Netplan编辑/etc/netplan/01-netcfg.yaml
如下:
network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [114.114.114.114, 8.8.8.8]
执行sudo netplan apply
生效;CentOS系统则编辑/etc/sysconfig/network-scripts/ifcfg-eth0
,设置BOOTPROTO=static
,添加IPADDR=192.168.1.100
、NETMASK=255.255.255.0
、GATEWAY=192.168.1.1
等参数,重启网络服务:sudo systemctl restart network
。
防火墙是安全第一道防线,Ubuntu默认使用UFW,可通过sudo ufw enable
启用,sudo ufw allow 22/tcp
允许SSH端口,sudo ufw allow 80/tcp
允许HTTP访问;CentOS使用firewalld,执行sudo firewall-cmd --permanent --add-service=ssh
、sudo firewall-cmd --permanent --add-service=http
,再sudo firewall-cmd --reload
重新加载规则,需注意仅开放业务必需端口,避免安全风险。
安全加固与日志监控
SSH服务需进一步加固,编辑/etc/ssh/sshd_config
,修改默认端口(如Port 2222
),禁用root登录:PermitRootLogin no
,设置空闲超时:ClientAliveInterval 300 120
,重启SSH服务使配置生效。
安装Fail2ban防止暴力破解,执行sudo apt install fail2ban -y
(Ubuntu)或sudo yum install fail2ban -y
(CentOS),编辑/etc/fail2ban/jail.local
,配置SSH拦截规则:
[sshd] enabled = true port = 2222 maxretry = 3 bantime = 3600
启动Fail2ban:sudo systemctl start fail2ban
。
日志监控是问题排查的关键,系统日志默认存储在/var/log/
目录,可通过logrotate
配置日志轮转,避免单个日志文件过大,编辑/etc/logrotate.conf
,设置日志按月轮转、保留3份:
/var/log/*.log { monthly missingok rotate 3 compress delaycompress notifempty }
同时使用journalctl -u nginx.service -f
实时查看指定服务日志,或grep "error" /var/log/syslog
过滤错误信息。
性能优化与定期维护
内核参数优化可提升系统性能,编辑/etc/sysctl.conf
,添加以下配置:
net.ipv4.tcp_syncookies = 1 # 防SYN洪水攻击 vm.swappiness = 10 # 减少Swap使用 fs.file-max = 65535 # 增加最大文件句柄数
执行sudo sysctl -p
生效。
定期清理临时文件和过期日志,使用sudo apt autoremove -y
(Ubuntu)或sudo yum autoremove -y
(CentOS)清理无用包,sudo find /var/log -name "*.log.*" -mtime +7 -delete
删除7天前的旧日志。
配置定时任务自动化维护,执行crontab -e
添加:
0 3 * * * /usr/bin/apt update && /usr/bin/apt upgrade -y # 每天凌晨3点更新系统 0 4 * * * /usr/bin/find /tmp -type f -mtime +1 -delete # 每天凌晨4点清理/tmp目录下1天前的文件
相关问答FAQs
Q1:忘记Linux服务器root密码如何重置?
A:需通过重启服务器进入GRUB引导菜单,在启动时按e
编辑内核参数,找到linux
或linux16
行,末尾添加init=/bin/bash
,按Ctrl+X
进入单用户模式,执行mount -o remount,rw /
重新挂载根目录,使用passwd root
修改密码,输入exec /sbin/init
重启系统即可。
Q2:如何查看Linux服务器的实时资源使用情况?
A:使用top
命令查看CPU、内存、进程实时占用,按P
按CPU排序、M
按内存排序;htop
是top
的增强版(需安装),支持彩色显示和进程树;df -h
查看磁盘剩余空间;free -h
查看内存和Swap使用情况;iftop
或nethogs
可监控网络流量(需安装)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/23334.html