什么是服务器操作系统?,第1张

服务器操作系统简介

Server operating system 服务器操作系统,一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等,是企业IT系统的基础架构平台,也是按应用领域划分的3类操作系统之一(另外2种分别是桌面操作系统和嵌入式操作系统)。同时,服务器操作系统也可以安装在个人电脑上。相比个人版操作系统,在一个具体的网络中,服务器操作系统要承担额外的管理、配置、稳定、安全等功能,处于每个网络中的心脏部位。

服务器操作系统的分类

服务器操作系统主要分为四大流派:WINDOWS、NETWARE、UNIX、LINUX。

WINDOWS服务器操作系统

WINDOWS服务器操作系统大家应该都不会陌生,这是全球最大的操作系统开发商——Microsoft公司开发的。其服务器操作系统重要版本WINNT 40 Server、Win2000/Advanced Server、Win2003/Advanced Server,以及最新版本功能强大的WINDOWS SERVER 2008,也支撑起目前市面上应用最多的服务器操作系统——Windows服务器操作系统派应用,结合Net开发环境,为亲微软企业用户提供了良好的应用框架。

NetWare服务器操作系统

NetWare服务器操作系统对现在一些IT圈里的朋友可能就比较陌生,由于种种原因,它的市场占有率已经非常局限,主要应用在某些特定的行业中。也就是因为此,在很多朋友在划分操作系统派系的时候,去除了NETWARE的代表权。其实,如果80年代前出生的老IT,对于NetWare这个名词就会异常熟悉了,因为在当初各种设备和网络都比较落后的年代,NetWare在局域网应用中占据着绝对的高额市场;而就算是目前,在一些特定行业和事业单位中,NetWare优秀的批处理功能和安全、稳定的系统性能也有很大的生存空间。NetWare目前常用的版本主要有Novell的311、312、410、50等中英文版。

Unix服务器操作系统

Unix服务器操作系统由AT&T公司和SCO公司共同推出,主要支持大型的文件系统服务、数据服务等应用。由于一些出众的服务器厂商生产的高端服务器产品中甚至只支持Unix操作系统,因而在很多人的眼中,Unix甚至成为高端操作系统的代名词。目前市面上流传的主要有SCO SVR、BSD Unix、SUN Solaris、IBM-AIX、HP-UX 。

Linux服务器操作系统

Linux服务器操作系统是国外几位IT前辈,在Posix和Unix基础上开发出来的,支持多用户、多任务、多线程、多CPU。Linux开放源代码政策,使得基于其平台的开发与使用无须支付任何单位和个人的版权费用,成为后来很多操作系统厂家创业的基石,同时也成为目前国内外很多保密机构服务器操作系统采购的首选。目前国内主流市场中使用的主要有Novell的中文版Suse Linux 90、小红帽系列、红旗Linux系列等。

如果您需要安装服务器操作系统,请咨询您的服务器代理商。

一般来说,您可以直接安装服务器操作系统,请做好安全防备。

附:安装流程:

首先引导您的计算机

再进行安装。

:USB,光盘(少用),软盘(几乎没人用)

摘要:服务器操作系统是安装在大型计算机上的操作系统,是企业IT系统的基础架构平台,可分为Windows服务器操作系统、Linux服务器操作系统、Unix服务器操作系统、NetWare服务器操作系统这四大类。企业在挑选服务器操作系统时,可通过看安全性、看稳定性、看硬件支持、看用途等方法进行选择,接下来就和小编一起来看看吧。服务器的操作系统有哪些

1、WINDOWS服务器操作系统

Windows操作系统问世于1985年,它需要结合NET开发环境使用,可以支持语言有ASP、html、net20/35/40等等。Windows操作系统起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。WINDOWS服务器操作系统比较重要的版本有WindowsNTServer40、Windows2000Server、WindowsServer2003、WindowsServer2003R2、WindowsServer2008、WindowsServer2008R2、WindowsServer2012等等。

2、Linux服务器操作系统

Linux服务器操作系统是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,可以支持语言有PHP5、html、以及CGI、伪静态服务,它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

3、Unix服务器操作系统

Unix服务器操作系统是一个是一个强大的多用户、多任务操作系统,支持多种处理器架构,

