Computer Forums

Member Login

Remember Me? Sign Up! | Forgot Password
 
Slogan
 
Closed Thread
Old 04-28-2007, 03:13 PM   #1 (permalink)
Ethereal_Dragon's Avatar
 
Wizard Techie

Join Date: Feb 2006

Location: Bolingbrook, IL - USA

Posts: 3,604

Ethereal_Dragon will become famous soon enough

Send a message via AIM to Ethereal_Dragon Send a message via Yahoo to Ethereal_Dragon
Question Preventing Image hotlinking with lighttpd

Hello all, I don't often frequent this section, as I am not too familiar with these topics.

I have a DLink DNS-323 on my network (listed in sig), and I have put in a fun_plug file to gain telent access to the box, as well as add any new things that I might want to. I recently put lighttpd on it, and the webserver is functional. I am able to view the webpage from my LAN, and over the WAN.

In a nutshell, I would like to enable restrictions on the files hosted on my NAS, so that they aren't being leeched to other sites, and wasting bandwidth.

Here is the article I found that shows that it can be done with lighttpd.conf, but I am not sure how to impliment it.....
Lighttpd prevent image hotlinking or leeching or direct linking | nixCraft

You can PM me for the IP Address of the webpage... no Domain name yet...

Here are the contents of the lighttpd files... I am not too familiar with MUCH of what is in these.....
lighttpd.sh
Code:
#!/bin/sh

if [ -x "${BINDIR}/lighttpd" ]; then
    echo "Starting lighttpd... "
    ${BINDIR}/lighttpd -f ${ETCDIR}/lighttpd.conf
else
    echo "ERROR: lighttpd not found or not executable"
fi
lighttpd.conf text to follow....
__________________
Gaming Rig: - GIGABYTE GA-X38-DQ6, Intel Q9550 @ 2.83 Ghz, TRUE (MX-2 & 2 Scythe SFF21D),
Crucial Ballistix 4GB DDR 800, XFX Radeon HD 4870, SILVERSTONE ST70F,
4x Seagate 7200.11 ST3500320AS 500 GB, ASUS DRW-2014L1T, Antec 900
Dell 2709W - 27" Monitor & Sony SDM-HS95P - 19" Monitor
The NAS Box: D-Link DNS-323 & 2x Seagate 7200.10 ST3500630AS 500GB - JBOD



| My Antec 900 Build Log | Project Pink | Operation Home Run |
| General Forum Rules | Networking FAQs & Tutorials | Hardware Tutorials |

Last edited by Ethereal_Dragon; 04-28-2007 at 03:37 PM. Reason: changed quote to code for easier reading
Ethereal_Dragon is offline  
Old 04-28-2007, 03:14 PM   #2 (permalink)
Ethereal_Dragon's Avatar
 
Wizard Techie

Join Date: Feb 2006

Location: Bolingbrook, IL - USA

Posts: 3,604

Ethereal_Dragon will become famous soon enough

Send a message via AIM to Ethereal_Dragon Send a message via Yahoo to Ethereal_Dragon
Default Re: Preventing Image hotlinking with lighttpd

lighttpd.conf - part 1
Code:
# lighttpd configuration file
#
# use it as a base for lighttpd 1.0.0 and above
#
# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $

############ Options you really have to take care of ####################

## modules to load
# at least mod_access and mod_accesslog should be loaded
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules              = (
#                               "mod_rewrite",
#                               "mod_redirect",
#                               "mod_alias",
                                "mod_access",
#                               "mod_cml",
#                               "mod_trigger_b4_dl",
#                               "mod_auth",
#                               "mod_status",
#                               "mod_setenv",
#                               "mod_fastcgi",
#                               "mod_proxy",
#                               "mod_simple_vhost",
#                               "mod_evhost",
#                               "mod_userdir",
#                               "mod_cgi",
#                               "mod_compress",
#                               "mod_ssi",
#                               "mod_usertrack",
#                               "mod_expire",
#                               "mod_secdownload",
#                               "mod_rrdtool",
                                "mod_accesslog" )

## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root        = "/mnt/HD_a2/www/pages/"

## where to send error-messages to
server.errorlog             = "/mnt/HD_a2/www/logs/error.log"

# files to check for if .../ is requested
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm" )

