轻松实现Linux下的互联网过滤功能

目前,很多学校都建起了校园网并连接上互联网,但互联网上的不良信息非常多,如何进行网站过滤,防止不健康网站对学生的影响呢?以下本着零成本、高效益的原则,谈谈在免费的Linux下如何实现互联网的过滤功能。

设置代理服务器

校园网通过Linux上网,在网关上利用Squid架设代理服务器。

首先要安装好Linux,我用的是易装好用的RedHat Linux 7.2。在安装RedHat Linux 7.2时,Squid已同时安装好,我们只需简单的配置一下就能使用。

RedHat Linux 7.2安装后默认是未运行Apache,故应先启用Squid,确保Squid代理服务器能正常工作。修改/etc/squid/squid.conf配置文件。

http_port 3128 (定义Squid监听HTTP客户端请求的端口)

cache_mem 10 MB (Squid可以使用的内存理想值,一般设为物理内存的1/3)

cache_swap_low 95

cache_swap_low 90

maximum_object_size 4096 KB(大于该值对象将不被存储)

cache_dir ufs /var/spool/squid/cache 200 16 256(指定Squid用来存储对象的交换空间大小及其目录结构)

acl all src 192.168.1.1/24(定义All 为192.168.1.1网段)

http_acceaa allow all(192.168.1.1 网段的客户端可使用Squid代理上网)

cache_effective_user squid(使用的用户和用户组)

cache_effective_group squid(其余参数用默认值即可)

[root@squid bin]# chmod 777 /var/spool/squid/cache(使/var/spool/squid/cache目录为Noboay用户,具有写权限)

[root@squid bin]# squid -z(手工建立Squid的缓存目录/var/spool/squid/cache)

[root@squid bin]# /etc/rc.d/init.d/squid start(启动Squid,停止Squid用/etc/rc.d/init.d/squid stop)

在客户端进行测试,以Windows为例。运行IE,单击“工具”,接着单击“Internet选项”,再单击“连接”选项卡,单击“局域网设置”;在“局域网设置”窗口中,在“地址”处填上Squid服务器的IP地址:192.168.1.16,在“端口”处填上“3128”,确定后退出。此时客户端应能浏览Internet,说明Squid已正常运行。

过滤功能的配置

接下来进行的是网站过滤功能的配置。可以有两种配置方法。

方法一

请ftp://k12linux.mesd.k12.or.us/pub/squidguard/下载RPM版本的SquidGuard-1.2.0-3.i386.rpm。

#rpm -ivh squidguard-1.2.0-3.i386.rpm

(安装后数据目录Dbhome:/var/squidguard/blacklists;日志目录Logdir: /var/log/squidguard)

按提示修改/etc/squid/squid.conf文件中的有关配置行:

redirect_program /usr/sbin/squidgua-

rd -c /etc/squid/squidguard.conf

redirect_child 5

重启Squid,查看/var/log/squidguard/squidguard.log,看最后一行:2002-06-23 16:13:18[2237] squidguard ready for requests则表明Squidguard已正常运行。

方法二

请到squidguard.mesd.k12.or.us/squidguard.tar.gz下载TAR版本的SquidGuard.tar.gz,并存放到根目录下。

#cd / (进入根目录)

#tar vzxf squidguard.tar.gz

(解压缩文件到/usr/local/squidguard 下,数据目录Dbhome:/usr/local/squidguard/db;日志目录Logdir:/usr/local/squidguard/log)

修改/etc/squid/squidguard.conf配置文件:

redirect_program: /usr/local/bin/squidguard -c /etc/squid/squidguard.conf

重启Squid,查看/usr/local/squid guard/log/squidguard.log确保SquidGuard已正常运行。

试浏览一些欲过滤网站,若能被重定向到指定网页,则说明过滤功能已起作用。

在使用TAR版本的SquidGuard时能增减数据。进入到数据目录:/usr/local/squidguard/db下的Porn文件夹,新建一个Domains.diff文件,内容格式是(加号“+”表示增加,减号“-”表示去除):

+newsite1(把newsite1加入过滤名单,不能访问)

+newsite2(把newsite2加入过滤名单,不能访问)

-site3(把site3从过滤名单去掉,可以正常访问)

-site4(把site4从过滤名单去掉,可以正常访问)

然后执行:#/usr/local/bin/squidguard -c /etc/squid/squidguard.conf -u