该系统大部分是由C语言编写的,这使得该服务器系统易读,易修改,易移植。目前市面上流传的Unix操作系统主要有SCOSVR、BSDUnix、SUNSolaris、IBM-AIX、HP-UX、FreeBSD等等。

4、NetWare服务器操作系统

NetWare服务器操作系统对不同的工作平台,不同的网络协议环境,以及各种工作站操作系统提供了一致的服务。该系统内可以增加自选的扩充服务,在一些特定行业和事业单位中,NetWare系统的批处理功能和安全、稳定的系统性能也有很大的生存空间。

企业如何选择服务器的操作系统

1、看安全性

Windows是大家熟悉不过,最容易安装和配置的系统,但是其安全性相对较差。如果一旦被黑客攻破,可能意味着整个操作系统以及用户的所有用户账号都将陷入瘫痪。而相比之下,Linux和Unix的安全性相对高些,如果遇到Web服务器被黑客攻破,那么这个Web服务器上的用户仍可以使用,因为攻破用户Web服务器的黑客很有可能仍然不能得到根的访问权限,对于企业来说是最适合不过的了。

2、看稳定性

Unix服务器操作系统比Linux与Windows稳定,NetWare服务器稳定性更强,但操作复杂,大部分依靠手工命令实现,不够人性化。因此对于访问量大的企业来说,选择Unix服务器比较好,而Linux和Windows在负载超过负荷时,很容易会发生死机的现象。

3、看硬件支持

Windows操作系统对硬件的支持最广,而Unix操作系统对硬件的支持最小,装操作系统时要特别注意服务器上的硬件是否可以支持,而Linux现在对硬件的支持越来越多了。

4、看用途

WINDOWS服务器操作系统相对于其他服务器系统而言,极其易用,适用于中、低档服务器中使用。Netware系统对无盘站和游戏有着较好的支持,对网络硬件要求较低,适用于低档服务器,常运用在中小型企业、学校、游戏厅等场所。Unix系统功能强大、稳定性和安全性能好,适合大型网站或是大型企、事业局域网中使用。Linux系统拥有着一套完整的权限机制,安全性与稳定性都很高,适用于中、高档服务器中。

详解SYN Flood攻击原理与防范

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,它是利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式……

SYN Flood的基本原理

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,它是利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式,最终导致系统或服务器宕机。

在讨论SYN Flood原理前,我们需要从TCP连接建立的过程开始说起:

TCP与UDP不同,它是基于连接的,为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接。也就是我们经常听说的TCP协议中的三次握手(Three-way Handshake),建立TCP连接的标准过程如下:

首先,客户端发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;

其次,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK(即确认Acknowledgement)的报文,表示客户端的请求被接受,同时TCP初始序号自动加一。

最后,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。

SYN Flood攻击正是利用了TCP连接的三次握手,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不会对服务器端造成什么大的影响,但如果有大量的等待丢失的情况发生,服务器端将为了维护一个非常大的半连接请求而消耗非常多的资源。我们可以想象大量的保存并遍历也会消耗非常多的CPU时间和内存,再加上服务器端不断对列表中的IP进行SYN+ACK的重试,服务器的负载将会变得非常巨大。如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃。相对于攻击数据流,正常的用户请求就显得十分渺小,服务器疲于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求,此时从正常客户会表现为打开页面缓慢或服务器无响应,这种情况就是我们常说的服务器端SYN Flood攻击(SYN洪水攻击)。

从防御角度来讲,存在几种的解决方法:

第一种是缩短SYN Timeout时间,由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度 x SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃改连接的时间,例如设置为20秒以下,可以成倍的降低服务器的负荷。但过低的SYN Timeout设置可能会影响客户的正常访问。

第二种方法是设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,并记录地址信息,以后从这个IP地址来的包会被一概丢弃。这样做的结果也可能会影响到正常用户的访问。

上述的两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,SYN Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址,以上的方法将毫无用武之地。

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,它是利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式……

SYN Flooder源码解读

下面我们来分析SYN Flooder的程序实现。

首先,我们来看一下TCP报文的格式:

0 1 2 3 4 5 6

0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| IP首部 | TCP首部 | TCP数据段 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图一 TCP报文结构

