行业动态

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
Windows和Linux网络安全基线大全
2022-01-21 14:25:25 【

安全基线

1、网络安全基线

  1. 采用白名单制做好网络层面的ACL,只对外网开放必需的端口(如80或443等);

  2. 同一网段的服务器要与其他服务器划分在不同的Vlan中,防止被ARP欺骗;

  3. 生产环境网络必须与办公网络隔离;

  4. 只允许出口IP和堡垒机连接服务器的管理端口

2、服务器安全基线

2.1 Linux服务器安全基线

  1. 操作系统最小化安装,只安装业务所必需的服务;

  2. 服务器禁止使用弱口令,禁止所有服务器使用相同的密码;

  3. 使用iptables做好服务器层面的ACL,只允许出口IP连接ssh,对外网开放必需的端口(80或443等);

  4. 禁止允许root用户直接登录SSH,安全加固方法:PermitRootLogin no
    StrictModes yes

  5. 使用SSH协议版本2,安全加固方法为:Protocol 2,1 修改为 Protocol 2

  6. Mysql、Redis、Memcache、Mongodb等应用程序只允许监听在内网网卡上。

2.2 Windows服务器安全基线

  1. 使用正版、干净的安装盘安装操作系统;

  2. 设置强壮的口令,禁止所有服务器使用相同的密码;

  3. 配置IPSEC,只允许出口IP访问远程桌面,对外网开放必需的端口(80或443等);

  4. 正式上线前确保打全了所有补丁,设置可以自动安装补丁但不自动重启;

  5. 安装一款杀毒程序并可以自动更新病毒库;

  6. 禁止安装与业务无关的第三方软件。

3、WEB服务器安全基线

3.1 Apache服务器安全基线

  1. 隐藏Apache的版本及操作系统信息,防止敏感信息,安全加固方法:ServerSignature Off
    ServerTokens Prod

  2. 禁止目录枚举和禁止使用符号链接跨越DocumentRoot,安全加固方法:Options -Indexes –FollowSymLinks

  3. 禁止用户使用.htaccess文件覆盖Options配置项,安全加固方法:AllowOverride None

  4. 禁止访问站点目录之外的文件,安全加固方法:
    Order Deny, Allow
    deny from all

  5. 禁用不需要的模块,保持最小化原则,安全加固方法为注释掉以下一些不需要的模块: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex等

  6. 禁止Apache以直接以Root用户运行,应为apache创建独立的运行账户,如www:User www
    Group www

  1. 为管理后台等重要目录设定ACL,安全加固方法如下:
    Order Deny,Allow
    Deny from all
    Allow from 出口IP

  1. 去除用户上传目录的脚本执行权限,防止攻击者写入webshell,安全加固方法:

    Deny from all

  1. 禁止访问.git、.git目录及.sql格式的文件,防止源码或数据库SQL文件泄漏,安全加固方法:

    Deny from all

3.1 Nginx服务器安全基线

  1. 防止操作系统和Nginx版本泄漏,安全加固方法: server_tokens off;

  1. 修改Nginx的Banner信息,修改方法为将 src/http/ngx_http_header_filter_module.c文件中的以下2行:static char ngx_http_server_string[] = "Server: nginx" CRLF;
    static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF; 修改为:static char ngx_http_server_string[] = "Server: Xiaomi Web Server" CRLF;
    static char ngx_http_server_full_string[] = "Server: Xiaomi Security Team is hiring" CRLF;

  1. 为站点的管理后台目录设定ACL,安全加固方法为:location /admin/ {
    \## allow anyone in 192.168.1.1
    allow 192.168.1.1;
    \## drop rest of the world
    deny all;
    }

  1. 去除用户上传目录的脚本执行权限,防止用户写入webshell,安全加固方法为:location ~ /upload/.*\.(php|php5)?$ {
    deny all;
    }

  1. 禁止不必要的http方法,以下的配置只保留了GET、POST和HEAD方法:\## Only allow these request methods ##
    if ($request_method !~ ^(GET|HEAD|POST)$ ) {
    return 444;
    }

  1. 禁止访问.svn/.git目录及.sql格式的文件,防止代码或数据库文件泄漏,安全加固方法:location ~ \.(/svn/|/git/|sql)?$ {
    deny all;
    }

3.2 PHP配置安全规范

  1. 关闭暴露php版本信息:expose_php=Off

  1. 关闭可以远程代码执行的相应参数:allow_url_fopen=Off allow_url_include=Off

  1. 禁用危险函数:disable_functions=exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

  1. 错误的信息处理:

 display_errors=Off log_errors=On error_log=/var/log/httpd/php_scripts_error.log #便于分析
  1. 使用open_basedir限制php对文件的访问权;open_basedir="/var/www/html/;

  2. 为php创建单独的用户和用户组;

  1. 为php用户创建单独的用户和用户组,不可以直接以root用户身份执行php程序。