查看SquidGuard.log文件,若有:

db update done

squidguard stopped(102233.823)

表明数据更新成功!再重启Squid即可。

此方法的优点

此方法的优点是配置方便,对硬件要求低,一般退役下来的486、586完全能胜任,代理服务器可以长时间工作。且所有软件都是免费的,过滤名单更新快,只需到www.squidGuard.org下载最新版本的过滤名单数据库替换旧的即可,也可以手工增减过滤名单。

Squid还可以设定上网时间段;可以定期检查日志,及时发现学生上网中存在的不良倾向。 (出处:赛迪网--中国电脑教育报)

(0)

相关推荐

  • linux grep正则表达式与grep用法详解

    需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同 正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理.本文以grep为例来讲解正则表达式. grep命令 功能:输入文件的每一行中查找字符串. 基本用法: grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名 参数说明: -a:将二进制文档以文本方式处理 -c:显示匹配次数 -i:忽略大小写差异 -n:在行首显示行号 -A:After的意思,显示匹

  • Linux下如何使用grep命令查找带有tab(退格)的字符

    需要在日志文件统计删除的主帖,而日志文件是tab(退格)字符隔开的:假设日志文件名叫delete.log. 保存格式和保存的数据如下, 删除日期            帖子类型(11为主帖,12为回帖)    帖子id    操作人id 2011-11-01 00:05       12      71163578        1153089  2011-11-01 00:19       11      71163800        134379  2011-11-01 00:19    

  • 详解linux grep命令

    本文介绍了linux grep命令,具体如下: 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数. -I:不区分大 小写(只适用于单字符). -h:查询多文件时不显示文件名. -l:查询多文件时只

  • 深入理解Linux中的grep命令

    介绍 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep [-acinv] [--color=auto] '查找字符串' filename 参数: -a :将binary文件以text文件的方式查找数据 -c :计算找到'查找字符串'的次数 -i :忽略大小写的区别,即把大小写视为相同 -n :顺便输出行号

  • Linux下的Grep命令使用方法详细介绍

    1. grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep. egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是 fixed grep或fast grep,它们把所有的字

  • 深入Linux grep指令的详解(实用型)

    Linux下grep指令跟find指令一样的强大,find主要查找文件,而grep则是内容,两者配合相得益彰,趁着周末,自己好好的总结了一番! 1.作用    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 2.主要参数[options]主要参数:-c:只输出匹配行的计数.-I:不区分大小写(只适用于单字符).-h

  • linux文本分析awk基础命令介绍(8)

    awk是一种模式扫描和处理语言,在对数据进行分析处理时,是十分强大的工具. awk [options] 'pattern {action}' file... awk的工作过程是这样的:按行读取输入(标准输入或文件),对于符合模式pattern的行,执行action.当pattern省略时表示匹配任何字符串:当action省略时表示执行'{print}':它们不可以同时省略. 每一行输入,对awk来说都是一条记录(record),awk使用$0来引用当前记录: [root@centos7 ~]#

  • linux 查找过滤及用户和组管理命令的一些实例

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. ~]# who | cut -d' ' -f1 | sort | uniq 2.列出最后登录到当前系统的用户的相关信息. ~]# last | head -1 3.列出当前系统上被用户当作其默认shell的最多的那个shell. ~]# cut -d: -f7 /etc/passwd | uniq -c | sort -n | tail -1 4.将/etc/passwd中的第三个字段数值最大的后10个用

  • 一天一个shell命令 linux文本内容操作系列-grep命令详解

    从这篇开始,是文本内容操作,区别于文本操作. Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. shell,perl,python,一直都是文本操作的专家语言,而我们今后学习的的将是shell的噱头--文本操作.下面提到最常见的一个: grep 这算是文本内容的一个重量级选手,能根据某些规格在上千行的文本文件中查找

  • linux文本过滤grep基础命令介绍(5)

    在linux中经常需要对文本或输出内容进行过滤,最常用的过滤命令是grep grep [OPTIONS] PATTERN [FILE...] grep按行检索输入的每一行,如果输入行包含模式PATTERN,则输出这一行.这里的PATTERN是正则表达式(参考前一篇,本文将结合grep一同举例). 输出文件/etc/passwd中包含root的行: [root@centos7 temp]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash

随机推荐