如上图所示,一个TCP报文由三个部分构成:20字节的IP首部、20字节的TCP首部与不定长的数据段,实际操作时可能会有可选的IP选项,这种情况下TCP首部向后顺延,由于我们只是发送一个SYN信号,并不传递任何数据,所以TCP数据段为空。TCP首部的数据结构为:

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 十六位源端口号 | 十六位目标端口号 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 三十二位序列号 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 三十二位确认号 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 四位 | |U|A|P|R|S|F| |

| 首部 |六位保留位 |R|C|S|S|Y|I| 十六位窗口大小 |

| 长度 | |G|K|H|T|N|N| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 十六位校验和 | 十六位紧急指针 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 选项(若有) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 数据(若有) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图二 TCP首部结构

根据TCP报文格式,我们定义一个结构TCP_HEADER用来存放TCP首部:

typedef struct _tcphdr

{

USHORT th_sport; //16位源端口

USHORT th_dport; //16位目的端口

unsigned int th_seq; //32位序列号

unsigned int th_ack; //32位确认号

unsigned char th_lenres; //4位首部长度+6位保留字中的4位

unsigned char th_flag; //2位保留字+6位标志位

USHORT th_win; //16位窗口大小

USHORT th_sum; //16位校验和

USHORT th_urp; //16位紧急数据偏移量

}TCP_HEADER;

通过以正确的数据填充这个结构并将TCP_HEADERth_flag赋值为2(二进制的00000010)我们能制造一个SYN的TCP报文,通过大量发送这个报文可以实现SYN Flood的效果。但是为了进行IP欺骗从而隐藏自己,也为了躲避服务器的SYN Cookie检查,还需要直接对IP首部进行操作:

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 版本 | 长度 | 八位服务类型 | 十六位总长度 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 十六位标识 | 标志| 十三位片偏移 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 八位生存时间 | 八位协议 | 十六位首部校验和 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 三十二位源IP地址 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 三十二位目的IP地址 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 选项(若有) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 数据 |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

图三 IP首部结构

同样定义一个IP_HEADER来存放IP首部:

typedef struct _iphdr

{

unsigned char h_verlen; //4位首部长度+4位IP版本号

unsigned char tos; //8位服务类型TOS

unsigned short total_len; //16位总长度(字节)

unsigned short ident; //16位标识

unsigned short frag_and_flags; //3位标志位

unsigned char ttl; //8位生存时间 TTL

unsigned char proto; //8位协议号(TCP, UDP 或其他)

unsigned short checksum; //16位IP首部校验和

unsigned int sourceIP; //32位源IP地址

unsigned int destIP; //32位目的IP地址

}IP_HEADER;

然后通过SockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED);

建立一个原始套接口,由于我们的IP源地址是伪造的,所以不能指望系统帮我们计算IP校验和,我们得在在setsockopt中设置IP_HDRINCL告诉系统自己填充IP首部并自己计算校验和:

flag=TRUE;

setsockopt(SockRaw,IPPROTO_IP,IP_HDRINCL,(char )&flag,sizeof(int));

IP校验和的计算方法是:首先将IP首部的校验和字段设为0(IP_HEADERchecksum=0),然后计算整个IP首部(包括选项)的二进制反码的和,一个标准的校验和函数如下所示:

USHORT checksum(USHORT buffer, int size)

{

unsigned long cksum=0;

while(size >1) {

cksum+=buffer++;

size -=sizeof(USHORT);

}

if(size ) cksum += (UCHAR)buffer;

cksum = (cksum >> 16) + (cksum & 0xffff);

cksum += (cksum >>16);

return (USHORT)(~cksum);

}

这个函数并没有经过任何的优化,由于校验和函数是TCP/IP协议中被调用最多函数之一,所以一般说来,在实现TCP/IP栈时,会根据操作系统对校验和函数进行优化。

TCP首部检验和与IP首部校验和的计算方法相同,在程序中使用同一个函数来计算。

需要注意的是,由于TCP首部中不包含源地址与目标地址等信息,为了保证TCP校验的有效性,在进行TCP校验和的计算时,需要增加一个TCP伪首部的校验和,定义如下:

struct

