首页 > 技术文章 > 安全防护与加固

huidou 2019-05-17 16:55 原文

 

安全加固

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解析

<Directory "/var/www/html/uploads">
    php_flag engine off
</Directory>

 

限制管理员后台特定IP访问

<Directory "/var/www/html/admin"> 
    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.111
</Directory>

 

关闭对.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
...
<Valve className="org.apache.catalina.valves.RemoteHostValve" 
   allow=".*\.admins\.domain\.com" 
/>

 

 

 

用户管理

vim ./tomcat-users.xml
...
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <user username="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字段

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">

 

 

session超时

vim  ./conf/web.xml
...
<session-config> <session-timeout>20</session-timeout> </session-config>

 

启用cookie的HttpOnly属性

CATALINA_BASE/conf/context.xml
<Context useHttpOnly='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
...
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="123ccc" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

 

 

设置tomcat访问:

vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

<Valve className="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开热点,黑客高手巧破解
软件安装存风险,所有业绩全盘否
账号行为季度审,事后追责觅踪迹
奇葩往事存档案,访问控制成摆设
老总房间存机密,厂商轻松获资讯
无知无畏泄天机,众人开会度危机

 

第二类 设备
内网外网不一样,内外有别分开用
云盘传输很便捷,安全防护有短板
监控设备改密码,安全隐患了无痕
捡得优盘带病毒,电脑崩溃扣奖金
陌生链接点不得,紧急杀毒删短信
杀毒软件不能少,终端裸奔出告警
手机软件不正规,偷跑流量没商量
移动办公虽方便,安全意识不马虎
智能设备存风险,安全漏洞勤修复
手机丢了真可怕,信息丢失无底洞
伪基站发假短信,银行卡换新密码
诈骗短信来误导,手机卡号变废卡
蓝牙故障频发生,小心隐私别泄露
系统补丁莫忽视,及时更新保安全
电脑维修走流程,卸下硬盘妥保管
优盘救急拷文件,做好防护分开用

 

第三类 环境
电脑托运起祸端,轻易送修再违规
社交群内混入贼,财务疏忽酿大错
会议室内藏玄机,轻松中标有信心
洽谈会客应合规,网络空间亦管控
打印文件忘拿走,同事泄密酿损失
废弃文件没粉碎,老总批评方醒悟
访客接待有制度,看见美女不能忘
社交媒体爆猛料,公司利益抛脑后
前台粗心没防范,骗子轻松拿号码
账号共享有原则,第一时间改密码
突如其来被休假,强制离岗有原因
上网行为又违规,负面过多遭差评
转岗惩戒是手段,挫折路上生退意
下定决心要辞职,离职审查有时日
离职手续全办妥,删除账号说再见
收回设备不能缺,回顾往事辛酸泪

 

推荐阅读