服务覆盖:昆明·曲靖·玉溪·保山·昭通·丽江·普洱·临沧·楚雄·红河·文山·西双版纳·大理·德宏·怒江·迪庆

别等被黑了才后悔:企业内网安全的10个必做配置

eycit 2026-04-21 -1 次阅读 系统安装
---

theme: default themeName: "默认主题" title: "别等被黑了才后悔:企业内网安全的10个必做配置"


别等被黑了才后悔:企业内网安全的10个必做配置

「我们是小公司,黑客不会盯着我们的。」

这句话我听过太多次了,然后这些公司里有一半后来都被黑了。事实是:黑客不挑人,他们挑漏洞。 你的服务器有漏洞,就算你是个卖包子的,也会被自动化扫描工具盯上。

2025年某次安全事件统计显示,中小企业遭受网络攻击的比例已经超过大企业——因为大企业有专业安全团队,中小企业往往裸奔。

今天不讲高深的安全理论,就讲10个你今天就能做的内网安全配置,每一个都是血泪教训换来的。

1. 修改SSH默认端口,禁用密码登录

这是最基础的,但很多人就是不做。

默认22端口每天被扫描次数:我的一台测试服务器,22端口一天被尝试登录超过5000次。改成非标准端口后,降到个位数。
# /etc/ssh/sshd_config

修改端口

Port 22222

禁用密码登录,只允许密钥

PasswordAuthentication no PubkeyAuthentication yes

禁用root直接登录

PermitRootLogin no

限制登录用户

AllowUsers deploy admin

设置登录超时

LoginGraceTime 30 MaxAuthTries 3

重启SSH

systemctl restart sshd

配置密钥登录:
# 在本地生成密钥对

ssh-keygen -t ed25519 -C "your_email@example.com"

把公钥上传到服务器

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

2. 配置防火墙,最小化开放端口

原则:默认拒绝,按需开放。
# 使用ufw(Ubuntu)

ufw default deny incoming ufw default allow outgoing

只开放必要端口

ufw allow 22222/tcp # SSH(改过的端口) ufw allow 80/tcp # HTTP ufw allow 443/tcp # HTTPS

限制SSH只允许特定IP访问

ufw allow from 192.168.1.0/24 to any port 22222

ufw enable

使用iptables(更精细控制):
# 允许已建立的连接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许本地回环

iptables -A INPUT -i lo -j ACCEPT

允许特定端口

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

默认拒绝

iptables -P INPUT DROP

3. 安装Fail2ban,自动封禁暴力破解

Fail2ban监控日志,发现暴力破解行为后自动封禁IP。

# 安装

apt install fail2ban

配置 /etc/fail2ban/jail.local

[DEFAULT] bantime = 3600 # 封禁1小时 findtime = 600 # 10分钟内 maxretry = 5 # 失败5次就封

[sshd] enabled = true port = 22222 logpath = /var/log/auth.log

[nginx-http-auth] enabled = true logpath = /var/log/nginx/error.log

systemctl enable fail2ban systemctl start fail2ban

查看封禁状态:
fail2ban-client status sshd

4. 定期更新系统和软件包

这是最容易被忽视的,也是最重要的。

2024年的WannaCry勒索病毒,利用的是Windows SMB漏洞,微软早在攻击发生前两个月就发布了补丁——但大量企业没有及时更新,结果损失惨重。
# Ubuntu/Debian 自动安全更新

apt install unattended-upgrades dpkg-reconfigure unattended-upgrades

配置 /etc/apt/apt.conf.d/50unattended-upgrades

Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; }; Unattended-Upgrade::AutoFixInterruptedDpkg "true"; Unattended-Upgrade::Remove-Unused-Dependencies "true"; Unattended-Upgrade::Automatic-Reboot "false"; # 不自动重启,避免影响业务

5. 配置日志集中收集和告警

没有日志,就没有安全。 攻击者入侵后第一件事往往是清除日志,所以日志要实时传到远端。
# 使用rsyslog发送日志到远端

/etc/rsyslog.conf

. @192.168.1.100:514 # UDP . @@192.168.1.100:514 # TCP(更可靠)
关键日志要监控:

  • `/var/log/auth.log`:认证日志,SSH登录、sudo操作
  • `/var/log/syslog`:系统日志
  • `/var/log/nginx/access.log`:Web访问日志
  • `/var/log/nginx/error.log`:Web错误日志

