{"id":832,"date":"2007-11-11T20:12:47","date_gmt":"2007-11-12T00:12:47","guid":{"rendered":"http:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/"},"modified":"2007-11-11T20:12:47","modified_gmt":"2007-11-12T00:12:47","slug":"ultimate-linux-server-part-1-web-proxy-660","status":"publish","type":"post","link":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/","title":{"rendered":"Ultimate Linux Server Part 1: Web Proxy"},"content":{"rendered":"<div align=\"center\">Ultimate Linux Server<br \/>Part 1: Web Proxy<\/div>\n<p>\u00a0\u00a0\u00a0 What is the \u201cUltimate Linux Server\u201d? I suppose that if you asked ten different people you would get just as many different answers. My definition is a basic server running a stripped down operating system to which services can be added as necessary. Simplicity and security go hand-in-hand; the fewer services or \u201cbells and whistles\u201d a server is running, the more secure and reliable it will be. <\/p>\n<p>\u00a0\u00a0\u00a0 My version of the \u201cUltimate Linux Server\u201d starts with a minimal install of Debian Linux and an application called Webmin. Webmin is a web based administrative interface for managing all aspects of a Linux server. <\/p>\n<p>\u00a0\u00a0\u00a0 This article is the first in a series of several installments. For now, we will build the basic server and install a web proxy application on it. Future articles will explain how to build upon this base server, adding services such as a mail server, anti-spam filter, DHCP server, DNS server, etc. The Webmin application also contains features to manage the server itself, such as back up, service monitoring and alerts to email and SMS, etc. These features will also be covered in future articles.<\/p>\n<p>\u00a0\u00a0\u00a0 As the title of this article infers, we will be installing a web proxy application. Why do you need a web proxy? A question was posed by a colleague recently concerning how to monitor web traffic and report on which users were going to what sites on the internet. A web proxy can be used to intercept all HTTP traffic destined for the internet and log which computers are going where. In addition, the web proxy we are going to install (Squid) acts as a caching web proxy which can speed up the loading of previously accessed web sites. An additional application called \u201cSARG\u201d produces very nice reports of all web traffic based upon such criteria as source IP, destination web site, the time frame web sites were accessed, the most active users of HTTP, etc.<\/p>\n<p>\u00a0\u00a0\u00a0 In an attempt to make the installation and configuration as easy as possible, we will use a method where-by the server is accessed remotely from your own desktop PC and commands are run on the server via a terminal application (with the exception of the initial installation of the operating system which must be done using a keyboard and monitor attached directly to the server).\u00a0 These <em><strong>commands<\/strong><\/em> are presented in <em><strong>bold type<\/strong><\/em> and can simply be copied and pasted into the terminal window. This server is designed to run \u201clights out\u201d without a monitor or keyboard attached during normal operation.<\/p>\n<p>\u00a0\u00a0\u00a0 The recommended minimum hardware configuration would be a P4 1.5 GHz (or equivalent), 512Mb RAM, and a 40 GB (or bigger) hard drive. Linux isn&#8217;t as resource intensive as some other operating systems so the above recommendations should work very nicely. Feel free to add more RAM as you install additional services.<\/p>\n<p>\u00a0\u00a0\u00a0 Let&#8217;s begin by getting the operating system installed. Download and burn a copy of Debian Linux. I recommend getting the network install image; it&#8217;s very small and you only need a very few basic packages anyway. Go here: <a href=\"http:\/\/www.debian.org\/releases\/stable\/debian-installer\/\" target=\"_blank\">Debian<\/a> and download the appropriate \u201cnetinst\u201d image (i386 for most of you). Make sure you burn this as an ISO \u201cimage\u201d and then boot your new server to this CD. Go ahead and install Debian, making sure that you are plugged into the network and the internet is accessible. You can safely accept the defaults most of the way through, with the following exceptions:<\/p>\n<p>1.\u00a0\u00a0\u00a0 If your server grabs a DHCP address, use the tab key to choose \u201cgo back\u201d, then choose \u201cconfigure network manually\u201d and assign an appropriate static IP.<br \/>2.\u00a0\u00a0\u00a0 When you get to the \u201cSoftware selection\u201d screen, unselect everything (trust me). This is done by using the space bar to toggle your selection and the \u201cdown\u201d arrow key to move through the menu. Once you have deselected all options, use the \u201ctab\u201d key to choose continue and hit \u201center\u201d.<\/p>\n<p>\u00a0\u00a0\u00a0 After it installs grub (the boot loader), it will spit the CD out at you and you simply hit \u201center\u201d to continue and boot into your new Debian system.<\/p>\n<p>\u00a0\u00a0\u00a0 At this point, you should be staring at a login prompt (yes, it&#8217;s all text based, no \u201cpoint and click\u201d here). Simply type <em><strong>root<\/strong><\/em>, hit \u201center\u201d, and then the password you chose for root when you installed the OS. Now, we&#8217;re going to do some basic setup:<\/p>\n<p>1.\u00a0\u00a0\u00a0 Type <em><strong>nano -w \/etc\/apt\/sources.list<\/strong><\/em>. This will open a file up in an editor.<br \/>2.\u00a0\u00a0\u00a0 Using your arrow keys to move around, put a \u201c#\u201d sign in front of the second line that starts with \u201cdeb cdrom\u201d (this is called a \u201ccomment\u201d and it means that the line will be ignored). Then move the cursor to the end of the first line that starts with \u201cdeb http\u201d and add \u201ccontrib\u201d and \u201cnon-free\u201d. It should look something like this:<br \/>\u201cdeb http:\/\/ftp.debian.org\/debian\/ etch main contrib non-free\u201d<br \/>3.\u00a0\u00a0\u00a0 Do the same for the remaining lines.<br \/>4.\u00a0\u00a0\u00a0 Hit \u201cctrl o\u201d (the ctrl button and the letter \u201co\u201d at the same time), then \u201center\u201d, and then \u201cctrl x\u201d to save and exit.<br \/>5.\u00a0\u00a0\u00a0 Type the command <em><strong>apt-get update<\/strong><\/em>.<br \/>6.\u00a0\u00a0\u00a0 Type the command <em><strong>apt-get install openssh-server<\/strong><\/em> (just hit enter when it asks you if you want to continue).<\/p>\n<p>\u00a0\u00a0\u00a0 It is a very bad idea to allow root logins via SSH so we need to edit the SSH configuration file to prevent this<\/p>\n<p>1.\u00a0\u00a0\u00a0 Enter the command <em><strong>nano -w \/etc\/ssh\/sshd_config<\/strong><\/em>, this will open up a file in an editor. Using the same method that you used earlier to edit the \u201capt\u201d file, look for the line that reads \u201cPermitRootLogin Yes\u201d, change \u201cyes\u201d to \u201cno\u201d, and save your changes (crtl o\/enter\/crtl x).<br \/>2.\u00a0\u00a0\u00a0 Enter the command <em><strong>etc\/init.d\/ssh restart<\/strong><\/em> and hit enter.<\/p>\n<p>\u00a0\u00a0\u00a0 We can now finish the install remotely from our desktop by simply cutting and pasting commands into a terminal window connected to the Debian box. Linux users can simply open a terminal and connect to the Debian box using SSH. Windows users will need to download a small program that will allow terminal connections to a Linux box. This program, called \u201cputty\u201d, allows a Windows box to use SSH (the secure shell protocol) and can be found here: <a href=\"http:\/\/www.chiark.greenend.org.uk\/%7Esgtatham\/putty\/download.html\" target=\"_blank\">putty<\/a> (just grab \u201cputty.exe\u201d and save it to your desktop). Open up putty, enter the IP address of your Debian box, the \u201cregular user\u201d name (that you created when you installed Debian), and the corresponding password.<\/p>\n<p>\u00a0\u00a0\u00a0 Once you have connected to the server via SSH, you can simply copy and paste the remaining commands (one line at a time unless otherwise noted, followed by hitting the \u201center\u201d key) into the terminal window to complete the installation and configuration. <\/p>\n<p>\u00a0\u00a0\u00a0 The next step is to add an additional repository to our \/etc\/apt\/sources.list file and then perform a quick upgrade (\u201capt\u201d is the package manager for Debian, it is used to download and install any of the tens of thousands of freely available software applications). Use the code below:<\/p>\n<p><em><strong>su<\/strong><\/em><br \/>(enter root password)<br \/><em><strong>nano -w \/etc\/apt\/sources.list<\/strong><\/em><br \/>(cut and paste the following on a new line at the bottom of the file)<br \/>deb http:\/\/download.webmin.com\/download\/repository sarge contrib<br \/>save your changes (crtl o\/enter\/crtl x)<br \/><em><strong>apt-get update<\/strong><\/em><br \/><em><strong>apt-get dist-upgrade<\/strong><\/em> (choose \u201cyes\u201d when asked if you want to continue, if any dialog boxes pop up, hit &#8220;tab&#8221; and then &#8220;enter&#8221;)<br \/><em><strong>reboot<\/strong><\/em><\/p>\n<p>\u00a0\u00a0\u00a0 The reboot will knock you out of the remote session, so wait a minute for the box to reboot, then reconnect with SSH (or putty). We will now install Squid (the web proxy application) and SARG (Squid Analysis Report Generator). Use the code below:<\/p>\n<p><em><strong>su<\/strong><\/em><br \/>(enter root password)<br \/><em><strong>apt-get install squid sarg<\/strong><\/em><br \/>(answer &#8220;yes&#8221; to any questions asked)<\/p>\n<p>\u00a0\u00a0\u00a0 If all went well, Squid and SARG are now installed but we need to edit the Squid configuration file to allow our local network to use the proxy server. While this can be accomplished through the Webmin interface, it involves several detailed steps to do it that way and it is much easier just to edit the underlying configuration file on the command line. Use the code below:<\/p>\n<p><em><strong>nano -w \/etc\/squid\/squid.conf<\/strong><\/em><br \/>(scroll waayyyy down to &#8220;# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&#8221; and uncomment &#8220;acl our_networks&#8221; by removing the \u201c#\u201d at the beginning of the line and then adapt as necessary for your network)<br \/>(mine looks like this: \u201cacl our_networks src 192.168.12.0\/24\u201d)<br \/>(uncomment the\u00a0 &#8220;http_access allow our_networks&#8221; line) <br \/>save your changes (crtl o\/enter\/crtl x)<br \/><em><strong>\/etc\/init.d\/squid restart<\/strong><\/em><\/p>\n<p>\u00a0\u00a0\u00a0 Now we need to install Webmin and any other packages that it depends upon to function properly. Use the code below: <\/p>\n<p><em><strong>apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl mailx webmin<\/strong><\/em> (NOTE: this command should all be on one line!)<br \/>(choose &#8220;yes&#8221; to any questions asked)<\/p>\n<p>\u00a0\u00a0\u00a0 That should do it as far as the installation and configuration goes, now it&#8217;s time to log into Webmin and have a look around. Open up a browser and point it to:<\/p>\n<p>\u00a0https:\/\/the_IP_address_of_your_new_Debian_server:10000 <\/p>\n<p>\u00a0\u00a0\u00a0 Log in as \u201croot\u201d with the same root password that you use to log into the server itself. You should now be looking at the Webmin interface. Take some time and explore a bit; you&#8217;ll get an idea of how powerful this interface really is! You will also discover that quite a few options are either unavailable or not installed\/configured yet. We&#8217;ll get to those in a future article.<\/p>\n<p>\u00a0\u00a0\u00a0 Expand \u201cServers\u201d in the left side panel, then click on \u201cSquid Analysis Report Generator\u201d.\u00a0 Now, click on \u201cGenerate Report Now\u201d. Whoops! Error, no records found. This is because there is no information in the log files to report. We now need to configure the web browsers on all the PC&#8217;s on our LAN to use our new proxy server to get to the internet. Configure the settings in the web browsers of your LAN machines to use a proxy (but ONLY for HTTP!). Enter the IP address of the new server as a proxy and 3128 as the proxy port. (The specifics on how to do this depend on which browser you use.) I also recommend checking the \u201cdo not use proxy for local connections\u201d setting.\u00a0 If you are a Microsoft shop and use IE, you should be able to push this out with a GPO. Now, hit a few web sites from a LAN PC then go back to Webmin and click on \u201cGenerate Report Now\u201d. Click on \u201cView completed report\u201d, then click on the date under \u201cFILE\/PERIOD\u201d. You should see some data. Everything in blue is a link to detailed data, the tiny icons are clickable too. Use the browser \u201cback\u201d button to return to the previous page. (Cool stuff, huh?) <\/p>\n<p>\u00a0\u00a0\u00a0 I must advise you that there is a bug with the software: If you click the \u201cLog Source and Report Destination\u201d icon, there is an option to enter an email address to have reports sent to. When you enable this particular option and enter an email address, subsequent report generation will fail. Bottom line is <strong>do not enable the \u201cEmail report to\u201d option<\/strong>. (This is really no big deal because the emailed reports are nothing but a simple text message with very little useful information anyway). Otherwise, feel free to play with the other settings for SARG.<\/p>\n<p>\u00a0\u00a0\u00a0 One last note: savvy users will probably catch on to the fact that you are watching them and will change their proxy settings back to \u201cconnect to internet directly\u201d to avoid being monitored. To prevent this, you should create an egress (outbound) rule on your firewall that will only allow outbound HTTP traffic if it originates from the proxy server IP (heh heh).<\/p>\n<p>\u00a0\u00a0\u00a0 As always, if you have any questions, comments, problems, or want to make a large charitable donation in my name, please feel free to contact me at thughes@fwpm.com.<\/p>\n<p>RESOURCES:<br \/>Squid: <a href=\"http:\/\/www.squid-cache.org\/\" target=\"_blank\">http:\/\/www.squid-cache.org\/<\/a> <\/p>\n<p>SARG: <a href=\"http:\/\/sarg.sourceforge.net\/sarg.php\" target=\"_blank\">http:\/\/sarg.sourceforge.net\/sarg.php<\/a> <\/p>\n<p>Webmin: <a href=\"http:\/\/www.webmin.com\/\" target=\"_blank\">http:\/\/www.webmin.com\/<\/a> <\/p>\n<p>Debian: <a href=\"http:\/\/www.debian.org\/\" target=\"_blank\">http:\/\/www.debian.org\/<\/a> <\/p>\n<p>Putty: <a href=\"http:\/\/www.chiark.greenend.org.uk\/%7Esgtatham\/putty\/\" target=\"_blank\">http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/<\/a> <\/p>\n<p>Burning CD images: <a href=\"http:\/\/www.petri.co.il\/how_to_write_iso_files_to_cd.htm\" target=\"_blank\">http:\/\/www.petri.co.il\/how_to_write_iso_files_to_cd.htm<\/a> <\/p>\n<div align=\"center\">Copyright 2007 Todd Hughes<\/div>\n<div align=\"center\">\u00a0<\/div>\n<div align=\"center\">{mos_fb_discuss:no_discuss}\u00a0<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ultimate Linux ServerPart 1: Web Proxy \u00a0\u00a0\u00a0 What is the \u201cUltimate Linux Server\u201d? I suppose that if you asked ten different people you would get just as many different answers. My definition is a basic server running a stripped down operating system to which services can be added as necessary. Simplicity and security go hand-in-hand; &#8230; <a title=\"Ultimate Linux Server Part 1: Web Proxy\" class=\"read-more\" href=\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\" aria-label=\"Read more about Ultimate Linux Server Part 1: Web Proxy\">Read more<\/a><\/p>\n","protected":false},"author":347,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59],"tags":[210,475,483],"class_list":["post-832","post","type-post","status-publish","format-standard","hentry","category-tutorials","tag-publications","tag-tutorials","tag-ultimate-linux-server-part-1-web-proxy"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ultimate Linux Server Part 1: Web Proxy - The Force Field Podcast<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ultimate Linux Server Part 1: Web Proxy - The Force Field Podcast\" \/>\n<meta property=\"og:description\" content=\"Ultimate Linux ServerPart 1: Web Proxy \u00a0\u00a0\u00a0 What is the \u201cUltimate Linux Server\u201d? I suppose that if you asked ten different people you would get just as many different answers. My definition is a basic server running a stripped down operating system to which services can be added as necessary. Simplicity and security go hand-in-hand; ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\" \/>\n<meta property=\"og:site_name\" content=\"The Force Field Podcast\" \/>\n<meta property=\"article:published_time\" content=\"2007-11-12T00:12:47+00:00\" \/>\n<meta name=\"author\" content=\"Todd Hughes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Todd Hughes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\"},\"author\":{\"name\":\"Todd Hughes\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/person\/cd69a96c1cfd7e99565fb2aa5d43afb0\"},\"headline\":\"Ultimate Linux Server Part 1: Web Proxy\",\"datePublished\":\"2007-11-12T00:12:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\"},\"wordCount\":2058,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#organization\"},\"keywords\":[\"Publications\",\"Tutorials\",\"Ultimate Linux Server Part 1: Web Proxy\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\",\"url\":\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\",\"name\":\"Ultimate Linux Server Part 1: Web Proxy - The Force Field Podcast\",\"isPartOf\":{\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#website\"},\"datePublished\":\"2007-11-12T00:12:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.theforcefield.net\/podcast\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ultimate Linux Server Part 1: Web Proxy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#website\",\"url\":\"https:\/\/www.theforcefield.net\/podcast\/\",\"name\":\"The Force Field Podcast\",\"description\":\"A podcast for and about IT Service Providers\",\"publisher\":{\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.theforcefield.net\/podcast\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#organization\",\"name\":\"The Force Field Podcast\",\"url\":\"https:\/\/www.theforcefield.net\/podcast\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.theforcefield.net\/podcast\/wp-content\/uploads\/2022\/06\/header.png\",\"contentUrl\":\"https:\/\/www.theforcefield.net\/podcast\/wp-content\/uploads\/2022\/06\/header.png\",\"width\":990,\"height\":100,\"caption\":\"The Force Field Podcast\"},\"image\":{\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/person\/cd69a96c1cfd7e99565fb2aa5d43afb0\",\"name\":\"Todd Hughes\",\"url\":\"https:\/\/www.theforcefield.net\/podcast\/author\/thughes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ultimate Linux Server Part 1: Web Proxy - The Force Field Podcast","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/","og_locale":"en_US","og_type":"article","og_title":"Ultimate Linux Server Part 1: Web Proxy - The Force Field Podcast","og_description":"Ultimate Linux ServerPart 1: Web Proxy \u00a0\u00a0\u00a0 What is the \u201cUltimate Linux Server\u201d? I suppose that if you asked ten different people you would get just as many different answers. My definition is a basic server running a stripped down operating system to which services can be added as necessary. Simplicity and security go hand-in-hand; ... Read more","og_url":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/","og_site_name":"The Force Field Podcast","article_published_time":"2007-11-12T00:12:47+00:00","author":"Todd Hughes","twitter_misc":{"Written by":"Todd Hughes","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#article","isPartOf":{"@id":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/"},"author":{"name":"Todd Hughes","@id":"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/person\/cd69a96c1cfd7e99565fb2aa5d43afb0"},"headline":"Ultimate Linux Server Part 1: Web Proxy","datePublished":"2007-11-12T00:12:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/"},"wordCount":2058,"commentCount":0,"publisher":{"@id":"https:\/\/www.theforcefield.net\/podcast\/#organization"},"keywords":["Publications","Tutorials","Ultimate Linux Server Part 1: Web Proxy"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/","url":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/","name":"Ultimate Linux Server Part 1: Web Proxy - The Force Field Podcast","isPartOf":{"@id":"https:\/\/www.theforcefield.net\/podcast\/#website"},"datePublished":"2007-11-12T00:12:47+00:00","breadcrumb":{"@id":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.theforcefield.net\/podcast\/ultimate-linux-server-part-1-web-proxy-660\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.theforcefield.net\/podcast\/"},{"@type":"ListItem","position":2,"name":"Ultimate Linux Server Part 1: Web Proxy"}]},{"@type":"WebSite","@id":"https:\/\/www.theforcefield.net\/podcast\/#website","url":"https:\/\/www.theforcefield.net\/podcast\/","name":"The Force Field Podcast","description":"A podcast for and about IT Service Providers","publisher":{"@id":"https:\/\/www.theforcefield.net\/podcast\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.theforcefield.net\/podcast\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.theforcefield.net\/podcast\/#organization","name":"The Force Field Podcast","url":"https:\/\/www.theforcefield.net\/podcast\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/logo\/image\/","url":"https:\/\/www.theforcefield.net\/podcast\/wp-content\/uploads\/2022\/06\/header.png","contentUrl":"https:\/\/www.theforcefield.net\/podcast\/wp-content\/uploads\/2022\/06\/header.png","width":990,"height":100,"caption":"The Force Field Podcast"},"image":{"@id":"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.theforcefield.net\/podcast\/#\/schema\/person\/cd69a96c1cfd7e99565fb2aa5d43afb0","name":"Todd Hughes","url":"https:\/\/www.theforcefield.net\/podcast\/author\/thughes\/"}]}},"_links":{"self":[{"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/posts\/832","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/users\/347"}],"replies":[{"embeddable":true,"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/comments?post=832"}],"version-history":[{"count":0,"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/posts\/832\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/media?parent=832"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/categories?post=832"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.theforcefield.net\/podcast\/wp-json\/wp\/v2\/tags?post=832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}