## set the event-handler (read the performance section in the manual)
# server.event-handler = "freebsd-kqueue" # needed on OS X

# mimetype mapping
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar"
 )

# Use the "Content-Type" extended attribute to obtain mime type if possible
#mimetype.use-xattr        = "enable"


## send a different Server: header
## be nice and keep it at lighttpd
# server.tag                 = "lighttpd"

#### accesslog module
accesslog.filename          = "/mnt/HD_a2/www/logs/access.log"

## deny access the file-extensions
#
# ~    is for backupfiles from vi, emacs, joe, ...
# .inc is often used for code includes which should in general not be part
#      of the document-root
#url.access-deny             = ( "~", ".inc" )

#$HTTP["url"] =~ "\.pdf$" {
#  server.range-requests = "disable"
#}

##
# which extensions should not be handle via static-file transfer
#
# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

######### Options that are good to be but not neccesary to be changed #######

## bind to port (default: 80)
server.port                = 8080

## bind to localhost (default: all interfaces)
#server.bind                = "grisu.home.kneschke.de"

## error-handler for status 404
#server.error-handler-404   = "/error-handler.html"
#server.error-handler-404   = "/error-handler.php"

## to help the rc.scripts
#server.pid-file            = "/var/run/lighttpd.pid"

__________________
Gaming Rig: - GIGABYTE GA-X38-DQ6, Intel Q9550 @ 2.83 Ghz, TRUE (MX-2 & 2 Scythe SFF21D),
Crucial Ballistix 4GB DDR 800, XFX Radeon HD 4870, SILVERSTONE ST70F,
4x Seagate 7200.11 ST3500320AS 500 GB, ASUS DRW-2014L1T, Antec 900
Dell 2709W - 27" Monitor & Sony SDM-HS95P - 19" Monitor
The NAS Box: D-Link DNS-323 & 2x Seagate 7200.10 ST3500630AS 500GB - JBOD



| My Antec 900 Build Log | Project Pink | Operation Home Run |
| General Forum Rules | Networking FAQs & Tutorials | Hardware Tutorials |

Last edited by Ethereal_Dragon; 04-28-2007 at 03:18 PM. Reason: changed quote to code for easier reading
Ethereal_Dragon is offline  
Old 04-28-2007, 03:14 PM   #3 (permalink)
Ethereal_Dragon's Avatar
 
Wizard Techie

Join Date: Feb 2006

Location: Bolingbrook, IL - USA

Posts: 3,604

Ethereal_Dragon will become famous soon enough

Send a message via AIM to Ethereal_Dragon Send a message via Yahoo to Ethereal_Dragon
Default Re: Preventing Image hotlinking with lighttpd

lighttpd.conf - part 2
Code:
###### virtual hosts
##
##  If you want name-based virtual hosting add the next three settings and load
##  mod_simple_vhost
##
## document-root =
##   virtual-server-root + virtual-server-default-host + virtual-server-docroot
## or
##   virtual-server-root + http-host + virtual-server-docroot
##
#simple-vhost.server-root   = "/home/weigon/wwwroot/servers/"
#simple-vhost.default-host  = "grisu.home.kneschke.de"
#simple-vhost.document-root = "/pages/"


##
## Format: <errorfile-prefix><status-code>.html
## -> ..../status-404.html for 'File not found'
#server.errorfile-prefix    = "/home/weigon/projects/lighttpd/doc/status-"

## virtual directory listings
dir-listing.activate        = "enable"

## enable debugging
#debug.log-request-header   = "enable"
#debug.log-response-header  = "enable"
#debug.log-request-handling = "enable"
#debug.log-file-not-found   = "enable"

### only root can use these options
#
# chroot() to directory (default: no chroot() )
#server.chroot              = "/"

## change uid to <uid> (default: don't care)
#server.username            = "wwwrun"

## change uid to <uid> (default: don't care)
#server.groupname           = "wwwrun"

#### compress module
#compress.cache-dir         = "/tmp/lighttpd/cache/compress/"
#compress.filetype          = ("text/plain", "text/html")

#### proxy module
## read proxy.txt for more info
#proxy.server               = ( ".php" =>
#                               ( "localhost" =>
#                                 (
#                                   "host" => "192.168.0.101",
#                                   "port" => 80
#                                 )
#                               )
#                             )