{

unsigned long saddr; //源地址

unsigned long daddr; //目的地址

char mbz; //置空

char ptcl; //协议类型

unsigned short tcpl; //TCP长度

}psd_header;

然后我们将这两个字段复制到同一个缓冲区SendBuf中并计算TCP校验和:

memcpy(SendBuf,&psd_header,sizeof(psd_header));

memcpy(SendBuf+sizeof(psd_header),&tcp_header,sizeof(tcp_header));

tcp_headerth_sum=checksum((USHORT )SendBuf,sizeof(psd_header)+sizeof(tcp_header));

计算IP校验和的时候不需要包括TCP伪首部:

memcpy(SendBuf,&ip_header,sizeof(ip_header));

memcpy(SendBuf+sizeof(ip_header),&tcp_header,sizeof(tcp_header));

ip_headerchecksum=checksum((USHORT )SendBuf, sizeof(ip_header)+sizeof(tcp_header));

再将计算过校验和的IP首部与TCP首部复制到同一个缓冲区中就可以直接发送了:

memcpy(SendBuf,&ip_header,sizeof(ip_header));

sendto(SockRaw,SendBuf,datasize,0,(struct sockaddr) &DestAddr,sizeof(DestAddr));

因为整个TCP报文中的所有部分都是我们自己写入的,操作系统不会做任何干涉,所以我们可以在IP首部中放置随机的源IP地址,如果伪造的源IP地址确实有人使用,并有地址帮定时,在接收到服务器的SYN+ACK报文后会发送一个RST报文(标志位为00000100),通知服务器端不需要等待一个无效的连接;但如果这个伪造IP并没有绑定在任何的主机上,不会有任何设备去通知主机该连接是无效的,这就是我们所广泛应用的TCP协议的SYN洪水攻击,主机将不断重复发送回执,直到SYN Timeout时间后才能丢弃这个无效的半连接。所以当攻击者使用主机分布很稀疏的IP地址段进行伪装IP的SYN Flood攻击时,服务器主机承受的负荷会相当的高,根据测试,一台奔3 128MB+100Mbps的机器,使用经过初步优化的SYN Flooder程序可以以16,000包/秒的速度发送TCP SYN报文,这样的攻击力已经足以拖垮大部分WEB服务器了。

善于思考的用户会发现,想对SYN Flooder程序进行优化是很简单的,从程序构架来看,攻击时循环内的代码主要是进行校验和计算与缓冲区的填充,一般的思路是提高校验和计算的速度,甚至精明的开发者会用汇编代码编写校验和函数。实际上,还存在一种可以轻松实现优化而又不需要高深的编程技巧和数学知识,我们仔细研究了两个不同源地址的TCP SYN报文后发现,两个报文的大部分字段相同(比如目的地址、协议等等),只有源地址和校验和不同,如果我们事先计算好大量的源地址与校验和的对应关系表,等计算完毕后,攻击程序就只需要单纯的组合缓冲区,用指针来直接操作缓冲区的特定位置,从事先计算好的对应关系表中读出数据,替换缓冲区相应字段。这种简单的工作完全取决于系统发送IP包的速度,与程序的效率没有任何关系,这样即使是CPU主频较低的主机也能快速的发送大量TCP SYN攻击包。如果考虑到缓冲区拼接的时间,甚至可以定义一个很大的缓冲区数组,填充完毕后再发送。

SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,它是利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式……

SYN Flood攻击的监测与防御初探

对于SYN Flood攻击,特别是DDos,目前尚没有很好的监测和防御方法,不过如果系统管理员熟悉攻击方法和系统架构,通过一系列的设定,可以在最大程度上降低被攻击系统的负荷,不会对系统的正常工作造成无法挽回的影响。如果一台主机负荷突然升高甚至失去响应,使用Netstat 命令能看到大量SYN_RCVD的半连接,可以认定,这台主机遭到了SYN Flood攻击。

