【学习小结】VPS 安全措施

1. 配置SSH安全访问密钥,关闭密码登录

a.参考SecureCRT密钥连接Linux,使用SecureCRT在本机生成公私密钥
b.在VPS对应的用户目录下,新建.ssh文件夹,并上传公钥,然后更名为authorized_keys,并修改权限,如下

mkdir ~/.ssh #如果当前用户目录下没有 .ssh 目录,就先创建目录
chmod 700 ~/.ssh
mv id_rsa.pub ~/.ssh
cd .ssh
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys

c.关闭ssh密码登录

vim /etc/ssh/sshd_config
PasswordAuthentication no #此处改为no

d.【可选】添加普通用户

useradd roubin
passwd roubin

e.【可选】禁止root登陆

vim /etc/ssh/sshd_config
PermitRootLogin no  #此处改为no

f.重启ssh服务

service sshd restart

g.备份公私密钥

2.更改SSH端口及设置
vim /etc/ssh/sshd_config
Port 22222  #更改默认端口号
MaxAuthTries 5
PermitEmptyPasswords no  #不允许空密码
service sshd reload
iptables -I INPUT -p tcp --dport 22222 -j ACCEPT #CentOS 6 中防火墙开启对应端口
firewall-cmd --zone=public --add-port=22222/tcp --permanent #CentOS 7 中防火墙开启对应端口
3.锁定口令文件
[root@localhost /]# chattr +i /etc/passwd
[root@localhost /]# chattr +i /etc/shadow
[root@localhost /]# chattr +i /etc/group
[root@localhost /]# chattr +i /etc/gshadow
4.安装fail2ban防止暴力破解

参考fail2ban安装

yum install -y fail2ban
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
vim /etc/fail2ban/jail.local

 [sshd]
enabled = trueport = 22222
logpath = %(sshd_log)s
backend = %(sshd_backend)s
filter = sshd
action = iptables[name=SSH, port=22222, protocol=tcp] sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath = /var/log/secure
maxretry = 3
5.启用iptables

参考Linux上iptables防火墙的基本应用教程

# 清除已有iptables规则
iptables -F
# 允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22222(SSH)端口,以下几条相同,分别是22222,80,443端口的访问
iptables -A INPUT -p tcp --dport 22222 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#允许ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#禁止其他未允许的规则访问(注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A INPUT -j REJECT 
iptables -A FORWARD -j REJECT
#保存防火墙规则
service iptables save
#设置防火墙开机启动
chkconfig --level 345 iptables on
6.禁用ipv6
#编辑/etc/sysconfig/network添加行:
NETWORKING_IPV6=no
#修改/etc/hosts,把ipv6本地主机名解析的注释掉(可选):

#::1 localhost localhost6 localhost6.localdomain6

#禁止系统加载ipv6相关模块,创建modprobe关于禁用ipv6的设定文件/etc/modprobe.d/disable_ipv6.conf(名字随便起)(RHEL6.0之后没有/etc/modprobe.conf这个文件),内容如下,三选其一(本次使用的第一种):
alias net-pf-10 off
options ipv6 disable=1
#禁止开机启动
chkconfig ip6tables off
#查看ipv6是否被禁用
lsmod | grep -i ipv6
ifconfig | grep -i inet6
7.阻止百度收录真实位置

恩,免得上门查水表

vim /etc/hosts

0.0.0.0 api.map.baidu.com
0.0.0.0 ps.map.baidu.com
0.0.0.0 sv.map.baidu.com
0.0.0.0 offnavi.map.baidu.com
0.0.0.0 newvector.map.baidu.com
0.0.0.0 ulog.imap.baidu.com
0.0.0.0 newloc.map.n.shifen.com

:: api.map.baidu.com
:: ps.map.baidu.com
:: sv.map.baidu.com
:: offnavi.map.baidu.com
:: newvector.map.baidu.com
:: ulog.imap.baidu.com
:: newloc.map.n.shifen.com

其他参考文章:
购买了VPS之后你应该做足的安全措施
Securing a Linux Server

转载请注明出处:https://roubintech.com/post/vps-security

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 原文链接:提高Linux服务器安全欢迎访问我的博客 虽然Linux已经很安全了,但是如果密码设置的不够复杂,如果说...
    tikyle阅读 1,340评论 4 26
  • 1、远程连接服务器 远程连接服务器对于管理员来说,是一个很有用的操作。它使得对服务器的管理更为方便。不过方便归方便...
    Zhang21阅读 39,631评论 0 20
  • 1 改变,是我最近不断谈及的话题,我所说的改变是指变得更好。 为什么要提这个话题呢,因为我发现“改变”的价值以及我...
    易仁永澄阅读 795评论 1 15
  • Kafka 介绍 kafka是一个分布式的流消息处理平台,由LinkedIn开发。 使用场景 系统之间解耦 流式数...
    云烟1f3bca320ba6阅读 870评论 0 0