4、 常用的应用程序安全基线

4.1 Mysql安全基线

  1. Mysql端口禁止监听在外网网卡上;

  1. 禁止使用弱口令并删除匿名账户;

  1. 禁止使用root用户启动mysql;

  1. 禁止除了root和mysql启动用户之外的其他用户对mysql的数据目录有读写权限;

  1. 每个mysql数据库对应一个mysql用户,禁止mysql用户可以访问与之无关的数据库;

  1. 严格遵循数据与代码分离的原则,禁止WEB服务与mysql运行于同一台服务器。

4.2. Sql server 2008安全基线

  1. 限制可以访问数据库的IP,采用白名单机制,只允许信任的IP连接;

  1. 禁止将数据库端口监听在外网网卡中;

  1. 修改日志审核策略, 将登录审核修改为“开启登录成功和失败的日志”;

  1. 禁止使用弱口令;

  1. 每个数据库一个用户,权限为PUBLIC,禁止用户可以访问其他不必需的数据库;

  1. 使用NETWORK SERVICE账户来启动数据库;

  1. 严格遵循数据与代码分离的原则,禁止数据库与WEB服务使用同一台服务器;

  1. 禁用以下高危的存储过程:xp_cmdshell
    xp_delete_file
    xp_regread
    xp_regwrite
    xp_dirtree

4.3 Oracle安全基线

  1. 禁止监听在外网网卡上;

  1. 利用iptables和oracle的监听器设置ACL,安全加固方法: tcp.validnode_checking = yes
    \#允许访问的ip
    tcp.invited_nodes = (ip1,ip2…)
    \#不允许访问的ip
    tcp.excluded_nodes=(ip1,ip2,……)

  1. 关闭不必要的服务,只保留OracleServiceORCL和OracleOraDb11g_home1TNSListener; 禁止使用弱口令,建议锁定DBSNMP和SYSMAN用户;

  1. 禁止超级管理员远程登录,安全加固方法:

  • 在spfile中设置 REMOTE_LOGIN_PASSWORDFILE=NONE;

  • 在sqlnet.ora中设置 SQLNET.AUTHENTICATION_SERVICES=NONE 禁用SYSDBA角色的自动登录

  • 数据与代码分离,禁止WEB应用与数据库使用同一台服务器;

  • 每个数据库一个用户,禁止用户可以访问其他不必需的数据库。

4.4 Redis安全基线

  1. 禁止监听在外网网卡上;

  1. 为Redis设置强壮的口令,requirepass yourpassword;

  1. 禁止以Root权限启动redis;

  1. 禁用以下危险指令:

rename-command FLUSHALL;rename-command FLUSHDB;rename-command CONFIG

4.5 Mongdb安全基线

  1. 禁止监听在外网网卡上;

  1. 为Mongodb设置强壮的口令,启动时加上--auth参数;

  1. 禁用HTTP接口,安全加固方法为:

nohttpinterface = true
  1. 禁用rest接口,该接口不支持安全认证支制,安全加固方法为:

 rest = false
  1. 利用iptables设置ACL,只允许信任的IP连接。

4.6. Memcache安全基线

  1. 禁止以root权限启动;

  1. 禁止监听到外网网卡上;

  1. 利用iptables做好ACL,只允许必需的服务器连接。

4.7. Rsync安全基线

  1. 禁止以root用户权限启动;

  1. 设置允许连接的IP列表,安全加固方法:

  • hosts allow = X.X.X.X #允许访问的IP

  1. 设置访问口令,安全加固方法为:

  • secrets file = /etc/rsyncd.secrets #密码文件位置,认证文件设置,设置用户名和密码;

  • auth users = rsync #授权帐号,认证的用户名,如果没有这行则表明是匿名,多个用户用,分隔。

  1. 利用iptables设置ACL,只对信任的IP开放873端口,安全加固方法如下:

iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
  1. 排除.svn和.git目录,防止客户端上传后导致源码泄漏,安全加固方法:exclude = .svn/ .git/

5、 WEB应用安全规范

5.1. 认证安全

  1. OAuth 认证安全

  1. SSO 认证安全

5.2. 防御XSS

  1. 在html属性中的输出,使用htmlencode进行处理,不过更为保险的做法是:除了字母和数字之外,其他所有的特殊字符都编码为htmlentities;


】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇Apache Dubbo远程代码执行漏洞 下一篇大规模的网络攻击使乌克兰政府网..

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:010-56157787 ,010-56159998
企业QQ:4000043998
技术支持:010-56159998
E-Mail:800@fangyuba.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:4000043998 01056155355
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800