遭到SYN Flood攻击后,首先要做的是取证,通过在命令行下使用 Netstat Cn Cp tcp >resaulttxt记录目前所有TCP连接状态是必要的,如果有嗅探器或TcpDump之类的工具,详细记录TCP SYN报文会更有助于追查和防御,需要记录的字段有:源地址、IP首部中的标识、TCP首部中的序列号、TTL值(Time to Life,生存周期)等,这些信息虽然很可能是攻击者伪造的,但是用来分析攻击攻击程序不无帮助。特别是TTL值,如果大量的攻击包似乎来自不同的IP但是TTL值却相同,我们往往能推断出攻击者与我们之间的路由器距离,至少也可以通过过滤特定TTL值的报文降低被攻击系统的负荷,确保TTL值与攻击报文不同的用户就可以恢复正常访问。

对于Win2000系统,还可以通过修改注册表降低SYN Flood的危害,在注册表中作如下改动:

首先,打开regedit,找到[HKEY_LOCAL_MACHINE\Sytem\CurrentControlSet\Services\Tcpip\Parameters]

增加一个SynAttackProtect的键值,类型为REG_DWORD,取值范围是0-2,这个值决定了系统受到SYN攻击时采取的保护措施,包括减少系统SYN+ACK的重试的次数等,默认值是0(没有任何保护措施),推荐设置为2;

增加一个TcpMaxHalfOpen的键值,类型为REG_DWORD,取值范围是100-0xFFFF,这个值是系统允许同时打开的半连接数,默认情况下windows2000是100,ADVANCED SERVER版本的windows 2000是500,这个值很难确定,取决于服务器TCP负荷的状况和可能受到的攻击强度。具体的值需要经过管理员的尝试测试/预测一下访问峰值时期的半连接打开量,以其作为参考设定TcpMaxHalfOpenRetried的值,需要保留一定的余量,然后再以TcpMaxHalfOpenRetried的125倍作为TcpMaxHalfOpen值,这样可以最大限度地发挥windows 2000自身的SYN攻击保护机制。

增加一个TcpMaxHalfOpenRetried的键值,类型为REG_DWORD,取值范围是80-0xFFFF,默认情况下windows2000是80,ADVANCED SERVERwindows2000是400,这个值决定了在什么情况下系统会打开SYN攻击保护。

我们来分析一下windows 2000的SYN攻击保护机制:正常情况下,windows 2000对TCP连接的三次握手有一个常规的设置,包括SYN Timeout时间、SYN-ACK的重试次数和SYN报文从路由器到系统再到Winsock的延时等,这个常规设置是针对系统性能进行优化的,所以可以给用户提供方便快捷的服务;一旦服务器受到攻击,SYN半连接的数量超过TcpMaxHalfOpenRetried的设置,系统会认为自己受到了SYN Flood攻击,此时设置在SynAttackProtect键值中的选项开始作用,SYN Timeout时间被减短,SYN-ACK的重试次数减少,系统也会自动对缓冲区中的报文进行延时,避免对TCP/IP堆栈造成过大的冲击,力图将攻击危害减到最低;如果攻击强度不断增大,超过了TcpMaxHalfOpen值,此时系统已经不能提供正常的服务了,更重要的是保证系统不会崩溃,所以系统将会丢弃任何超出TcpMaxHalfOpen值范围的SYN报文(应该是使用随机丢包策略),保证系统的稳定性。

通过设置注册表防御SYN Flood攻击,采用的是被动的策略,无论系统如何强大,始终不能靠被动的防护支撑下去,下面我们来看看另外一种比较有效的方法。

我称这种策略为“牺牲”策略,基于SYN Flood攻击代码的一个缺陷,我们重新来分析一下SYN Flood攻击者的流程:SYN Flood程序有两种攻击方式,基于IP的和基于域名的,前者是攻击者自己进行域名解析并将IP地址传递给攻击程序,后者是攻击程序自动进行域名解析,但是它们有一点是相同的,就是一旦攻击开始,将不会再进行域名解析,我们就是要利用这一点,假设一台服务器在受到SYN Flood攻击后迅速更换自己的IP地址,那么攻击者仍在不断攻击的只是一个空的IP地址,并没有任何主机,而管理员只需将DNS解析更改到新的IP地址就能在很短的时间内恢复用户通过域名进行的正常访问,这种做法取决于DNS的刷新时间。为了迷惑攻击者,我们甚至可以放置一台“牺牲”服务器,对攻击数据流进行牵引。

