<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="https://www.digitalreplica.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.digitalreplica.org/" rel="alternate" type="text/html" /><updated>2021-05-16T17:51:38-04:00</updated><id>https://www.digitalreplica.org/feed.xml</id><title type="html">DigitalReplica</title><subtitle>A Hacker's Guide to the Universe</subtitle><author><name>Danny Rappleyea</name></author><entry><title type="html">AWS Multi-Account SSO Setup Guide</title><link href="https://www.digitalreplica.org/articles/aws-account-setup-guide/" rel="alternate" type="text/html" title="AWS Multi-Account SSO Setup Guide" /><published>2021-03-17T00:00:00-04:00</published><updated>2021-03-17T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/aws-account-setup-guide</id><content type="html" xml:base="https://www.digitalreplica.org/articles/aws-account-setup-guide/">&lt;p&gt;You need multiple AWS accounts for hacking. This guide will show you how, using AWS Organizations and SSO.&lt;/p&gt;

&lt;h1 id=&quot;why&quot;&gt;Why?&lt;/h1&gt;
&lt;p&gt;Hacking requires a lot of tools, and experimentation. Having several AWS accounts lets you keep a “stable” account with working tools, and a playground account that let’s you try new things. And let’s face it, some of the tools out there aren’t quite trustworthy, and keeping those in a separate account reduces your risk. If one account gets compromised, nuke it and spin up a new one.&lt;/p&gt;

&lt;p&gt;Larger AWS-based organizations use multiple AWS accounts to separate their envionments, with at least separate development and production accounts. Understanding how they use them will make you a more successful hacker.&lt;/p&gt;

&lt;h1 id=&quot;design&quot;&gt;Design&lt;/h1&gt;
&lt;p&gt;This approach uses Amazon’s own management tools for a simple, easy-to use system. The key tools are:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html&quot;&gt;AWS Organizations&lt;/a&gt;: Centralized management management and billing for multiple AWS accounts.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html&quot;&gt;AWS Single Sign-On&lt;/a&gt;: Centralized administrator accounts.&lt;/p&gt;

&lt;p&gt;Using Organizations, you create a hierarchy of accounts, such as&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Management
    &lt;ul&gt;
      &lt;li&gt;Tools&lt;/li&gt;
      &lt;li&gt;Playground&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;lets-start&quot;&gt;Let’s start&lt;/h1&gt;
&lt;p&gt;The cleanest way to start is with a new AWS account, but this can certainly be used with an existing account as well. You will need two different email addresses:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Management account root user&lt;/li&gt;
  &lt;li&gt;Normal user account&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;management-account&quot;&gt;Management account&lt;/h2&gt;
&lt;p&gt;The management account controls all the others, and is the first one to set up. This account should only be used for creating other accounts, without any other users, tools, or configuration.&lt;/p&gt;

&lt;p&gt;Instructions for setting up a new AWS account are at &lt;a href=&quot;https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/&quot;&gt;New AWS account&lt;/a&gt;. The important things to note are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Email address: This should be an email that’s never been used to sign up for any AWS account, and different than the account you’d like to log in every day with.&lt;/li&gt;
  &lt;li&gt;Account name: Name this account something like “management”.&lt;/li&gt;
  &lt;li&gt;Phone: You’ll need a phone number that can receive SMS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a new account with a special &lt;a href=&quot;https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html&quot;&gt;root user&lt;/a&gt; login. Protect this at all costs, by:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Setting a long, random password. Save this in your favorite password app&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user_manage_mfa&quot;&gt;Configuring MFA&lt;/a&gt; for the account.&lt;/li&gt;
  &lt;li&gt;And once Single Sign-On is configured, use that for normal login. Save the root user for emergencies only.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;aws-organizations&quot;&gt;AWS Organizations&lt;/h3&gt;
&lt;p&gt;Next, turn on AWS Organizations, and set this account as the management account. Use the instructions at &lt;a href=&quot;https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_create.html&quot;&gt;Creating an organization&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once complete, the AWS Console should show a single account with a star next to it, indicating that this is the management account.&lt;/p&gt;

&lt;h3 id=&quot;aws-single-sign-on&quot;&gt;AWS Single Sign-On&lt;/h3&gt;
&lt;p&gt;Now, turn on Single Sign-On, using the &lt;a href=&quot;https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html&quot;&gt;Getting started&lt;/a&gt; guide. The basic steps are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Enable AWS SSO&lt;/li&gt;
  &lt;li&gt;Use AWS SSO to manage your users&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To give yourself access to your accounts, you need to:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create an Admins group&lt;/li&gt;
  &lt;li&gt;Create a user in the Admins group&lt;/li&gt;
  &lt;li&gt;Create a permission set with the AdministratorAccess IAM role&lt;/li&gt;
  &lt;li&gt;Assign accounts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Create Group&lt;/strong&gt;
&lt;a href=&quot;https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html&quot;&gt;Add group&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create a group called Administrators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Create User&lt;/strong&gt;
This is the user you’ll normally use to log into AWS with.
&lt;a href=&quot;https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html&quot;&gt;Add Users&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Create a user with your normal email address.&lt;/li&gt;
  &lt;li&gt;Add it to the Administrators group&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Create Permission Set&lt;/strong&gt;
&lt;a href=&quot;https://docs.aws.amazon.com/singlesignon/latest/userguide/howtocreatepermissionset.html&quot;&gt;create a permission set&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Name: AdministratorAccess (or similar)&lt;/li&gt;
  &lt;li&gt;Use the “Attach managed policies” button to add the “AdministratorAccess” IAM policy. This gives you full admin access over accounts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Assign Users and Permissions&lt;/strong&gt;
&lt;a href=&quot;https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html&quot;&gt;Single sign-on access&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Select all your AWS accounts and click the “Add Users” button.&lt;/li&gt;
  &lt;li&gt;Click the Groups tab and select the Administrators group&lt;/li&gt;
  &lt;li&gt;Click the “Permission sets” button and select the AdministratorAccess permission set&lt;/li&gt;
  &lt;li&gt;Click Finish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Find Portal Url&lt;/strong&gt;
Single Sign-On creates a portal used to log in and access all your AWS accounts. Be sure to save this url. It will be in the email sent when you created your user, but if you need to find it again.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Click Dashboard in the menu and look for “User portal URL” at the bottom&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;sign-in-with-normal-user-account&quot;&gt;Sign in with normal user account&lt;/h2&gt;
&lt;p&gt;Log out of the AWS console with your root user. Use the email to log into the user portal with your Single Sign-On user. If everything is successful, you should see an “AWS Account” box, that you can open to access your different accounts.&lt;/p&gt;

&lt;p&gt;All of the hard setup stuff is done. Hurray!&lt;/p&gt;

&lt;h1 id=&quot;adding-a-new-aws-account&quot;&gt;Adding a new AWS account&lt;/h1&gt;
&lt;p&gt;Now you can use AWS Organizations to create new AWS accounts, then configure Single Sign-On to give yourself access.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Follow &lt;a href=&quot;https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_create.html&quot;&gt;Creating an AWS account&lt;/a&gt; to create a new AWS account managed by this account.&lt;/li&gt;
  &lt;li&gt;Follow the same steps again in &lt;a href=&quot;https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html&quot;&gt;Single sign-on access&lt;/a&gt; to select the new account, and add the Administrators group with AdministratorAccess over the new account.&lt;/li&gt;
  &lt;li&gt;Refresh your User Portal page. The new account should appear.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start with a playground or sandbox account. Use this to try different tools and get them working. Once you’re happy, create a second account to move stable and tested tools into.&lt;/p&gt;

&lt;h1 id=&quot;finale&quot;&gt;Finale&lt;/h1&gt;
&lt;p&gt;Congratulations. You can now take advantage of multiple AWS accounts to hack from. Have fun!&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="hacking" /><category term="technology" /><summary type="html">You need multiple AWS accounts for hacking. This guide will show you how, using AWS Organizations and SSO.</summary></entry><entry><title type="html">Can gunshot detection technology contain gun violence?</title><link href="https://www.digitalreplica.org/articles/can-gunshot-detection-technology-contain-gun-violence/" rel="alternate" type="text/html" title="Can gunshot detection technology contain gun violence?" /><published>2019-08-10T00:00:00-04:00</published><updated>2019-08-10T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/can-gunshot-detection-technology-contain-gun-violence</id><content type="html" xml:base="https://www.digitalreplica.org/articles/can-gunshot-detection-technology-contain-gun-violence/">&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2019-08-10-can-gunshot-detection-technology-contain-gun-violence/microphone.jpg&quot; alt=&quot;Can gunshot detection technology contain gun violence?&quot; /&gt;
&lt;em&gt;Photo by &lt;a href=&quot;https://unsplash.com/@ed91?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot;&gt;Ed Rojas&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com/?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText&quot;&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With more recent mass shootings, we ask once again, “How do we solve gun violence?” Then everyone gets on their soapbox again to blather the same crap about gun control.&lt;/p&gt;

&lt;p&gt;What if a better question is “Can we contain gun violence?”&lt;/p&gt;

&lt;p&gt;A gunshot detection device can be built &lt;strong&gt;today&lt;/strong&gt; for under $100 with 99% accuracy. Reducing police reaction time could potentially save eight lives &lt;strong&gt;on every incident&lt;/strong&gt;. Why don’t we have them everywhere? Why don’t we have our schools bristling with them?&lt;/p&gt;

&lt;h2 id=&quot;a-high-school-girl-can-do-it&quot;&gt;A high school girl can do it&lt;/h2&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/jZMG0VqYnxc&quot; frameborder=&quot;0&quot; allow=&quot;picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;em&gt;A Novel Approach to Gunshot Detection using Internet of Things IoT and Machine Learning&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;She built a system using hobby-level electronics that detects gunshots with 99.4% accuracy. It can also determine if the shot came from a handgun or rifle. Read more about her work at &lt;a href=&quot;https://younginnovatorstowatch.com/entries/a-novel-approach-to-gunshot-detection-using-internet-of-things-iot-and-machine-learning/&quot;&gt;A Novel Approach to Gunshot Detection using Internet of Things (IoT) and Machine Learning - Young Innovators To Watch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Technology is simply that good now. The sensors, circuits, and computers are absurdly cheap (Arduino and Raspberry Pi). New, readily-available, machine learning algorithms can easily take the data and give probabilities for a handgun fired, a rifle fired, and nothing-happening-here-right-now.&lt;/p&gt;

&lt;h2 id=&quot;the-dream&quot;&gt;The Dream&lt;/h2&gt;

&lt;p&gt;Imagine a school. In every classroom and hallway, there’s a gunshot detector installed. An incident occurs. Police and school officials know in real-time that a shot has been fired, where it occurred, and what type of weapon. They can track events as they happen: more shots fired, if it moves, if multiple weapons are involved.&lt;/p&gt;

&lt;p&gt;Police reaction time is drastically reduced. Evacuation procedures are simplified.&lt;/p&gt;

&lt;p&gt;And perhaps this alone would deter someone from going through it.&lt;/p&gt;

&lt;h2 id=&quot;but-its-more-complicated-than-that&quot;&gt;But it’s more complicated than that&lt;/h2&gt;

&lt;p&gt;A group at the Pacific Northwest National Laboratory designed a low-cost &lt;a href=&quot;https://www.rdmag.com/article/2018/05/sensor-can-instantly-detect-gunshots-id-weapons-during-school-shootings&quot;&gt;gunshot detection system&lt;/a&gt;. Their system goes a little further, and can determine the calibre of weapon used. Their estimated cost is less than $100 per device. But they admit that this is just the sensor. There is much more needed to turn this into a viable technology.&lt;/p&gt;

&lt;h3 id=&quot;what-does-it-connect-to&quot;&gt;What does it connect to?&lt;/h3&gt;

&lt;p&gt;If a school installed these, would they connect it to the school alarm system? Would it instantly notify law enforcement? If the goal is to reduce reaction time, then it absolutely has to do both.&lt;/p&gt;

&lt;p&gt;It’s a bit more complicated than “Call 911”. Sending data feeds to law enforcement is a work in progress. We have &lt;a href=&quot;https://en.wikipedia.org/wiki/Enhanced_9-1-1&quot;&gt;Enhanced 911&lt;/a&gt;, but this is a new type of data sent over new channels that would have to be developed and standardized.&lt;/p&gt;

&lt;h3 id=&quot;false-alarms&quot;&gt;False alarms&lt;/h3&gt;

&lt;p&gt;They will happen. &lt;a href=&quot;https://en.wikipedia.org/wiki/Swatting&quot;&gt;Swatting&lt;/a&gt; is a very real problem, where someone prank calls the police to send a SWAT team out to an innocent person’s house. Someone will assuredly try to do the same with this. How can we determine when this occurs? What’s the penalty if someone does it?&lt;/p&gt;

&lt;p&gt;And then there’s simply faulty equipment to deal with?&lt;/p&gt;

&lt;h3 id=&quot;certification-and-maintenance&quot;&gt;Certification and maintenance&lt;/h3&gt;

&lt;p&gt;Can anyone build one of these? Or does it need to go through some sort of certification process?&lt;/p&gt;

&lt;p&gt;What does it take to maintain and test these? Is it like a smoke alarm, where someone has to go press a button once a week? There are commercial fire alarm tests that could easily be adapted to cover these types of devices.&lt;/p&gt;

&lt;p&gt;None of this is hard. We know how to do this stuff.&lt;/p&gt;

&lt;h2 id=&quot;why-dont-we-have-these-already&quot;&gt;Why don’t we have these already?&lt;/h2&gt;

&lt;p&gt;Good question!&lt;/p&gt;

&lt;p&gt;We do. Kinda, maybe, not really.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.shotspotter.com/&quot;&gt;ShotSpotter&lt;/a&gt; is one example of a commercially available system trying to bring gunshot detection to police already. But such systems appear to be &lt;strong&gt;outdoors only&lt;/strong&gt;. The accuracy sucks.&lt;/p&gt;

&lt;p&gt;From &lt;a href=&quot;https://www.wric.com/news/taking-action/gunshot-detection-system-once-green-lighted-for-richmond-isnt-happening/&quot;&gt;Gunshot detection system once green-lighted for Richmond isn’t happening&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;An 8News investigation in 2017 did find Shotspotter is not a perfect system. Police using it in other cities were unable to find evidence of gunshots 30% to 70% of the time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Perhaps the many red light camera and licence plate recognition debacles have made me leery of any company selling technology directly to law enforcement.&lt;/p&gt;

&lt;h2 id=&quot;privacy-considerations&quot;&gt;Privacy considerations&lt;/h2&gt;

&lt;p&gt;I have serious issues with companies streaming our audio and video out to their systems, where they can use (abuse) it in any way they wish. &lt;a href=&quot;https://www.cnn.com/2019/04/11/tech/amazon-alexa-listening/index.html&quot;&gt;Amazon&lt;/a&gt;, &lt;a href=&quot;https://www.inc.com/jason-aten/google-is-absolutely-listening-to-your-conversations-it-just-confirms-why-people-dont-trust-big-tech.html&quot;&gt;Google&lt;/a&gt;, even &lt;a href=&quot;https://www.theguardian.com/technology/2019/jul/26/apple-contractors-regularly-hear-confidential-details-on-siri-recordings&quot;&gt;Apple&lt;/a&gt; have plastered the news with their use of your data.&lt;/p&gt;

