web服务器安全布署,数据调换运行情形检查

作者: 韦德国际1946  发布:2019-07-30

  配置apache生成web状态音讯:
  Apache 模块 mod_status 能够变动描述服务器状态的Web页面,许服务器管理员方便的反省服务器当前的运维景况。

就算现近来购置的云服务器相当多皆有一键web情形安装包,可是假设是和煦安排web情形则必要对各样安全配置特别摸底,后天大家就来品尝那做好web服务器安全铺排。这里的布署不尽完善,若有纰漏之处还望建议。

      笔者手上有关数据沟通的类型比较多,何况相比较分散. 最新业务量大到一定水准,小编索要领会种种事项职分天天数据量调换的景况, 有一对是用SSIS包试行的,有一对是经过xml数据调换的,

是因为一台服务器下面安顿了某个个应用,对应差异的域名,假如用户知道ip地址的话,直接用户ip地址访谈,会来得第五个虚构主机的页面(退换了设想主机的逐个,每趟都以体现第二个)。那样对用户产生倒霉的回想,所以要禁止ip访谈。

  启用景况报告如下:

修改Apache配置文件http.conf

再有一对, 是通过pdf文件上传做沟通的,还大概有ftp文件下载等等,总来讲之正是很杂.

艺术一:在httpd.conf文件最前边,参与以下代码
NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
ServerName 221.*.*.*
<Location />
Order Allow,Deny
Deny from all
</Location>

  为了仅允许来自foo.com域名的用户访谈状态报告页面,请在httpd.conf文件中选取如下配置:

以专项使用的apache用户运营

貌似意况下,Apache是由Root 来安装和平运动作的。假如Apache Server进度具有Root用户特权,那么它将给系统的安全构成极大的威逼,应确认保证Apache Server进度以最或许低的权柄用户来运转。

User apache
Group apachegroup

window系统中开创apache用户,给予apache用户读取和试行(EscortX)全数文档金华昆本目录(举个例子:htdocs 和cgi-bin)的权能。 对Apache的logs目录具备读/写/删除(大切诺基WD)的权位。对httpd.exe二进制文件具有读取和实践(EvoqueX)的权杖。
web服务器安全布署,数据调换运行情形检查。在service.msc服务中精选Aapche属性,登入账号改为apache就能够

      小编想写多少个工具, 把这么些调换的东西尽数组成一下,做一下总结,然后每一天出八个报告. 我就从头策画本人的程序.  

</VirtualHost>    
<VirtualHost 221.*.*.*>
DocumentRoot "/www/web"
ServerName www.phpzixue.cn
</VirtualHost>
表明:石榴红部分是兑现拒绝直接通过221.*.*.*以此IP的别样访问要求,那时假设您用221.*.*.*拜候,会提醒拒绝访问。深草绿部分便是允许通过www.phpzixue.cn那么些域名访谈,主目录指向/www/web(这里假令你的网址的根目录是/www/web)。
此办法,小编安顿后形成整个服务器的访谈都报443从未权限,不过把ip的虚构主机配置到最下边就从未有过问题,不明了问什么会如此。

  
  SetHandler server-status
  Order Deny,Allow
  Deny from all
  Allow from .foo.com   

apache目录禁止访谈

Indexes 的成效正是当该目录下未有 index.html文件时,就展现目录结构。
默许apache在当前目录下没有index.html入口就能呈现目录。让目录曝光在外面是异常危急的事,如下操作禁止apache展现目录:

Options FollowSymLinks 

将Options Indexes FollowSymLinks中的Indexes 去掉,就足以禁止 Apache 展现该目录结构。

      笔者想要达成的魔法蕴含如下多少个地点:

办法二:在httpd.conf文件最前边,出席以下代码
NameVirtualHost 221.*.*.*
<VirtualHost 221.*.*.*>
DocumentRoot "/www/test"
ServerName 221.*.*.*
</VirtualHost>     
<VirtualHost 221.*.*.*>
DocumentRoot "/www/web"
ServerName www.phpzixue.cn
</VirtualHost>
证实:豆青部分是把经过221.*.*.*那一个IP间接访谈的乞求指向/www/test目录下,这能够是个空目录,也得以在里面建二个首页文件,如index.hmtl,首面文件内容能够是三个声称,表明无法通过IP直接待上访谈。煤黑部分的情趣跟艺术一是一样的。
这种方式能给用户二个提示,用户体验度会好点。
注:修改后需求重启apache

  这样就可以透过

堵住用户修改系统安装

在Apache 服务器的配置文件中举行以下的装置,阻止用户创设、修改 .htaccess文件,幸免用户超越能定义的系统安全脾气。

AllowOveride None
Options None
Allow from all

然后再分别对一定的目录举行得当的配置。

     1.非常多据库连接 ,各类系统都在差别的数据库里面

分享到: 图片 1 图片 2

  在协理自动刷新的浏览器上选用

apache 遮蔽版本音讯

ServerSignature Off 
ServerTokens Prod

     2.要将结果生成到Excel里面

  假使想要看到更宏观的告知,请展开配文件里的如下选项:

自定义错误页面

ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html

     3.为了转载方便, 笔者索要转换邮件,然后群发,那样就足以分享了.

  ExtendedStatus On