#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
#fastcgi.server             = ( ".php" =>
#                               ( "localhost" =>
#                                 (
#                                   "socket" => "/tmp/php-fastcgi.socket",
#                                   "bin-path" => "/usr/local/bin/php"
#                                 )
#                               )
#                            )

#### CGI module
#cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
#                               ".cgi" => "/usr/bin/perl" )
#

#### SSL engine
#ssl.engine                 = "enable"
#ssl.pemfile                = "server.pem"

#### status module
#status.status-url          = "/server-status"
#status.config-url          = "/server-config"

#### auth module
## read authentication.txt for more info
#auth.backend               = "plain"
#auth.backend.plain.userfile = "lighttpd.user"
#auth.backend.plain.groupfile = "lighttpd.group"

#auth.backend.ldap.hostname = "localhost"
#auth.backend.ldap.base-dn  = "dc=my-domain,dc=com"
#auth.backend.ldap.filter   = "(uid=$)"

#auth.require               = ( "/server-status" =>
#                               (
#                                 "method"  => "digest",
#                                 "realm"   => "download archiv",
#                                 "require" => "user=jan"
#                               ),
#                               "/server-config" =>
#                               (
#                                 "method"  => "digest",
#                                 "realm"   => "download archiv",
#                                 "require" => "valid-user"
#                               )
#                             )

#### url handling modules (rewrite, redirect, access)
#url.rewrite                = ( "^/$"             => "/server-status" )
#url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
#### both rewrite/redirect support back reference to regex conditional using %n
#$HTTP["host"] =~ "^www\.(.*)" {
#  url.redirect            = ( "^/(.*)" => "http://%1/$1" )
#}

#
# define a pattern for the host url finding
# %% => % sign
# %0 => domain name + tld
# %1 => tld
# %2 => domain name without tld
# %3 => subdomain 1 name
# %4 => subdomain 2 name
#
#evhost.path-pattern        = "/home/storage/dev/www/%3/htdocs/"

#### expire module
#expire.url                 = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")

#### ssi
#ssi.extension              = ( ".shtml" )

#### rrdtool
#rrdtool.binary             = "/usr/bin/rrdtool"
#rrdtool.db-name            = "/var/www/lighttpd.rrd"

#### setenv
#setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
#setenv.add-response-header = ( "X-Secret-Message" => "42" )

## for mod_trigger_b4_dl
# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
# trigger-before-download.trigger-url = "^/trigger/"
# trigger-before-download.download-url = "^/download/"
# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
# trigger-before-download.trigger-timeout = 10

## for mod_cml
## don't forget to add index.cml to server.indexfiles
# cml.extension               = ".cml"
# cml.memcache-hosts          = ( "127.0.0.1:11211" )

#### variable usage:
## variable name without "." is auto prefixed by "var." and becomes "var.bar"
#bar = 1
#var.mystring = "foo"

## integer add
#bar += 1
## string concat, with integer cast as string, result: "www.foo1.com"
#server.name = "www." + mystring + var.bar + ".com"
## array merge
#index-file.names = (foo + ".php") + index-file.names
#index-file.names += (foo + ".php")

#### include
#include /etc/lighttpd/lighttpd-inc.conf
## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
#include "lighttpd-inc.conf"

#### include_shell
#include_shell "echo var.a=1"
## the above is same as:
#var.a=1

__________________
Gaming Rig: - GIGABYTE GA-X38-DQ6, Intel Q9550 @ 2.83 Ghz, TRUE (MX-2 & 2 Scythe SFF21D),
Crucial Ballistix 4GB DDR 800, XFX Radeon HD 4870, SILVERSTONE ST70F,
4x Seagate 7200.11 ST3500320AS 500 GB, ASUS DRW-2014L1T, Antec 900
Dell 2709W - 27" Monitor & Sony SDM-HS95P - 19" Monitor
The NAS Box: D-Link DNS-323 & 2x Seagate 7200.10 ST3500630AS 500GB - JBOD



| My Antec 900 Build Log | Project Pink | Operation Home Run |
| General Forum Rules | Networking FAQs & Tutorials | Hardware Tutorials |

Last edited by Ethereal_Dragon; 04-28-2007 at 03:24 PM. Reason: changed quote to code for easier reading
Ethereal_Dragon is offline  
 
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On