&lt;p&gt;How about a device like this ?&lt;/p&gt;

&lt;p&gt;It depends. The first article shows that a &lt;a href=&quot;https://www.adafruit.com/product/3775&quot;&gt;$35 Raspberry Pi&lt;/a&gt; has enough processing power to perform all analysis on the device itself. No internet connection or streaming of audio needed. It only needs to send an alert when an event happens, with the relevant data.&lt;/p&gt;

&lt;p&gt;I’m totally OK with this. Make the data formats open and auditable, respect people’s privacy, and no security researcher will have issues with this.&lt;/p&gt;

&lt;p&gt;The ability to auto record audio, even video, would be a nice feature to have, &lt;strong&gt;on the device only&lt;/strong&gt;. Dashcams are a great example of this. Have an accident and the footage is available to show the police right then and there.&lt;/p&gt;

&lt;p&gt;Livestreaming the data out? Well, let’s talk.&lt;/p&gt;

&lt;h2 id=&quot;on-my-iphone-too&quot;&gt;On my iPhone too?&lt;/h2&gt;

&lt;p&gt;A &lt;a href=&quot;https://www.google.com/search?q=ios+gunshot+detection&quot;&gt;Google search&lt;/a&gt; finds exactly nothing. Is it possible for Apple to do this? Absolutely!&lt;/p&gt;

&lt;p&gt;Apple has extensive experience melding hardware and software to solve similar problems. IOS Photos face detection identifies your friends by &lt;a href=&quot;https://www.idownloadblog.com/2017/11/16/apple-machine-learning-journal-on-device-facial-recognition/&quot;&gt;leveraging the power of Apple’s custom-built CPUs and GPUs with deep learning models&lt;/a&gt;. Saying “Hey Siri” is processed on-device &lt;a href=&quot;https://techcrunch.com/2015/09/11/apple-addresses-privacy-questions-about-hey-siri-and-live-photo-features/&quot;&gt;without sending data to Apple&lt;/a&gt;. All the pieces are already there, and if not, Apple can easily add to next year’s model.&lt;/p&gt;

&lt;p&gt;Imagine another shooting, this time with dozens of phones detecting and reporting the event. Using location and intensity reading across all of them, the shooter could be pinpointed to within a square foot. Video recording could turn on automatically to gather evidence. The police could see and hear within a second, monitor the situation on-route, and provide real-time instructions to anyone nearby.&lt;/p&gt;

&lt;p&gt;Even as a security-nut, I’d probably turn this feature on. If it existed.&lt;/p&gt;

&lt;h3 id=&quot;so-i-asked&quot;&gt;So I asked&lt;/h3&gt;

&lt;p&gt;I went to Apple’s &lt;a href=&quot;https://www.apple.com/feedback/&quot;&gt;Product Feedback&lt;/a&gt; site to add a feature request to iPhone.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Please consider adding the ability to iPhones / Siri to detect gunshots, to help protect all Apple users in an active-shooter situation.&lt;/p&gt;

  &lt;p&gt;As a security-focused consumer, I would like:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;all processing on-device&lt;/li&gt;
    &lt;li&gt;an option to automatically notify law enforcement&lt;/li&gt;
    &lt;li&gt;an option to automatically turn on video recording&lt;/li&gt;
    &lt;li&gt;a way to disable it at a gun range&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Thank you,&lt;/p&gt;

  &lt;p&gt;Danny&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whether Apple will consider this, who knows. If enough people ask, I think they would.&lt;/p&gt;

&lt;h2 id=&quot;what-can-you-do&quot;&gt;What can you do?&lt;/h2&gt;

&lt;p&gt;Make some noise. Ask for these types of devices.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Submit a &lt;a href=&quot;https://www.apple.com/feedback/&quot;&gt;Feature Request&lt;/a&gt; to Apple iPhone&lt;/li&gt;
  &lt;li&gt;Submit a &lt;a href=&quot;https://code.google.com/p/android/issues/entry?template=Feature%20request&quot;&gt;Feature Request&lt;/a&gt; for Google Android&lt;/li&gt;
  &lt;li&gt;Submit a &lt;a href=&quot;https://forums.developer.amazon.com/topics/feature+request.html&quot;&gt;Feature Request&lt;/a&gt; for Amazon Echo&lt;/li&gt;
  &lt;li&gt;Ask schools if they would consider implementing this technology&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.usa.gov/elected-officials&quot;&gt;Contact your elected officials&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Use your own expertise to solve some of the implementation problems&lt;/li&gt;
  &lt;li&gt;Just say that you want it&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;blockquote&gt;
  &lt;p&gt;If you think technology can solve your security problems, then you don’t understand the problems and you don’t understand the technology.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Bruce Schneier&lt;/strong&gt; - &lt;a href=&quot;https://en.wikiquote.org/wiki/Bruce_Schneier&quot;&gt;Wikiquote&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started with a title using “solve gun violence”. This won’t.&lt;/p&gt;

&lt;p&gt;But can it be used as an effective tool to help contain it? I think it can. Please help.&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="privacy" /><category term="technology" /><summary type="html">A gunshot detector can be made with 99% accuracy for under $100. Can we use this technology to help contain gun violence?</summary></entry><entry><title type="html">Solving CloudFlare and Let’s Encrypt Issues on a new Ghost Blog</title><link href="https://www.digitalreplica.org/articles/solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/" rel="alternate" type="text/html" title="Solving CloudFlare and Let’s Encrypt Issues on a new Ghost Blog" /><published>2019-08-04T00:00:00-04:00</published><updated>2019-08-04T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog</id><content type="html" xml:base="https://www.digitalreplica.org/articles/solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/">&lt;p&gt;I wanted to consolidate two websites into a single, new Ghost platform. Re-using one of the existing URLs, and having the site behind the CloudFlare CDN caused issues with the install and LetsEncrypt SSL setup. Here’s what I did to get everything working.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2019-08-04-solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/ghost-demo.png&quot; alt=&quot;Solving CloudFlare and Let's Encrypt Issues on a new Ghost Blog&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I wanted to consolidate two websites into a single, new &lt;a href=&quot;https://ghost.org/&quot;&gt;Ghost&lt;/a&gt; blog platform. Re-using one of the existing URLs, and having the site behind the CloudFlare CDN caused issues with the install and LetsEncrypt SSL setup. Here’s how I got everything working.&lt;/p&gt;

&lt;h2 id=&quot;the-starting-point&quot;&gt;The starting point&lt;/h2&gt;

&lt;p&gt;One site was hosted on GitHub pages behind CloudFlare to provide a custom DNS name and SSL. The other was a WordPress site.&lt;/p&gt;

&lt;p&gt;I debated mightily between Medium, WordPress, SquareSpace, Wordpress, and Ghost. Then should it be hosted vs running it myself. I decided I wanted to control everything, so chose Ghost, and hosting it myself. There’s plenty or articles on all of that, but here are two I found helpful in the basic setup of a cheap DigitalOcean droplet.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://medium.com/today-i-learned-chai/how-to-deploy-a-ghost-blog-to-digital-ocean-64c20fb85bb9&quot;&gt;How to deploy a Ghost blogging platform to Digital Ocean&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blog.stephsmith.io/setting-up-blog-with-ghost-and-digital-ocean-droplet/&quot;&gt;Step by Step: Setting up Ghost with a Digital Ocean Droplet&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;

&lt;p&gt;Since I was re-using a URL, and I didn’t want to take that offline until everything was ready, I setup Ghost with the IP address as the URL. That meant HTTP only, because Ghost doesn’t setup even a self-signed SSL certificate that way.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2019-08-04-solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/ghost-over-http.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ghost over http&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Hint:&lt;/em&gt;&lt;/strong&gt; Make your site private while doing the initial setup. Go to General Settings, scroll to the bottom and enable “Make this site private”. It will give you a password, so only you can see any content.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2019-08-04-solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/ghost-private.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ghost: Make this site private&lt;/p&gt;

&lt;p&gt;If you want additional security, enable a DigitalOcean (or other) firewall and restrict SSH and HTTP to your IP address only.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2019-08-04-solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/digitalocean-firewall.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;DigitalOcean droplet firewall example&lt;/p&gt;

&lt;h2 id=&quot;migrating-data&quot;&gt;Migrating data&lt;/h2&gt;

&lt;p&gt;The first website used Jekyll on Github Pages. There’s a converter and migration guide at &lt;a href=&quot;https://github.com/mekomlusa/Jekyll-to-Ghost&quot;&gt;GitHub - mekomlusa/Jekyll-to-Ghost&lt;/a&gt;.  That worked, but the second step of converting at &lt;a href=&quot;https://ghost.org/docs/api/v2/migration/#converting-html&quot;&gt;How to Migrate to Ghost from other platforms - Docs&lt;/a&gt; (to convert to MobileDoc) totally failed for me. As I didn’t have many articles, so it was easier to recreate them. Ghost’s markdown conversion is awesome. I essentially pasted the article, then uploaded and fixed the image links.&lt;/p&gt;

&lt;p&gt;The second website was Wordpress. Even easier to copy and paste. Though the &lt;a href=&quot;https://wordpress.org/plugins/ghost/&quot;&gt;Wordpress plugin&lt;/a&gt; is there to make that easier.&lt;/p&gt;

&lt;h2 id=&quot;redirecting-urls&quot;&gt;Redirecting URLs&lt;/h2&gt;

&lt;p&gt;To keep Google and other search results from being lost, I followed Google’s &lt;a href=&quot;https://support.google.com/webmasters/answer/6033049?hl=en&quot;&gt;Site Move Guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The article URL format changed from &lt;em&gt;/year/month/article-name/&lt;/em&gt; to just &lt;em&gt;/article-name/&lt;/em&gt;. I created a redirects JSON file with all articles by going to Settings, Labs, downloading the current redirect file, editing and re-uploading. The guide is in &lt;a href=&quot;https://ghost.org/tutorials/implementing-redirects/&quot;&gt;Ghost Tutorials&lt;/a&gt;, but it was simply filling out one line for each article, like below.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[
  {&quot;from&quot;:&quot;/2014/10/pocket-internet-privacy-shield/&quot;,&quot;to&quot;:&quot;/pocket-internet-privacy-shield/&quot;,&quot;permanent&quot;:true},
  {&quot;from&quot;:&quot;/2016/12/privacy-from-corporations/&quot;,&quot;to&quot;:&quot;/privacy-from-corporate-data-gathering/&quot;,&quot;permanent&quot;:true}
]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I made a list of all the old urls, did a search/replace for the Ghost IP urls, and tested each one.&lt;/p&gt;

&lt;p&gt;Then I tinkered with themes, tags and other bits until I was ready to switch over.&lt;/p&gt;

&lt;h2 id=&quot;moving-dns-and-setting-up-ssl-through-cloudflare&quot;&gt;Moving DNS and setting up SSL through CloudFlare&lt;/h2&gt;

&lt;p&gt;Now it got tricky. I needed to:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Change CloudFlare DNS to point to the new Ghost IP address.&lt;/li&gt;
  &lt;li&gt;Change the Ghost URL, and enable SSL.&lt;/li&gt;
  &lt;li&gt;Purge the CloudFlare cache&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;change-cloudflare-dns&quot;&gt;Change CloudFlare DNS&lt;/h3&gt;

&lt;p&gt;Changing CloudFlare DNS was straightforward. Delete the old records. Create new ones. To make the site use the domain name (without www) by default, I created an A record for the domain, and a CNAME for www. Like:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;A	@	1.1.1.1	Automatic TTL
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;CloudFlare DNS setup&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2019-08-04-solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/cloudflare-dns.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;CloudFlare DNS setup screenshot&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note the proxy status.&lt;/em&gt;&lt;/strong&gt; I had it enabled, which caused problems and a few extra steps. For anyone else trying this, I would do the next steps with proxy status disabled for the A record (so the icon is gray), then re-enable it once SSL is set up.&lt;/p&gt;

&lt;h3 id=&quot;change-ghost-url-and-enable-ssl&quot;&gt;Change Ghost URL and enable SSL&lt;/h3&gt;

&lt;p&gt;Ghost uses LetsEncrypt to setup SSL. LetsEncrypt validates that your server is actually on the DNS domain name before it issues a certificate. Since CloudFlare is in the middle of this, I followed their &lt;a href=&quot;https://support.cloudflare.com/hc/en-us/articles/214820528-Validating-a-Let-s-Encrypt-Certificate-on-a-Site-Already-Active-on-Cloudflare&quot;&gt;LetsEncrypt support page&lt;/a&gt; to enable the webroot option. Log into the Ghost system using SSH, then run&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nano /etc/letsencrypt/cli.ini
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At the bottom of the file, add the line&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;authenticator = webroot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Next I went through the steps to change the Ghost site URL via &lt;a href=&quot;https://ghost.org/faq/change-configured-site-url/&quot;&gt;How do I change my configured site URL?&lt;/a&gt; It failed, with the error message from LetsEncrypt of:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;✖ Setting up SSL
One or more errors occurred.

1) ProcessError
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I tried rerunning “&lt;em&gt;ghost setup nginx ssl&lt;/em&gt;”, which did nothing. I tried running the LetsEncrypt command manually, which seemed to complete, but the site still had no SSL.&lt;/p&gt;

&lt;h3 id=&quot;the-fix&quot;&gt;The fix&lt;/h3&gt;

&lt;p&gt;First, I disabled the CloudFlare proxy status for the A record (from orange to gray). Then on the Ghost server, I ran the commands below:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[email protected]:/var/www/ghost $ sudo -i -u ghost-mgr
[email protected]:/var/www/ghost $ cd /var/www/ghost
[email protected]:/var/www/ghost $ ghost setup ssl
? Enter your email (For SSL Certificate)
...
✔ Creating ssl config file
...
✔ Setting up SSL
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I verified with the netstat command and saw that nginx was finally listening on port 443.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[email protected]:/var/www/ghost $ netstat -n --listening
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address       Foreign Address     State
tcp        0      0 0.0.0.0:80          0.0.0.0:*         LISTEN
tcp        0      0 0.0.0.0:443         0.0.0.0:*         LISTEN
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Opening a web browser, my site loaded using HTTPS. Hurray!&lt;/p&gt;

&lt;h3 id=&quot;purging-cloudflare-cache-and-re-enabling-proxy-status&quot;&gt;Purging CloudFlare cache and re-enabling proxy status&lt;/h3&gt;

&lt;p&gt;CloudFlare still had the old site cached, so I went to the Caching tab and clicked the “Purge Everything” button. Then I went back to the DNS tab, and re-enabled the proxy status (turning it orange again). Refreshed the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;It works!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note:&lt;/em&gt;&lt;/strong&gt; Changing anything in CloudFlare DNS takes about 5 minutes to propagate. You have to wait for the DNS time-to-live to expire before trying. Check often using the dig command (Mac OS or Linux). The timeout is the second column, in seconds. Or just wait 5 minutes before trying.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ dig digitalreplica.org A

;; ANSWER SECTION:
digitalreplica.org.	300	IN	A	104.18.40.96
digitalreplica.org.	300	IN	A	104.18.41.96
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;verifying-cloudflare-status-in-the-browser&quot;&gt;Verifying CloudFlare status in the browser&lt;/h3&gt;