告警规则(用ELK或Graylog):

  • 同一IP 5分钟内SSH失败超过10次
  • 非工作时间有root登录
  • 出现`sudo`命令执行
  • Web日志出现大量4xx/5xx

6. 数据库不要暴露在公网

这个错误我见过太多次了:MySQL、Redis、MongoDB直接绑定0.0.0.0,暴露在公网。

MongoDB未授权访问曾经是最常见的数据泄露原因之一,大量数据库没有设置密码,直接被扫描工具发现并删库勒索。 正确做法:
# MySQL只监听本地

/etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 127.0.0.1

Redis只监听本地

/etc/redis/redis.conf

bind 127.0.0.1 requirepass your_strong_password

如果需要远程访问,用SSH隧道

ssh -L 3306:127.0.0.1:3306 user@server

7. 配置HTTPS,强制加密传输

HTTP传输是明文的,在公共WiFi下分分钟被抓包。

# Nginx强制HTTPS

server { listen 80; server_name example.com; return 301 https://$host$request_uri; }

server { listen 443 ssl http2; server_name example.com;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

# HSTS add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

# 防点击劫持 add_header X-Frame-Options DENY;

# 防XSS add_header X-XSS-Protection "1; mode=block";

# 防MIME类型嗅探 add_header X-Content-Type-Options nosniff; }

免费SSL证书(Let's Encrypt):
apt install certbot python3-certbot-nginx

certbot --nginx -d example.com

自动续期

certbot renew --dry-run

8. 最小权限原则

每个服务只给它需要的权限,不多给一分。
# 创建专用用户运行服务

useradd -r -s /bin/false nginx useradd -r -s /bin/false mysql

文件权限最小化

chmod 600 /etc/ssh/sshd_config chmod 640 /etc/mysql/mysql.conf.d/mysqld.cnf chown root:mysql /etc/mysql/mysql.conf.d/mysqld.cnf

数据库用户权限最小化

GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'appuser'@'localhost'; -- 不要用root账号连接数据库

9. 定期备份,并测试恢复

备份不测试等于没备份。 我见过太多公司备份了几年,真正需要恢复的时候发现备份文件损坏或者恢复流程根本跑不通。
# 简单的备份脚本

#!/bin/bash DATE=$(date +%Y%m%d) BACKUP_DIR=/backup/$DATE

mkdir -p $BACKUP_DIR

备份数据库

mysqldump -u root -p --all-databases > $BACKUP_DIR/mysql_all.sql

备份配置文件

tar -czf $BACKUP_DIR/configs.tar.gz /etc/nginx /etc/mysql /etc/ssh

上传到远端(S3/OSS)

aws s3 sync $BACKUP_DIR s3://your-bucket/backup/$DATE/

删除30天前的本地备份

find /backup -mtime +30 -type d -exec rm -rf {} +

每月做一次恢复演练,确保备份真的可用。

10. 安全扫描和漏洞评估

定期扫描自己的服务器,比等黑客发现漏洞要好得多。

推荐工具:

  • Lynis:Linux系统安全审计
  • OpenVAS:开源漏洞扫描
  • Nmap:端口扫描,看看自己暴露了什么

# 安装Lynis

apt install lynis

运行安全审计

lynis audit system

查看建议

lynis show suggestions


写在最后

安全不是一次性的事,是持续的过程。这10个配置做完,你的服务器安全性会比大多数中小企业强很多。

优先级排序:

1. SSH密钥登录 + 禁用密码(今天就做) 2. 防火墙配置(今天就做) 3. Fail2ban(今天就做) 4. 数据库不暴露公网(今天就做) 5. 系统自动更新(本周做) 6. HTTPS(本周做) 7. 日志集中收集(本月做) 8. 定期备份和恢复演练(本月做)

安全投入的成本,永远比被黑后的损失小。


【放心,我们兜底】

不管你是自己尝试修复,还是需要专业人员上门,易云城IT服务都给你托底。修不好不收费,修好了质保期内随时找我。

📞 服务热线:13708730161 💬 微信:eyc1689 📧 邮箱:service@eycit.com 🌐 https://www.eycit.com

您身边的IT专家。

上一篇
Nginx性能调优:让你的Web服务器跑得比竞争对手快一...
下一篇
我用了3年的运维监控神器:Grafana + Prome...