Linux服务器安全:实战配置,告别纸上谈兵
很多网站安全文章要么过于理论化,要么推荐大量付费服务,对于我们实际的Linux服务器环境来说,如何快速有效地提升安全性呢?本文将聚焦于Nginx配置、iptables规则以及fail2ban这三个常用工具,教你轻松抵御大部分日常低级别威胁,减少网站被骚扰的频率。
一、Nginx配置:隐藏信息,限制访问
Nginx作为Web服务器的入口,配置得当能有效降低被攻击的风险。
隐藏Nginx版本信息:
在
nginx.conf文件中,添加或修改以下配置:server_tokens off;重启Nginx服务,攻击者将无法轻易获取你的Nginx版本信息,增加攻击难度。
限制HTTP方法:
只允许常用的GET、POST等方法,禁用不常用的方法,例如DELETE、PUT等。
if ($request_method !~ ^(GET|POST)$ ) { return 405; }防范HTTP Flood攻击:
限制单个IP的连接数和请求频率。
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s; server { location / { limit_req zone=mylimit burst=10 nodelay; } }解释:
mylimit是自定义的zone名称,10m是共享内存大小,5r/s是每秒允许的请求数,burst=10允许突发请求数为10个,nodelay表示不延迟处理请求。
二、iptables规则:防火墙利器,精准防御
iptables是Linux自带的防火墙,通过配置规则,可以精确控制网络流量。
只允许必要的端口:
默认情况下,关闭所有端口,只开放80(HTTP)、443(HTTPS)、22(SSH)等必要的端口。
iptables -P INPUT DROP # 默认拒绝所有入站流量 iptables -A INPUT -i lo -j ACCEPT # 允许本地回环接口 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # 允许已建立的连接和相关连接 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH连接 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP连接 iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许HTTPS连接 iptables -P FORWARD DROP # 默认拒绝所有转发流量 iptables -P OUTPUT ACCEPT # 允许所有出站流量限制SSH登录:
限制单个IP的SSH连接频率,防止暴力破解。
iptables -A INPUT -p tcp --dport 22 -m recent --set --name SSH --rsource iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --name SSH --rsource -j DROP解释:60秒内尝试连接超过4次,则丢弃数据包。
保存iptables规则:
重启服务器后,iptables规则会失效,需要保存规则。
- CentOS/RHEL:
service iptables save - Debian/Ubuntu:
iptables-save > /etc/iptables/rules.v4
- CentOS/RHEL:
三、fail2ban:自动防御,简单高效
fail2ban可以监控系统日志,自动屏蔽恶意IP,例如SSH暴力破解。
安装fail2ban:
# CentOS/RHEL yum install fail2ban # Debian/Ubuntu apt-get install fail2ban配置fail2ban:
修改
/etc/fail2ban/jail.local文件,配置需要监控的服务。[sshd] enabled = true port = ssh logpath = %(sshd_log)s backend = %(sshd_backend)s bantime = 600 ; 封禁时间,单位秒 maxretry = 3 ; 最大尝试次数 findtime = 60 ; 检测时间窗口,单位秒解释:
bantime是封禁时间,maxretry是最大尝试次数,findtime是检测时间窗口。启动fail2ban:
service fail2ban start
总结
通过以上Nginx配置、iptables规则以及fail2ban的配置,可以有效地提升Linux服务器的安全性,抵御大部分日常低级别威胁。记住,安全是一个持续的过程,需要不断学习和更新。希望本文能帮助你告别纸上谈兵,真正提升服务器的安全性。