同样的原因,在众多的负载均衡架构中,基于DNS解析的负载均衡本身就拥有对SYN Flood的免疫力,基于DNS解析的负载均衡能将用户的请求分配到不同IP的服务器主机上,攻击者的一次攻击永远只能是其中一台服务器,虽然说攻击者也能不断去进行DNS请求来持续对用户的攻击,但是这样增加了攻击者的攻击强度,同时由于过多的DNS请求,可以帮助管理员查找到攻击者的地址,这主要是由于DNS请求需要返回数据,而这个数据是很难被伪装的。

如今DDOS攻击仍然没有彻底的解决方案,但各个厂商都在考虑将负载均衡、流量牵引以及带宽控制等技术综合利用,配合不断生机的包分析能力,甚至虚拟技术,力求将SYN Flood攻击降到最低点。让用户和我拭目以待新产品和新技术的诞生。

  但由于该操作系统是一个多用户操作系统,黑客们为了在攻击中隐藏自己,往往会选择 Linux作为首先攻击的对象。那么,作为一名Linux用户,我们该如何通过合理的方法来防范Linux的安全呢?下面笔者搜集和整理了一些防范 Linux安全的几则措施,现在把它们贡献出来,恳请各位网友能不断补充和完善。 1、禁止使用Ping命令Ping命令是计算机之间进行相互检测线路完好的一个应用程序,计算机间交流数据的传输没有 经过任何的加密处理,因此我们在用ping命令来检测某一个服务器时,可能在因特网上存在某个非法分子,通过专门的黑客程序把在网络线路上传输的信息中途 窃取,并利用偷盗过来的信息对指定的服务器或者系统进行攻击,为此我们有必要在Linux系统中禁止使用Linux命令。在Linux里,如果要想使 ping没反应也就是用来忽略icmp包,因此我们可以在Linux的命令行中输入如下命令: echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all 如果想恢复使用ping命令,就可以输入 echo 0 > /proc/sys/net/ipv4/icmp_echo_igore_all2、注意对系统及时备份为了防止系统在使用的过程中发生以外情况而难以正常运行,我们应该对Linux完好的系统进 行备份,最好是在一完成Linux系统的安装任务后就对整个系统进行备份,以后可以根据这个备份来验证系统的完整性,这样就可以发现系统文件是否被非法修 改过。如果发生系统文件已经被破坏的情况,也可以使用系统备份来恢复到正常的状态。备份信息时,我们可以把完好的系统信息备份在CD-ROM光盘上,以后 可以定期将系统与光盘内容进行比较以验证系统的完整性是否遭到破坏。如果对安全级别的要求特别高,那么可以将光盘设置为可启动的并且将验证工作作为系统启 动过程的一部分。这样只要可以通过光盘启动,就说明系统尚未被破坏过。 3、改进登录服务器将系统的登录服务器移到一个单独的机器中会增加系统的安全级别,使用一个更安全的登录服务器 来取代Linux自身的登录工具也可以进一步提高安全。在大的Linux网络中,最好使用一个单独的登录服务器用于syslog服务。它必须是一个能够满 足所有系统登录需求并且拥有足够的磁盘空间的服务器系统,在这个系统上应该没有其它的服务运行。更安全的登录服务器会大大削弱入侵者透过登录系统窜改日志 文件的能力。 4、取消Root命令历史记录在Linux下,系统会自动记录用户输入过的命令,而root用户发出的命令往往具有敏感的 信息,为了保证安全性,一般应该不记录或者少记录root的命令历史记录。为了设置系统不记录每个人执行过的命令,我们可以在Linux的命令行下,首先 用cd命令进入到/etc命令,然后用编辑命令来打开该目录下面的profile文件,并在其中输入如下内容: HISTFILESIZE=0

