加固Nginx 数据库 Tomcat服务安全

                                                     一 . Nginx安全 

 

1.1 删除不需要的模块

Nignx是模块化设计的软件 需要什么功能与模块以及不需要哪些模块  都可以在编译安装软件时自定义 

- -with  开启某些模块       - -without  禁用某些模块 

最小化安装永远都是对的方案

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

    #gzip  on;

    server {

     autoindex on;    //添加这行  启用目录浏览功能 

[root@proxy ~]# /usr/local/nginx/sbin/nginx -t    //测试nginx配置文件是否正确

[root@proxy ~]# tar -xf nginx-1.12.tar.gz

[root@proxy ~]# cd nginx-1.12

[root@proxy nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --without-http_autoindex_module        //禁用自动索引文件目录模块

扫描二维码关注公众号,回复: 5465885 查看本文章

[root@proxy nginx-1.12.2]# make && make install

1.2 修改版本信息 隐藏具体版本号

默认Nginx会显示版本信息以及具体的版本号  这些信息给攻击着带来便利性  便于他们找到具体版本的漏洞

[root@proxy ~]# vim +48 nginx-1.12.2/src/http/ngx_http_header_filter_module.c

[root@proxy nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --without-http_autoindex_module                          //重新编译安装

[root@proxy nginx-1.12.2]# make && make install

[root@proxy nginx-1.12.2]# killall nginx

[root@proxy nginx-1.12.2]# /usr/local/nginx/sbin/nginx    //启动服务

[root@proxy nginx-1.12.2]#  curl -I http://192.168.4.50    //查看版本信息
Server: dan                          //版本号不显示Nginx  而是dan

1.3  限制并发量

DDOS攻击者会发送大量的并发连接   占用服务器资源(包括连接数、带宽等)  这样会导致正常用户处于等待或无法访问服务器的状态     Nginx提供了一个ngx_http_limit_req_module模块  可以有效降低DDOS攻击的风险

                        limit_req_zone语法格式:  limit_req_zone key zone=name:size   rate=rate;

[root@proxy ~]# vim   /usr/local/nginx/conf/nginx.conf

… …

http{

… …

limit_req_zone $binary_remote_addr zone=dandan:10m rate=1r/s;    //将客户端IP信息存储名称为dandan的共享内容

    server {

        listen 80;

        server_name localhost;

        limit_req zone=dandan burst=5;       //每秒仅接受一个请求 多余的放入漏斗  漏斗超过5个则报错                    

    }

}

[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload

                                                

                                        二 . 数据库安全

 

2.1  部署mariadb数据库

[root@proxy ~]#yum  -y  install  mariadb-server  mariadb

[root@proxy ~]# systemctl start mariadb

[root@proxy ~]# mysql_secure_installation      //初始化安全脚本

 

2.2  修改数据库登录密码

2.2.1  操作系统管理员root修改本机登录密码

[root@proxy ~]# mysqladmin -uroot -p123456 password 'dandan'     //修改密码 原始密码123456  新密码dandan
[root@proxy ~]# mysql -uroot -pdandan

[root@proxy ~]# cat .bash_history           //binlog日志存在历史命令

2.2.2  管理员root使用sql修改密码

MariaDB [(none)]> set password for root@"localhost"=password("dandan");

[root@proxy ~]# cat .mysql_history      //binlog日志里有明文密码以及操作过的命令

2.2.3 删除记录历史命令的文件

[root@proxy ~]#rm  ~/.mysql_history

[root@proxy ~]#rm  ~/.bash_history

[root@proxy ~]# history  -c

定期清除历史命令   使用防火墙从TCP层设置ACL(禁止外网接触数据库)

2.3 数据备份与还原

[root@proxy ~]# mysqldump -uroot -pdandan mysql db > db.sql       //备份数据库mysql下的db表
[root@proxy ~]#  mysqldump -uroot -pdandan kyrie > kyrie.sql        //备份数据库的kyrie库
[root@proxy ~]#  mysqldump -uroot -pdandan --all-databases > all.sql       //备份所有数据库

2.3.1 还原数据库

[root@proxy ~]# mysql -uroot -pdandan mysql < db.sql
[root@proxy ~]# mysql -uroot -pdandan kyrie < kyrie.sql
[root@proxy ~]# mysql -uroot -pdandan < all.sql

2.3.2 数据安全

[root@proxy ~]# mysql -uroot -pdandan

MariaDB [(none)]>  grant all on *.* to dan@'%' identified by '123';      //创建新用户dan

[root@proxy ~]#  tcpdump -w log -i any src or dst port 3306     //抓取源或目标端口是3306的数据包  保存到log文件

2.3.3 客户端连接数据库

[root@client ~]# mysql -udan -p123 -h 192.168.4.50      

MariaDB [(none)]> select * from mysql.user;      //任意执行查询记录

2.3.4 服务器抓包

[root@proxy ~]# tcpdump -A -r log     

           

                                                    三 . Tomcat安全

3.1  部署tomcat

[root@proxy ~]# tar -zxvf /apache-tomcat-8.0.30.tar.gz

[root@proxy ~]# mv apache-tomcat-8.0.30 /usr/local/tomcat

[root@proxy ~]# /usr/local/tomcat/bin/startup.sh

[root@proxy ~]# echo "wmj" > /usr/local/tomcat/webapps/ROOT/test.html
[root@proxy ~]# curl http://192.168.4.50:8080/test.html
wmj

3.2 隐藏版本信息

[root@proxy ~]# yum -y install java-1.8.0-openjdk-devel

[root@proxy ~]#  cd /usr/local/tomcat/lib/
[root@proxy lib]# jar -xf catalina.jar

[root@proxy lib]#ls orj
[root@proxy lib]#  vim org/apache/catalina/util/ServerInfo.properties    //修改版本信息的内容

server.info=WMJ
server.number=11.11

[root@proxy lib]# vim /usr/local/tomcat/conf/server.xml

 71   redirectPort="8443" server="wmj" />

[root@proxy lib]#  /usr/local/tomcat/bin/shutdown.sh

[root@proxy lib]# /usr/local/tomcat/bin/startup.sh

3.2.1 查看版本信息

[root@proxy ~]# curl -I http://192.168.4.50:8080

[root@proxy ~]# curl -I http://192.168.4.50:8080/dan.xml

3.3 降权启动

[root@proxy ~]# useradd tomcat
[root@proxy ~]#  chown -R tomcat:tomcat /usr/local/tomcat/        //修改权限 让tomcat用户对该目录有权限
[root@proxy ~]# su -c /usr/local/tomcat/bin/startup.sh tomcat      //以tomcat用户身份启动tomcat服务

[root@proxy ~]#  chmod +x /etc/rc.local         //开机启动文件
[root@proxy ~]# vim /etc/rc.local                //永久设置源码开机运行

su -c /usr/local/tomcat/bin/startup.sh tomcat
[root@proxy ~]# rm -rf  /usr/local/tomcat/webapps/*           //删除默认测试页面

                                                

猜你喜欢

转载自blog.csdn.net/Kyrie__/article/details/88342482