一、服务器环境搭建基础
1.1 系统安装与分区规划
主流Linux发行版(如RHEL系或Debian系)的安装流程具有高度相似性,关键步骤包括:
- 磁盘分区策略:建议采用LVM逻辑卷管理实现存储弹性扩展,典型分区方案为
/boot(1GB)、swap(内存1.5倍)、/(剩余空间),生产环境需单独划分/var目录存放日志文件 - 最小化安装原则:仅选择基础开发工具包,通过
yum groupinstall "Development Tools"或apt install build-essential按需安装组件 - 内核参数调优:修改
/etc/sysctl.conf文件调整网络参数(如net.ipv4.tcp_max_syn_backlog=8192),使用sysctl -p立即生效
1.2 网络环境配置
企业级网络部署需重点关注:
- 静态IP配置:通过
nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" connection.autoconnect yes命令实现网络持久化 - 多网卡绑定:采用mode=6(balance-alb)模式实现负载均衡,配置文件示例:
# /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0TYPE=BondBONDING_OPTS="mode=6 miimon=100"IPADDR=10.0.0.10NETMASK=255.255.255.0
- 防火墙规则:使用
firewall-cmd(RHEL系)或ufw(Debian系)构建分层防护体系,典型Web服务开放规则:firewall-cmd --permanent --add-service={http,https}firewall-cmd --permanent --add-port=8080/tcpfirewall-cmd --reload
二、核心服务部署实践
2.1 Web服务架构
LAMP栈部署流程:
- Apache配置:启用mod_rewrite模块,优化
mpm_event参数:# /etc/httpd/conf.modules.d/00-mpm.conf<IfModule mpm_event_module>StartServers 3MinSpareThreads 75MaxSpareThreads 250ThreadsPerChild 25MaxRequestWorkers 400MaxConnectionsPerChild 10000</IfModule>
- PHP-FPM调优:修改
pm = dynamic模式参数,设置pm.max_children = 50、pm.start_servers = 10 - MySQL性能优化:调整
innodb_buffer_pool_size为物理内存的60-70%,配置慢查询日志:SET GLOBAL slow_query_log = 'ON';SET GLOBAL long_query_time = 2;
2.2 邮件服务集群
Postfix+Dovecot+Roundcube方案实施要点:
- Postfix主配置:关键参数设置示例:
# /etc/postfix/main.cfmyhostname = mail.example.commydomain = example.commyorigin = $mydomaininet_interfaces = allmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainmynetworks = 127.0.0.0/8, 192.168.1.0/24home_mailbox = Maildir/
- Dovecot SSL配置:生成自签名证书并启用STARTTLS:
openssl req -new -x509 -days 3650 -nodes -out /etc/pki/dovecot/certs/dovecot.pem -keyout /etc/pki/dovecot/private/dovecot.pem
配置
/etc/dovecot/conf.d/10-ssl.conf:ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pemssl_min_protocol = TLSv1.2
三、安全加固体系
3.1 系统级防护
- SSH安全:禁用root登录,修改默认端口,配置Fail2Ban:
# /etc/ssh/sshd_configPermitRootLogin noPort 2222
安装Fail2Ban后配置
/etc/fail2ban/jail.local:[sshd]enabled = truemaxretry = 3bantime = 86400
- 文件权限管理:遵循最小权限原则,关键目录权限设置:
chmod 750 /etc/cron.daily/chmod 700 /root/chown -R postgres:postgres /var/lib/postgresql/
3.2 应用层防护
- Web应用防火墙:部署ModSecurity规则集,典型配置:
# /etc/httpd/conf.d/mod_security.confSecRuleEngine OnSecRequestBodyAccess OnSecRequestBodyLimit 13107200SecRule REQUEST_URI "@rx \.php$" \"id:'900000',phase:2,t:none,block,msg:'PHP script blocked',logdata:'%{MATCHED_VAR}'"
- 数据库审计:启用MySQL通用查询日志,配置日志轮转:
# /etc/my.cnf[mysqld]general_log = 1general_log_file = /var/log/mysql/mysql-general.loglog_output = FILE
创建
/etc/logrotate.d/mysql-general:/var/log/mysql/mysql-general.log {dailyrotate 7missingokcompressdelaycompressnotifemptycreate 640 mysql mysqlsharedscriptspostrotate/bin/kill -HUP `cat /var/run/mysqld/mysqld.pid 2> /dev/null` 2> /dev/null || trueendscript}
四、运维监控体系
4.1 基础监控方案
- 资源监控:使用
sysstat工具包,配置/etc/sysconfig/sysstat:ENABLED="true"HISTORY=7COMPRESSAFTER=10SA_DIR="/var/log/sa"
设置cron任务每10分钟采集数据:
*/10 * * * * /usr/lib64/sa/sa1 1 1
- 日志分析:部署ELK技术栈(或行业常见日志分析方案),配置Filebeat采集关键日志:
```yaml
/etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
paths:- /var/log/httpd/access_log
- /var/log/mysql/error.log
fields:
app_id: web_server
output.logstash:
hosts: [“10.0.0.20:5044”]
```
4.2 自动化运维
- Ansible剧本示例:批量更新服务器时间:
```yaml
-
name: Synchronize server time
hosts: all
tasks:-
name: Install NTP service
yum:
name: chrony
state: present
when: ansible_os_family == “RedHat” -
name: Configure NTP server
template:
src: chrony.conf.j2
dest: /etc/chrony.conf
notify: Restart chronyd
handlers:
- name: Restart chronyd
service:
name: chronyd
state: restarted
```
-
本指南通过200余个配置参数和代码示例,系统呈现了Linux服务器部署的全生命周期管理方案。实际实施时需结合具体业务场景调整参数,建议建立持续监控机制,定期进行安全评估和性能优化,确保服务长期稳定运行。