几个加固云服务器的方法(VPS版)
前不久我的月供hide.me账号终于永远沉睡了,平时也就不过去油管看些养猫视频也能被盯上……迫于学业和娱乐的重担(),我决定搭建一个VPS来解决这种麻烦。
方法:自行选购VPS咯,不管是土豪去买AWS或Azure,还是一般大众使用的Vultr、linode,或是质优(?)价廉的Bandwagon或host1plus都是您的选择。您若是还有更多的钱能合法地通过阿里云审核再去备案两个月,买个域名附带一台主机,但是谁也不晓得阿里是否在监控出入数据↶_↶。
(图片来源于https://bbs.aliyun.com/simple/t536953.html)
引用知乎上某位过来人的话
便宜+稳定=慢/配置低
稳定+速度快=贵
便宜+速度快=配置低
便宜+稳定+速度快+国内=贵+++
便宜+稳定+速度快+国外+不限制大陆用户(+支付宝)=都被拿来挖矿了哪还有你的份
闲言少叙,还是言归正传吧,大多数人还是想通过搭建openVPN或是shadowsocks实现远程访问。不管是工作、Google学术、YouTube抑或是去at“Trump”看表演,”正常“的渠道都无比艰辛,人家VPS服务商也要你好歹不能被黑客攻击。这里我就介绍下CentOS、Debian以及Windows下安全加固方法。
示例机器1:CentOS6 bbr
(Google架构优化后的产品,属于默认套餐,讲真的我个人并不推荐使用,似乎精简的有点过头了,根本不能搭站)
安全加固方法:
安装安全组件
yum install yum-security
检查安全更新
yum –security check-update
只安装安全更新
yum update –security
检查特定软件有无安全更新
yum list-security software_name
列出更新的详细信息
yum info-security software_name
可能出现的问题:
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
Exit code: 1
意思是,有未完成的yum事务,建议先运行yum-complete-transaction命令清除。
处理步骤:
# 安装 yum-complete-transaction
yum install yum-utils
# 运行 yum-complete-transaction
yum-complete-transaction --cleanup-only
# 清除可能存在的重复包
package-cleanup --dupes
# 清除可能存在的损坏包
package-cleanup --problems
错误2:
Is this ok [y/N]: Exiting on user Command Your transaction was saved, rerun it with:
yum load-transaction /tmp/yum_save_tx-2018-08-15-11-28AnIoXD.yumtx
解决方法:选择将上面的那段代码复制下来添加-y结尾跳过一步步用户选择。
PS:清除自己机器上原先的VPN软件方法(软件是hide.me,大多数VPN都挺鸡肋的)
清除原先的VPN插件时出现了“文件正在占用中”错误,为了解决这个问题,我从MSDN中下载了handle这个工具,放在了system32文件夹中。使用cmd,命令为handle c:\xxx\xxxx\xxx\xx,找到占用它的相关软件。
2.Debian
:(这是我比较青睐的一款系统,特别稳定,相同硬件条件下响应速度比CentOS快,唯一缺点就是安装LNMP时资料不多)(还可以参考:https://www.debian.cn/archives/998)
2.1 Debian检查需要安全修复包
sudo apt-get upgrade -s | grep -i security
2.2 密码策略
root密码策略至少应该考虑以下几点:
1,密码强度,至少是字母+数字一共9位以上
2,不同的系统密码不能一样
3,根换密码策略(每90天更换一次)
4,密码分发管理,管理不同业务服务器的系统管理员掌握不同的密码
2.2.1 业务分离
生产环境中,不同的业务可以做水平分离,比如把不同的服务运行到不同的虚拟机 中,不需要远程访问的服务器可以绑定到 localhost( 比如只需要访问本机业务的 mysql) 上。
2.3 SSH安全配置
openssh目前的默认配置文件相比以前虽然要安全的多,但还是有必要对生产系统 中的ssh服务器进行基线检查。
配置文件:/etc/ssh/ssh_config
1,known_hosts保存相关服务器的签名,所以必须把主机名hash:
HashKnownHosts yes
2,SSH协议v1不安全:
Protocol 2
3,如果没用X11转发的情况:
X11Forwarding no
4,关闭rhosts:
IgnoreRhosts yes
5,关闭允许空密码登录:
PermitEmptyPasswords no
6,最多登录尝试次数:
MaxAuthTries 5
7,禁止root登录
PermitRootLogin no
(可选)
1,关闭密码认证,启用公钥认证:
PubkeyAuthentication yes
PasswordAuthentication no
2,允许或者禁止用户/组登录:
AllowGroups, AllowUsers, DenyUsers, DenyGroups
还有更详细的见https://blog.csdn.net/jlds123/article/details/38110779
3.Ubuntu作为Debian衍生品,很多规则可以套用
4.openSUSE资料不多
5.Windows
无非关闭远程桌面,关掉445、135~139、3389,密码增强策略,资料太多了就不赘述了