去除如下apache的私下认可文件

删除默认的HTML文件:   # apache网页根目录htdocs下的html文件
删除默认的icons文件:  # apache安装目录下的icons文件夹及里面的文件  
删除默认的的CGI脚本:  # apache安装目录下的cgi-bin文件夹及里面的文件  
删除Apache说明文件:   # apache安装目录下的manual文件夹及里面的文件以及安装目录下的其他介绍性文件

 

  上述选项会为每一种央浼记录扩大的状态音信.该装置仅能用于全局设置,不能够在一定的虚构主机中开采或关闭。启用扩展状态音讯将会促成服务器运转功效减弱。图片 3

应用rotatelogs 每隔一天记录三个日志

CustomLog "|bin/rotatelogs.exe logs/access.log 86400 480" combined

rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]
logfile:它丰盛基准名正是日记文件名。假诺logfile中涵盖’%’,则它会被视为用于的strftime(3)的格式字串;不然,它会被电动抬高以秒为单位的.nnnnnnnnnn后缀。那三种格式都代表新的日记起首选择的时辰。
rotationtime:日志文件回卷的以秒为单位的间隔时间,86400 表示一天,即天天生成八个新的日记文件。
offset:相对于UTC的时差的秒钟数。如果简单,则默以为0,并选择UTC时间。比方,要钦点UTC时差为-5小时的所在的地头时间,则此参数应该为-300,北京时间为 8时光,应安装为480。那样日志里的日子才会和服务器上的光阴一模二样,方便查看日志。
filesizeM:内定回卷时以兆字节为单位的后缀字母M的文件大小,并非钦命回卷时间或时差。

    首先我动用 EntityFrameWork 作为数据底层, 那样也是为着便于操作数据库, 然后 笔者盼望对各表实行读取,有部分繁杂的查询语句,作者期望能够一向实行,

修改PHP配置文件php.ini

因为要平日计算五个数据库中的表消息,所以笔者做了之类的封装.  (作者只希望有查询的效能)

将时区修改为东八区香港(Hong Kong)时间

date.timezone = "PRC"

 public class SqlDBHelper<T> where T : class
    {

        DbContext context = null;


        public SqlDBHelper()
        {
            context = new DbContext("defaultDBEntity");
        }
        public SqlDBHelper(string dbEntityName)
        {
            context = new DbContext(dbEntityName);
        }

        /// <summary>
        /// 按条件查询
        /// </summary>
        /// <param name="where"></param>
        /// <returns></returns>
        public IQueryable<T> FindList(Expression<Func<T, bool>> where)
        {
            var temp = context.Set<T>().Where(where);
            return temp;
        }
        /// <summary>
        /// 按条件查询,排序
        /// </summary>
        /// <typeparam name="S"><peparam>
        /// <param name="where"></param>
        /// <param name="orderBy"></param>
        /// <param name="isAsc"></param>
        /// <returns></returns>
        public IQueryable<T> FindList<S>(Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
        {

            var list = context.Set<T>().Where(where);
            if (isAsc)
                list = list.OrderBy<T, S>(orderBy);
            else
                list = list.OrderByDescending<T, S>(orderBy);
            return list;
        }
        /// <summary>
        /// 按条件查询,分页
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="rowCount"></param>
        /// <param name="where"></param>
        /// <returns></returns>
        public IQueryable<T> FindPagedList(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where)
        {
            var list = context.Set<T>().Where(where);
            rowCount = list.Count();
            list = list.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
            return list;
        }
        /// <summary>
        /// 按条件查询,分页,排序
        /// </summary>
        /// <typeparam name="S"><peparam>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="rowCount"></param>
        /// <param name="where"></param>
        /// <param name="orderBy"></param>
        /// <param name="isAsc"></param>
        /// <returns></returns>
        public IQueryable<T> FindPagedList<S>(int pageIndex, int pageSize, out int rowCount, Expression<Func<T, bool>> where, Expression<Func<T, S>> orderBy, bool isAsc)
        {
            var list = context.Set<T>().Where(where);
            rowCount = list.Count();
            if (isAsc)
                list = list.OrderBy<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
            else
                list = list.OrderByDescending<T, S>(orderBy).Skip(pageSize * (pageIndex - 1)).Take(pageSize);
            return list;
        }

        public IQueryable<T> ExecuteQuery(string sql)
        {
            //"select Name,Count(*) Count from T_Persons where Id>{0} and CreateDateTime<={1} group by Name"
            var q1 = context.Database.SqlQuery<T>(sql).AsQueryable();
            return q1;
        }


    }

响应头中y隐蔽PHP版本新闻

expose_php = Off

 

禁止相关函数

disable_functions = phpinfo, get_cfg_var
safe_mode = On //开启安全情势,这一个开了,可能会稍稍php功效无法使用了

 若是指望有 增加和删除改, 能够补上以下代码. (总括,由于是专门的学业库,应该只授予只读的数额权限)

本文由韦德国际1946发布于韦德国际1946,转载请注明出处:web服务器安全布署,数据调换运行情形检查

关键词: 伟德国际1946111 服务器相关