一 系统审计
系统审计:基于事先配置好的规则生成日志,记录可能发生在系统上的事件
发现记录违反安全策略的人及其行为
但是不会提供额外的安全保护
日志记录:时间日期
事件及其结果
触发事件的用户
所有认证机制的使用记录都可以被记录,如ssh
关键数据文件修改行为
审计案例:监控文件访问
监控系统调用
记录用户运行的命令
监控网卡流量
Ausearch -> 根据条件过滤审计日志
Aureport ->生成审计报告
装包启动服务
rpm -q audit || yum -y install audit
systemctl start auditd.service
systemctl enable auditd.service
Vim /etc/audit/auditd.conf 主配置文件
Log_file =/var/log/audit/audit.log 日志文件
服务启动默认有审计规则
Audiectl 命令控制审计系统并设置规则决定哪些行为会被记录日志
自定义审计规则:->命令行
配置永久生效 /etc/audit/rules.d/audit.rules
Auditctl --tab
Auditctl -s 查看寻状态
-w 目录路径
-l查看规则
-D删除所有规则
-k定义审计规则名称
-p权限 wax
设置审计规则:
auditctl -w /etc/passwd -p wa -k passwd_change
auditctl -l
auditctl -w /etc/selinux/ -p wa -k selinux_change
Auditctl -w /usr/sbin/fdisk -p x -k fdisk_change
Auditctl -l
设置永久有效
审计规则配置规则文件:/etc/audit/rules.d/audit.rules
搜索指定写入件日志
Ausearach -k pass_change
Aurereport
服务安全 nginx
./configure 配置选项,删除不需要的模块
最小化安装永远的对的!!!!
2数据库安全 mariadb-server
3 tomcat
Nginx 安全
Yum gcc
Tar
Cd
./configure
Make && make install
Ln -s /usr/ocal/ngix/sbin/nginx /sbin
Echo
Curl
一 优化配置-删除不需要的模块
1 开启自动索引,别人不可看到目录
./configure --without-http_autoindx_module
vim /usr/local/nginx/conf/nginx.conf
Server{
Autoindex on;
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
mkdir /usr/local/nginx/html/game
echo 666 > //usr/local/nginx/html/game/a.html
echo 666 > //usr/local/nginx/html/game/b.html
echo 666 > //usr/local/nginx/html/game/c.html
二 修改版本:网站优化->修改源码软件
如何修改版本信息-修改源码
如何隐藏版本信息-(server_token off)
/usr/local/sbin/nginx/nginx stop
Cd nginx -1.12.10
Cd src/
Cd http/
Vim +48 ngx_http_header_filter_module.c
Server:tomcat CRLF;
Server:tomcat CRLF;
Server:tomcat CRLF;
/usr/local/nginx/sbin/ginx/ -V 查看修改配置参数
Curl -I http://192.138.4.5
三 限制并发访问量
Ngx_http_limt_req_module为默认模块
该模块可以降低DDos攻击风险
Ab -c 1000 -n 1000 http://192.168.4.5
[root@proxy nginx-1.12.2]# ./configure --help | grep -i limit
–without-http_limit_conn_module disable ngx_http_limit_conn_module
–without-http_limit_req_module disable ngx_http_limit_req_module
–without-stream_limit_conn_module disable ngx_stream_limit_conn_module
Vim /usr/local/ngix/conf/nginx.conf
http{
Limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
Server {
Limit_req zone=one burst=5;
客户机或者本机验证:ab -c 100 -n 100 http://192.168.4.5/
Complete requests: 100
Failed requests: 94
四 拒绝非法请求
常见http请求方法:http定义了很多方法,实际应用中一般仅仅需要get post
[root@proxy nginx-1.12.2]# curl -i -X HEAD http://192.168.4.5/
Vim /usr/local/nginx/conf/nginx.conf
Server {
If (
r
e
q
u
e
s
t
m
e
t
h
o
d
!
^
(
G
E
T
∣
P
O
S
T
)
request_method !~ ^(GET|POST)
requestmethod! ^(GET∣POST)) {
Return 444;
}
}
客户端真机验证:
Curl -i -X GET http://192.168.4.5/
Curl -i -X HEAD http://192.168.4.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;
}
数据库服务安全
优化配置
root@Sv7] systemctl status mariadb 确保服务启动
初始化安全脚本
->Mysql_secure_installation
Remove anonymous users 删除匿名用户
DIisallow root login remotely 禁止root远程登录
Remove test database 删除测试数据库
Reload privileges 刷新权限
一 设置密码的几种方法
1 Mysqladmin -uroot -p passwoed “654321”
Enter password 123456
2 MariaDB [(none)]> set password for root@“localhost” =password(“123456”);
Query OK, 0 rows affected (0.00 sec)
3 直接修改表结构
Desc mysql.user;
Password字段
Select host,user,password form mysql.user;
MariaDB [(none)]> update mysql.user set password=password(“12345678”)
where host=“localhost” and user=“root”;
MariaDB [(none)]> flush privleges;
二 密码安全:
防止被历史命令出卖
删除历史命令;history -c
[root@proxy2 ~]# vim ~/.bash_history -记录所有命令
Rm -rf ~/.bash_history
~/.mysql_history
PS注意:管理好自己的历史,不适用明文登录,选择合适的版本
日志,行为审计
防火墙从TCP设置ACL(禁止外网接触数据库)
三备份还原
备份:
Mysqldump -uroot -p123456 mydb table > table.sql
Mysqldump -uroot -p123456 mydb > mydb.sql
Mysqldump -uroot -p123456 --all-databases > all.sql
还原:
Mysql -uroot -p123456 mydb < table.sql 还原表
Mysql -uroot -p123456 mydb < mydb.sql 还原数据库
Mysql -uroot -p123456 mydb < all.sql 还原所有
四创建可远程登录用户
Grant all on gamedb.* to “%” indentified by “123456”
五tcpdump 抓包验证数据库服务器能否被访问
Tcpdump -w log -i eth0 src or dst port 3306
六数据库中的数据在网络传输是没有加密的
&*************************************************************************
Tomcat 安全\
装包
[root@proxy ~]# yum -y install java-1.8.0-openjdk
which java
java -version
Tar -zvf apache-tomcat-8
Mv apache-tomcat-8 /usr/local/tomcat
/usr/local/tomcat/bin/startup.sh
Ss -ntulp | grep :8080
Echo 666 > /usr/local/tomcat/websapps/ROOT/a.html
Curl http://localhost:8080/a.html
看得到tomcat的版本信息
[root@proxy local]# curl -I http://192.168.4.5:8080/xx-保错界面看到版本信息
HTTP/1.1 404 Not Found
Server: Apache-Coyote/1.1
[root@proxy local]# curl -I http://192.168.4.5:8080/a.htmlk -头部信息
[root@proxy local]# curl -I http://192.168.4.5:8080 -
浏览器访问;http:192.168.4.5:8080
[root@proxy local]# yum -y install java-1.8.0-openjdk-devel
Cd /usr/local/tomcat/lib
很多jar 包
配置文件 Vim org/apache/catalina/util/ServerInfo.properties
Server.info =server.info=IIS^M
server.number=9.0.20.0^M
server.built=Dec 1 2015 22:30:46 UTC
配置文件 Vim +69 /usr/local/tomcat/conf/server.xml
Redirector server=”ngninx”
重启:[root@proxy lib]# /usr/local/tomcat/bin/shutdown.sh
ss -ntulp | grep :8080
Mv /dev/random /dev/randoma
Ln -s /dev/urandom /dev/random -软连接
root@proxy lib]# /usr/local/tomcat/bin/startup.sh
ss -ntulp | grep java
curl -I http://192.168.4.5:8080
Server: nginx
浏览器=访问;http://192.168.4.5:8080 发现访问首页没有了tomcat的版本信息
二 降权启动
Ps aux | grep java
/usr/local/tomcat/bin/shutdown.sh
Useradd tomcat
Chown -R tomcat:tomcat /usr./loca/tomcat
Su - -c “/usr/local/tomcat/bin/startuo.sh” tomcat
Netstat -ntulp | grep java
Ps aux | grep java
三 删除默认测试页面 -删除tom 猫页面
Rm -rf /usr/local/tomcat/webapps/*
LInux安全之打补丁
一
mkdir /demo
mkdir /demo/source{1,2}
ls /demo/source
ls /demo/
echo “hell world” > /demo/source1/test.sh
echo “hell the world” > /demo/source2/test.sh
which find
cp /usr/bin/find /demo/source1/
cp /usr/bin/find /demo/source2/
echo “1” >> /demo/source2/find
echo “test” > /demo/source2/tmp.txt
Yun -y install tree
[root@proxy ~]# tree /demo/
/demo/
├── source1
│ ├── find
│ └── test.sh
└── source2
├── find
├── test.sh
└── tmp.txt
[root@proxy ~]# scp /root/soft.patch root@192.168.4.51:/tmp/
[root@proxy ~]# scp /root/soft.patch root@192.168.4.51:/tmp/
root@proxy2] 4.6 主机去打补丁; Patch -p数字 < 补丁文件
-p 数字 删除重复的目录个数
-p0