HISTSIZE=0当然,我们也可以直接在命令行中输入如下命令: ln -s /dev/null ~/bash_history5、为关键分区建立只读属性Linux的文件系统可以分成几个主要的分区,每个分区分别进行不同的配置和安装,一般情况 下至少要建立/、/usr/local、/var和/home等分区。/usr可以安装成只读并且可以被认为是不可修改的。如果/usr中有任何文件发生 了改变,那么系统将立即发出安全报警。当然这不包括用户自己改变/usr中的内容。/lib、/boot和/sbin的安装和设置也一样。在安装时应该尽 量将它们设置为只读,并且对它们的文件、目录和属性进行的任何修改都会导致系统报警。 当然将所有主要的分区都设置为只读是不可能的,有的分区如/var等,其自身的性质就决定了不能将它们设置为只读,但应该不允许它具有执行权限。 6、杀掉攻击者的所有进程假设我们从系统的日志文件中发现了一个用户从我们未知的主机登录,而且我们确定该用户在这台 主机上没有相应的帐号,这表明此时我们正在受到攻击。为了保证系统的安全被进一步破坏,我们应该马上锁住指定的帐号,如果攻击者已经登录到指定的系统,我 们应该马上断开主机与网络的物理连接。如有可能,我们还要进一步查看此用户的历史记录,再仔细查看一下其他用户是否也已经被假冒,攻击者是否拥有有限权 限;最后应该杀掉此用户的所有进程,并把此主机的IP地址掩码加入到文件hostsdeny中。 7、改进系统内部安全机制我们可以通过改进Linux操作系统的内部功能来防止缓冲区溢出,从而达到增强Linux系 统内部安全机制的目的,大大提高了整个系统的安全性。但缓冲区溢出实施起来是相当困难的,因为入侵者必须能够判断潜在的缓冲区溢出何时会出现以及它在内存 中的什么位置出现。缓冲区溢出预防起来也十分困难,系统管理员必须完全去掉缓冲区溢出存在的条件才能防止这种方式的攻击。正因为如此,许多人甚至包括 Linux Torvalds本人也认为这个安全Linux补丁十分重要,因为它防止了所有使用缓冲区溢出的攻击。但是需要引起注意的是,这些补丁也会导致对执行栈的 某些程序和库的依赖问题,这些问题也给系统管理员带来的新的挑战。 8、对系统进行跟踪记录为了能密切地监视黑客的攻击活动,我们应该启动日志文件,来记录系统的运行情况,当黑客在攻 击系统时,它的蛛丝马迹都会被记录在日志文件中的,因此有许多黑客在开始攻击系统时,往往首先通过修改系统的日志文件,来隐藏自己的行踪,为此我们必须限 制对/var/log文件的访问,禁止一般权限的用户去查看日志文件。当然,系统中内置的日志管理程序功能可能不是太强,我们应该采用专门的日志程序,来 观察那些可疑的多次连接尝试。另外,我们还要小心保护好具有根权限的密码和用户,因为黑客一旦知道了这些具有根权限的帐号后,他们就可以修改日志文件来隐 藏其踪迹了。 9、使用专用程序来防范安全有时,我们通过人工的方法来监视系统的安全比较麻烦,或者是不周密,因此我们还可以通过专业 程序来防范系统的安全,目前最典型的方法为设置陷井和设置蜜罐两种方法。所谓陷井就是激活时能够触发报警事件的软件,而蜜罐(honey pot)程序是指设计来引诱有入侵企图者触发专门的报警的陷井程序。通过设置陷井和蜜罐程序,一旦出现入侵事件系统可以很快发出报警。在许多大的网络中, 一般都设计有专门的陷井程序。陷井程序一般分为两种:一种是只发现入侵者而不对其采取报复行动,另一种是同时采取报复行动。 10、将入侵消灭在萌芽状态入侵者进行攻击之前最常做的一件事情就是端号扫瞄,如果能够及时发现和阻止入侵者的端号扫瞄 行为,那么可以大大减少入侵事件的发生率。反应系统可以是一个简单的状态检查包过滤器,也可以是一个复杂的入侵检测系统或可配置的防火墙。我们可以采用诸 如Abacus Port Sentry这样专业的工具,来监视网络接口并且与防火墙交互操作,最终达到关闭端口扫瞄攻击的目的。当发生正在进行的端口扫瞄时,Abacus Sentry可以迅速阻止它继续执行。但是如果配置不当,它也可能允许敌意的外部者在你的系统中安装拒绝服务攻击。正确地使用这个软件将能够有效地防止对 端号大量的并行扫瞄并且阻止所有这样的入侵者。 11、严格管理好口令前面我们也曾经说到过,黑客一旦获取具有根权限的帐号时,就可以对系统进行任意的破坏和攻 击,因此我们必须保护好系统的操作口令。通常用户的口令是保存在文件/etc/passwd文件中的,尽管/etc/passwd是一个经过加密的文件, 但黑客们可以通过许多专用的搜索方法来查找口令,如果我们的口令选择不当,就很容易被黑客搜索到。因此,我们一定要选择一个确保不容易被搜索的口令。另外,我们最好能安装一个口令过滤工具,并借用该工具来帮助自己检查设置的口令是否耐得住攻击。

