<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Security Archives - VirtJunkie</title>
	<atom:link href="/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>/category/security/</link>
	<description>Virtualization, Automation, and anything else that might be on my mind</description>
	<lastBuildDate>Mon, 27 Apr 2020 13:00:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.2</generator>

<image>
	<url>/wp-content/uploads/2020/04/cropped-vj4-150x150.png</url>
	<title>Security Archives - VirtJunkie</title>
	<link>/category/security/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Set Up Enpass With HTTPS Protected WebDAV and Ditch LastPass</title>
		<link>/2020/04/27/ditch-lastpass-for-enpass-webdav-https-traefik/</link>
					<comments>/2020/04/27/ditch-lastpass-for-enpass-webdav-https-traefik/#respond</comments>
		
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Mon, 27 Apr 2020 13:00:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Servers]]></category>
		<guid isPermaLink="false">http://www.virtjunkie.com/?p=1249</guid>

					<description><![CDATA[<p>It's time to ditch cloud based password managers. There.. I said it. What we are doing when we use them is giving ownership and management of our trusted secrets to someone else, and hoping that they will be able to protect them from bad guys, and make sure they are available when we need them.</p>
<p>The post <a href="/2020/04/27/ditch-lastpass-for-enpass-webdav-https-traefik/">Set Up Enpass With HTTPS Protected WebDAV and Ditch LastPass</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>It&#8217;s time to ditch cloud based password managers. There.. I said it. What we are doing when we use them is giving ownership and management of our trusted secrets to someone else, and hoping that they will be able to protect them from bad guys, and make sure they are available when we need them.</p>



<p>That&#8217;s a heck of an ask, isn&#8217;t it? I&#8217;ve been a LastPass customer for a very, very long time.. I use it to share secrets with my family, I use it on my mobile device to log into apps. It&#8217;s a safe bet to say it&#8217;s a critical piece of how I operate, and they have never once let me down. That said, if they asked for money to continue using their service, I&#8217;d have to pay. If they had a security event where secrets were compromised or if they lost my data, I&#8217;d be in very, very bad shape.</p>



<p>In this article, I will talk about how to set up a WebDAV share that&#8217;s protected by HTTPS using Traefik, Let&#8217;s Encrypt, and a WebDAV container on your own server, and use it to sync your secrets with devices.</p>



<span id="more-1249"></span>



<p>Before I begin, it&#8217;s important to understand that using WebDAV isn&#8217;t the only way to sync your secrets with Enpass. <a rel="noreferrer noopener" href="https://www.enpass.io/docs/manual-desktop/sync.html#supclouds" target="_blank">There are others</a>:</p>



<ul><li>Dropbox</li><li>Google Drive</li><li>OneDrive (Personal/Business)</li><li>iCloud</li><li>Box</li><li>Folder sync</li></ul>



<h2 class="wp-block-heading">Base Server Set Up</h2>



<h3 class="wp-block-heading">Get a VPS</h3>



<p>First thing we need is a server that is public internet facing. The easiest way to do this is to use a service that provides virtual private servers. I like Vultr because of their price/performance/feature availability ratio. They are cheaper than DigitalOcean and AWS, as easy, if not easier to manage, and have the scale you need to put your data pretty much wherever you want. If you do use Vultr, please do me a favor and use <a rel="noreferrer noopener" href="https://www.vultr.com/?ref=8531966-6G" target="_blank">this link</a> to sign up. I&#8217;ll get a little kickback, but you&#8217;ll get $100 USD to use on the site in your first month.</p>



<div class="wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center" style="grid-template-columns:24% auto"><figure class="wp-block-media-text__media"><a href="https://www.vultr.com/?ref=8531966-6G" target="_blank" rel="noopener noreferrer"><img fetchpriority="high" decoding="async" width="283" height="252" src="https://new.virtjunkie.com/wp-content/uploads/2020/04/2020-04-26_09-57.png" alt="" class="wp-image-1252"/></a></figure><div class="wp-block-media-text__content">
<p class="has-text-align-left has-normal-font-size">The OS doesn&#8217;t really matter, as long as you can install docker on it. A very small VPS will suffice, and mine costs $3.50 USD/Month.</p>
</div></div>



<h3 class="wp-block-heading">Harden the OS</h3>



<p>I won&#8217;t go into very much depth with this subject, but here are a few general guidelines:</p>



<ul><li>Disable root login via SSH</li><li>Require public key authentication for SSH sessions</li><li>Enable multi factor authentication for your remote user</li><li>Only install packages you need</li><li>Ensure all updates are installed, and continue to do so on a regular basis</li></ul>



<h2 class="wp-block-heading">Set Up Docker, Traefik, and WebDAV</h2>



<p>All code is on the GitHub repository I use to share all code for this site. You can find it here: <a href="https://github.com/jonhowe/Virtjunkie.com/tree/master/DitchLastPass">https://github.com/jonhowe/Virtjunkie.com/tree/master/DitchLastPass</a></p>



<p>First and foremost, this will not be a tutorial on how to administer Docker, WebDAV, or especially Traefik, but I&#8217;ll give you the exact steps and code for setting this up yourself, and provide some links at the end you can use to learn more about these topics.</p>



<p>All of the following steps will be executed on your VPS, so please sure you are connected to it via SSH or a similar terminal window.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>We&#8217;ll be using an external docker bridge network in this configuration, the following command will create it</p>



<pre class="urvanov-syntax-highlighter-plain-tag">docker network create proxy</pre>
</div></div>
</div></div>
</div></div>
</div></div>
</div></div>
</div></div>



<h3 class="wp-block-heading">Create Traefik Configuration</h3>



<p>First of all, let&#8217;s create the directory structure we&#8217;ll need for Traefik (line 1). We&#8217;ll also be creating a file that will be used for storing SSL certificates (line 2), and setting permissions on it (line 3).</p>



<pre class="urvanov-syntax-highlighter-plain-tag">mkdir -p $HOME/docker/traefik/data
touch $HOME/docker/traefik/data/acme.json
chmod 600 $HOME/docker/traefik/data/acme.json</pre>



<h4 class="wp-block-heading">Create Traefik Configuration</h4>



<p>Create a new file in the <strong><code>traefik/data</code></strong> directory we just created called <code><strong>traefik.yml</strong></code> with the contents below.</p>



<p>Changes Required:</p>



<ul><li>Line 24: Modify your email address</li></ul>



<pre class="urvanov-syntax-highlighter-plain-tag">#File Path
#$HOME/docker/traefik/data/traefik.yml

#http://www.virtjunkie.com/ditch-lastpass-for-enpass-webdav-https-traefik/
#https://github.com/jonhowe/Virtjunkie.com/tree/master/DitchLastPass

api:
  dashboard: false

entryPoints:
  http:
    address: &quot;:80&quot;
  https:
    address: &quot;:443&quot;

providers:
  docker:
    endpoint: &quot;unix:///var/run/docker.sock&quot;
    exposedByDefault: false

certificatesResolvers:
  http:
    acme:
      email: your.email@domain.com
      storage: acme.json
      httpChallenge:
        entryPoint: http</pre>



<h4 class="wp-block-heading">Define Traefik Container</h4>



<p>Create a new file in the <strong><code>traefik/data</code></strong> directory called <code><strong>docker-compose.yml</strong></code></p>



<p>Changes Required:</p>



<ul><li>Line 30: Modify to fit the hostname of your server</li><li>Line 31: Add in credentials compatible with basic auth. You can use the output from the command below to achieve this.<ul><li><code><strong>echo $(htpasswd -nb [your user] [your pass]) | sed -e s/\$/\$\$/g</strong></code></li></ul></li><li>Line 35: Modify to fit the hostname of your server</li></ul>



<pre class="urvanov-syntax-highlighter-plain-tag">#File Path
#$HOME/docker/traefik/docker-compose.yml

#http://www.virtjunkie.com/ditch-lastpass-for-enpass-webdav-https-traefik/
#https://github.com/jonhowe/Virtjunkie.com/tree/master/DitchLastPass

version: '3'

services:
  traefik:
    image: traefik:v2.0
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data/traefik.yml:/traefik.yml:ro
      - ./data/acme.json:/acme.json
      - ./data/logs/:/logs/
    labels:
      - &quot;traefik.enable=true&quot;
      - &quot;traefik.http.routers.traefik.entrypoints=http&quot;
      - &quot;traefik.http.routers.traefik.rule=Host(`custom.hostname.com`)&quot;
      - &quot;traefik.http.middlewares.traefik-auth.basicauth.users=traefikuser:htpasswd-encrypted-string&quot;
      - &quot;traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https&quot;
      - &quot;traefik.http.routers.traefik.middlewares=traefik-https-redirect&quot;
      - &quot;traefik.http.routers.traefik-secure.entrypoints=https&quot;
      - &quot;traefik.http.routers.traefik-secure.rule=Host(`custom.hostname.com`)&quot;
      - &quot;traefik.http.routers.traefik-secure.middlewares=traefik-auth&quot;
      - &quot;traefik.http.routers.traefik-secure.tls=true&quot;
      - &quot;traefik.http.routers.traefik-secure.tls.certresolver=http&quot;
      - &quot;traefik.http.routers.traefik-secure.service=api@internal&quot;

networks:
  proxy:</pre>



<h4 class="wp-block-heading">Start Traefik Container</h4>



<pre class="urvanov-syntax-highlighter-plain-tag">cd $HOME/docker/traefik
docker-compose up -d</pre>



<h3 class="wp-block-heading">Create WebDAV Configuration</h3>



<p>Before we begin, we need to create the directory structure for the WebDAV container. Use the following command to do so.</p>



<pre class="urvanov-syntax-highlighter-plain-tag">mkdir -p $HOME/docker/webdav/dav/</pre>



<p>We&#8217;ll be using a <a rel="noreferrer noopener" href="https://hub.docker.com/r/bytemark/webdav/" target="_blank">container authored by bytemark</a> for this project. It&#8217;s essentially just apache with the webdav module installed. As of today, the container is less than 100MB.</p>



<h4 class="wp-block-heading">Define WebDAV Application Configuration</h4>



<p>Changes Required:</p>



<ul><li>Line 15: Username used to authenticate to the WebDAV service.</li><li>Line 16: Password you&#8217;ll use to authenticate to the WebDAV service. This is stored in plaintext in this example, but storing the variable in an external file is best practice.</li><li>Line 17: Modify to fit the hostname of your server</li><li>Line 27: Modify to fit the hostname of your server</li><li>Line 31: Modify to fit the hostname of your server</li></ul>



<pre class="urvanov-syntax-highlighter-plain-tag">#File path
#$HOME/docker/webdav/docker-compose.yml

#http://www.virtjunkie.com/ditch-lastpass-for-enpass-webdav-https-traefik/
#https://github.com/jonhowe/Virtjunkie.com/tree/master/DitchLastPass

version: '3'
services:
  webdav:
    image: bytemark/webdav
    container_name: webdav
    restart: unless-stopped
    environment:
      AUTH_TYPE: Basic
      USERNAME: your-username
      PASSWORD: secure-passsword
      SERVER_NAMES: your-dav.domain.com
    networks:
      - proxy
    security_opt:
      - no-new-privileges:true
    volumes:
      - ./dav:/var/lib/dav
    labels:
      - &quot;traefik.enable=true&quot;
      - &quot;traefik.http.routers.webdav.entrypoints=http&quot;
      - &quot;traefik.http.routers.webdav.rule=Host(`your-dav.domain.com`)&quot;
      - &quot;traefik.http.middlewares.webdav-https-redirect.redirectscheme.scheme=https&quot;
      - &quot;traefik.http.routers.webdav.middlewares=webdav-https-redirect&quot;
      - &quot;traefik.http.routers.webdav-secure.entrypoints=https&quot;
      - &quot;traefik.http.routers.webdav-secure.rule=Host(`your-dav.domain.com`)&quot;
      - &quot;traefik.http.routers.webdav-secure.tls=true&quot;
      - &quot;traefik.http.routers.webdav-secure.tls.certresolver=http&quot;
      - &quot;traefik.http.routers.webdav-secure.service=webdav&quot;
      - &quot;traefik.http.services.webdav.loadbalancer.server.port=80&quot;
      - &quot;traefik.docker.network=proxy&quot;
networks:
  proxy:
    external: true</pre>



<h4 class="wp-block-heading">Start the WebDAV Container</h4>



<p>Run the following command to bring up the webdav container</p>



<pre class="urvanov-syntax-highlighter-plain-tag">cd $HOME/docker/webdav
docker-compose up -d</pre>



<h3 class="wp-block-heading">Bringing it all together</h3>



<h4 class="wp-block-heading">Summary</h4>



<p>At this point you should have  two containers running on your VPS. Traefik is acting as a reverse proxy for the WebDAV container, and is providing SSL encryption to it. The SSL certificate is provided by <a rel="noreferrer noopener" href="https://letsencrypt.org/" target="_blank">Let&#8217;s Encrypt</a>.</p>



<h4 class="wp-block-heading">Final Directory Structure</h4>



<pre class="urvanov-syntax-highlighter-plain-tag">user@webdav-server:~/docker$ tree
.
├── traefik
│&amp;nbsp;&amp;nbsp; ├── data
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; ├── acme.json
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── traefik.yml
│&amp;nbsp;&amp;nbsp; └── docker-compose.yml
└── webdav
    ├── dav
    │&amp;nbsp;&amp;nbsp; ├── data
    │&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── Enpass
    │&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;     └── vault.enpassdbsync
    │&amp;nbsp;&amp;nbsp; ├── DavLock
    │&amp;nbsp;&amp;nbsp; ├── DavLock.dir
    │&amp;nbsp;&amp;nbsp; └── DavLock.pag
    └── docker-compose.yml

6 directories, 8 files</pre>



<h2 class="wp-block-heading">Migrate to Enpass Using WebDAV</h2>



<p>Now that we&#8217;ve got a functional and secure WebDAV instance, we just need to migrate to it. These steps are pretty easy, but I want to include them to be comprehensive.</p>



<h3 class="wp-block-heading">Export Secrets From Lastpass</h3>



<p>To make our transition from Lastpass as seamless as possible, we&#8217;ll export our secrets so we can import them into Enpass. The easiest way to do this is from the Lastpass Vault.</p>



<div class="wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img decoding="async" width="359" height="444" src="https://www.virtjunkie.com/wp-content/uploads/2020/04/2020-04-26_11-51.png" alt="" class="wp-image-1271" srcset="/wp-content/uploads/2020/04/2020-04-26_11-51.png 359w, /wp-content/uploads/2020/04/2020-04-26_11-51-243x300.png 243w" sizes="(max-width: 359px) 100vw, 359px" /></figure><div class="wp-block-media-text__content">
<p class="has-large-font-size">Step 1 &#8211; Open Your Vault</p>
</div></div>



<hr class="wp-block-separator"/>



<div class="wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img decoding="async" width="574" height="986" src="https://www.virtjunkie.com/wp-content/uploads/2020/04/2020-04-26_11-55.png" alt="" class="wp-image-1272" srcset="/wp-content/uploads/2020/04/2020-04-26_11-55.png 574w, /wp-content/uploads/2020/04/2020-04-26_11-55-175x300.png 175w" sizes="(max-width: 574px) 100vw, 574px" /></figure><div class="wp-block-media-text__content">
<p class="has-large-font-size">Step 2 &#8211; Export Secrets</p>



<ol><li>Select &#8220;More Options&#8221;</li><li>Select &#8220;Advanced&#8221;</li><li>Select &#8220;Export&#8221;</li><li>If prompted, enter your Master Password, and note where the CSV export file name and path.</li></ol>
</div></div>



<h3 class="wp-block-heading">Import Secrets To Enpass</h3>



<p>Pretty easy stuff here, just open enpass, and kick off the import.</p>



<div class="wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="883" height="949" src="https://www.virtjunkie.com/wp-content/uploads/2020/04/Peek-2020-04-26-12-55.gif" alt="" class="wp-image-1287"/></figure><div class="wp-block-media-text__content">
<p class="has-normal-font-size">Import Steps:</p>



<ol><li>Open Enpass</li><li>Select Menu</li><li>Select File</li><li>Select Import</li><li>When prompted to &#8220;Select from where you want to import your data into Enpass&#8221;, select Lastpass</li><li>Navigate to the directory you exported the CSV to</li><li>Select continue to finish the import</li></ol>
</div></div>



<h3 class="wp-block-heading">Connect EnPass To WebDav Share</h3>



<p>At this point you&#8217;ve got a functioning WebDAV service protected by SSL, as well as a local instance of Enpass that has your lastpass secrets. We just need to connect EnPass to your Webdav instance to allow us to sync to it. Once you have <a rel="noreferrer noopener" href="https://www.enpass.io/downloads/" target="_blank">EnPass Installed</a>, follow the steps below to connect it to your WebDAV Service.</p>



<div class="wp-block-media-text alignwide has-media-on-the-right is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="881" height="558" src="https://www.virtjunkie.com/wp-content/uploads/2020/04/Peek-2020-04-26-12-20.gif" alt="" class="wp-image-1278"/></figure><div class="wp-block-media-text__content">
<p>Connection Steps:</p>



<ol><li>Open Enpass</li><li>Select Settings</li><li>Select Vaults</li><li>Select the Vault you&#8217;d like to sync</li><li>Enter the URL of your server, and ensure to include the https:// prefix</li><li>Enter the username and password created in Section 2.2.1</li><li>Ensure that the checkbox for &#8220;Bypass SSL Certificate Validation&#8221; is unchecked. We want to validate the SSL certificate since we are using Let&#8217;s Encrypt.</li></ol>
</div></div>



<h2 class="wp-block-heading">Risks</h2>



<p>There are some things that LastPass does for us that we don&#8217;t get with this solution. In particular, we are somewhat exposed to brute force attempts to the webdav service. Also, LastPass has a number of email notifications that go out when things happen in your vault. We are really only notified when a new client joins the vault in Enpass.</p>



<h2 class="wp-block-heading">Trafeik Resources</h2>



<p><a href="https://medium.com/@containeroo/traefik-2-0-docker-a-simple-step-by-step-guide-e0be0c17cfa5">https://medium.com/@containeroo/traefik-2-0-docker-a-simple-step-by-step-guide-e0be0c17cfa5</a><br><a href="https://containo.us/blog/traefik-2-0-docker-101-fc2893944b9d/">https://containo.us/blog/traefik-2-0-docker-101-fc2893944b9d/</a></p>
<p>The post <a href="/2020/04/27/ditch-lastpass-for-enpass-webdav-https-traefik/">Set Up Enpass With HTTPS Protected WebDAV and Ditch LastPass</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2020/04/27/ditch-lastpass-for-enpass-webdav-https-traefik/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SSH Local Port Forwarding Made Easy</title>
		<link>/2007/03/14/ssh-local-port-forwarding-made-easy/</link>
					<comments>/2007/03/14/ssh-local-port-forwarding-made-easy/#respond</comments>
		
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Wed, 14 Mar 2007 20:03:07 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Servers]]></category>
		<guid isPermaLink="false">http://www.jonhoweonline.com/blog/node/115</guid>

					<description><![CDATA[<p>I&#8217;ve been using this for a while now, and have found it a great little trick for accessing services that are blocked due to a firewall. It&#8217;s pretty simple, you just have a few parts to the command string.  The first command argument tells ssh to forward a local port (LP) to a remote machine [&#8230;]</p>
<p>The post <a href="/2007/03/14/ssh-local-port-forwarding-made-easy/">SSH Local Port Forwarding Made Easy</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve been using this for a while now, and have found it a great little trick for accessing services that are blocked due to a firewall.</p>
<p>It&#8217;s pretty simple, you just have a few parts to the command string.  The first command argument tells ssh to forward a local port (LP) to a remote machine Remote) on a remote port (RP).  The second part is something you&#8217;re probably familiar with, the destination that you&#8217;re connecting to (Destination).</p>
<p>An example with the abbreviations above would be:</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">ssh -L LP:Remote:RP Destination</pre><p></p>
<p>Say for example, you ran the command &#8220;ssh -L 1234:myInternalServer.com:80 myExternalServer&#8221;.  In order to access port 80 on myInternalServer.com you&#8217;d open up your web browser and point it to  It&#8217;s as easy as that!</p>
<p>The post <a href="/2007/03/14/ssh-local-port-forwarding-made-easy/">SSH Local Port Forwarding Made Easy</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2007/03/14/ssh-local-port-forwarding-made-easy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>HowTo Restore Grub Boot Password In Ubuntu Dapper</title>
		<link>/2006/10/06/howto-restore-grub-boot-password-in-ubuntu-dapper/</link>
					<comments>/2006/10/06/howto-restore-grub-boot-password-in-ubuntu-dapper/#respond</comments>
		
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Fri, 06 Oct 2006 07:32:24 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://www.jonhoweonline.com/blog/node/104</guid>

					<description><![CDATA[<p>A cardinal rule with computer security is that if you have physical access to a computer, you can pretty much do whatever your heart desires to it. Luckily, this includes removing the grub password from a linux box so that you can restore the root password&#8230; Your best course of action in doing this is [&#8230;]</p>
<p>The post <a href="/2006/10/06/howto-restore-grub-boot-password-in-ubuntu-dapper/">HowTo Restore Grub Boot Password In Ubuntu Dapper</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>A cardinal rule with computer security is that if you have physical access to a computer, you can pretty much do whatever your heart desires to it.  Luckily, this includes removing the grub password from a linux box <a href="/blog/node/90">so that you can restore the root password&#8230;</a></p>
<p>Your best course of action in doing this is to download a bootable linux cd.  <a href="http://www.remote-exploit.org/index.php/BackTrack">The one that I tested this with</a> is a worthwhile download even if you&#8217;re just reading this for fun.</p>
<p><span id="more-93"></span></p>
<p>There are x steps involved with removing grub passwords:</p>
<ol>
<li><strong>Boot</strong> Backtrack Live Cd</li>
<li>Log in, and navigate to the &#8220;<strong>/mnt</strong>&#8221; directory</li>
<li>Then go to the partition that corresponds to your hard drive (if you only have one hard drive it&#8217;s likely &#8220;<strong>hda1</strong>&#8220;, or &#8220;<strong>/mnt/hda1</strong>&#8220;</li>
<li>Within that directory, navigate to &#8220;boot/grub&#8221;, and open &#8220;<strong>menu.lst</strong>&#8221; in a text editor</li>
<li>Comment out all lines that start with &#8220;<strong>password</strong>&#8220;</li>
<li>Restart Computer, and enjoy a  password-less grub bootloader.</li>
</ol>
<p>Feel free to leave your mind in the comments and I&#8217;ll get back to you as soon as I can.</p>
<p>Jon</p>
<p>The post <a href="/2006/10/06/howto-restore-grub-boot-password-in-ubuntu-dapper/">HowTo Restore Grub Boot Password In Ubuntu Dapper</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2006/10/06/howto-restore-grub-boot-password-in-ubuntu-dapper/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Scan a File with Multiple AV Scanners at once Online</title>
		<link>/2006/07/08/scan_a_file_with_multiple_av_scanners_at_once_online/</link>
					<comments>/2006/07/08/scan_a_file_with_multiple_av_scanners_at_once_online/#respond</comments>
		
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Sat, 08 Jul 2006 19:05:11 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://www.jonhoweonline.com/blog/?p=81</guid>

					<description><![CDATA[<p>I recently got a file that could have been contaminated by some kind of a virus. I decided not to risk my newly installed, and unprotected Win 2k3 Server installation, so I found a great scanner online that scans it with multiple viruses at once. It&#8217;s located here. Later, Jon Howe</p>
<p>The post <a href="/2006/07/08/scan_a_file_with_multiple_av_scanners_at_once_online/">Scan a File with Multiple AV Scanners at once Online</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I recently got a file that could have been contaminated by some kind of a virus.  I decided not to risk my newly installed, and unprotected Win 2k3 Server installation, so I found a great scanner online that scans it with multiple viruses at once.</p>
<p>It&#8217;s located <a href="http://virusscan.jotti.org/">here</a>.</p>
<p>Later,<br />
Jon Howe</p>
<p>The post <a href="/2006/07/08/scan_a_file_with_multiple_av_scanners_at_once_online/">Scan a File with Multiple AV Scanners at once Online</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2006/07/08/scan_a_file_with_multiple_av_scanners_at_once_online/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Protecting Your Server From SSH Bruteforce Attacks and Portscans</title>
		<link>/2006/05/05/protecting_your_server_from_ssh_bruteforce_attacks_and_portscans/</link>
					<comments>/2006/05/05/protecting_your_server_from_ssh_bruteforce_attacks_and_portscans/#respond</comments>
		
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Fri, 05 May 2006 20:26:23 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://www.jonhoweonline.com/blog/?p=75</guid>

					<description><![CDATA[<p>First of all, this entry is not being entered in Drupal 4.7, I haven&#8217;t had the time to get that set up yet. The other day I decided to take a look at my server logs, which is something that I should have been doing all along. I found out that more than one host [&#8230;]</p>
<p>The post <a href="/2006/05/05/protecting_your_server_from_ssh_bruteforce_attacks_and_portscans/">Protecting Your Server From SSH Bruteforce Attacks and Portscans</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>First of all, this entry is not being entered in Drupal 4.7, I haven&#8217;t had the time to get that set up yet.</p>
<p>The  other day I decided to take a look at my server logs, which is something that I should have been doing all along.  I found out that more than one host has been brute force / dictionary scanning my ssh server.  I decided that even though my passwords are strong, that I really didn&#8217;t want people to have the ability to do that.  Fortunately for me there are some tools out there that work great for this very purpose.  The one that I chose is called <a href="http://denyhosts.sourceforge.net/">DenyHosts</a>.</p>
<p>Basically how denyhosts works is it scans your security log (there are several options as to what distro type) for different strings, and if more than X number of failed access attempts occur the attacking host is added to your hosts.deny file.</p>
<p>Now, this functionality is found in a number of programs.  The great thing about denyhosts is that (optionally) every hour your list is synchronized with a server so that you&#8217;re protection is increased greatly.</p>
<p>I used <a href="http://howtoforge.net/preventing_ssh_dictionary_attacks_with_denyhosts">this tutorial</a> to install it on my computer.  The only change that I would make to it is to use denyhosts 2.4 instead of 2.0, which can be found at the <a href="http://denyhosts.sourceforge.net/">denyHosts</a> site.</p>
<p>I got started on security and I didn&#8217;t want to stop quite yet.  I also set up a portscan detector that blocks hosts that portscan you with iptables.  It&#8217;s called portsentry, and can be installed with apt using:<br />
<code>apt-get install portsentry</code>.</p>
<p>I set up both of these utilities to email me immediately when an event occurs.</p>
<p>One note that I should add is that when I set up denyhosts for the first time it parsed through my existing security log and found that my current address had more than the threshold of incorrect passwords, so it blocked me from making a ssh connection to my server.  To fix this just make sure that you check through your security log and make sure that you have less than the maximum amount of denied login attempts before you terminate the ssh connection.</p>
<p>As always, if you have any questions email me at howe -dot- jon -at- gmail -dot- com.</p>
<p>Later,<br />
Jon Howe</p>
<p>The post <a href="/2006/05/05/protecting_your_server_from_ssh_bruteforce_attacks_and_portscans/">Protecting Your Server From SSH Bruteforce Attacks and Portscans</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2006/05/05/protecting_your_server_from_ssh_bruteforce_attacks_and_portscans/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Use the Tor Network for Application Anonymity</title>
		<link>/2006/01/02/how_to_use_the_tor_network_for_application_anonymity/</link>
					<comments>/2006/01/02/how_to_use_the_tor_network_for_application_anonymity/#respond</comments>
		
		<dc:creator><![CDATA[Jon]]></dc:creator>
		<pubDate>Mon, 02 Jan 2006 05:54:21 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://www.jonhoweonline.com/blog/?p=51</guid>

					<description><![CDATA[<p>The Tor Network uses something called Onion Routing. Tor&#8217;s functionality is pretty simple. You run a daemon on a computer on your network (the tor client) and it connects to a server inside the tor network. Once your transmitted packets are inside the tor network they are routed through the different servers in a way [&#8230;]</p>
<p>The post <a href="/2006/01/02/how_to_use_the_tor_network_for_application_anonymity/">How to Use the Tor Network for Application Anonymity</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://tor.eff.org/">Tor Network</a> uses something called <a href="http://en.wikipedia.org/wiki/Onion_Routing">Onion Routing</a>.  Tor&#8217;s functionality is pretty simple.  You run a daemon on a computer on your network (the tor client) and it connects to a server inside the tor network.  Once your transmitted packets are inside the tor network they are routed through the different servers in a way so that no server knows the complete path that a packet takes.  On top of this, all transmission inside the tor network is encrypted in order to prevent <a href="http://en.wikipedia.org/wiki/Man_in_the_middle">Man in the Middle Attacks</a>.</p>
<p>The network is not easily accessed directly though. The easiest way to utilize tor as a functional service for your network is to use something called <a href="www.privoxy.org/">Privoxy</a>.  Privoxy acts as a middleman between tor and the computers on your network.</p>
<p>We&#8217;ll talk more about the configuration of these later, but first we need to install them.</p>
<p>I&#8217;m going to assume, as usual, that you&#8217;re Debian as your distribution.</p>
<p><strong><br />
Note:  I had some problems getting tor to install properly with apt.  In order to fix this I needed to add the following lines to my /etc/apt/sources.list file:<br />
testing</strong></p>
<p><strong>deb http://ftp.egr.msu.edu/debian/ testing main non-free contrib</strong></p>
<p><strong>deb-src http://ftp.egr.msu.edu/debian testing main non-free contrib</strong></p>
<p><strong>I also added the following lines to my /etc/apt/prefrences file to make it so that apt doesn&#8217;t try to get packages from the testing branch all of the time:</strong></p>
<p><strong>Package: *<br />
Pin: release a=testing<br />
Pin-Priority: 999<br />
</strong></p>
<p>Stay tuned for a tutorial on how to use the previous process, which is called apt pinning.</p>
<p>Next we install Privoxy and Tor using the following command:<br />
<code>apt-get -t testing tor privoxy</code></p>
<p>Now add the following line to your <strong>/etc/privoxy/config</strong>:<br />
<code>forward-socks4a / localhost:9050 .</code></p>
<p>If you&#8217;re installing this on your own computer then you can leave this as it is.  Otherwise change the <code>listen-address from 127.0.0.1 to the ip address that the interface that goes to the network uses.  This line reads: <code>listen-address  192.168.3.2:8118</code> in my config file.</code></p>
<p>Now just start the daemons:<br />
<code>/etc/init.d/tor start</code><br />
<code>/etc/init.d/privoxy start</code></p>
<p>All that&#8217;s left is configuring your applications to use the proxy.  Every app has different methods of using a proxy, and some don&#8217;t even have a way to access a proxy.  If you&#8217;re trying to run something like firefox anonymously, then just go  to <strong>connection settings</strong> and change the <strong>Http Proxy</strong> and the <strong>Https Proxy</strong> to the IP address and the port that privoxy is running on.  If you want to use something like Aol Instant Messenger you can use tor directly by going into the settings and changing the <strong>Socks 4</strong> proxy to the IP address that tor is running on and the port number 9050.</p>
<p>After doing this all connections will be running through the anonymous tor network.  If you have any questions feel free to leave me a comment, and I will answer.</p>
<p>Later,<br />
Jon Howe</p>
<p>The post <a href="/2006/01/02/how_to_use_the_tor_network_for_application_anonymity/">How to Use the Tor Network for Application Anonymity</a> appeared first on <a href="/">VirtJunkie</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2006/01/02/how_to_use_the_tor_network_for_application_anonymity/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