&lt;p&gt;You can verify in the browser whether you’re hitting the site directly, or going through CloudFlare. This varies by browser, but in Firefox, click the lock icon in the URL bar, click the arrow for details. If it says “&lt;em&gt;Verified by: CODOMO CA Limited&lt;/em&gt;”, you’re going through CloudFlare. If it says “&lt;em&gt;Verified by: Let’s Encrypt&lt;/em&gt;”, you’re hitting the server directly without going through CloudFlare.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2019-08-04-solving-cloudflare-and-letsencrypt-issues-on-a-new-ghost-blog/browser-lock-status.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Verifying SSL Certificate in Firefox&lt;/p&gt;

&lt;p&gt;That’s it. Everything is working after that. I was super happy.&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;

&lt;p&gt;So far, Ghost appears to be a great blogging platform. Hope this helps others in creating theirs.&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="privacy" /><category term="technology" /><summary type="html">I wanted to consolidate two websites into a single, new Ghost platform. Re-using one of the existing URLs, and having the site behind the CloudFlare CDN caused issues with the install and LetsEncrypt SSL setup. Here’s what I did to get everything working.</summary></entry><entry><title type="html">LastPass Identities + Browser profiles = Awesomeness</title><link href="https://www.digitalreplica.org/articles/lastpass-identities-plus-browser-profiles-equals-awesomeness/" rel="alternate" type="text/html" title="LastPass Identities + Browser profiles = Awesomeness" /><published>2018-04-08T00:00:00-04:00</published><updated>2018-04-08T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/lastpass-identities-plus-browser-profiles-equals-awesomeness</id><content type="html" xml:base="https://www.digitalreplica.org/articles/lastpass-identities-plus-browser-profiles-equals-awesomeness/">&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2018-04-08-lastpass-identities-plus-browser-profiles-equals-awesomeness/lastpass_identities.png&quot; alt=&quot;LastPass Identities + Browser profiles = Awesomeness&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Using LastPass Identities with browser profiles (either Chrome People or Firefox profiles) can help keep online identities separate, and possibly safer in the event of a web attack.&lt;/p&gt;

&lt;p&gt;It’s a security best practice to keep passwords in a password vault, so passwords can be long and (hopefully) uncrackable. Many of mine are in LastPass for its sheer convenience.&lt;/p&gt;

&lt;p&gt;But I like to keep online identities separate, using a different browser profile for each part of my life. Each has a different set of passwords that I’d like to keep up with. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Personal&lt;/li&gt;
  &lt;li&gt;Professional&lt;/li&gt;
  &lt;li&gt;Financial&lt;/li&gt;
  &lt;li&gt;Gaming&lt;/li&gt;
  &lt;li&gt;Untrusted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using LastPass Identities, I can. It’s mostly seamless, with a few annoying bits, but awesome anyway. I haven’t found another article describing this, so am throwing it out there to encourage everyone to try something similar.&lt;/p&gt;

&lt;p&gt;I’m showing this using Chrome People, cause I tend to use Chrome. But it works with Firefox profiles, or even using different browsers for different identities.&lt;/p&gt;

&lt;h2 id=&quot;what-are-chrome-people&quot;&gt;What are Chrome People?&lt;/h2&gt;

&lt;p&gt;It’s a way to have separate browser profiles, typically so two or more people can share a computer. Each has it’s own set of cookies, history, browser extensions, etc. Chrome browser security isolates these people, so even going to bad or insecure web pages should prevent a computer hack from spreading beyond that person. (Disclaimer: Chrome security is amazingly good, but not perfect.)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://support.google.com/chrome/answer/2364824?hl=en&quot;&gt;Share Chrome with others - Google Chrome Help&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-are-lastpass-identities&quot;&gt;What are LastPass Identities?&lt;/h2&gt;

&lt;p&gt;A way for LastPass to store separate sets of passwords under one account. It’s nice if you want to pay for LastPass once and use it for multiple things.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://helpdesk.lastpass.com/your-lastpass-vault/grouping-sites/#h5&quot;&gt;LastPass - Using Folders for Organization&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;lastpass-with-chrome-people&quot;&gt;LastPass with Chrome People&lt;/h2&gt;

&lt;p&gt;Here are the instructions to use for each person. You can use the Chrome and LastPass links beside each step to get additional details.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Create a new Chrome person / profile. &lt;a href=&quot;https://support.google.com/chrome/answer/2364824?hl=en&quot;&gt;Google Chrome Help&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Install LastPass for that person. &lt;a href=&quot;https://lastpass.com/download&quot;&gt;Download LastPass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Create a LastPass identity. &lt;a href=&quot;https://helpdesk.lastpass.com/your-lastpass-vault/grouping-sites/#h5&quot;&gt;LastPass Identities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Move any passwords over. &lt;a href=&quot;https://helpdesk.lastpass.com/your-lastpass-vault/grouping-sites/#h5&quot;&gt;LastPass Identities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Switch your identity from All to the newly created one. &lt;a href=&quot;https://helpdesk.lastpass.com/your-lastpass-vault/grouping-sites/#h5&quot;&gt;LastPass Identities&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here’s what it looks like after you’re set up. The Chrome person matches the LastPass identity.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2018-04-08-lastpass-identities-plus-browser-profiles-equals-awesomeness/lastpass_personal.png&quot; alt=&quot;LastPass vault using personal identity&quot; /&gt;&lt;/p&gt;

&lt;p&gt;LastPass vault using personal identity&lt;/p&gt;

&lt;h2 id=&quot;helpful-hints&quot;&gt;Helpful Hints&lt;/h2&gt;

&lt;p&gt;I’ve made folders in LassPass for each identity, then subfolders for organization. Moving passwords between identities has an awkward interface, and this helps.&lt;/p&gt;

&lt;p&gt;Once you’re using an identity, creating a new password automatically goes in that identity (Yay!). If you’re just starting with LastPass, create identities first, then add passwords.&lt;/p&gt;

&lt;p&gt;Making one more profile that’s logged into all LastPass identities may be useful to help keep things organized.&lt;/p&gt;

&lt;h2 id=&quot;the-rough-bits&quot;&gt;The Rough Bits&lt;/h2&gt;

&lt;p&gt;You’ll have to login to Lastpass once for each person. With mutifactor turned on, trusting the computer, this means once every 30 days.&lt;/p&gt;

&lt;p&gt;There’s no way to look at a password in LastPass and tell which identities it’s in. You have to go into each identity and move things around. Grouping the passwords in folders first helps.&lt;/p&gt;

&lt;h2 id=&quot;faqs&quot;&gt;FAQs&lt;/h2&gt;

&lt;h3 id=&quot;can-i-use-firefox-profiles&quot;&gt;Can I use Firefox profiles?&lt;/h3&gt;

&lt;p&gt;I love Firefox profiles, even though it’s rather a pain to use in practice&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles&quot;&gt;Use the Profile Manager to create and remove Firefox profiles&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;what-about-firefox-multi-account-containers&quot;&gt;What about Firefox Multi-Account Containers&lt;/h3&gt;

