No Description

panda 49da73c8fa added instructions for non-root users 4 months ago
debug 2e7b7c48b4 fix singularity 5 months ago
keys 4881a7d3ec second commit 5 months ago
repo 0016da9fed first commit 5 months ago
roles e6014d1355 removed part of iptables command for compatibility 4 months ago
README.md 49da73c8fa added instructions for non-root users 4 months ago
common.yml 4aa137f8a6 added ssh to the packages installation since it might not be installed and the hardening is not optional 4 months ago
docker.yml e9fa43f8e0 add docker 5 months ago
hosts 0016da9fed first commit 5 months ago
lldp.yml 0016da9fed first commit 5 months ago
singularity.yml 2d15791ead added singularity 5 months ago
telegraf.yml 0016da9fed first commit 5 months ago
tincvpn.yml e9fa43f8e0 add docker 5 months ago
to_add.txt 4881a7d3ec second commit 5 months ago
tor.yml d57d37b693 add tor 5 months ago
transmission.yml 0016da9fed first commit 5 months ago
variables.yml e8837a173c fix README 5 months ago

README.md

Table of contents

NOTA BENE

I've tested the playbooks mainly on Debian 9 and ubuntu (server) 18.04 LTS running as root, on Ubuntu (Desktop) 19.04 running ad user. I've started converting the roles to distinguish between OSes but it's incomplete.

Prerequisites

install ansible:

apt-get install -y ansible

add hosts lines to ansible:

echo "[thismachine]" >> /etc/ansible/hosts
echo "127.0.0.1" >> /etc/ansible/hosts

Setup

you have to change at least 2 variables:

  • users
  • hostname

which by default are set to "CHANGEME" anche the playbook is set to fail if these are set to CHANGEME

insert your user in:

variables.yml

in the list:

    users:
      goofy

and their ssh keys in the folder

keys

in form of filename:

goofy.key.pub

and format:

ssh-rsa [/CUT] user@host

insert your hostname in

variables.yml

in the variable:

hostname:

Run defaults

ansible-playbook common.yml

or if you are running as non-root:

sudo ansible-playbook common.yml

this playbok will:

  • check if the variables are set
  • change the hostname to the one that has been set in the variables
  • set the timezone to the one in the variables (default: Europe/Rome)
  • update repositories
  • install base packages
  • retrieve the main network interface (the one that is associated with the default gateway)
  • iptables:
    • create the users defined in the variables with the keys
    • create basic ipv4 rules
    • create blocking ipv6 rules
    • apply said rules in iptables-persistent
  • fix bashrc how I like it
  • harden ssh

Run optionals

  • docker.yml
    • installs docker-ce and docker-compose (variable in variables.yml for latest of docker-compose)
  • lldp.yml
    • installs and enables LLDP
  • telegraf.yml
  • tincvpn.yml
  • transmission.yml
  • singularity.yml
    • installs go and builds and installs singularity
  • tor.yml
    • installs tor base from tor repo

Versions

Git push

git add --all
git commit -m "added things to readme"
git push -u origin master

or:

git add --all && git commit -m "message" && git push -u origin master

TODO

  • fix the installation that is only for deb systems in common.yml
  • test on centos