基于linux 如何保证服务访问安全 - 策略与建议
- 具体的实现方案会陆续更新
策略:
1: 使用统一的ssh登陆地址IP 112.112.112.112(假如这是办公室网络)
外网登陆使用统一登陆访问服务器资源
# 使用方法 允许通过
vim /etc/hosts.allow
# 添加
sshd:112.112.112.112:allow
# 禁止通过
vim /etc/hosts.deny
# 添加
sshd:ALL
2: 禁止扫描 (禁止ping扫描 、 与tcp/udp/SYN扫描限制)
防止黑客扫描和嗅探服务器,以及对端口的攻击
#####firewalld
//限制icmp的所有流量
firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'
##### 用iptables 实现限流
----iptables 实现 yum install iptables-service
Syn 洪水攻击 限制syn并发数每秒1次
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT --limit 1/s
限制端口扫描的流量
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
限制ping的流量
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
或者禁Ping
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
3: 打开防火墙
防止内网渗透攻击,以及阻止一些不安全程序的恶意链接通道
#打开自带的防火墙
systemctl start firewalld
--添加需要对外的端口
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
--重新载入
firewall-cmd --reload
4: 密码定期修改 (3-6个月)
提高密码的安全性
5: 设置ssh登陆访问次数限制 (例如错5次 1小时后重试)
即使知道主机存活,使用枚举破译的成本几乎变得不可能
# centos7基本都有pam_tally2模块
1.root 权限编辑文件 vi /etc/pam.d/login 添加下面一行在/etc/pam.d/login
auth required pam_tally2.so deny=3 unlock_time=3600 even_deny_root root_unlock_time=3600
# 以上规则限制所有用户ssh登陆失败3次之后 一小时重试 # 测试机上好像无法生效 正在查阅资料中
参数说明:
指定统计次数用的文件,默认是/var/log/tallylog
even_deny_root:root用户也被锁定
deny:普通用户锁定次数
lock_time:普通用户锁定后等待的时间
unlock_time:普通用户锁定后解锁要等待的时间
2:限制查看和重置用户
查看admin用户的登录失败的次数
pam_tally2 --user admin
重置计数器,即手动解锁
pam_tally2 --user admin --reset
6: 限制对外开放端口以及端口安全策略
并不要把所有的端口开放对外,容易使服务处于不安全的境地,容易导致端口被攻击
一些内部测试服务端(云端服务器)口尽量限制IP访问,由于测试服务一般图方便安装很多额外程序,以及开放很多的端口,测试服务最容易导致被攻击
一些redis、mysql等内部服务,假如部署到阿里云等云服务器应限制其访问地址配置
优势:
1:限制IP访问可以提高服务器的登陆安全,以及防止ssh登陆账号被暴力破解的问题
2:限制IP访问可以防止工作人员离职时,可能会涉及到服务器密码安全的问题,在不修改密码的情况下也能做到即使知道密码也无法登陆的情况,否则需要修改每个服务器的所有密码,人工成本很高
3: 禁止端口扫描,可以有效的隐藏服务器端口,避免一些恶意的访问请求
4:打开防火墙 - 防止内网渗透攻击
5:ssh登陆访问次数限制 - 使暴力破解更加困难
6:限制对外开放端口以及端口安全策略 - 降低本地服务器的暴露风险以及一些内部服务的安全
预估风险:
1:办公室迁移或者宽带更换时,处理不当可能会造成服务器登陆不了
解决方案 - 宽带更换或者办公室迁移时 在当前IP改变的情况下 需要修改服务器的登陆限制
2:当VPN被破解或被攻击后,外部人员使用登陆服务器(假如知道服务器的账号密码),服务器无法识别这个对象,可能会使服务处于一定的风险中
解决方案 - 提高VPN的使用的安全性,提高VPN账号权限管理与服务器账号的权限管理
注意问题:
1: 由于开启了内网防火墙,内网服务间需要添加防火墙端口才能访问