最小化安装配置是主动收缩攻击面,即删掉不用的、关掉默认开的、只留真正需要的;需确认业务真实需求后精简安装,卸载非必要包,关停默认服务与示例内容,限制监听范围与进程权限,并关闭无关协议与功能模块。

最小化安装配置不是“装得少”,而是主动收缩攻击面——删掉不用的、关掉默认开的、只留真正需要的。这一步做扎实了,很多漏洞压根没机会触发。
只装必需组件,从源头压缩风险
新服务器初始化时,别直接 yum install httpd 或 apt install nginx 就完事。先确认业务真实需求:是否需要 PHP?要不要数据库驱动?是否用到 SSL 终端卸载?
- RHEL/CentOS 系统用
yum groupinstall "Web Server"会带一堆冗余模块,建议改用yum install httpd单装核心包 - Ubuntu/Debian 推荐
apt install apache2-bin apache2-utils,跳过 apache2-data、apache2-doc 等非运行依赖 - 安装后立即执行
rpm -qa | grep -E "(php|mysql|ftp|telnet)"(RHEL)或dpkg -l | grep -E "(php|mysql|vsftpd|telnet)"(Debian),查出非必要包,逐个卸载
关停默认服务与示例内容
Apache、Nginx、Tomcat 等都自带欢迎页、测试页、管理后台,这些是攻击者第一眼扫描的目标。
- Apache 删除
/var/www/html/index.html,替换为自定义 403 页面;禁用mod_status、mod_info、mod_userdir模块(注释掉 LoadModule 行) - Nginx 清空
/usr/share/nginx/html/目录,确保server {}块中无location / { root /usr/share/nginx/html; }这类暴露路径 - Tomcat 彻底删除
$CATALINA_HOME/webapps/{docs,examples,manager,host-manager},保留仅ROOT应用
限制监听范围与进程权限
服务不该对外“广而告之”,也不该以高权限身份运行。
- Apache 配置中明确指定
Listen 127.0.0.1:80或内网 IP,避免Listen 80绑定所有接口 - Nginx 的
listen指令加bind参数:listen 192.168.10.5:443 ssl bind; - 所有 Web 服务统一用专用低权限用户运行:Apache 设
User www-data、Nginx 设user www-data;、Tomcat 启动前创建tomcat用户并chown -R tomcat:tomcat $CATALINA_HOME
关闭无关协议与功能模块
HTTP/1.0、Server 头泄露、目录遍历、自动索引……这些不是“便利”,是安全隐患。
- Apache 中添加:
ServerTokens Prod、ServerSignature Off、Options -Indexes - Nginx 中添加:
server_tokens off;、autoindex off;、在 location 块中加if ($request_method !~ ^(GET|HEAD|POST)$) { return 444; } - Tomcat 的
conf/web.xml中注释掉<servlet-mapping></servlet-mapping>下的default和jsp映射(若不需动态 JSP)











