前言

大约一年前,我的WordPress网站被黑客攻击了。

clipboard.png


最近服务器的数据库又一次被黑了

clipboard.png

clipboard.png


可气......
分析原因,可能是mysql设置的密码太简单了(123456),3306端口也权限全开,服务器基本上没有加任何安全防固措施。在网上搜了一大堆的安全加固资料,多而繁琐,考虑到开发过程中的便利性,我选择了其中两种加固措施。

Linux服务器简单的两项安全加固

1. 服务器使用ssh秘钥登录

腾讯官方社区教程:

本地Windows计算机SSH密钥登录

登录工具

使用 远程登录软件 ,采用 SSH 密钥登录 Linux 实例(本例中选择使用 PUTTY,用户也可以选择其他类型的登录软件)。
操作步骤

  • 安装 Windows 远程登录软件,参考下载地址:http://www.putty.nl/download.... ,分别下载 putty.exe 及 puttygen.exe 两个文件。
  • 选择私钥。打开 puttygen.exe,单击【Load】按钮,在弹窗中首先进入您存放前提条件中下载下来的私钥的路径,然后选择“All File(.)”,选择下载好的私钥(例子中为文件david,david是密钥的名称),单击【打开】。

clipboard.png

  • 密钥转换。在 key comment 栏中输入密钥名,输入加密私钥的密码,单击【Save private key】,在弹窗中选择您存放密钥的目录,然后在文件名栏输入 密钥名 +".ppk",单击【保存】按钮。

clipboard.png

  • 打开 putty.exe ,进入【Auth】配置。

clipboard.png

  • 单击【Browse】按钮,打开弹窗后进入密钥存储的路径,并选择密钥,单击【打开】,返回配置界面,进入【Session】配置。

clipboard.png

  • 在Session配置页中,配置服务器的IP,端口,连接类型。

       IP:云服务器的公网IP。登录云服务器控制台,可在列表页及详情页中获取主机公网IP。
       端口:云服务器的端口,必须填22。(请确保云主机22端口已开放,详见查看安全组及网络ACL)。
  • 在【Saved Sessions】输入框中中输入会话名称(本例为 test ),再单击【Save】按钮,然后双击会话名称或者单击【Open】按钮发起登录请求。

clipboard.png

注意:
如果登录失败,请检查您的云服务器实例是否允许22端口的入流量。端口的查看请参考安全组 ,若您的云服务器处于私有网络环境下,请同时查看相关子网的网络ACL。

2. 修改MySQL默认的监听端口,同时添加防火墙规则

如何查看mysql 默认端口号和修改端口号 
  
  
1. 登录mysql  
  
[root@VM_89_120_centos ~]# mysql -u root -p  
Enter password:  
  
  
2. 使用命令show global variables like 'port';查看端口号  
  
mysql> show global variables like 'port';  
+---------------+-------+  
| Variable_name | Value |  
+---------------+-------+  
| port | 3306 |  
+---------------+-------+  
1 row in set (0.00 sec)  
  
  
3. 修改端口,编辑/etc/my.cnf文件,早期版本有可能是my.conf文件名,增加端口参数,并且设定端口,注意该端口未被使用,保存退出。  
  
[root@VM_89_120_centos ~]# vi my.cnf  
[mysqld]  
port=xxxx  
datadir=/var/lib/mysql  
socket=/var/lib/mysql/mysql.sock  
user=mysql  
# Disabling symbolic-links is recommended to prevent assorted security risks  
symbolic-links=0  
  
[mysqld_safe]  
log-error=/var/log/mysqld.log  
pid-file=/var/run/mysqld/mysqld.pid  
  
"my.cnf" 11L, 261C written  
[root@VM_89_120_centos ~]#  
  
4. 重新启动mysql  
  
[root@VM_89_120_centos ~]# /etc/init.d/mysqld restart  
Stopping mysqld: [ OK ]  
Starting mysqld: [ OK ]  
  
5.再次登录后检查端口已修改为’xxxx’.  
添加防火墙规则,只允许指定IP段可以访问数据库端口

[root@VM_89_120_centos ~]# iptables -I INPUT -p tcp --dport xxxx -j DROP
[root@VM_89_120_centos ~]# iptables -I INPUT -s xxx.xxx.xxx.xxx/24 -p tcp --dport xxxx --j ACCEPT
[root@VM_89_120_centos ~]# service iptables save
[root@VM_89_120_centos ~]# service iptables restart

维克托
19 声望0 粉丝