增加安全性的措施
来自Tencent的建议自建数据库加固方法:
密码强化,使用复杂密码设置,防止被破解。
不推荐使用默认的端口3306, 换一个其他不常用的端口,避免通过端口进行攻击;
不推荐开启远程访问, my.cnf 配置文件中添加 bind-address =127.0.0.1, 仅配置本地访问。
如果有远程访问的需求,建议收敛账户的主机Host配置,允许特定安全网段访问数据库。
使用云主机的安全组功能,限制访问来源和端口。
定期修改账户密码,使用12位以上大小写字母、数字、特殊字符。
数据库开启bin-log日志可以参考:https://blog.csdn.net/king_kgh/article/details/74800513
服务器开启防火墙
0.如果没有ufw,则需要安装 sudo apt-get install ufw1.查看防火墙状态(inactive状态是防火墙关闭状态 active是开启状态) sudo ufw status2.开启防火墙 sudo ufw enable3.关闭防火墙 sudo ufw disable4.ubuntu其他防火墙命令
sudo ufw default allow/deny:外来访问默认允许/拒绝
sudo ufw allow/deny 20:允许/拒绝 访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。(eg:sudo ufw allow 22/tcp)
sudo ufw allow/deny servicename:ufw从/etc/services中找到对应service的端口,进行过滤。
sudo ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25:允许自10.0.1.0/10的tcp封包访问本机的25端口。
ufw delete allow/deny 20:删除以前定义的"允许/拒绝访问20端口"的规则
sudo ufw allow from 192.168.1.100 允许此ip访问本机的所有端口
5.拦截特定IP地址 sudo ufw deny from {ip-address-here} to any显示包含已设规则的防火墙状态输入: sudo ufw status numbered或 sudo ufw status6.拦截特定IP及端口
Nginx防护URL侵入
在nginx.conf文件加入如下代码,并重启nginx服务docker restart 容器id
if ($request_uri ~* ^(.*)think|invoke|gs.gif|.exe|.do|captcha|myadmin|sql|FxCodeShell|.jsp|public|/?XDEBUG) { return 403;}if ($query_string ~* ^(.*)FxCodeShell.jsp) { return 403;}
如图:
WebShell安全防护
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
防范webshell的最有效方法就是:可写目录不给执行权限,有执行权限的目录不给写权限。
其次:
1.对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
2.利用白名单上传文件,不在白名单内的一律禁止上传。
3.限制上传文件的后缀名验证