&lt;p&gt;Looks interesting. Cookies are separated into “containers” but other things like addons aren’t. Haven’t tried it with LastPass yet.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/&quot;&gt;Firefox Multi-Account Containers&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;links&quot;&gt;Links&lt;/h2&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Crossposted to [LastPass Identities + Browser profiles = Awesomeness&lt;/td&gt;
      &lt;td&gt;LinkedIn](https://www.linkedin.com/pulse/lastpass-identities-browser-profiles-awesomeness-danny-rappleyea/)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="security" /><summary type="html">Using LastPass Identities with browser profiles can help keep online identities separate and increase security.</summary></entry><entry><title type="html">First Pitch Retrospective</title><link href="https://www.digitalreplica.org/articles/first-pitch-retrospective/" rel="alternate" type="text/html" title="First Pitch Retrospective" /><published>2018-02-13T00:00:00-05:00</published><updated>2018-02-13T00:00:00-05:00</updated><id>https://www.digitalreplica.org/articles/first-pitch-retrospective</id><content type="html" xml:base="https://www.digitalreplica.org/articles/first-pitch-retrospective/">&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2018-02-13-first-pitch-retrospective/IMG_4411-1.png&quot; alt=&quot;First Pitch Retrospective&quot; /&gt;&lt;/p&gt;

&lt;p&gt;So having survived my first book pitch, I wanted to share some of what I learned. I pitched to Laura Zats, who was brilliantly brutal, amazing, and I learned so much. Mostly about setting up the pitch, so an agent would have the right mental image when I start talking about the book itself.&lt;/p&gt;

&lt;h2 id=&quot;nail-the-genre-and-pitch-tone&quot;&gt;Nail the genre and pitch tone&lt;/h2&gt;

&lt;p&gt;I thought I had it easy with science fiction. But…she wasn’t sure whether my book was hard science fiction, or more of a techno-thriller. And those are pitched in different ways, so the tone of the pitch has to match the genre. Getting genre and pitch tone correct and matching is absolutely critical.&lt;/p&gt;

&lt;p&gt;This came up again (and again, and again) later, during a panel, reading first pages to agents. The genres given were vague, or contradictory, or didn’t match how the first page read.&lt;/p&gt;

&lt;h2 id=&quot;find-better-comps&quot;&gt;Find better comps&lt;/h2&gt;

&lt;p&gt;I needed better comparable books. She instantly pulled out a better something to compare to, of a “why didn’t I think of that?” variety. I still want to see if I can tweak that slightly better for next time. More research!&lt;/p&gt;

&lt;h2 id=&quot;be-receptive&quot;&gt;Be receptive&lt;/h2&gt;

&lt;p&gt;The best thing I did was go to learn how to pitch, more than trying to get the book sold on the the first try. So while the nervousness was there, it helped me be open to what she was saying, and talk about what might make it better.&lt;/p&gt;

&lt;h2 id=&quot;take-a-written-copy&quot;&gt;Take a written copy&lt;/h2&gt;

&lt;p&gt;I had a copy of my pitch written, and took it with me. I’d practiced from it. Then, at the last minute, I went through and highlighted a few words from each paragraph. That helped SO MUCH. Just enough to keep my mind on track, and make sure I didn’t miss key points. But it also let me adapt on the fly.&lt;/p&gt;

&lt;h2 id=&quot;its-all-about-marketing&quot;&gt;It’s all about marketing&lt;/h2&gt;

&lt;p&gt;I’d heard, but it really hit home how pitching is all about marketing. That’s a hard thing for an introvert, but hopefully something that can be learned and practiced. (And I’m just assuming there’s no introverted marketing people.)&lt;/p&gt;

&lt;h2 id=&quot;go-try-it-again&quot;&gt;Go try it again&lt;/h2&gt;

&lt;p&gt;On this side of it, I’m looking forward to taking everything I learned and applying it to my pitch. Then I know at some point, I’ll go try it all again.&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="writing" /><summary type="html">So having survived my first book pitch, I wanted to share some of what I learned. I pitched to Laura Zats, who was brilliantly brutal, amazing, and I learned so much. Mostly about setting up the pitch, so an agent would have the right mental image when I start talking about the book itself.</summary></entry><entry><title type="html">Privacy From Corporate Data Gathering</title><link href="https://www.digitalreplica.org/articles/privacy-from-corporate-data-gathering/" rel="alternate" type="text/html" title="Privacy From Corporate Data Gathering" /><published>2016-12-05T00:00:00-05:00</published><updated>2016-12-05T00:00:00-05:00</updated><id>https://www.digitalreplica.org/articles/privacy-from-corporate-data-gathering</id><content type="html" xml:base="https://www.digitalreplica.org/articles/privacy-from-corporate-data-gathering/">&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2016-12-05-privacy-from-corporate-data-gathering/privacy_on_stairs.png&quot; alt=&quot;Privacy From Corporate Data Gathering&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Corporate data gathering of consumers private information has exploded over the last few years. The new normal seems to require registration to use any website, device or app. The company almost always wants your name and email, and some require address, phone number and credit card as well. After you provide that information your usage is tracked and data mined for corporate profits. Online privacy is becoming scarce (if not non-existent).&lt;/p&gt;

&lt;p&gt;This article offers a practical guide to opt out of this pervasive data gathering by setting up an alternate online identity. Companies get something to track. You get to use their awesome service and you get to preserve at least some of your privacy.&lt;/p&gt;

&lt;h2 id=&quot;goal&quot;&gt;Goal&lt;/h2&gt;

&lt;p&gt;This guide will show options to set up an alternate online identity, using commonly available and legitimate services. It will specifically cover setting up an alternate&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;name&lt;/li&gt;
  &lt;li&gt;email address&lt;/li&gt;
  &lt;li&gt;phone number&lt;/li&gt;
  &lt;li&gt;credit card&lt;/li&gt;
  &lt;li&gt;address&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The order in which these are set up will vary a bit depending on the services used. I’ll note dependencies where possible.&lt;/p&gt;

&lt;h2 id=&quot;disclaimers&quot;&gt;Disclaimers&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;This is US centric since that’s (mostly) what I know.&lt;/li&gt;
  &lt;li&gt;I am not a lawyer. While I’ve looked at some of the legal aspects of doing this, I will not be giving any legal advice today. If you have questions, please consult legal advice for your jurisdiction.&lt;/li&gt;
  &lt;li&gt;This &lt;em&gt;may&lt;/em&gt; help avoid some US government mass surveillance, but that is not the purpose of this article. Any US agency (or state and local law enforcement) could easily defeat some or all of these techniques.&lt;/li&gt;
  &lt;li&gt;And there are &lt;strong&gt;many&lt;/strong&gt; other ways to accomplish these same goals. These methods are ones I know from personal or friends’ experiences. Do your own research and find what works for you.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;name&quot;&gt;Name&lt;/h2&gt;

&lt;p&gt;You can make up whatever name you feel like. But if you want help, try the &lt;a href=&quot;http://www.fakenamegenerator.com/&quot;&gt;Fake Name Generator&lt;/a&gt;. They have lots of options for coming up with something suitable. Copy and paste this name somewhere to save it since it will be the “new you”.&lt;/p&gt;

&lt;h2 id=&quot;email-address&quot;&gt;Email Address&lt;/h2&gt;

&lt;p&gt;There seem to be about a million different email providers. I’ll list a few here for you to review.&lt;/p&gt;

&lt;p&gt;I would seriously consider using a non-US provider for email. European privacy laws are far stricter than in the US. This will certainly keep email out of (easy) reach of the US government. Setting up the email address as .ch or .de may also suggest to other companies to treat your data under European and not US procedures (but results will likely vary wildly). The Tutanota and ProtonMail services described below topped every article I reviewed on best email providers for security or privacy.&lt;/p&gt;

&lt;p&gt;For more information on European privacy laws, look at &lt;a href=&quot;https://www.economist.com/blogs/economist-explains/2016/02/economist-explains-2&quot;&gt;The new transatlantic data Privacy Shield&lt;/a&gt;. The Privacy Shield agreement between the European Union and US is a new attempt to replace the older “Safe Harbor” agreement which crashed and burned after the Snowden revelations.&lt;/p&gt;

&lt;h3 id=&quot;gmail&quot;&gt;Gmail&lt;/h3&gt;

&lt;p&gt;Everyone knows and loves/hates gmail. But the last time I tried to set up (yet another) gmail account, it required a phone number for verification (and they were quite good at detecting attempts to use free phone number services.) You can wait until you get a different phone number (see below), but the phone online account setup requires an email. Catch-22. Agggh!&lt;/p&gt;

&lt;h3 id=&quot;tutanota&quot;&gt;Tutanota&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://tutanota.com/&quot;&gt;Tutanota&lt;/a&gt; is a free encrypted email service based in Germany. Their website states (slightly paraphrased):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“The Tutanota servers are located in secure data centers in Germany. All saved data are subject to the strict German privacy protection laws. Independent of that all data is end-to-end encrypted and cannot be read by the provider or by any third party.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;protonmail&quot;&gt;ProtonMail&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://protonmail.com/&quot;&gt;ProtonMail&lt;/a&gt; is a free encrypted email service based in Switzerland. Their website states (slightly paraphrased):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“ProtonMail is incorporated in Switzerland and all our servers are located in Switzerland. This means all user data is protected by strict Swiss privacy laws. All emails are secured automatically with end-to-end encryption”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;phone-number&quot;&gt;Phone number&lt;/h2&gt;

&lt;p&gt;There are quite a few options for no-contract cellular plans. I specifically looked for low cost, pre-paid plans on an “alternative” carrier. Known as MVNO or “Mobile Virtual Network Operator”, these carriers rent space on the larger carriers (AT&amp;amp;T/Sprint/Verizon) networks in bulk, so can give better rates or different types of plans than the big carriers do. Articles on attractive providers include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://thewirecutter.com/reviews/best-prepaid-and-alternative-cellphone-plans/&quot;&gt;Wirecutter article&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.pcmag.com/article2/0,2817,2375644,00.asp&quot;&gt;PC Magazine article&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For most pre-paid cellular plans, the phone has to be purchased outright. Carriers only support limited types of phones. Some carriers only allow you to buy the phone from them. Others allow any “compatible” phone. This raises the initial cost, but generally leads to a lower monthly cost. If you have an older, unused phone, look for services that will let you use it.&lt;/p&gt;

&lt;p&gt;I found two that looked promising: Red Pocket and Page Plus Cellular. In addition to monthly plans, they both offer refillable plans where you can buy a certain number of minutes usable over the course of a year. I tried Page Plus cellular because they have local dealers near me.  But there are certainly other options out there, so don’t limit your options to just these two.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://goredpocket.com/&quot;&gt;Red Pocket&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pagepluscellular.com&quot;&gt;Page Plus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The store was tucked away in a strip mall. They offered phones and plans from several carriers. They had maybe a dozen types of phones for the Page Plus service. Maybe one looked new. The rest appeared to be used phones. After fending off the $400 phones, I settled on a used, cheap (but probably overpriced) iPhone 4. It is well out of Apple support, so I can’t upgrade to the latest IOS. That absolutely will make the phone less secure. But for basic phone calls and text messages, it’s still decent. Store selection will be random, so others may have better or worse luck.&lt;/p&gt;

&lt;p&gt;They couldn’t directly activate the phone under the Page Plus “Pay-as-you-go” plan. I had to activate it under a monthly plan. When the month runs out, I can contact Page Plus and switch to the Pay-as-you-go plan. Then I can buy their $80 card, good for 1000 minutes and lasts up to a year. Phone calls, texts and cellular data all deduct from the balance. It doesn’t give a lot of usage, but I doubt even that much is really needed.&lt;/p&gt;

&lt;p&gt;They asked for a name to activate the phone under. I paid in cash. It took about 10 minutes to activate the phone and have it ready to go.&lt;/p&gt;

&lt;p&gt;The very first thing I did was charge the phone a bit and do a “Erase All Content and Settings”. See the Apple article on &lt;a href=&quot;https://support.apple.com/en-us/HT201351&quot;&gt;What to do before selling or giving away your iPhone, iPad, or iPod touch&lt;/a&gt;. After going through the Welcome screens, the phone successfully re-registered itself on the cellular network.  If you are using a non-Apple phone, you’ll still want to erase all content and settings.  Google the phone name/model/manufacturer to find instructions for the particular phone you ended up with.&lt;/p&gt;

&lt;p&gt;The online options will likely provide more selection of phones at a cheaper price. I’m guessing a shipping address, credit card, and possibly email address will be needed to make a purchase.&lt;/p&gt;

&lt;h2 id=&quot;address&quot;&gt;Address&lt;/h2&gt;

&lt;p&gt;Consider a mailbox from &lt;a href=&quot;https://www.theupsstore.com/mailboxes/personal-mailboxes&quot;&gt;The UPS Store&lt;/a&gt;. This gives you a mailbox for mail and packages. It has a street address, so no package delivery issues like PO boxes have. I have been told I can add additional names for delivery, and mail and packaged are delivered to the address, not the name. So getting stuff for my alternate identity should not be an issue.&lt;/p&gt;

&lt;p&gt;You must use your real name and address and give two forms of ID to set up the box. This is because the US Postal Service requires PS Form 1583, &lt;a href=&quot;https://about.usps.com/forms/ps1583.pdf&quot;&gt;Application for Delivery of Mail Through Agent&lt;/a&gt; in order for The UPS Store to receive mail on your behalf.&lt;/p&gt;

&lt;h3 id=&quot;alternate-names-for-the-mail-system&quot;&gt;Alternate Names for the mail system&lt;/h3&gt;

&lt;p&gt;For mail, the use of alternate names seems to be a gray area at best. In general, the postal service seems to deliver mail to addresses, not people. But searching the issue, some people (particularly PO boxes) have mail denied unless it is specifically for them.&lt;/p&gt;

&lt;p&gt;The most authoritative source I’ve found is USPS &lt;a href=&quot;http://pe.usps.com/text/dmm300/602.htm&quot;&gt;guidelines for addressing&lt;/a&gt; which states the addressee must be “Addressee name or other identifier and/or firm name where applicable”.&lt;/p&gt;

&lt;p&gt;I researched if this would be mail fraud. But the court system test is a person using the mail system to steal money/property/etc from other people. So definitely don’t do that (or apparently try to mail lottery tickets)!&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.justice.gov/usam/criminal-resource-manual-940-18-usc-section-1341-elements-mail-fraud&quot;&gt;U.S.C. Section 1341—Elements of Mail Fraud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.criminaldefenselawyer.com/crime-penalties/federal/Federal-mail-fraud.htm&quot;&gt;Laws on Federal Mail Fraud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.law.cornell.edu/uscode/text/18/1302&quot;&gt;18 U.S. Code § 1302 - Mailing lottery tickets or related matter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;credit-card&quot;&gt;Credit Card&lt;/h2&gt;

&lt;p&gt;Credit cards are a little more difficult, since the US government really likes to keep track of money going places. But there are still many options. I discuss two options: one more anonymous, and the other with your alternate name on the card.&lt;/p&gt;

&lt;h3 id=&quot;anonymous-gift-cards&quot;&gt;Anonymous gift cards&lt;/h3&gt;

&lt;p&gt;Visa gift cards make getting anonymous credit cards absurdly easy to get. They are sold about everywhere, but drug stores seem to always have the best selection. They have a giant rack filled with restaurant, iTunes, Amazon and every other imaginable gift card.&lt;/p&gt;

&lt;p&gt;For this article, I picked up a plain (i.e. ‘Vanilla’) Visa gift card. You can select the amount on the card at the time of purchase, anywhere from $20-$500. There is a one-time $5.95 activation fee, so a higher-value card is better than several low-value ones. I took it to the checkout, paid cash and walked out.&lt;/p&gt;

&lt;p&gt;To use the card to make online purchases, most gift cards allow setting the shipping zip code. For mine, I used the website on the card to “log in” using the card number, expiration and CVV code. There was a tab on the page for “Assign ZIP Code”. Set. Go.&lt;/p&gt;

&lt;h3 id=&quot;reloadable-cards&quot;&gt;Reloadable cards&lt;/h3&gt;

&lt;p&gt;Reloadable cards may give lower fees and more personalization. But many of them require ID checks to comply with US money laundering laws. I wanted one that was low cost and allowed name personalization. The types of reloadable cards I looked for were ones that parents get for their teenage children. Some good articles to look at include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.giftcards.com/gcgf/reloadable-prepaid-cards&quot;&gt;Which Reloadable Prepaid Card is Right for You?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.nerdwallet.com/blog/banking/nerdwallets-best-prepaid-debit-cards/&quot;&gt;NerdWallet’s Best Prepaid Debit Cards of 2016&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.thesimpledollar.com/best-prepaid-debit-cards/&quot;&gt;Best Prepaid Debit Cards of 2016&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I tried the &lt;a href=&quot;https://www.americanexpress.com/serve/&quot;&gt;American Express Serve card&lt;/a&gt;. At $1/month, it was the lowest cost option that I found. Setting it up required giving over all of my real information to make the US government happy. This sets up the “master” account that you load money into.&lt;/p&gt;

&lt;p&gt;With the master account, “subaccounts” can be set up. From the American Express website, these are “&lt;em&gt;Perfect for paying allowance or the babysitter. Each one comes with its own Serve Prepaid Card&lt;/em&gt;”. They require a name, phone number, email address and password, but no other verification. Best of all, the subaccount name is embossed on the card. Other than a small “prepaid” logo on the back, it looks like any other credit card.&lt;/p&gt;

&lt;p&gt;The master account can then transfer money to/from subaccounts.&lt;/p&gt;

&lt;h2 id=&quot;final-words&quot;&gt;Final words&lt;/h2&gt;

&lt;p&gt;I hope this will be useful for people. Please use comments to ask questions, or provide information on other useful services.&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="privacy" /><summary type="html">A practical guide to opt out of pervasive data gathering by setting up an alternate online identity.</summary></entry><entry><title type="html">Purism Librem 13 Laptop Review</title><link href="https://www.digitalreplica.org/articles/purism-librem-13-laptop-review/" rel="alternate" type="text/html" title="Purism Librem 13 Laptop Review" /><published>2016-06-15T00:00:00-04:00</published><updated>2016-06-15T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/purism-librem-13-laptop-review</id><content type="html" xml:base="https://www.digitalreplica.org/articles/purism-librem-13-laptop-review/">&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2016-06-15-purism-librem-13-laptop-review/l13-v3-turns100.png&quot; alt=&quot;Purism Librem 13 Laptop Review&quot; /&gt;&lt;/p&gt;

&lt;p&gt;As a security and privacy advocate wanting a new laptop, much time and research was needed to settle on what I wanted. I bought a &lt;a href=&quot;https://puri.sm/products/librem-13/&quot;&gt;Purism Librem 13&lt;/a&gt; running &lt;a href=&quot;https://www.qubes-os.org/&quot;&gt;Qubes OS&lt;/a&gt;. While this is definitely not the setup for everyone, it is worth considering if you’re worried about privacy and have any kind of Linux experience.&lt;/p&gt;

&lt;p&gt;So this is a review of the Librem 13 running Qubes with a bundle of setup notes and impressions.&lt;/p&gt;

&lt;p&gt;For those not familiar with Qubes, it is the only operating system that is modern, secure and usable. By secure, I mean a machine I trust to log into my financial sites (bank, credit card, etc) and also browse untrusted websites (which given recent website hacks is pretty much everything).&lt;/p&gt;

&lt;h2 id=&quot;goals&quot;&gt;Goals&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Store my files and access my stuff securely.&lt;/li&gt;
  &lt;li&gt;Survive untrusted networks.&lt;/li&gt;
  &lt;li&gt;Be super portable so I can carry it more places.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;ordering&quot;&gt;Ordering&lt;/h2&gt;

&lt;p&gt;I ordered at the absolutely worst time, right in the middle of Chinese New Year. I think the lead time was about 2 months. It showed up at random in 4-5 weeks. Not instant gratification, but was happy with the ordering process.&lt;/p&gt;

&lt;h2 id=&quot;taking-it-apart-and-upgrading-things&quot;&gt;Taking it apart and upgrading things&lt;/h2&gt;

&lt;p&gt;The upgrade options while buying the Librem 13 are expensive. Better, cheaper options are available at Newegg or Amazon. I would recommend getting the base model with the hardware kill switches, then upgrading as needed.&lt;/p&gt;

&lt;h2 id=&quot;taking-it-apart&quot;&gt;Taking it apart&lt;/h2&gt;

&lt;p&gt;The bottom is attached with 12 small phillips head screws, arranged in three rows of four. The two center screws are the longest. The lower right corner (assuming the keyboard is closest to you) is slightly longer.&lt;/p&gt;

&lt;h2 id=&quot;upgrading&quot;&gt;Upgrading&lt;/h2&gt;

&lt;h3 id=&quot;ram&quot;&gt;Ram&lt;/h3&gt;

&lt;p&gt;Note there is only one RAM slot. I assumed and bought an upgrade that had two memory modules. Oops, had to return and reorder. Past that, is easy to upgrade to 16GB of RAM. I went with a &lt;a href=&quot;https://www.amazon.com/gp/product/B0123BRIDK/&quot;&gt;Crucial 16GB Single DDR3L 1600 Sodimm&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;hard-drive&quot;&gt;Hard Drive&lt;/h3&gt;

&lt;p&gt;I went with the cheapest hard drive, planning to replace it with an M2 SSD drive. This still turned out cheaper than ordering it with an M2 drive. You can replace the drive with either a 2.5mm SSD or an M2 SSD.&lt;/p&gt;

&lt;p&gt;The stock hard drive is a Seagate 500GB Thin drive. This is a 2.5”, 7mm drive, so be careful that replacement hard drives are that height. Removing it meant I had to untape and disconnect a small ribbon cable to get to the screws. That was fairly simple, but I was still careful with the cable. Once the hard drive is removed, the bracket can’t go back in, so a baggie for storage is needed. Putting the M2 drive was easy, except there’s no screw provided. I had to steal one of the hard drive screws.&lt;/p&gt;

&lt;p&gt;I later added another 2.5mm SATA SSD to get even more storage. So main OS on the M2 drive and extra storage on the SATA drive. The setup is super quiet, fast and minimal battery drain.&lt;/p&gt;

&lt;h3 id=&quot;power&quot;&gt;Power&lt;/h3&gt;

&lt;p&gt;I already had an Anker 20000mAh battery pack, big enough to power a laptop. All I needed was a cable, so got a &lt;a href=&quot;https://www.amazon.com/gp/product/B00M7OE1VG/&quot;&gt;2.5 x 5.5mm Male-to-Male Plug&lt;/a&gt; An extra power adapter is also helpful. I ordered the &lt;a href=&quot;https://www.amazon.com/gp/product/B005BYUWGC/&quot;&gt;Toshiba 19V 4.74A 90W Replacement AC Adapter&lt;/a&gt;. Works great.&lt;/p&gt;

&lt;h2 id=&quot;qubes-on-the-librem-13&quot;&gt;Qubes on the Librem 13&lt;/h2&gt;

&lt;p&gt;I set up the preloaded Qubes just long enough to test the hardware. My essential tests worked: it connected to the wireless network and sleep worked. Awesome. That’s when I replaced the hard drive with the M2 SSD and installed a new Qubes from USB.&lt;/p&gt;

&lt;p&gt;Installing Qubes was quick and easy. Everything just worked. I restored VM’s from a different machine. I was up and running in 2-3 hours. It would have been faster if I had stayed with the preloaded Qubes.&lt;/p&gt;

&lt;h2 id=&quot;observations-using-it&quot;&gt;Observations using it:&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;All of the special  keys work. This includes brightness, sound, changing monitor configuration, sleep, etc.&lt;/li&gt;
  &lt;li&gt;Unplugging and re-plugging external monitors just works. After adjusting the configuration (external monitor only, or both internal/external), the system remembers the settings. Windows resize nicely. The only slightly quirky part is a large windows on an external monitor. When you disconnect, it shrinks to fit the internal display. When reconnecting the external monitor, it’s maximized on it (when it wasn’t originally). That’s mostly not a big deal.&lt;/li&gt;
  &lt;li&gt;The HDMI port does support a 4K monitor at full resolution at 30Hz. Nice.&lt;/li&gt;
  &lt;li&gt;I have no hard numbers for battery life. With my setup, it seems I can get about 4 hours on battery doing whatever I want with wifi on and screen dimmed a bit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;what-i-like&quot;&gt;What I Like&lt;/h2&gt;

&lt;h3 id=&quot;hardware-switches&quot;&gt;Hardware Switches&lt;/h3&gt;

&lt;p&gt;Love them. I verified that when turning the switch off, the device is removed from the Linux kernel. I mostly keep wireless on and camera off. But it’s nice to know that I can switch around as needed.&lt;/p&gt;

&lt;h3 id=&quot;open-hardware&quot;&gt;Open Hardware&lt;/h3&gt;

&lt;p&gt;All hardware has support built into the Linux kernel. It just works. Awesome!&lt;/p&gt;

&lt;h3 id=&quot;overall-design&quot;&gt;Overall Design&lt;/h3&gt;

&lt;p&gt;It’s small, light. Seems solid and well-made. No issues after throwing it in my bag every day for a while.&lt;/p&gt;

&lt;h2 id=&quot;what-i-dislike&quot;&gt;What I Dislike&lt;/h2&gt;

&lt;h3 id=&quot;trackpad&quot;&gt;Trackpad&lt;/h3&gt;

&lt;p&gt;The default Qubes driver for it sucks badly. You get the basics like moving, clicking, right-clicking. No other multi-touch gestures work. What’s worse is typing. When I’m in a typing groove, some part of my hand hits the trackpad. The cursor jumps all over the place, focus switches to other windows or spaces. It’s so bad, I generally use the hotkey to disable the trackpad (yay that you can!) and use a usb mouse. I read that a better driver is in the works. I can’t wait.&lt;/p&gt;

&lt;h2 id=&quot;what-i-really-wish-were-different&quot;&gt;What I really wish were different&lt;/h2&gt;

&lt;h3 id=&quot;ram-1&quot;&gt;Ram&lt;/h3&gt;

&lt;p&gt;For Qubes, 16GB of ram is the &lt;em&gt;minimum&lt;/em&gt; I would consider. I wish the Librem 13 would support 32GB (or more!) I can keep all of my common VMs and some other VM’s open. But not everything, so at times I have to close a few to open a few more. It mostly works, but sometimes annoying. PLEASE MORE RAM!&lt;/p&gt;

&lt;h3 id=&quot;external-video-connector&quot;&gt;External Video Connector&lt;/h3&gt;

&lt;p&gt;The video connector is HDMI. It will drive a 4K monitor at 30Hz. I slightly wish for a DisplayPort, just to get 4K at a full 60Hz.&lt;/p&gt;

&lt;h3 id=&quot;extra-screw-for-m2-drive&quot;&gt;Extra Screw for M2 Drive&lt;/h3&gt;

&lt;p&gt;Please include one extra screw for the M2 slot.&lt;/p&gt;

&lt;h2 id=&quot;closing-thoughts&quot;&gt;Closing Thoughts&lt;/h2&gt;

&lt;p&gt;Would I recommend it? Absolutely. A 32GB version would be pretty close to perfect for a Qubes setup, but this one does very nicely.&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="privacy" /><category term="technology" /><summary type="html">Review of the Purism Librem 13 laptop for running Qubes OS</summary></entry><entry><title type="html">OpenLDAP for LDAP Plain Text Password Capture</title><link href="https://www.digitalreplica.org/articles/openldap-for-ldap-plain-text-password-capture/" rel="alternate" type="text/html" title="OpenLDAP for LDAP Plain Text Password Capture" /><published>2015-10-22T00:00:00-04:00</published><updated>2015-10-22T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/openldap-for-ldap-plain-text-password-capture</id><content type="html" xml:base="https://www.digitalreplica.org/articles/openldap-for-ldap-plain-text-password-capture/">&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2015-10-22-openldap-for-ldap-plain-text-password-capture/LDAPworm-passwords.png&quot; alt=&quot;OpenLDAP for LDAP Plain Text Password Capture&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I recently tested an application using LDAP to connect to Active Directory to perform queries. The app had valid AD credentials and I wanted to steal them. I couldn’t grab the credentials directly, but I could change some of the app configuration, including the IP address of the LDAP server to connect to. That led to “Let’s set up a malicious LDAP server to capture credentials!”&lt;/p&gt;

&lt;p&gt;There is no metasploit capture ldap module :-( and I didn’t have the time to write one. OpenLDAP does support unencrypted, plaintext authentication, but the instructions for setting that up are non-existent. So I documented as I went to make this post.&lt;/p&gt;

&lt;p&gt;All testing was done using Kali Linux, so it’s easy to add to a pentest setup.&lt;/p&gt;

&lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt;

&lt;p&gt;In researching this, I found client LDAP devices to be more common than I thought. One example is printers querying user information from Active Directory. Printers aren’t very secure, mostly have default creds to get into them, and they might have an AD username and password. LDAP server IP is usually easy to change. And printers are generally stupid enough to do things like plaintext auth. A few minutes of work for a valid login? One that probably has access to a file share with lots of sensitive documents. Score!&lt;/p&gt;

&lt;h2 id=&quot;rant-about-openldap-configuration-madness&quot;&gt;Rant about OpenLDAP configuration madness&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;(skip if desired)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’m sure there’s a reason why OpenLDAP changed from a normal readable configuration file to using ldap queries to update a semi-database-like structure. But from a noob perspective, configuration settings make absolutely no sense. The documentation is lacking and there’s no examples of common configurations. Instead, you left to wade through pages of Google results, all of which are exactly not what you’re trying to do or use the old .conf system.&lt;/p&gt;

&lt;p&gt;What I’m trying to do is not in the OpenLDAP administration guide. I finally found the options I needed through forums and digging into the man pages. Authentication options in particular are poorly documented and confusing. I basically had to try all of them (and combinations of them) to get this working. Trying to actually secure the settings will be equally as difficult.&lt;/p&gt;

&lt;h2 id=&quot;authentication&quot;&gt;Authentication&lt;/h2&gt;

&lt;p&gt;There are three different authentication methods that can be configured.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Anonymous: no auth needed&lt;/li&gt;
  &lt;li&gt;Simple: plaintext username and password&lt;/li&gt;
  &lt;li&gt;SASL: a pluggable authentication system supporting many other&lt;br /&gt;
methods, including a PLAIN method of plaintext username and&lt;br /&gt;
password.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have simple auth working here, and pretty sure I have SASL PLAIN&lt;br /&gt;
working. (I can’t actually authenticate with SASL PLAIN, but it&lt;br /&gt;
negotiates the method with the client and I can capture the creds). Good&lt;br /&gt;
enough.&lt;/p&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;p&gt;The best guide for basic installation that I’ve found is &lt;a href=&quot;https://www.lisenet.com/2014/install-and-configure-an-openldap-server-with-ssl-on-debian-wheezy/&quot;&gt;Install and&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.lisenet.com/2014/install-and-configure-an-openldap-server-with-ssl-on-debian-wheezy/&quot;&gt;Configure an OpenLDAP Server with SSL on Debian Wheezy&lt;/a&gt;. For more configuration than I have here (like SSL/TLS), look at that one. Here’s the essentials.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt-get install slapd ldap-utils
dpkg-reconfigure -p low slapd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Omit OpenLDAP server configuration? &lt;strong&gt;No&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;DNS domain name: &lt;strong&gt;{target AD domain name}&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Organization name: &lt;strong&gt;{target AD domain name}&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Administrator password: &lt;strong&gt;{password}&lt;/strong&gt; &lt;em&gt;(Doesn’t matter, it won’t be used)&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Database backend to use: &lt;strong&gt;HDB&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Do you want the database to be removed when slapd is purged? &lt;strong&gt;No&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Move old database? &lt;strong&gt;Yes&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Allow LDAPv2 protocol? &lt;strong&gt;Yes&lt;/strong&gt; &lt;em&gt;(Support for less secure protocols…oh yeah!)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you do the dpkg-reconfigure more than once, you may have to do:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;rm -rf /var/backups/unknown-2.4.31-2+deb7u1.ldapdb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Start the service&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;service slapd start
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;OpenLDAP by default is non-SSL on port 389. Yay, no encryption to worry about.&lt;/p&gt;

&lt;h2 id=&quot;testing-what-authentication-methods-are-allowed&quot;&gt;Testing what authentication methods are allowed&lt;/h2&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ldapsearch -H ldap:// -x -LLL -s base -b &quot;&quot; supportedSASLMechanisms
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# ldapsearch -H ldap:// -x -LLL -s base -b &quot;&quot; supportedSASLMechanisms
dn:
supportedSASLMechanisms: DIGEST-MD5
supportedSASLMechanisms: CRAM-MD5
supportedSASLMechanisms: NTLM
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;By default, DIGEST-MD5, CRAM-MD5 and NTLM methods are supported. Let’s remove those and add in PLAIN.&lt;/p&gt;

&lt;h2 id=&quot;reconfiguring-using-ldapmodify&quot;&gt;Reconfiguring using ldapmodify&lt;/h2&gt;

&lt;p&gt;The “proper” way to configure is to save the changes you want to make into an LDIF-formatted file (whatever that is), and use the ldapmodify command to commit those changes into the actual configuration.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# cat &amp;gt;olcSaslSecProps.ldif
dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcred
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here is the ldapmodify command. This uses the internal (loopback-like) ldapi:// interface, which can have different authentication (ala no auth) than the external ldap:// interface.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Example output from same.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry &quot;cn=config&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Restart slapd&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# service slapd restart
[ ok ] Stopping OpenLDAP: slapd.
[ ok ] Starting OpenLDAP: slapd.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;See what authentication is supported now.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# ldapsearch -H ldap:// -x -LLL -s base -b &quot;&quot; supportedSASLMechanisms
dn:
supportedSASLMechanisms: PLAIN
supportedSASLMechanisms: LOGIN
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;manual-configuration&quot;&gt;Manual configuration&lt;/h2&gt;

&lt;p&gt;The main configuration file is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/ldap/slapd.d/cn=config.ldif&lt;/code&gt;. It says it shouldn’t be manually edited. I did and it worked fine.&lt;/p&gt;

&lt;h2 id=&quot;testing-simple-authentication&quot;&gt;Testing Simple Authentication&lt;/h2&gt;

&lt;p&gt;The ldapsearch command is good for testing authentication. My test domain was evil.ninja (wish I had actually bought that one!). Change it to whatever you configure. And change the host and the password too, unless your password is also “foo”.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# ldapsearch -h 10.0.2.5 -p 389 -D &quot;cn=admin,dc=evil,dc=ninja&quot; -w foo -b '' -s base -LLL
dn:
objectClass: top
objectClass: OpenLDAProotDSE
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;testing-sasl-plain-authentication&quot;&gt;Testing SASL PLAIN Authentication&lt;/h2&gt;

&lt;p&gt;Done from a different system. The auth failed, but the credentials were captured in wireshark.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ ldapsearch -h 10.0.2.5 -p 389 -U &quot;cn=admin,dc=evil,dc=ninja&quot; -I -Y PLAIN -O none -LLL -b '' -s base
SASL/PLAIN authentication started
SASL Interaction
Please enter your authorization name: admin
Default: cn=admin,dc=evil,dc=ninja
Please enter your authentication name: admin
Please enter your password:
ldap_sasl_interactive_bind_s: Invalid credentials (49)
    additional info: SASL(-13): user not found: Password verification failed
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;capturing-plaintext-credentials&quot;&gt;Capturing plaintext credentials&lt;/h2&gt;

&lt;p&gt;At the end of this, my app didn’t support plain text authentication (good for them!) But for those that do, capturing is just opening wireshark on 389/tcp. In the wireshark Capture Options, disable promiscuous mode and set a capture filter of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tcp port 389&lt;/code&gt;. (See image below, except actually uncheck promiscuous mode.)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2015-10-22-openldap-for-ldap-plain-text-password-capture/wireshark-capture-options.png&quot; alt=&quot;wireshark capture options&quot; /&gt;&lt;/p&gt;

&lt;p&gt;wireshark capture options&lt;/p&gt;

&lt;p&gt;Once you capture an authentication in wireshark, it looks like this. This is the simple authentication type. The password is “foo”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2015-10-22-openldap-for-ldap-plain-text-password-capture/auth-simple.png&quot; alt=&quot;auth-simple&quot; /&gt;&lt;/p&gt;

&lt;p&gt;wireshark capturing LDAP auth-simple authentication&lt;/p&gt;

&lt;p&gt;Here’s the same same user authenticating with SASL-PLAIN auth.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2015-10-22-openldap-for-ldap-plain-text-password-capture/auth-sasl-plain.png&quot; alt=&quot;auth-sasl-plain&quot; /&gt;&lt;/p&gt;

&lt;p&gt;wireshark capturing LDAP auth-sasl-plain authentication&lt;/p&gt;

&lt;h2 id=&quot;capturing-digest-md5-credentials&quot;&gt;Capturing DIGEST-MD5 credentials&lt;/h2&gt;

&lt;p&gt;If plaintext credentials don’t work, DIGEST-MD5 credentials can be tried. It looks like this is a MD5 of the password with a server-side nonce (salt) added and a client-side nonce (salt) added. With a good GPU, stupid or short passwords (ala 8 characters or less) should be crackable. The default configuration supports this method, and it appears to be the first method tried. If needed, do a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dpkg-reconfigure -p low slapd&lt;/code&gt; to get settings back to defaults.&lt;/p&gt;

&lt;h2 id=&quot;capturing-ntlm-credentials&quot;&gt;Capturing NTLM credentials&lt;/h2&gt;

&lt;p&gt;I found no way to configure OpenLDAP to support just NTLM authentication, but I have a dirty workaround that works. I didn’t have any way to test this one to see what the wireshark capture looks like.&lt;/p&gt;

&lt;p&gt;This uses the same default configuration as DIGEST-MD5, but deletes the libraries for the methods not wanted.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mv /usr/lib/x86_64-linux-gnu/sasl2/libcrammd5.so .
mv /usr/lib/x86_64-linux-gnu/sasl2/libdigestmd5.so .
service slapd restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openldap.org/doc/admin24/guide.html&quot;&gt;OpenLDAP Administrator’s Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://linux.die.net/man/5/slapd-config&quot;&gt;slapd-config(5)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.lisenet.com/2014/install-and-configure-an-openldap-server-with-ssl-on-debian-wheezy/&quot;&gt;Install and Configure an OpenLDAP Server with SSL on Debian Wheezy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="hacking" /><summary type="html">How to set up a malicious ldap server to capture credentials during a penetration test</summary></entry><entry><title type="html">Using the Pocket Internet Privacy Shield</title><link href="https://www.digitalreplica.org/articles/using-the-pocket-internet-privacy-shield/" rel="alternate" type="text/html" title="Using the Pocket Internet Privacy Shield" /><published>2014-10-19T00:00:00-04:00</published><updated>2014-10-19T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/using-the-pocket-internet-privacy-shield</id><content type="html" xml:base="https://www.digitalreplica.org/articles/using-the-pocket-internet-privacy-shield/">&lt;p class=&quot;full&quot;&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_tl-wr710n_openwrt-1.png&quot; alt=&quot;tplink running openwrt&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my previous post, I described how to install a &lt;a href=&quot;/privacy/pocket-internet-privacy-shield/&quot;&gt;Pocket Internet Privacy Shield&lt;/a&gt;. It uses a cheap TP-Link pocket router, OpenWRT and a privacy VPN to protect your privacy on untrusted networks like hotels and coffee shops.&lt;/p&gt;

&lt;p&gt;I had no idea the post would be as long as it was. I didn’t want people to have to scroll to the bottom just to read how to use the thing. So here’s the post on how to use the thing.&lt;/p&gt;

&lt;h2 id=&quot;about-the-device&quot;&gt;About the Device&lt;/h2&gt;

&lt;p&gt;Here’s the basics of the device. It has:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A &lt;em&gt;LAN/WAN&lt;/em&gt; wired network jack that can be connected to an untrusted wired network&lt;/li&gt;
  &lt;li&gt;A &lt;em&gt;LAN&lt;/em&gt; wired network jack that you can plug your computer into&lt;/li&gt;
  &lt;li&gt;An untrusted wireless network that can be connected to untrusted wireless networks, like a hotel or coffee shop&lt;/li&gt;
  &lt;li&gt;A trusted internal wireless network that you can connect your devices to securely&lt;/li&gt;
  &lt;li&gt;A &lt;em&gt;LED&lt;/em&gt; that blinks in different patterns to show the state of the device&lt;/li&gt;
  &lt;li&gt;A tiny &lt;em&gt;reset button&lt;/em&gt; re-purposed to connect and disconnect the VPN&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So you can use any combination of wired or wireless networking on both the untrusted network and your internal trusted networks. So you’ll have to pick out the scenario you’d like to use.&lt;/p&gt;

&lt;h2 id=&quot;conventions&quot;&gt;Conventions&lt;/h2&gt;

&lt;p&gt;During the install, look for this type of formatting in text.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Italics&lt;/em&gt;: Something you look for on the screen or device&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bold&lt;/strong&gt;: Something you type, click or select&lt;/p&gt;

&lt;h2 id=&quot;using-an-untrusted-wired-network&quot;&gt;Using an Untrusted Wired Network&lt;/h2&gt;

&lt;p&gt;This is the easiest to use and is preferred when it’s available.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Connect the untrusted wired network into the &lt;em&gt;LAN/WAN&lt;/em&gt; network jack&lt;/li&gt;
  &lt;li&gt;Connect your device to either:
    &lt;ul&gt;
      &lt;li&gt;The &lt;em&gt;LAN&lt;/em&gt; network jack for a wired connection&lt;/li&gt;
      &lt;li&gt;The internal wireless network set up during the install&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Plug the device into a power outlet&lt;/li&gt;
  &lt;li&gt;The device should blink while it’s loading, then go into its’ slow&lt;br /&gt;
blink mode, once every 5 seconds or so.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, you are protected by the firewall but your communications aren’t private yet. Go down to the &lt;em&gt;Connect to the VPN&lt;/em&gt; section. If you know that you don’t have to deal with a captive portal, you can connect to the vpn before you connect your devices for a bit more privacy.&lt;/p&gt;

&lt;h2 id=&quot;using-an-untrusted-wireless-network&quot;&gt;Using an Untrusted Wireless Network&lt;/h2&gt;

&lt;p&gt;You’re using the device to connect to the untrusted wireless network, so your devices don’t have to. This requires going into the device’s management webpage.&lt;/p&gt;

&lt;p&gt;If you’ve connected to this untrusted wireless before, the device will remember the settings and automatically connect again. You can skip these instructions and just connect your laptop or other devices.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;If you’re connecting your laptop or other device to the wired&lt;br /&gt;
connection, plug the cable into the &lt;em&gt;LAN&lt;/em&gt; network jack.&lt;/li&gt;
  &lt;li&gt;Plug the device into a power outlet&lt;/li&gt;
  &lt;li&gt;The device should blink while it’s loading, then go into its’ slow&lt;br /&gt;
blink mode, once every 5 seconds or so&lt;/li&gt;
  &lt;li&gt;If you’re connecting your laptop or other device to the wireless&lt;br /&gt;
network, go ahead and connect&lt;/li&gt;
  &lt;li&gt;Open a browser and navigate to &lt;a href=&quot;http://192.168.1.1/&quot;&gt;http://192.168.1.1/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;From the web management menu , select &lt;strong&gt;Network -&amp;gt; Wifi&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Beside &lt;em&gt;Generic MAC80211 802.11bgn (radio0)&lt;/em&gt;, click the &lt;strong&gt;Scan&lt;/strong&gt; button&lt;/li&gt;
  &lt;li&gt;Find the network you want to connect to and click the &lt;strong&gt;Join Network&lt;/strong&gt; button
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;UNCHECK&lt;/strong&gt; the &lt;em&gt;Replace wireless configuration&lt;/em&gt; box&lt;/li&gt;
      &lt;li&gt;Enter a password if needed to connect&lt;/li&gt;
      &lt;li&gt;Make sure the &lt;em&gt;Name of the new network&lt;/em&gt; is &lt;strong&gt;wwan&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Make sure the &lt;em&gt;Create / Assign firewall-zone&lt;/em&gt; is &lt;strong&gt;wan&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;Submit&lt;/strong&gt; button&lt;/li&gt;
      &lt;li&gt;In the next &lt;em&gt;Wireless Network&lt;/em&gt; page, click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-19-using-the-pocket-internet-privacy-shield/tplink_external_wireless_01-1.png&quot; alt=&quot;Wireless overview page&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wireless overview page&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-19-using-the-pocket-internet-privacy-shield/tplink_external_wireless_02-1.png&quot; alt=&quot;Selecting wireless network&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Selecting wireless network&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-19-using-the-pocket-internet-privacy-shield/tplink_external_wireless_03-1.png&quot; alt=&quot;Join network: settings page&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Join network: settings page&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-19-using-the-pocket-internet-privacy-shield/tplink_external_wireless_04-1.png&quot; alt=&quot;Wireless configuration settings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wireless configuration settings&lt;/p&gt;

&lt;p&gt;At this point, you are protected by the firewall but your communications aren’t private yet. Go down to the &lt;em&gt;Connect to the VPN&lt;/em&gt; section.&lt;/p&gt;

&lt;h2 id=&quot;connect-to-the-vpn&quot;&gt;Connect to the VPN&lt;/h2&gt;

&lt;p&gt;By default, the vpn does not start automatically, so you’re communications aren’t private. Hotels typically use a captive portal that you have to browse to in your web browser so you can login and/or agree to whatever lousy policies they have. Only then do you get full Internet access.&lt;/p&gt;

&lt;p&gt;At this point, the device should be doing a slow blink, once every 5 seconds or so.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Open a web browser and see you need to click through a captive&lt;br /&gt;
portal. Make sure basic Internet works (it redirects you to some new&lt;br /&gt;
page, etc).&lt;/li&gt;
  &lt;li&gt;Find a paperclip&lt;/li&gt;
  &lt;li&gt;Find the &lt;em&gt;Reset&lt;/em&gt; button. It’s between the &lt;em&gt;LAN/WAN port&lt;/em&gt; and the &lt;em&gt;USB port&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Push the &lt;strong&gt;Reset&lt;/strong&gt; button (for less than a second). You should hear/feel it click.&lt;/li&gt;
  &lt;li&gt;After a couple of seconds, the LED should start a &lt;em&gt;fast blink&lt;/em&gt; cycle (about once a second)&lt;/li&gt;
  &lt;li&gt;To test, open an web browser and go to a geolocation website like&lt;br /&gt;
&lt;a href=&quot;https://www.iplocation.net/&quot;&gt;http://www.iplocation.net/&lt;/a&gt; . It should show a location different&lt;br /&gt;
than the one you’re at.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point you are protected by the firewall and all communications are encrypted by the VPN. People on the untrusted network should not be able to see where you’re going or what you’re doing.&lt;/p&gt;

&lt;h2 id=&quot;disconnecting-from-the-vpn&quot;&gt;Disconnecting from the VPN&lt;/h2&gt;

&lt;p&gt;If you need to disconnect from the VPN, it’s pretty simple.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Find a paperclip&lt;/li&gt;
  &lt;li&gt;Find the &lt;em&gt;Reset&lt;/em&gt; button. It’s between the &lt;em&gt;LAN/WAN port&lt;/em&gt; and the &lt;em&gt;USB port&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Push the &lt;strong&gt;Reset&lt;/strong&gt; button for about &lt;strong&gt;3 seconds&lt;/strong&gt;. You should hear/feel it click.&lt;/li&gt;
  &lt;li&gt;The LED should immediately go into slow blink mode, about once every 5 seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, you are protected by the firewall but your communications aren’t private.&lt;/p&gt;

&lt;h2 id=&quot;turning-the-device-off&quot;&gt;Turning the Device Off&lt;/h2&gt;

&lt;p&gt;Unplug it. Enough said.&lt;/p&gt;

&lt;h2 id=&quot;resetting-the-device&quot;&gt;Resetting the Device&lt;/h2&gt;

&lt;p&gt;If you want to reset the device in a nicer way than unplugging it, here&lt;br /&gt;
how.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Find a paperclip&lt;/li&gt;
  &lt;li&gt;Find the &lt;em&gt;Reset&lt;/em&gt; button. It’s between the &lt;em&gt;LAN/WAN port&lt;/em&gt; and the &lt;em&gt;USB port&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Push the &lt;strong&gt;Reset&lt;/strong&gt; button for between &lt;strong&gt;10 and 20 seconds&lt;/strong&gt;. You should hear/feel it click.&lt;/li&gt;
  &lt;li&gt;The device should start blinking as it’s loading, then go into the slow blink mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;wiping-the-device&quot;&gt;Wiping the Device&lt;/h2&gt;

&lt;p&gt;If you every need to erase all your settings (before selling or getting rid of the device), this will wipe all configuration and reset the device back to a default OpenWRT install.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Find a paperclip&lt;/li&gt;
  &lt;li&gt;Find the &lt;em&gt;Reset&lt;/em&gt; button. It’s between the &lt;em&gt;LAN/WAN port&lt;/em&gt; and the &lt;em&gt;USB port&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Push the &lt;strong&gt;Reset&lt;/strong&gt; button for &lt;strong&gt;longer than 20 seconds&lt;/strong&gt;. You should hear/feel it click.&lt;/li&gt;
  &lt;li&gt;The LED start blinking as it’s loading&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, the device is not configured in any way.&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="privacy" /><summary type="html">Using a custom TP-Link pocket router, OpenWRT and a privacy VPN to protect your privacy on untrusted networks like hotels and coffee shops.</summary></entry><entry><title type="html">Pocket Internet Privacy Shield</title><link href="https://www.digitalreplica.org/articles/pocket-internet-privacy-shield/" rel="alternate" type="text/html" title="Pocket Internet Privacy Shield" /><published>2014-10-10T00:00:00-04:00</published><updated>2014-10-10T00:00:00-04:00</updated><id>https://www.digitalreplica.org/articles/pocket-internet-privacy-shield</id><content type="html" xml:base="https://www.digitalreplica.org/articles/pocket-internet-privacy-shield/">&lt;p class=&quot;full&quot;&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_tl-wr710n_openwrt-1.png&quot; alt=&quot;tplink running openwrt&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When I travel, the thought of using the Internet in hotels and such leaves me feeling gross and paranoid that someone can see what I’m doing. As a penetration tester who hacks people this way, and seeing how awful some hotel Internet setups are, I feel pretty justified in my paranoia.&lt;/p&gt;

&lt;p&gt;So I wanted to make a hardware-based device that was cheap, easy to use and effective at protecting my privacy in not-quite-trustworthy networks. Here’s what I made with step-by-step instructions on making your own.&lt;/p&gt;

&lt;h2 id=&quot;goals&quot;&gt;Goals&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Allow my computers and devices to use untrusted network in a safe way. (Or at least safer than the alternatives)&lt;/li&gt;
  &lt;li&gt;Block all incoming connections (a hardware firewall)&lt;/li&gt;
  &lt;li&gt;Encrypt &lt;strong&gt;all&lt;/strong&gt; traffic so people on the untrusted network can’t intercept it. This includes DNS traffic, which is sometimes tricky to deal with&lt;/li&gt;
  &lt;li&gt;Be able to handle stupid hotel captive portals&lt;/li&gt;
  &lt;li&gt;Based on cheap hardware&lt;/li&gt;
  &lt;li&gt;Be easy to use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can do this sort of thing directly on your laptop and some devices. But if you have several, it gets to be a pain to deal with.&lt;/p&gt;

&lt;h2 id=&quot;the-solution&quot;&gt;The Solution&lt;/h2&gt;

&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;/h3&gt;

&lt;p&gt;I purchased a TP-Link “Mini Pocket Router”. It’s roughly 3 inches square and an inch thick, so small enough to fit it a bag. It’s also very easy to re-purpose for other things like this. It has:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Two wired network jacks for an internal and external network&lt;/li&gt;
  &lt;li&gt;A wireless chip that can do &lt;strong&gt;simultaneous&lt;/strong&gt; access point mode (so your devices can connect to it) and client mode (so it can connect to the crappy hotel wireless)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; currently $26 at &lt;a href=&quot;https://www.amazon.com/TP-LINK-TL-WR710N-Wireless-Repeater-Charging/dp/B00FRMAOIO/&quot;&gt;Amazon&lt;/a&gt;.&lt;br /&gt;
The exact model is a TP-Link TL-WR710N mini pocket router.&lt;/p&gt;

&lt;h3 id=&quot;software&quot;&gt;Software&lt;/h3&gt;
&lt;p&gt;The device can do some of the things out of the box. But I don’t trust the software to be that secure, and want it to do more anyway. So instead, we’re using OpenWrt. It is a popular Linux distribution for embedded devices and used as the basis for many home routers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; free&lt;/p&gt;

&lt;h3 id=&quot;vpn&quot;&gt;VPN&lt;/h3&gt;
&lt;p&gt;A useful tool for online privacy is a paid VPN (virtual private network) service geared towards privacy. The better ones support open standards, can’t tie traffic from a given IP address back to a specific user, don’t keep logs of your traffic and make some statement of how they will deal with law enforcement requests. A good link to start with is:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://torrentfreak.com/which-vpn-services-take-your-anonymity-seriously-2014-edition-140315/&quot;&gt;http://torrentfreak.com/which-vpn-services-take-your-anonymity-seriously-2014-edition-140315/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I picked one with a good rep, and that supported OpenVPN, a popular open-source VPN software package.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost:&lt;/strong&gt; typically $50-$100 per year&lt;/p&gt;

&lt;h2 id=&quot;how-to-survive-this-install&quot;&gt;How to Survive this Install&lt;/h2&gt;
&lt;p&gt;Beer or wine certainly helps. The only scary part is replacing the software with OpenWrt. Once that’s done, if you mess up, it’s easy to reset the device and start over. There are some tricky bits to edit configuration files and copy them to the device, but otherwise everything else is done using a web browser&lt;/p&gt;

&lt;h2 id=&quot;assumptions&quot;&gt;Assumptions&lt;/h2&gt;
&lt;p&gt;This can be done several different ways. But this install tries to do the easiest thing that anyone can follow. So I’m assuming:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You’ve purchased a TP-Link TL-WR710N and found a VPN provider that supports OpenVPN&lt;/li&gt;
  &lt;li&gt;Your computer is (or can be) using a wired network connection and it’s working correctly&lt;/li&gt;
  &lt;li&gt;Your computer gets its IP address through DHCP, which is default on most systems&lt;/li&gt;
  &lt;li&gt;You have a working Internet connection and web browser&lt;/li&gt;
  &lt;li&gt;You have (or can install) a couple of programs that can do SSH and SCP (more on that in a sec)&lt;/li&gt;
  &lt;li&gt;You have a paperclip or something similar. This is quite important.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Windows systems, there’s nothing by default that supports SCP (for transferring files) or SSH (for logging in at a command line). The best and easiest are below. You will definitely need WinSCP, but only need PuTTY to troubleshoot if things don’t work correctly the first time.&lt;/p&gt;

&lt;p&gt;PuTTY: &lt;a href=&quot;http://www.chiark.greenend.org.uk/~sgtatham/putty/&quot;&gt;http://www.chiark.greenend.org.uk/~sgtatham/putty/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WinSCP: &lt;a href=&quot;https://winscp.net/eng/index.php&quot;&gt;http://winscp.net/eng/index.php&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Linux and Mac have tools like this built in. So if you have those, I’m assuming you can follow along or Google equivalents.&lt;/p&gt;

&lt;h3 id=&quot;conventions&quot;&gt;Conventions&lt;/h3&gt;

&lt;p&gt;During the install, look for this type of formatting in text.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Italics&lt;/em&gt;: Something you look for on the screen or device&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bold&lt;/strong&gt;: Something you type, click or select&lt;/p&gt;

&lt;h2 id=&quot;now-to-actually-install-something&quot;&gt;Now to Actually Install Something&lt;/h2&gt;

&lt;p&gt;##3 Download OpenWrt&lt;/p&gt;

&lt;p&gt;Download OpenWrt BarrierBreaker 14.07 from &lt;a href=&quot;https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-wr710n-v1-squashfs-factory.bin&quot;&gt;downloads.openwrt.org&lt;/a&gt;. You may also want to look for a newer version. If so, the device is an ar71xx-generic-tl-wr710n and you want the file with squashfs.factory.bin in it.&lt;/p&gt;

&lt;h3 id=&quot;connect-to-the-tp-link-device&quot;&gt;Connect to the TP-Link Device&lt;/h3&gt;

&lt;p&gt;Connect network cables to the TP-Link device and plug it in&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Take the network cable from your computer and plug it into the &lt;strong&gt;LAN/WAN port&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Plug another network cable from your computer to the &lt;strong&gt;LAN port&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Plug in&lt;/strong&gt; the device&lt;/li&gt;
  &lt;li&gt;The &lt;em&gt;light will blink&lt;/em&gt; a couple of times and turn solid green&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At this point, the device (and your network) are completely unsecure. Now is not the time to go out for a few hours or go to bed. So connect to the management webpage at the link &lt;a href=&quot;http://tplinklogin.net&quot;&gt;http://tplinklogin.net&lt;/a&gt; .&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_01.png&quot; alt=&quot;Logging into the TP-Link Device&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Login with a username and password of &lt;strong&gt;admin&lt;/strong&gt;. It will ask you to start the &lt;em&gt;Quick Setup&lt;/em&gt; process. You don’t care, because it’s about to get blown away. Click the &lt;strong&gt;Exit&lt;/strong&gt; button.&lt;/p&gt;

&lt;h3 id=&quot;install-openwrt&quot;&gt;Install OpenWrt&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;In the management webpage, open the &lt;strong&gt;System Tools&lt;/strong&gt; menu from the left sidebar&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;Firmware Upgrade&lt;/strong&gt; from the menu&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Choose File&lt;/strong&gt; button&lt;/li&gt;
  &lt;li&gt;Select the &lt;strong&gt;openwrt-ar71xx-generic-tl-wr710n-v1-squashfs-factory.bin&lt;/strong&gt; file downloaded earlier&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Upgrade&lt;/strong&gt; button&lt;/li&gt;
  &lt;li&gt;The page will say “&lt;em&gt;Are you sure to upgrade the firmware?&lt;/em&gt;” Click &lt;strong&gt;OK&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;The file uploads in a couple of seconds&lt;/li&gt;
      &lt;li&gt;The &lt;em&gt;Processing&lt;/em&gt; screen shows a progress bar&lt;/li&gt;
      &lt;li&gt;The &lt;em&gt;Software Upgraded Successfully! Restarting&lt;/em&gt; screen shows a progress bar&lt;/li&gt;
      &lt;li&gt;When that screen shows &lt;em&gt;Completed!&lt;/em&gt; in red, the upgrade is complete&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_01-1.png&quot; alt=&quot;Logging into the TP-Link Device&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Logging into the TP-Link Device&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_02-1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Choose firmware upgrade file&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_03.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Firmware upgrade file chosen&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_04.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Are you sure to upgrade the firmware&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_05.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Firmware upgrading&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_06.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Restarting system&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openwrt_07.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Software upgraded successfully&lt;/p&gt;

&lt;h3 id=&quot;initial-configuration-of-openwrt&quot;&gt;Initial Configuration of OpenWRT&lt;/h3&gt;

&lt;p&gt;Your computer should have detected the device rebooting and reconnected to the network. Make sure you can still browse to the Internet. Once that’s working, you can start configuring.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Open a browser and navigate to &lt;a href=&quot;http://192.168.1.1/&quot;&gt;http://192.168.1.1/&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Login&lt;/strong&gt; button. This logs you in with the default root user with no password&lt;/li&gt;
  &lt;li&gt;Once the &lt;em&gt;Status&lt;/em&gt; page loads, there is a message at the top saying “&lt;em&gt;No password set!&lt;/em&gt;”. Click the &lt;strong&gt;Go to password configuration&lt;/strong&gt; link below it&lt;/li&gt;
  &lt;li&gt;On the &lt;em&gt;Router Password&lt;/em&gt; page, set a secure and memorable password. Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button at the bottom of the page&lt;/li&gt;
  &lt;li&gt;On the same page in the &lt;em&gt;SSH Access section&lt;/em&gt;, set the interface to &lt;strong&gt;LAN&lt;/strong&gt;. Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_config_openwrt_01-1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Log into openwrt&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_config_openwrt_02.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;No password set&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_config_openwrt_03.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Set router password&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_config_openwrt_04.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Set ssh to lan only&lt;/p&gt;

&lt;h3 id=&quot;make-it-blink&quot;&gt;Make It Blink&lt;/h3&gt;

&lt;p&gt;There’s only one LED to show any kind of status. We’re going to make it do a slow blink by default. Then when the VPN is connected, it will automatically change to a fast blink so you know the VPN is up.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;From the web management menu, select &lt;strong&gt;System -&amp;gt; LED Configuration&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Add&lt;/strong&gt; button&lt;/li&gt;
&lt;/ul&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Option Name&lt;/th&gt;
      &lt;th&gt;Setting&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Name&lt;/td&gt;
      &lt;td&gt;slowblink&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;LED Name&lt;/td&gt;
      &lt;td&gt;tp-link:blue:system&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Default state&lt;/td&gt;
      &lt;td&gt;checked&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Trigger&lt;/td&gt;
      &lt;td&gt;timer&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;On-State Delay&lt;/td&gt;
      &lt;td&gt;500&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Off-State Delay&lt;/td&gt;
      &lt;td&gt;5000&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;ul&gt;
  &lt;li&gt;Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The LED should start blinking on and off roughly every 5 seconds.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_led_blink_01.png&quot; alt=&quot;LED configuration screen&quot; /&gt;&lt;/p&gt;

&lt;p&gt;LED configuration screen&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_led_blink_02.png&quot; alt=&quot;LED configuration settings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;LED configuration settings&lt;/p&gt;

&lt;h3 id=&quot;untrusted-internet-wireless-network&quot;&gt;Untrusted Internet Wireless Network&lt;/h3&gt;

&lt;p&gt;Any existing wireless network can be used to complete this section. It’s better to not use an untrusted one yet.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;From the web management menu , select &lt;strong&gt;Network -&amp;gt; Wifi&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Beside &lt;em&gt;Generic MAC80211 802.11bgn (radio0)&lt;/em&gt;, click the &lt;strong&gt;Scan&lt;/strong&gt; button&lt;/li&gt;
  &lt;li&gt;Find the network you want to connect to and click the &lt;strong&gt;Join Network&lt;/strong&gt; button
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;UNCHECK&lt;/strong&gt; the &lt;em&gt;Replace wireless configuration&lt;/em&gt; box&lt;/li&gt;
      &lt;li&gt;Enter a password if needed to connect&lt;/li&gt;
      &lt;li&gt;Make sure the &lt;em&gt;Name of the new network&lt;/em&gt; is &lt;strong&gt;wwan&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Make sure the &lt;em&gt;Create / Assign firewall-zone&lt;/em&gt; is &lt;strong&gt;wan&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;Submit&lt;/strong&gt; button&lt;/li&gt;
      &lt;li&gt;In the next &lt;em&gt;Wireless Network&lt;/em&gt; page, click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_external_wireless_01.png&quot; alt=&quot;Network Wifi page&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Network Wifi page&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_external_wireless_02.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Join wireless screen&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_external_wireless_03.png&quot; alt=&quot;Join Network Settings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Join Network Settings&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_external_wireless_04.png&quot; alt=&quot;Wireless network settings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wireless network settings&lt;/p&gt;

&lt;h3 id=&quot;internal-wireless-network&quot;&gt;Internal Wireless Network&lt;/h3&gt;

&lt;p&gt;This is the secure wireless network that your devices can connect to. It should be encrypted with a good password.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;From the menu, select &lt;strong&gt;Network -&amp;gt; Wifi&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Edit&lt;/strong&gt; button beside the &lt;em&gt;OpenWrt&lt;/em&gt; network&lt;/li&gt;
  &lt;li&gt;Change the wireless name (&lt;em&gt;ESSID&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The wireless network name should be memorable, but without a way to tie it back to you. One good place to generate nonsense words is &lt;a href=&quot;http://www.soybomb.com/tricks/words/&quot;&gt;http://www.soybomb.com/tricks/words/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Make sure the &lt;em&gt;mode&lt;/em&gt; is set to &lt;strong&gt;Access Point&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Make sure the &lt;em&gt;network&lt;/em&gt; is set to &lt;strong&gt;LAN&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;em&gt;Wireless Security&lt;/em&gt; tab
    &lt;ul&gt;
      &lt;li&gt;Change &lt;em&gt;Encryption&lt;/em&gt; to &lt;strong&gt;WPA2-PSK&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Change &lt;em&gt;Cipher&lt;/em&gt; to &lt;strong&gt;Force CCMP (AES)&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Set the &lt;em&gt;Key&lt;/em&gt; to the &lt;strong&gt;password you want to use&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_internal_wireless_01.png&quot; alt=&quot;Wireless general setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wireless general setup&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_internal_wireless_02.png&quot; alt=&quot;Wireless security setup&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Wireless security setup&lt;/p&gt;

&lt;h3 id=&quot;disable-the-untrusted-wireless-network&quot;&gt;Disable the Untrusted Wireless Network&lt;/h3&gt;

&lt;p&gt;Until we do the initial test, disable the untrusted wireless network&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;From the web management menu, select &lt;strong&gt;Network -&amp;gt; Wifi&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Find your &lt;em&gt;untrusted wireless network&lt;/em&gt; and click the &lt;strong&gt;Disable&lt;/strong&gt;&lt;br /&gt;
button beside it&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;firewall-configuration&quot;&gt;Firewall Configuration&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;From the web management menu , select &lt;strong&gt;Network -&amp;gt; Firewall&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;In the &lt;em&gt;General Settings&lt;/em&gt; section
    &lt;ul&gt;
      &lt;li&gt;Change &lt;em&gt;Input&lt;/em&gt; to &lt;strong&gt;drop&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Change &lt;em&gt;Forward&lt;/em&gt; to &lt;strong&gt;drop&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;In the &lt;em&gt;Zones&lt;/em&gt; section for the &lt;em&gt;wan&lt;/em&gt; zone
    &lt;ul&gt;
      &lt;li&gt;Change &lt;em&gt;Input&lt;/em&gt; to &lt;strong&gt;drop&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Change &lt;em&gt;Forward&lt;/em&gt; to &lt;strong&gt;drop&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
  &lt;li&gt;Select the &lt;strong&gt;Traffic Rules&lt;/strong&gt; tab&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Uncheck&lt;/strong&gt; the &lt;em&gt;Enable checkbox&lt;/em&gt; beside these &lt;em&gt;Traffic Rules&lt;/em&gt;
    &lt;ul&gt;
      &lt;li&gt;Allow-DHCPv6&lt;/li&gt;
      &lt;li&gt;Allow-ICMPv6-Input&lt;/li&gt;
      &lt;li&gt;Allow-ICMPv6-Forward&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_firewall_01.png&quot; alt=&quot;Firewall zone settings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Firewall zone settings&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_firewall_02.png&quot; alt=&quot;Firewall traffic rules&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Firewall traffic rules&lt;/p&gt;

&lt;h2 id=&quot;end-of-act-i&quot;&gt;End of Act I&lt;/h2&gt;
&lt;p&gt;At this point, the device makes a nice hardware firewall. All traffic is allowed out but no traffic is allowed in. It’s completely usable at this point.&lt;/p&gt;

&lt;h2 id=&quot;now-for-openvpn&quot;&gt;Now for OpenVPN&lt;/h2&gt;

&lt;h3 id=&quot;add-the-interface-for-the-vpn&quot;&gt;Add the interface for the VPN&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;From the web management menu, select &lt;strong&gt;Network -&amp;gt; Interfaces&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Add new interface&lt;/strong&gt; button
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;Name&lt;/em&gt; of the new interface: &lt;strong&gt;VPN&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Protocol&lt;/em&gt; of the new interface: select &lt;strong&gt;Unmanaged&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;In &lt;em&gt;Cover the following interface&lt;/em&gt;, select &lt;strong&gt;Custom Interface&lt;/strong&gt; and enter &lt;strong&gt;tun0&lt;/strong&gt; into the box beside it.&lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;Submit&lt;/strong&gt; button&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;In the next “Interfaces - VPN” page
    &lt;ul&gt;
      &lt;li&gt;Select the &lt;strong&gt;Firewall Settings&lt;/strong&gt; tab&lt;/li&gt;
      &lt;li&gt;Make sure &lt;strong&gt;unspecified or create&lt;/strong&gt; is selected. Enter &lt;strong&gt;vpn&lt;/strong&gt; in the box beside it&lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;From the web management menu, select &lt;strong&gt;Network -&amp;gt; Firewall&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Edit&lt;/strong&gt; button beside the &lt;em&gt;vpn zone&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;In the &lt;em&gt;Firewall - Zone Settings - Zone “vpn”&lt;/em&gt; page
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Enable&lt;/strong&gt; &lt;em&gt;Masquerading&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Enable&lt;/strong&gt; &lt;em&gt;MSS clamping&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;In the _Inter-Zone Forwardin_g section
        &lt;ul&gt;
          &lt;li&gt;&lt;em&gt;Allow forward to destination zones&lt;/em&gt;: select &lt;strong&gt;wan&lt;/strong&gt;&lt;/li&gt;
          &lt;li&gt;&lt;em&gt;Allow forward from source zones&lt;/em&gt;: select &lt;strong&gt;lan&lt;/strong&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;Save &amp;amp; Apply&lt;/strong&gt; button&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_interface_vpn_01.png&quot; alt=&quot;Interfaces screen&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Interfaces screen&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_interface_vpn_02.png&quot; alt=&quot;Interface for vpn&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Interface for vpn&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_interface_vpn_03.png&quot; alt=&quot;Firewall zone settings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Firewall zone settings&lt;/p&gt;

&lt;h3 id=&quot;installing-openvpn&quot;&gt;Installing OpenVPN&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;From the menu, select &lt;strong&gt;System -&amp;gt; Software&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Update lists&lt;/strong&gt; button to refresh the list of available packages&lt;/li&gt;
  &lt;li&gt;In &lt;em&gt;Download and install package&lt;/em&gt; enter &lt;strong&gt;openvpn-openssl&lt;/strong&gt; and click &lt;strong&gt;OK&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This may take a couple of minutes and could possibly give an error as it’s refreshing status. You may have to select &lt;strong&gt;System -&amp;gt; Software&lt;/strong&gt; a couple more times until &lt;em&gt;openvpn-openssl&lt;/em&gt; appears in the list of &lt;em&gt;Installed packages&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_install_openvpn_01.png&quot; alt=&quot;Installing openvpn package&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Installing openvpn package&lt;/p&gt;

&lt;h3 id=&quot;getting-vpn-provider-configuration-files&quot;&gt;Getting VPN Provider Configuration Files&lt;/h3&gt;

&lt;p&gt;This is where things may change, depending on your OpenVPN provider. Mine has a zip file with all of the configuration files needed to connect. Out of those, the certificate files ca.crt, client.crt, client.key and ta.key will need to be copied to the device in a moment.&lt;/p&gt;

&lt;p&gt;Also in the file is a vpn.conf file with configuration options. In that file is the server name and port needed to configure the device.&lt;/p&gt;

&lt;p&gt;Download the configuration file(s) from your VPN file and see if they contain the same files.&lt;/p&gt;

&lt;h3 id=&quot;getting-my-openvpn-configuration-files&quot;&gt;Getting My OpenVPN Configuration Files&lt;/h3&gt;

&lt;p&gt;To reduce some of the command line configuration, I’ve made a set of configuration files to get through this last bit. Download the file.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Extract openvpn_files_for_openwrt.zip&lt;/li&gt;
  &lt;li&gt;Edit the &lt;em&gt;openvpn_files_for_openwrt\etc\openvpn\myvpn.pass&lt;/em&gt; file
    &lt;ul&gt;
      &lt;li&gt;Put your &lt;strong&gt;vpn username&lt;/strong&gt; on the first line&lt;/li&gt;
      &lt;li&gt;Put your &lt;strong&gt;vpn password&lt;/strong&gt; on the second line&lt;/li&gt;
      &lt;li&gt;Save the file&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Edit the &lt;em&gt;openvpn_files_for_openwrt\etc\config\openvpn&lt;/em&gt; file. You may have to select Notepad if you double-click, or open Notepad and then open the file.
    &lt;ul&gt;
      &lt;li&gt;On the last line with &lt;em&gt;option remote ‘my.openvpn.server 1194’&lt;/em&gt;,&lt;br /&gt;
  replace &lt;em&gt;my.openvpn.server&lt;/em&gt; with the &lt;strong&gt;server name or IP of your&lt;br /&gt;
  VPN server&lt;/strong&gt;. Replace &lt;em&gt;1194&lt;/em&gt; with &lt;strong&gt;your vpn port&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Save the file&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Look through the rest of the files. They should be short and simple enough that they make sense and you can make sure they don’t have any hidden backdoors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;copying-files-to-the-device&quot;&gt;Copying Files to the Device&lt;/h2&gt;

&lt;p&gt;Next is copying the configuration files to the device. For people not familiar with Linux systems, SSH and SCP are ways to log in and copy files. Windows doesn’t have this by default, but Putty and WinSCP are great tools to use on Windows systems. We’re going to use WinSCP to copy the files over.&lt;/p&gt;

&lt;p&gt;Also as a note, Windows displays folder paths as etc\config\openvpn. Linux displays them as etc/config/openvpn. We won’t restart the war over which one is better.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Open WinSCP. It should bring up a login screen
    &lt;ul&gt;
      &lt;li&gt;Change the &lt;em&gt;File protocol&lt;/em&gt; to &lt;strong&gt;SCP&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;In &lt;em&gt;Host name&lt;/em&gt;, enter &lt;strong&gt;192.168.1.1&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;In &lt;em&gt;Username&lt;/em&gt;, enter &lt;strong&gt;root&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;In &lt;em&gt;Password&lt;/em&gt;, enter &lt;strong&gt;the password you set&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;Click the &lt;strong&gt;Login&lt;/strong&gt; button&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;The first time you connect to a system, it will give an &lt;em&gt;unknown server warning&lt;/em&gt;. Click the &lt;strong&gt;Yes&lt;/strong&gt; button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the left half of the screen is your computer. On the right is the device. Each side shows the current folder for that system. You can drag and drop files from one to the other to copy them back and forth. In the toolbar on each side are buttons to navigate directories, go up one folder, etc. The &lt;em&gt;Up&lt;/em&gt; button (with the hint &lt;em&gt;Parent Directory&lt;/em&gt;) is the most useful here.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;On the right side navigate to &lt;strong&gt;/etc/openvpn&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;Use the &lt;strong&gt;dropdown or the up button&lt;/strong&gt; to go up to the &lt;em&gt;&lt;strong&gt;/ (root)&lt;/strong&gt;&lt;/em&gt; directory&lt;/li&gt;
      &lt;li&gt;Double-click the &lt;strong&gt;etc&lt;/strong&gt; folder&lt;/li&gt;
      &lt;li&gt;Double-click the &lt;strong&gt;openvpn&lt;/strong&gt; folder&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;On the left side, navigate to where you have your &lt;strong&gt;VPN Provider configuration files&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Drag the &lt;strong&gt;ca.crt, client.crt, client.key and ta.key&lt;/strong&gt; files to the right side to copy them&lt;/li&gt;
  &lt;li&gt;In the &lt;em&gt;Upload dialog box&lt;/em&gt;, click &lt;strong&gt;OK&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Copy your OpenVPN configuration files
    &lt;ul&gt;
      &lt;li&gt;On the left side, navigate to where you have &lt;strong&gt;your OpenVPN configuration files&lt;/strong&gt;&lt;/li&gt;
      &lt;li&gt;On the left side, go into the &lt;strong&gt;etc\openvpn&lt;/strong&gt; folder&lt;/li&gt;
      &lt;li&gt;Copy the &lt;strong&gt;blink_led_fast.sh, blink_led_slow.sh, myvpn.pass, vpn.down and vpn.up&lt;/strong&gt; files to the right side (in &lt;em&gt;/etc/openvpn&lt;/em&gt;)&lt;/li&gt;
      &lt;li&gt;Change Permissions
        &lt;ul&gt;
          &lt;li&gt;On the right side, select all the files and click the &lt;strong&gt;Properties&lt;/strong&gt; button&lt;/li&gt;
          &lt;li&gt;In &lt;em&gt;Octal&lt;/em&gt;, enter &lt;strong&gt;0600&lt;/strong&gt;. The permissions checkboxes should automatically change&lt;/li&gt;
          &lt;li&gt;Click OK.&lt;/li&gt;
          &lt;li&gt;On the right side, select the &lt;strong&gt;blink_led_fast.sh, blink_led_slow.sh, vpn.down and vpn.up&lt;/strong&gt; files and click the &lt;strong&gt;Properties&lt;/strong&gt; button&lt;/li&gt;
          &lt;li&gt;In &lt;em&gt;Octal&lt;/em&gt;, enter &lt;strong&gt;0700&lt;/strong&gt;.&lt;/li&gt;
          &lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;On both the left and right sides, navigate up one level (&lt;em&gt;to etc&lt;/em&gt;) and open the &lt;strong&gt;config&lt;/strong&gt; folder&lt;/li&gt;
      &lt;li&gt;Copy the &lt;strong&gt;openvpn&lt;/strong&gt; file to the right side (in &lt;em&gt;/etc/config&lt;/em&gt;)
        &lt;ul&gt;
          &lt;li&gt;On the &lt;em&gt;Overwrite File&lt;/em&gt; dialog screen, click the &lt;strong&gt;Yes&lt;/strong&gt; button&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;On both the left and right sides, navigate up one level (&lt;em&gt;to etc&lt;/em&gt;) and open the &lt;strong&gt;rc.button&lt;/strong&gt; folder&lt;/li&gt;
      &lt;li&gt;Copy the &lt;strong&gt;reset&lt;/strong&gt; file to the right side (in &lt;em&gt;/etc/rc.button&lt;/em&gt;)
        &lt;ul&gt;
          &lt;li&gt;On the &lt;em&gt;Overwrite File&lt;/em&gt; dialog screen, click the &lt;strong&gt;Yes&lt;/strong&gt; button&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Close WinSCP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_winscp_01.png&quot; alt=&quot;WinSCP site&quot; /&gt;&lt;/p&gt;

&lt;p&gt;WinSCP site&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_winscp_02.png&quot; alt=&quot;Accept server key&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Accept server key&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_winscp_03.png&quot; alt=&quot;Navigate to files&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Navigate to files&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_winscp_04.png&quot; alt=&quot;Drag files to upload&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Drag files to upload&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_winscp_05.png&quot; alt=&quot;Old permissions&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Old permissions&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_winscp_06.png&quot; alt=&quot;New permissions&quot; /&gt;&lt;/p&gt;

&lt;p&gt;New permissions&lt;/p&gt;

&lt;h3 id=&quot;reset-the-device&quot;&gt;Reset the device&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;From the web management menu, select &lt;strong&gt;System -&amp;gt; Reboot&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Perform reboot&lt;/strong&gt; link&lt;/li&gt;
  &lt;li&gt;The device LED will &lt;em&gt;blink&lt;/em&gt; while it’s loading, then go into a very &lt;em&gt;slow blink&lt;/em&gt; cycle (once every 5 seconds)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_system_reboot_01.png&quot; alt=&quot;Reboot device&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Reboot device&lt;/p&gt;

&lt;h3 id=&quot;push-the-button&quot;&gt;Push the Button&lt;/h3&gt;

&lt;p&gt;Now we get to test and see if it all works. The page that shows how to use the device is here, but we’ll go through the basics and make sure it works.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Find a paperclip&lt;/li&gt;
  &lt;li&gt;Find the &lt;em&gt;Reset&lt;/em&gt; button. It’s between the &lt;em&gt;LAN/WAN port&lt;/em&gt; and the &lt;em&gt;USB port&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Push the &lt;strong&gt;Reset&lt;/strong&gt; button (for less than a second). You should &lt;em&gt;hear/feel it click&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;After a couple of seconds, the LED should start a &lt;em&gt;fast blink&lt;/em&gt; cycle&lt;/li&gt;
  &lt;li&gt;To test, open an web browser and go to a geolocation website like &lt;a href=&quot;https://www.iplocation.net/&quot;&gt;http://www.iplocation.net/&lt;/a&gt; . It should show a location different than yours.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it. You’re done.&lt;/p&gt;

&lt;h2 id=&quot;troubleshooting&quot;&gt;Troubleshooting&lt;/h2&gt;

&lt;p&gt;Hate to say it, but sometimes things go wrong. Here’s some general steps to start troubleshooting any issues.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;If nothing happens when you press the button, check all of the&lt;br /&gt;
configuration files uploaded to the device and the permissions in&lt;br /&gt;
/etc/openvpn. These are the files that start the vpn when you press&lt;br /&gt;
the button and control the LED&lt;/li&gt;
  &lt;li&gt;For everything else, compare the web interface to the instructions&lt;br /&gt;
and make sure you didn’t miss a step.&lt;/li&gt;
  &lt;li&gt;It’s also entirely possible that I missed a step. Post a comment&lt;br /&gt;
here and I’ll take a look and comment/update as needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;hardcore-troubleshooting-on-the-command-line&quot;&gt;Hardcore Troubleshooting on the Command Line&lt;/h3&gt;

&lt;p&gt;When all else fails, time to break out some command line foo. For Windows system, this requires a SSH tool like Putty to be installed.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Run &lt;strong&gt;Putty&lt;/strong&gt;. The &lt;em&gt;PuTTY Configuration&lt;/em&gt; dialog should appear&lt;/li&gt;
  &lt;li&gt;In &lt;em&gt;Host Name&lt;/em&gt;, enter &lt;strong&gt;192.168.1.1&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Click the &lt;strong&gt;Open&lt;/strong&gt; button. The main window should open&lt;/li&gt;
  &lt;li&gt;For &lt;em&gt;login as:&lt;/em&gt; enter &lt;strong&gt;root&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;For &lt;em&gt;password:&lt;/em&gt;, enter &lt;strong&gt;the password you set&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Type in the command
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;/etc/init.d/openvpn start&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;See if the LEDs start the fast blink. If not, enter this command to stop the vpn
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;/etc/init.d/openvpn stop&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Enter this command below to start watching the VPN log
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;tail -f /tmp/openvpn.log&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Now press the &lt;strong&gt;Reset&lt;/strong&gt; button to start the VPN. If nothing happens,&lt;br /&gt;
the &lt;em&gt;/etc/rc.button/reset&lt;/em&gt; configuration may not be correct. If text&lt;br /&gt;
starts scrolling by, look for &lt;em&gt;cannot connect to server&lt;/em&gt; or &lt;em&gt;invalid&lt;br /&gt;
username/password&lt;/em&gt; type messages which may indicate that the &lt;em&gt;VPN&lt;br /&gt;
provider configuration files&lt;/em&gt; or the &lt;em&gt;/etc/openvpn/myvpn.pass&lt;/em&gt; file&lt;br /&gt;
may not be correct. You can fix these on your systems and use WinSCP&lt;br /&gt;
to re-upload the files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_putty_01.png&quot; alt=&quot;Putty configuration&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Putty configuration&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://www.digitalreplica.org/assets/images/2014-10-10-pocket-internet-privacy-shield/tplink_putty_02.png&quot; alt=&quot;Openwrt command line&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Openwrt command line&lt;/p&gt;</content><author><name>Danny Rappleyea</name></author><category term="articles" /><category term="privacy" /><summary type="html">When traveling, Internet access in hotels is totally insecure. You can't trust they've done it right. So this guide helps you create your own travel router to send all traffic through the VPN of your choice.</summary></entry></feed>