Skip to content

Commit

Permalink
Merge branch 'fpf-develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
harlo committed Jun 15, 2015
2 parents 5679434 + 16dcf7e commit 7cc5937
Show file tree
Hide file tree
Showing 6 changed files with 521 additions and 21 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@

SecureDrop is an open-source whistleblower submission system that media organizations can use to securely accept documents from and communicate with anonymous sources. It was originally created by the late Aaron Swartz and is currently managed by [Freedom of the Press Foundation](https://freedom.press).

## Found an issue?

If you're here because you want to report an issue in SecureDrop, please observe the following protocol to report an issue responsibly:

* If you want to report a **_security issue_**, please use our [bug bounty hosted by Bugcrowd](https://bugcrowd.com/freedomofpress).
* If the issue does not have a security impact, just create a [Github Issue](https://github.com/freedomofpress/securedrop/issues/new).

## Technical Summary

SecureDrop is a tool for sources to communicate securely with journalists. The SecureDrop application environment consists of three dedicated computers:
Expand Down
4 changes: 2 additions & 2 deletions docs/develop.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ latest stable version.

```sh
sudo apt-get install python-pip
sudo pip install -U ansible
sudo pip install ansible==1.8.4
```

If you're using Ubuntu, you can install a sufficiently recent version of Ansible from backports (if you prefer): `sudo apt-get install ansible/trusty-backports`
Expand All @@ -71,7 +71,7 @@ Install the requirements:
3. [Ansible](http://docs.ansible.com/intro_installation.html). There are several
ways to install Ansible on a Mac. We recommend using pip so you will get
the latest stable version. To install Ansible via pip, `sudo easy_install
pip && sudo pip install -U ansible`.
pip && sudo pip install ansible==1.8.4`.

# Clone the repository

Expand Down
6 changes: 3 additions & 3 deletions docs/google_authenticator.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
### Set up Google Authenticator for the App and Monitor Servers
### Set up Google Authenticator

As part of the SecureDrop installation process, you will need to set up two factor authentication using the Google Authenticator app for both your App and Monitor Servers.
As part of the SecureDrop installation process, you will need to set up two factor authentication for both servers using the Google Authenticator app.

Connect to one of the server using `ssh` and run `google-authenticator`. Open the Google Authenticator app on your smartphone and follow the steps below for either iOS or Android. Once you've properly set up your first server, repeat these steps again on the other.
Connect to the *Application Server* using `ssh` and run `google-authenticator`. Open the Google Authenticator app on your smartphone and follow the steps below for either iOS or Android. Repeat these steps for the *Monitor Server*.

**iOS instructions:**

Expand Down
43 changes: 43 additions & 0 deletions docs/google_authenticator.md.orig
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<<<<<<< HEAD
### Set up Google Authenticator for the App and Monitor Servers

As part of the SecureDrop installation process, you will need to set up two factor authentication using the Google Authenticator app for both your App and Monitor Servers.

Connect to one of the server using `ssh` and run `google-authenticator`. Open the Google Authenticator app on your smartphone and follow the steps below for either iOS or Android. Once you've properly set up your first server, repeat these steps again on the other.
=======
### Set up Google Authenticator

As part of the SecureDrop installation process, you will need to set up two factor authentication for both servers using the Google Authenticator app.

Connect to the *Application Server* using `ssh` and run `google-authenticator`. Open the Google Authenticator app on your smartphone and follow the steps below for either iOS or Android. Repeat these steps for the *Monitor Server*.
>>>>>>> 71defa9c4222d2f343017a3b5e9594866cdfefc4

**iOS instructions:**

* Select the pencil in the top-right corner
* Select the plus sign at the bottom to add a new entry
* Select *Scan Barcode*
* Scan the barcode using your phone's camera

A new entry will automatically be added to the list. If you wish to edit this entry and give it a new name, do the following:

* Select the pencil in the top-right corner
* Select the pencil next to the entry you wish to edit
* Select the checkmark in the top-right corner to save

To complete the setup process, say `y` to each prompt presented by `google-authenticator`.

**Android instructions:**

* Select the menu bar in the top-right corner
* Select *Set up account*
* Select *Scan a barcode*
* Scan the barcode using your phone's camera

A new entry will automatically be added to the list. If you wish to edit this entry and give it a new name, do the following:

* Highlight the entry with a long press
* Select the pencil in the top-right corner
* Edit the entry's name and press Save

To complete the setup process, say `y` to each prompt presented by `google-authenticator`.
23 changes: 7 additions & 16 deletions docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,25 +222,17 @@ Now that you've set up your password manager, you can move on to setting up the

Now that the firewall is set up, you can plug the *Application Server* and the *Monitor Server* into the firewall. If you are using a setup where there is a switch on the LAN port, plug the *Application Server* into the switch and plug the *Monitor Server* into the OPT1 port.

Install Ubuntu Server 14.04 (Trusty) on both servers. This setup is fairly easy, but please note the follwoing:

* Since the firewall is configured to give the servers a static IP address, you will have to manually configure the network with those values.
* The hostname for the servers are, conventionally, `app` and `mon`. Adhering to this isn't necessary, but it will make the rest of your install easier.
* The username and password for these two servers **must be the same**.

For detailed instructions on installing and configuring Ubuntu for use with SecureDrop, see our [Ubuntu Install Guide](/docs/ubuntu_config.md).

When you are done, make sure you save the following information:
Install Ubuntu Server 14.04 (Trusty) on both servers. For detailed instructions on installing and configuring Ubuntu for use with SecureDrop, see our [Ubuntu Install Guide](/docs/ubuntu_config.md). When you are done, make sure you save the following information:

* The IP address of the App Server
* The IP address of the Monitor Server
* The non-root user's name and password for the servers.
* The non-root user's name and password on each server.

Before continuing, you'll also want to make sure you can connect to the App and Monitor servers. You should still have the Admin Workstation connected to the firewall from the firewall setup step. In the terminal, verify that you can SSH into both servers, authenticating with your password:

```sh
ssh <username>@<App IP address>
ssh <username>@<Monitor IP address>
ssh <username>@<App IP address> hostname
ssh <username>@<Monitor IP address> hostname
```

Once you have verified that you can connect, continue with the installation. If you cannot connect, check the firewall logs.
Expand Down Expand Up @@ -354,7 +346,8 @@ The Ansible playbook will run, installing SecureDrop plus configuring and harden
Once the installation is complete, the addresses for each Tor Hidden Service will be available in the following files in `install_files/ansible-base`:

* `app-source-ths`: This is the .onion address of the Source Interface
* `app-document-aths`: This is the `HidServAuth` configuration line for the Document Interface. * `app-ssh-aths`: Same as above, for SSH access to the Application Server.
* `app-document-aths`: This is the `HidServAuth` configuration line for the Document Interface. During a later step, this will be automatically added to your Tor configuration file in order to exclusively connect to the hidden service.
* `app-ssh-aths`: Same as above, for SSH access to the Application Server.
* `mon-ssh-aths`: Same as above, for SSH access to the Monitor Server.

Update the inventory, replacing the IP addresses with the corresponding onion addresses from `app-ssh-aths` and `mon-ssh-aths`. This will allow you to re-run the Ansible playbooks in the future, even though part of SecureDrop's hardening restricts SSH to only being over the specific authenticated Tor Hidden Services.
Expand All @@ -381,9 +374,7 @@ HidServAuth fsrrszf5qw7z2kjh.onion xW538OvHlDUo5n4LGpQTNh # client: admin
HidServAuth yt4j52ajfvbmvtc7.onion vNN33wepGtGCFd5HHPiY1h # client: admin
```

An easy way to do this is to run `cat *-aths` from the `install_files/ansible-base` folder in a terminal window, and copy/paste the output into the opened text editor.

When you are done, click *Save* and **close** the text editor. Once the editor is closed, the install script will automatically resume.
When you are done, click *Save* and **close** the text editor. The script will finish running soon thereafter.

Running `install.sh` sets up an initialization script that automatically updates Tor's configuration to work with the authenticated hidden services every time you login to Tails. As long as Tails is booted with the persistent volume enabled then you can open the Tor Browser and reach the Document Interface as normal, as well as connect to both servers via secure shell. Tor's [hidden service authentication](https://www.torproject.org/docs/tor-manual.html.en#HiddenServiceAuthorizeClient) restricts access to only those who have the 'HidServAuth' values.

Expand Down
Loading

0 comments on commit 7cc5937

Please sign in to comment.