<div dir="ltr">







<p class=""><span class="">Hey Sam,</span></p>
<p class=""><span class=""></span><br></p>
<p class=""><span class=""> We have a request to block access to certain URLs from outside the  network using Varnish. I came up with a way that I think will work. But I’d like to bounce my method off you and see what you think. This is just for staging right now. Production will probably be soon, but they haven’t asked yet.</span></p>
<p class=""><span class=""> I started by setting up an ACL that included all the IPs and networks that I know of (so far) that constitute our internal network:</span></p>
<p class=""><br><span class=""></span></p>
<p class=""><span class="">acl localnetwork {</span></p>
<p class=""><span class="">  "xx.xx.xx.xx";</span></p><p class=""><span class="">   "xx.xx.xx.xx"/24;</span></p>
<p class=""><span class="">}</span></p>
<p class=""><span class=""></span><br></p>
<p class=""><span class="">And then, down in vcl_recv I put the following:</span></p><p class=""><span class=""></span></p>
<p class=""><span class=""> if(req.http.host ~ "^origin\.test-stage\.ourcompany\.com$" && req.url ~ "(^/user|^/user/|^/user/*)" && client.ip !~ localnetwork) {</span></p>
<p class=""><span class="">           error 403 "Forbidden";</span></p>
<p class=""><span class="">   }</span></p><p class=""><span class=""></span></p>
<p class=""><span class="">Here, I’m basically saying if you’re hitting this http host and these following URLs and you don’t belong to any of the IPs mentioned in the localhost ACL, you’ll receive an 403 forbidden error. </span></p><p class=""><span class=""></span></p>
<p class=""><span class="">I’m only unsure of a couple of things, that I’d like your opinion on. Would I need to have the error handled by a call to a separate vcl_error ?</span></p>
<p class=""><span class="">Also for the phrase  "^origin\.test-stage\.nbcuni\.com$”  will I need to escape the dash in <a href="http://test-stage.nbcuni.com">test-stage.nbcuni.com</a> in order for this to work?</span></p>
<p class=""><span class="">OR do you think what I have here will do the trick? I think it might be good as is.</span></p>
<p class="">Thanks for your help!<br><span class=""></span></p>
<p class="">Tim<br><span class=""></span></p><div><br></div>-- <br><div class="gmail_signature">GPG me!!<br><br>gpg --keyserver <a href="http://pool.sks-keyservers.net" target="_blank">pool.sks-keyservers.net</a> --recv-keys F186197B<br><br></div>
</div>