安全加固
Centos 7 安全加固
SSH 加密
yum -y install expect mkpasswd
服务器上所有账号的密码都要采用毫无关联的强密码,密码为不少于16位的大小写字母数字特殊符号的组合。
修改SSH配置文件
1. 改默认端口 22 -> 57862
2. 禁止root帐号登录
3. 指定允许登录帐号
SHH root
PermitRootLogin no
AllowUsers ccav
启用强制密码长度策略
vim /etc/login.defs
..... PASS_MIN_LEN 13
检查是否存在除root之外UID为0的用户
awk -F: '($3 == 0) { print $1 }' /etc/passwd
检测登陆系统是否需要密码
awk -F: '($2 == ""){print $1}' /etc/passwd
帐户口令复杂度及定期更换
[root@localhost]# passwd xxxxxx
禁用NAT
echo 0 > /proc/sys/net/ipv4/ip_forward
Bash日志
设置环境变量为只读:
readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE
为history文件添加时间
export HISTTIMEFORMAT=‘%F %T’
设置history文件只能追加:
chatter +a ~/.bash_history
Apache
服务器Banner信息隐藏
apache 配置文件
vim /etc/httpd/conf/httpd.conf ... ServerTokens Prod ServerSignature Off
PHP 配置文件
vim /etc/php.ini
...
expose_php = Off
防止列目录泄露敏感信息
Options Indexes FollowSymLinks
改为
Options FollowSymLinks
指定目录禁止php解析
"/var/www/html/uploads"> php_flag engine off
限制管理员后台特定IP访问
"/var/www/html/admin"> Order Deny,Allow Deny from all Allow from 192.168.1.111
关闭对.htaccess的支持
AllowOverride None
禁止显示版本
server_tokens off;
或者通过源码编译的时候修改
vim /src/core/nginx.h
... #define NGINX_VERSION "1.9.15" #define NGINX_VER "nginx/" NGINX_VERSION
禁止上传目录禁止php文件
解析目录不可写,可写目录不解析
单个目录
location ~ /upload/.*\.(php|php5)?$ {
deny all;
}
多个目录
location ~* ^/(administrator|upload)/.*\.(php)$ {
deny all;
}
禁止访问所有目录下的敏感文件
location ~. *\.(sql|log|txt|rar|zip|sh|py|svn|git) { deny all; }
禁用不必要的HTTP方法
if ($request_method !~ ^(GET|HEAD|POST)$) { return 405; }
Nginx、php-fpm运行帐号及组为nobody
Lua + nginx
Tomcat
tomcat弱口令拿Shell
tomcat tomcat admin 空 admin admin admin 123456
补丁和漏洞管理
必须及时安装与安全性相关的tomcat补丁
http://tomcat.apache.org/lists.html#tomcat-announce
设置Tomcat服务最小权限
useradd -s /sbin/nologin tomcat
vim /usr/lib/systemd/system/tomcat8.service
... #service下添加 User=tomcat Group=tomcat
chown -R tomcat:tomcat /usr/local/tomcat
网络级限制
tomcat8上已经禁止所有,只允许本地访问。
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml ..."org.apache.catalina.valves.RemoteHostValve" allow=".*\.admins\.domain\.com" />
用户管理
vim ./tomcat-users.xml ..."manager-gui"/> "manager-script"/> "manager-jmx"/> "manager-status"/> "admin" password="123ccc" roles="manager-gui,manager-script,manager-jmx,manager- status"/>
隐藏tomcat版本信息
修改$CATALINA_HOME/conf/server.xml,
在Connector节点添加server字段
/usr/local/tomcat/lib/org/apache/catalina/util
关闭自动部署
在$CATALINA_HOME/conf/server.xml中的host字段
"localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
session超时
vim ./conf/web.xml
...20
启用cookie的HttpOnly属性
CATALINA_BASE/conf/context.xml'true' .../>
安全防护
OpenResty
简介
1. OpenResty 是一个基于Nginx与Lua的高性能Web平台
2. 其内部集成了大量精良的 Lua 库,第三方模块以及大多数的依赖项。
3. 用于方便地搭建能够处理超高并发,扩展性极高的动态Web应用,Web服务和动态网关。
OpenResty 安装
yum install -y readline-devel pcre-devel openssl-devel git wget vim openssl-devel gcc curl wget https://openresty.org/download/ngx_openresty-1.9.3.2.tar.gz --no-check-certificate tar -zxvf ngx_openresty-1.9.3.2.tar.gz cd ngx_openresty-1.9.3.2 ./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre -- with-pcre-jit gmake && gmake install
功能列表
1. 支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。
2. 支持URL白名单,将不需要过滤的URL进行定义。
3. 支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。
4. 支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。
5. 支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。
6. 支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。
7. 支持URL参数过滤,原理同上。
8. 支持日志记录,将所有拒绝的操作,记录到日志中去。
9. 日志记录为JSON格式,便于日志分析,例如使用ELKStack进行攻击日志收集、存储、搜索和展示。
配置waf规则
git clone https://github.com/unixhot/waf.git cp -a ./waf/waf /usr/local/openresty/nginx/conf/ vim /usr/local/openresty/nginx/conf/nginx.conf ... http{ lua_shared_dict limit 50m; lua_package_path "/usr/local/openresty/nginx/conf/waf/?.lua"; init_by_lua_file "/usr/local/openresty/nginx/conf/waf/init.lua"; access_by_lua_file "/usr/local/openresty/nginx/conf/waf/access.lua”; }
OpenRASP (WEB 防火墙)
简介OpenRASP
是一个百度安全旗下的免费开源安全项目
全称应该是: Open-source Run-time Ap-pli-ca-tion Self-Pro-tec-tion
开源实时程序自保护系统 更想详细了解
OpenRASP:
https://www.freebuf.com/articles/web/164413.html
但是目前,OpenRASP支持Java和PHP两种开发语言,那也希望以后能支持各种类型软件兼容性
https://rasp.baidu.com/doc/install/compat.html
部署单机OpenRASP
yum install -y vim wget net-tools epel-release java-1.8.0-openjdk* -y
systemctl stop firewalld.service systemctl disable firewalld.service
安装tomcat
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz
mv apache-tomcat-8.5.38 /usr/local/tomcat vim /usr/local/tomcat/bin/catalina.sh ... # 在 OS specific support. 前面加入如下代码: JAVA_HOME=/usr/local/java/jdk1.8.0_151 JRE_HOME=$JAVA_HOME/jre
配置启动:
vim /usr/lib/systemd/system/tomcat8.service ... [Unit] Description=Tomcat After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=oneshot ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh ExecReload=/bin/kill -s HUP $MAINPID RemainAfterExit=yes [Install] WantedBy=multi-user.target
设置开机启动:
systemctl enable tomcat8
systemctl start tomcat8.service
配置tomcat
vim /usr/local/tomcat/conf/tomcat-users.xml
...
"manager-gui"/> "manager-script"/> "manager-jmx"/> "manager-status"/> "admin" password="123ccc" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
设置tomcat访问:
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml"org.apache.catalina.valves.RemoteAddrValve" allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
下载漏洞平台:
https://github.com/baidu-security/openrasp-testcases/releases
tomcat部署war
https://github.com/baidu/openrasp/releases/
自动安装,如果无法自动安装就进行手动安装。
java -jar RaspInstall.jar -install /usr/local/tomcat/
重启tomcat
安装出错:
https://rasp.baidu.com/doc/install/software.html
手动安装
cp -rf rasp /usr/share/tomcat/
OpenRASP 需要在 rasp 目录下释放一些动态链接库,所以还需要修改 rasp 目录的权限,e.g
chmod 777 -R rasp
对于使用 yum 安装的 tomcat,
你需要创建 ,并写入以下内容
vim /etc/tomcat/conf.d/rasp.conf
... JAVA_OPTS="-javaagent:${CATALINA_HOME}/rasp/rasp.jar ${JAVA_OPTS}" JAVA_OPTS="-Dlog4j.rasp.configuration=file://${CATALINA_HOME}/rasp/conf/rasp-log4j.xml ${JAVA_OPTS}"
安装OpenRASP后台管理
安装mongoldb
vim /etc/yum.repos.d/mongodb-org-4.0.repo ... [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc yum update sudo yum install -y mongodb-org systemctl start mongod
安装Elasticsearch
安装流程:
https://www.elastic.co/downloads/elasticsearch
创建普通用户
useradd Elasticsearch chown -R Elasticsearch Elasticsearch目录 vim /usr/local/elasticsearch/config/elasticsearch.yml ...
network.host: 127.0.0.1 http.port: 9200 discovery.zen.ping.unicast.hosts discovery.zen.minimum_master_nodes
如果启动会出现jdk错误问题。
sysctl -w vm.max_map_count=262144
或者永久性修改
/etc/sysctl.conf
vim /usr/java/elasticsearch/config/jvm.options
将 : -Xmx2g
改成 :-Xmx256m
也就是 heap size [268435456] /1024/1024 的值
如果:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]这个错误(切换到root操作)
vim /etc/security/limits.conf ... seven hard nofile 65536
修改后重新登录seven用户,使用如下命令查看是否修改成功
ulimit -Hn
启动:
/usr/local/elasticsearch/bin/elasticsearch -d
安装后台:
https://github.com/baidu/openrasp/releases
tar -zxvf rasp-cloud.tar.gz
编辑
vim ./conf/app.conf #将 PanelServerURL、AgentServerURL 里面的 127.0.0.1 替换为你的服务器IP或者域名。 #修改es和mongodb
启动
./rasp-cloud -d
http://ip:8086 访问管理后台。其中,
后台用户名固定为 openrasp,
初始密码为 admin@123
添加客户端:
https://github.com/baidu/openrasp/releases
unzip rasp-java.zip java -jar RaspInstall.jar -install /path/to/tomcat -appid 9efa63c2964106740d0e99fdeadeb3991326dc95 - appsecret p29HD7aZsfTPkPOy1qG8rLzXrCwAoElzwG8ZRPdFZto -backendurl http://207.xxx.xxx.x:8086
重启tomcat
/etc/init.d/tomcat restart
更多详细的功能
文档:
https://rasp.baidu.com/doc/install/panel.html
https://rasp.baidu.com/
网络安全意识
何为意识?
意识是人脑对大脑内外表象的觉察,用于辨识真伪的功能,必须有一定的刺激强度和一定的持续刺激时间才能产生知觉。
密码安全
1. 个人电脑登录密码
2. 企业邮箱
3. 服务器
4. 网盘
5. wifi密码
6. 加密文档密码
7. 网站登录密码
8. 手机密码
9. 等等…
哪些是弱口令?
1 ssx123456 2 qwer1234!@#$ 3 ssx$%^& 4 p@ssw0rd 5 123qwe!@# 6 2wsx#EDC 7 3edc$RFV 8 6yhn&UJM 9 2wsx!QAZ 10 13522213215
# 全是有规律的
为什么会产生弱口令?
个人习惯相关与意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。
123456 Admin Password 123qwe!@# admin888
神仙密码
密码:ppnn13%dkstFeb.1st,
解释:娉娉袅袅十三余,豆蔻梢头二月初
密码:for_$n(@RenSheng)_$n+=”die”
解释:人生自古谁无死
密码:doWhile(1){LeavesFly();YangtzeRiverFlows();
解释:无边落木萧萧下,不尽长江滚滚来
密码:tcmlflw,syred>febhua]
解释:停车坐爱枫林晚,霜叶红于二月花
密码:dig?F*ckDang5
解释: 锄禾日当午
密码: 1dcypsz1/2jss1/2j#f00
解释:一道残阳铺水中,半江瑟瑟半江红
防范措施
1.电脑自动锁屏
2.密码复杂度
3.定期修改密码
邮件安全
不熟人发的邮件谨慎!勿点!
不安全的文件类型
exe、bat、com、vbs、chm等等…
邮件附件、链接、Word、Excel文档
比如以下:
攻击手段
邮件加密
重要文件通过邮件发送并且加密;
密码通过手机或其它方式告知;
错误的方式!如下
防范意识
定期清理邮件
上网安全、软件安全
开发人员:
物理机隔离禁止上网 -> Vmware -> 杀毒软件
杀毒软件、安全补丁、官网下载程序
上网速度慢其它异常,请告知负责人
公共场所上网
上网注册帐户时,用户名密码不要与公司内部用户名密码相同或有关联;
出门把wifi功能关闭
不登录公司任何内部网站
万能钥匙
其它安全
社会工程学
一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段取得自身利益的
手法
第一类 管理
学生面试求工作,企业调查晓背景
入职培训看视频,在线考核得佳绩
保密协议有约束,入职员工须遵守
出入公司刷门禁,随意拍照不许可
领取电脑为工作,安装软件不随意
手机Wi-Fi开热点,黑客高手巧破解
软件安装存风险,所有业绩全盘否
账号行为季度审,事后追责觅踪迹
奇葩往事存档案,访问控制成摆设
老总房间存机密,厂商轻松获资讯
无知无畏泄天机,众人开会度危机
第二类 设备
内网外网不一样,内外有别分开用
云盘传输很便捷,安全防护有短板
监控设备改密码,安全隐患了无痕
捡得优盘带病毒,电脑崩溃扣奖金
陌生链接点不得,紧急杀毒删短信
杀毒软件不能少,终端裸奔出告警
手机软件不正规,偷跑流量没商量
移动办公虽方便,安全意识不马虎
智能设备存风险,安全漏洞勤修复
手机丢了真可怕,信息丢失无底洞
伪基站发假短信,银行卡换新密码
诈骗短信来误导,手机卡号变废卡
蓝牙故障频发生,小心隐私别泄露
系统补丁莫忽视,及时更新保安全
电脑维修走流程,卸下硬盘妥保管
优盘救急拷文件,做好防护分开用
第三类 环境
电脑托运起祸端,轻易送修再违规
社交群内混入贼,财务疏忽酿大错
会议室内藏玄机,轻松中标有信心
洽谈会客应合规,网络空间亦管控
打印文件忘拿走,同事泄密酿损失
废弃文件没粉碎,老总批评方醒悟
访客接待有制度,看见美女不能忘
社交媒体爆猛料,公司利益抛脑后
前台粗心没防范,骗子轻松拿号码
账号共享有原则,第一时间改密码
突如其来被休假,强制离岗有原因
上网行为又违规,负面过多遭差评
转岗惩戒是手段,挫折路上生退意
下定决心要辞职,离职审查有时日
离职手续全办妥,删除账号说再见
收回设备不能缺,回顾往事辛酸泪