其实现在网上的服务器监控软件挺多的,我现在用下来觉得云帮手挺好的,服务器监控功能也满足我的需求。

分别有对CPU、内存、磁盘、网络等方面的监控,可以实时查看CPU、磁盘、内存、网络的使用状况。

还可以自己设定告警通知,规定某段时间范围内,CPU、内存、磁盘、网络等资源平均使用率超过自己设定的区间即可发送告警信息,不用时时盯着监控数据,很方便。

你好楼主;

1、Ganglia是伯克利开发的一个集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,

2、Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

3、Zenoss Core是开源企业级IT管理软件-是智能监控软件,他允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。

4、Argus 是一个网络连接监控器,可以利用它来定制监控网络中符合某种条件的计算机,例如网络空闲、断开等。

5、 Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于Unix平台。它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误。

6、Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等

7、collectd是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD 文件形式。

8、Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用net语言进行扩展

9、网络嗅探器/数据包捕获网络取证分析工具(NFAT),它可以检测网络上的流量,会话,主机名,操作系统的开放端口等。 NetworkMiner也可以解析PCAP文件进行离线分析,同时,NetworkMiner还可以提取网络流量的传输的文件。

10、Pandora FMS(灵活监控系统)是一种小型和大型系统环境(一个服务器2000节点)的可用性和性能监视系统。对于本地系统,该软件使用代理来监视Linux, Solaris, FreeBSD, MAC OS X, Windows和AIX平台上的数值参数,布尔状态或字符串。使用者可以用Shellscript, WSH, Perl 或 C创建代理。 可通过SNMP v3, TCP检查和远程WMI探测来进行远程网络监视。 数据报告基于Pandora自己的SQL后台,且可在配置的屏幕上显示。

11、Observium是一个可自动发现网络中的Cisco设备和Linux系 统的网络监控工具,而是包括了主要的网络硬件和操作系统的广泛支持。

12、EasyNetMonitor是一款非常有用的免费网络监 视工具,无需安装。软件默认会每10秒钟ping一次网站,如果网站运作正常,也就是有响应的话,系统托盘的监测状态会显示绿灯,如果是没响应的话则是显 示红灯。要修改或是删除监测的网站,在地球小图标上点击右键,选择监测网址子菜单的 Edit 或是 Delete就行!

13、Colasoft Capsa Free是一个功能强大的程序,成功地处理与网络分析,向您提供用于故障诊断和监测的信息。它为用户提供丰富的经验,若要了解如何监视网络活动,查明网络问题,增强网络安全性等。

望采纳!

扫描端口有如下目的。

(1)判断服务器开放了哪些服务。计算机通信都需要通过计算机中的端口进行。打印机的使用需要接在对应的打印机端口,通过打印机端口,数据传输到打印机上才能止常打印。同样,在网络上服务器的各种应用也是通过对应端口来实现的。通过端口扫描,可以判断服务器提供了那些应用和服务。通过操作系统指纹扫描,可以判断该服务器是FTP服务器还是Web服务器等。在了解了服务器开放的服务后,可以选择有针对性的攻击方法。

(2)判断服务器的操作系统类型。操作系统探测是网络安全扫描研究的重点内容之一。不同的操作系统,有不同的特性和弱点。了解操作系统的类型,可以对入侵行为提供帮助。尽管网络都是基于TCP/IP网络协议的,但是各种操作系统的协议栈存在一定的差异。虽然识别远程操作系统的方法有很多,但大部分都是根据不同操作系统的异同来进行判断的。因为只要某种操作系统具有自己独有的特征,就可以利用这些特征进行识别判断它们。总之,如果黑客掌握了目标服务器开放了哪些服务,运行着哪种操作系统,他们就能够使用相应的手段实现入侵。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么是服务器操作系统?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情