Boy your wife must have time on her hand ;) 

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Peter Whiting
Sent: Wednesday, May 16, 2007 8:19 PM
To: LDS Open Source Software
Subject: Re: [Ldsoss] Fireside talk on the Internet

On Tue, May 15, 2007 at 01:19:30PM -0500, Stacey wrote:

> I have been asked to give a fireside talk to educate parents   
> on what they should know about the Internet and how to protect 
> their children. I am sure this group has lots of good ideas,   
> web links, and maybe even a presentation they gave on a        
> similar subject they would like to share. I would especially   
> like to hear about Windows based solutions and ideas because   
> for me and my house, we run Macs. In fact, I have been pretty  
> much Windows free for about 7 years. I do use Parallels        
> Desktop for the Mac to run PAF (since it only comes in the     
> Windows flavor).                                               

We use an approach that probably wouldn't work for 99% of the world - but it
works well for us. I have a linux box that provides routing for the entire
house. On it I run a simple script that sniffs the web traffic and creates a
log of all of the http requests. Once a day my wife runs a cgi script that
displays every image that anyone has accessed. Everyone in the house knows
that whatever they look at, mom will see too. 

Unfortunately, the script doesn't work for https requests.

#!/usr/bin/perl

use Net::Pcap;
use Net::PcapUtils;
use NetPacket::Ethernet qw(:strip);
use NetPacket::IP;
use NetPacket::TCP;
use Socket;
use Fcntl ':flock';
use POSIX qw(strftime);

# only allow one of these to run at a time...
open(LOCK,">>.http-lock") || die "open: $!\n";
flock(LOCK,LOCK_EX|LOCK_NB) || exit;

$*=1; # multiline
$cap=Net::PcapUtils::open(SNAPLEN=>1600,FILTER=>"dst port 80") ||  warn
$err,$cap,"\n"; $hdr={};
while($pkt=Net::Pcap::next($cap,$hdr)) {  my $eth_obj =
NetPacket::Ethernet->decode($pkt);
 my $ip_obj = NetPacket::IP->decode($eth_obj->{data});
 my $tcp_obj = NetPacket::TCP->decode($ip_obj->{data});
 $_=$tcp_obj->{data};
 if(($cmd,$url)=/^(GET|PUT|POST)\s+(\S*)/) {
   $src=$ip_obj->{src_ip};
   ($host)=/Host:\s*(\S*)/;
   $file=strftime("%Y-%m-%d",localtime($hdr->{tv_sec}));
   $tm=strftime("%Y/%m/%d %T",localtime($hdr->{tv_sec}));
   `echo \"$hdr->{tv_sec} $tm $src http://$host$url\"; >>$file.log`;  } }

send me a note if anyone wants the cgi script.
_______________________________________________
Ldsoss mailing list
Ldsoss@lists.ldsoss.org
http://lists.ldsoss.org/mailman/listinfo/ldsoss

_______________________________________________
Ldsoss mailing list
Ldsoss@lists.ldsoss.org
http://lists.ldsoss.org/mailman/listinfo/ldsoss

Reply via email to