服务安全_nginx 数据库 tomcat
一 Nginx安全
1 删除不需要的模块
禁用自动索引功能
./configure --without-http_autoindex_module --without-http_ssi_module
make && make install
保持最小化安装永远是对的,以后再根据需要开启模块
vim /usr/local/nginx/conf/nginx.conf
server { autoindex on; }mymy
2 修改版本信息
修改版本信息(修改源码)
vim +48 src/http/ngx_http_header_filter_module.c
蓝色字体为自定义内容
修改完成后重新编译安装即可
3 限制并发
ngx_http_limit_req_module 为默认模块
该模块可以降低DDos攻击风险
vim /usr/local/nginx/conf/nginx.conf
http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { listen 80; server_name localhost; limit_req zone=one burst=5; } }
以上功能解释:my
- 将客户端ip信息存储名称为one的共享内存,空间为10M
- 1M可以存储8千个ip的信息,10M存8万个主机状态
- 每秒中仅接收1个请求,多余的放入漏斗
- 漏斗超过5个则报错
- 所以该服务器处理高并发请求时,只会处理相同ip的1+5次请求
4 拒绝非法请求
常见http请求方法
请求方法 | 功能描述 |
---|---|
GET | 请求指定的页面内容,并返回实体主体 |
HEAD | 类似get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件) |
DELETE | 请求服务器删除指定的页面 |
PUT | 向服务器特定位置上传资料 |
禁用其他方法,仅允许(GET|POST)
vim /usr/local/nginx/conf/nginx.conf
listen 80; if ($request_method !~ ^(GET|POST)$){ return 444; }
5 防止buffer溢出
防止客户端请求数据溢出
有效降低机器Dos攻击风险
vim /usr/local/nginx/conf/nginx.conf
http { client_body_buffer_size 1k; client_header_buffer_size 1k; client_max_body_size 16k; large_client_header_buffers 4 4k; }
二 数据库安全
1 初始化安全脚本
安全隐患:mariadb 初次安装使用,可以随意进入,并拥有完全权限
可以执行初始化安全脚本mysql_secure_installation
2 密码安全
2.1 修改mysql密码2.1.1命令行修改
mysqladmin -uroot -p旧密码 password ‘新密码’
2.1.2mysql数据库中修改
mysql -uroot -p密码
set passwd for root@‘localhost’=password(‘新密码’);
2.1.3
update mysql.user set password=password(‘新密码’) where user=‘root’ and host=‘localhost’;
.bash_history
.mysql_history
mysqldump binlog innobackup 主从
备份
mysqldump -uroot -p密码 --all-databases > all.sql
还原
mysql -uroot -p密码 < all.sql
2.4.1 创建远程登录账号
mysql -uroot -p密码
grant all on * . * to 用户名@’%’ identified by ‘密码’;
2.4.2 使用tcpdump抓包
tcpdump -i eth1 -A port 3306
2.4.3 客户端远程登录,查看抓包数据
mysql -u用户名 -p密码 -hip地址
select * from mysql.user;
2.4.4 解决方法:使用ssl或ssh加密数据传输
三 Tomcat安全
1 隐藏版本信息
yum -y install java-1.8.0-openjdk-devel
cd /usr/local/tomcat/lib/
jar -xf catalina.jar
vim org/apache/catalina/util/ServerInfo.properties
修改tomcat主配置文件,进行版本信息的隐藏
vim +69 /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" server="IIS" />
2 降权启动
2.1 使用非root启动tomcat服务useradd tomcat
chown -R tomcat:tomcat /usr/local/tomcat/
su -c /usr/local/tomcat/bin/startup.sh tomcat
chmod +x /etc/rc.local
vim /etc/rc.local
su -c /usr/local/tomcat/bin/startup.sh tomcat
- 点赞
- 收藏
- 分享
- 文章举报
- tomcat+nginx+redis实现均衡负载、session共享---让Tomcat把会话Session保存到Redis数据库。
- tomcat注册成windows系统服务之后,如何增加 security 安全参数
- Mac Nginx 配置 Tomcat 配置 jdk环境变量 Nginx部署服务遇到的坑(1)
- Nginx与Tomcat多端口服务配置实例分享
- Tomcat + Nginx + 主从 memcached + keepalived 实现高可靠的web 服务
- Nginx启动提示80端口被其他服务(Apache、Tomcat)占用
- 将tomcat、Nginx、memcache、MongoDB等免安装软件注册成win系统的服务
- Nginx服务安全设置和参数调优
- Nginx + tomcat 实现服务集群
- 54款开源服务器软件(内容管理、数据库、电子商务、邮件服务器、文件传输、操作系统、安全、小公司服务
- 云图说 | 安全侠 • 三分钟小课堂 拖库洗库撞库怎么防?数据库安全服务帮你忙!
- 基于CentOS 7 web服务环境搭建(包含JDK+Nginx+Tomcat+Mysql+Redis)
- DNS服务正向、反向解析区域,主/从区域数据库复制,子域授权及基本安全控制
- 使用structs2开源框架+tomcat开源服务+mysql开源数据库+微信开放接口构建考务信息推送平台
- 安全加固-Nginx-Tomcat
- Keepalived+Nginx+Tomcat搭建高可用的Web服务(二):双主模式
- Linux常用运维服务 - Nginx与Tomcat日志切割
- 当项目使用的数据库更换后,如何将tomcat的服务改为对应的库
- [分享] 数据库服务管理脚本,超好用! 支持oracle,mysql,sqlserver,tomcat(本人在源程序上修改的)
- spring配置下通过tomcat的jndi服务连接数据库