先感谢各位了,在我的网关后面有很多不同的WEB SERVER,所有的域名都指向同一个地址,就是我的网关的IP,我现在想在网关上过滤

解决方案 »

  1.   

    不知道楼主的网关系统是什么,如果是linux,可以用ipchains,这个可以很方便地设置.
    我个人觉得这个用程序过滤很不可靠,这样第一个要在所有程序中都要加上这一段,很影响效率,而且也容易出问题.
    如果是一些比较简单的过滤,可以在apache里面设置
      

  2.   

    是LINUX系统,如果要开发该怎样做使效率高一点,请指教
      

  3.   

    因为我还要记录上网记录到MYSQL数据库中,应该用ipchains做不到吧
      

  4.   

    就是做一个网关程序,在它后面有很多的web server,在internet 上,这些WEB SERVER对应我的网关的IP,(www.aaa.com,www.bbb.com,www.ccc.com的IP最INTERNET上看来都是10.0.0.1,所以到这些网站的访问,到先到我的网关),我在网关上运行一个PHP程序,来检查用户请求的URL,看这URL是否是需要过滤掉(自己定义策略),如果不需要过滤掉,就重定向到用户请求的网页,并且记录下所以的访问记录。另外还想请问以下那里有URL的数据库下载(不健康网站的),谢谢了
      

  5.   

    linux现在都用iptable了吧,配合squid做过滤,我以前是这样做的。现在失业中:(
      

  6.   

    你这个东西具体来说就是过滤数据包,你需要建立一个黑名单和白名单,关键字库,当客户端发出http请求的时候,你得到域名信息,检查域名是否在黑名单中,
    1、如果是,转向别的域名或者拒绝连接。
    2、如果不在,那么就要检查内容,如果网站内容中有被禁止的关键字存在,那么也拒绝连接,将该网站加入黑名单(可先作为待管理员检查记录)
    iptables 做ip过滤比较好。也可以结合起来过滤一个网段。
      

  7.   

    在我的网关后面的WEB SERVER的地址INTERNET上不能访问,关键是我怎样冲定向网页到指定的SERVER上,用INCLUDE 吗?还有在那些网页上的HREF
      

  8.   

    你是要限制外面不能访问你里面?还是要限制里面不能访问外面??
    如果,是你的内网有 N多 Web Server 要由这个网关发布到 Internet ,要限制部分用户对内网Web Server 的访问的话,建议使用 Apache 的 反向代理功能。并且修改 APACHE的配置以达到权限控制。如果你是要限制 内网用户对外网的 Web Server 的访问的话。 建议你使用代理软件。现在N多代理软件都有 黑白名单的功能。我真的看不明白你到底需要什么~~~~
      

  9.   

    我是限制外面用户访问里面,我现在用APACHE上用PHP 做的一个<?phpinclude "./include/db.inc.php";
    include "./include/proxy.inc.php";
    //get the information log into the database$remote_ipaddr=$_SERVER[REMOTE_ADDR];
    $request_hostname=$_SERVER[SERVER_NAME];
    $request_file=$_SERVER[REDIRECT_URL];
    $request_time=time();
    $request_success="";
    $status=true;
    $tablename="log";
    $url=$request_hostname;//decide whether forbid the request
    $sql_role="select * from filter";
    $dbo_role=new database();
    $result_role=$dbo_role->query_db($sql_role);
    $array_role=mysql_fetch_array($result_role);
    $num=$dbo_role->record_count('filter');for($i=0;$i<$num;$i++)
    {
    if($url.$request_file==$array_role[filter_url])
    {
    $status=false;
    break;
    }
    else
    {
    $array_role=mysql_fetch_array($result_role);
    }
    }
    if($status)
    {
    $request_success="yes";
    }
    else
    {
    $request_success="no";
    }$dbo=new database();$fieldname=array("remote_ipaddr","request_hostname","request_file","request_time","request_success");
    $fieldvalue=array($remote_ipaddr,$request_hostname,$request_file,$request_time,$request_success);$dbo->insert_record($fieldname,$fieldvalue,$tablename);if($status)
    {
    if($_SERVER[REDIRECT_URL]!="")
    {
    $url="http://".$request_hostname.$_SERVER[REDIRECT_URL];
    }
    else
    {
    $url="http://".$request_hostname;
    } $handle = fopen ($url, "rb");
    if(!$handle)
    {
    echo "your request page is not exist!!!!";
    exit();
    }
    $contents = "";
    do {
       $data = fread($handle, 8192);

    echo $data;
       if (strlen($data) == 0) {
           break;
       }
       $contents .= $data;} while(true);
    fclose ($handle);

    }
    else
    {
    echo "<p align='center'><font size='18' color='red'>your request the page is forbided</font?</p>";
    exit();
    }?>