自己如何搭建服务器。
1、打开控制面板,选择并进入“程序”,双击“打开或关闭Windows服务”,在弹出的窗口中选择“Internet信息服务”下面所有地选项,点击确定后,开始更新服务。
2、更新完成后,打开浏览器,输入“http://localhost/”回车,如果此时出现IIS7欢迎界面,说明Web服务器已经搭建成功。
3、当web服务器搭建成功后,我们下一步所要做的就是把我们开发的网站安装到Web服务器的目录中。一般情况下,当Web服务器安装完成后,会创建路径“%系统根目录%inetpub/wwwroot”,将我们开发的网站COPY到该路径下。即可实现本地访问该网站。
4、设置防火墙,让局域网当其它计算机也能访问本地网站资源。具体方法:打开控制面板,选择“系统和安全”,点击“允许程序通过Windows防火墙”,在弹出的对话框中勾选“万维网服务HTTP”右侧的两个复选框,最后点击确定退出。
5、在局域网中其它计算机上,打开浏览器,输入 “http://Web服务器的IP地址/”按回车键,就可以访问服务器上的资源”。 经过以上步骤的设置,局域网中的其它用户就可以通过浏览器访问你所共享的web资源了!
扩展资料:
入门级服务器所连的终端比较有限(通常为20台左右),况且在稳定性、可扩展性以及容错冗余性能较差,仅适用于没有大型数据库数据交换、日常工作网络流量不大,无需长期不间断开机的小型企业。
不过要说明的一点就是目前有的比较大型的服务器开发、生产厂商在后面我们要讲的企业级服务器中也划分出几个档次,其中最低档的一个企业级服务器档次就是称之为"入门级企业级服务器",这里所讲的入门级并不是与我们上面所讲的"入门级"具有相同的含义,不过这种划分的还是比较少。
还有一点就是,这种服务器一般采用Intel的专用服务器CPU芯片,是基于Intel架构(俗称"IA结构")的,当然这并不是一种硬性的标准规定,而是由于服务器的应用层次需要和价位的限制。
首先我来说一下这个被攻击的网站的大概部署状况这个网站主要是nginx+mysql+php,有两台服务器分别放了web和数据库,web只对外开启了80端口操作系统是centos,而数据库服务器则在内网,攻击者的手段其实很简单,用webbench网站压力测试工具发送大量的请求到服务器,之前的时候发送每一个请求之后数据库就会相应,然后读取内容最终显示,造成数据库和web之间大量的交换数据,甚至导致mysql达到连接数上限,请求被拒绝,而且攻击者时间挺多的,他不停地换浮动ip,因此直接用防火墙封锁ip没意义
刚开始我的做法是,用php取得攻击者的agent头,判断是不是webbench来访,如果是就die掉,不在请求数据库,确实挺有效,数据库不会再超出限制了,但是对方频繁的发送请求过来,导致网络带宽被严重消耗,看来得想想其他办法,最终想到了一个解决方法且实际测试发现可行,因此分享给大家,其实我的做法原理很简单:用php取得用户agent头判断是否是webbench来源,如果是的话就在服务器上写一个shell文件,这个文件的内容就是封锁IP的规则,
然后再用chmod函数修改一下这个文件让其可执行,再用cron服务读取这个文件执行,把ip封锁掉,整个过程全部自动化完成不需要人为干预,另外在封锁的时候给我发一封email通知我有个倒霉蛋被干掉了,这样就行了
具体实现代码如下:
IF(isSet($_SERVER['HTTP_USER_AGENT']) And Trim($_SERVER['HTTP_USER_AGENT'])!='') {
$_SERVER['HTTP_USER_AGENT']=StrToLower($_SERVER['HTTP_USER_AGENT']);
IF(StriStr($_SERVER['HTTP_USER_AGENT'],'webbench')!==False) {
$p='/home/www/webbenchsh';
$_SERVER['REMOTE_ADDR']=isSet($_SERVER['REMOTE_ADDR']) $_SERVER['REMOTE_ADDR'] : 'unknow';
span style="color: #ff0000;"File_Put_Contents($p,"#!/bin/bashniptables -I INPUT -s {$_SERVER['REMOTE_ADDR']} -j DROP;n",LOCK_EX);
/span Chmod($p,0755);
chown($p,'www');
span style="color: #ff0000;"Function sMail($to,$tit,$msg) {
IF(Filter_var($to,FILTER_VALIDATE_EMAIL)==''){
throw new Exception('邮箱地址错误!');
}
$tit='=UTF-8B'Base64_Encode($tit)'=';
$msg = str_replace("n","n",$msg); //Windows如果在一行开头发现一个句号则会被删掉,要避免此问题将单个句号替换成两个句号
Return Mail($to,$tit,$msg,'From:No-reply@admbossadmcomtw'"n"'Content-Type:text/html;charset=utf-8');
}
sMail('see7di@gmailcom','WebBench又开始了t!',date('Y-m-d H:i:s',time())" {$_SERVER['REMOTE_ADDR']}");/span
Header('Location:http://127001');
Die();
}
}
后来我又做了一次调整,把发email的部份写入了shell文件内,不再用php发email,因槟腔峁啾愕男畔把上边的代码修改成:
IF(isSet($_SERVER['HTTP_USER_AGENT']) And Trim($_SERVER['HTTP_USER_AGENT'])!='') {
$_SERVER['HTTP_USER_AGENT']=StrToLower($_SERVER['HTTP_USER_AGENT']);
IF(StriStr($_SERVER['HTTP_USER_AGENT'],'webbench')!==False) {
$p='/home/www/webbenchsh';
$_SERVER['REMOTE_ADDR']=isSet($_SERVER['REMOTE_ADDR']) $_SERVER['REMOTE_ADDR'] : 'unknow';
File_Put_Contents($p,"#!/bin/bashniptables -I INPUT -s {$_SERVER['REMOTE_ADDR']} -j DROP;necho "{$_SERVER['REMOTE_ADDR']} - `date`" | mail -s "WebBench-wwwdowncccom" see7di@gmailcomn",LOCK_EX);
Chmod($p,0755);
chown($p,'www');
Header('Location:http://127001');
Die();
}
}
这个问题涉及到Linux自动系统构建,封装方法主要是靠配置包管理器和脚本。
在安装之初,是会有脚本自动挂载启动镜像中的ramdisk,加载轻量内核,自动读取cpu架构,cp对应架构的编译器和编译器参数到磁盘。cp包管理器到磁盘,根据网络连接状态,确认是否下载最新内核源码或启动镜像内的内核源码进行编译,根据你的分区配置规划根文件系统,然后会让你选择不同的安装方案(服务器,桌面,mail服务器之类),会根据这些方案选择既定的安装脚本,从网络或本地用包管理器来安装或用源码编译安装,完成安装后会有脚本运行bootloader的安装。
像debian和centos两套东西封装原理基本相同,只不过包管理器完全不一样,现在大家用的发行版,技术难度主要在包管理器的自动配置上。如果自己想封装一个系统,可以找到debian的安装镜像解开,然后在里面加一点自己的东西。如果还想自己做更多东西,可以看下面的网站,LFS计划是构建Linux手把手的教材。
http://baikebaiducom/view/366312htmfr=aladdin
http://wwwlfsorgcn/
http://wwwlinuxfromscratchorg/
0条评论