Verkko

Staattinen ip

sudo nano /etc/network/interfaces

auto wlp3s0
iface wlp3s0 inet static
address (esim 192.168.1.100)
netmask 255.255.255.0
gateway (esim 192.168.1.1)

Tarkistus:

sshoola ensin purkhiin, sitte komento

nvram get static_leases

https://www.dd-wrt.com/phpBB2/viewtopic.php?t=48246&sid=15526c624f4bf74ccdf53f6ac5130adf

https://www.dd-wrt.com/wiki/index.php/Static_DHCP

Pihole Install on Ubuntu 19.10 Tutorial from pihole

Pi-hole

  1. install curl with: sudo apt install curl

  2. install pihole with: curl -sSL https://install.pi-hole.net | bash

  3. i selected all the preset prompts in pihole I used ifconfig to determine my Ip although you can use ip addr show

  4. write down pihole password at end

  5. change DNS IP on router to pihole IP

  6. change DNS IP on each device / pc in your lan to the pihole IP

  7. from a browser http://piholeIP/admin

  8. Re-settings pihole -r

Pitää olla lan down, wlp2s0 up. Sitten nmcli device wifi connect ”ssid”.

Komentoja

sudo arp-scan -l  (sisäverkon vehkeet)

nmap -p- iposote (kaikki portit)

sudo nmap -sS -O (käyttis)

nmap -v (pitkä)

traceroute

tracepath

nslookup

host

netstat -atp (https://www.tecmint.com/20-netstat-commands-for-linux-network-management/)

ifup ifdown

service network restart

https://unix.stackexchange.com/questions/62247/how-do-i-know-what-service-is-running-on-a-particular-port-in-linux

Wlan komentoja

ifconfig wlp2s0 up

nmcli dev show (näyttää tietoja)

nmcli dev wifi (näyttää langattomat verkot)

Siivous ip addr flush dev enp0s4

https://askubuntu.com/questions/1066357/ubuntu-18-04-minimal-server-has-two-ip-addresses

DD-WRT

R7000 valot pois, Administration -> Commands Lähde

# kill blink on LEDs
killall blink
# Disable WAN and LAN LEDs
et robowr 0x0 0x18 0x1ff
et robowr 0x0 0x18 0x0
et robowr 0x0 0x1a 0x0
# disable WPS button LED
gpio disable 14
# disable WLAN button LED
gpio disable 15
# turn off power LED white
gpio enable 2
# turn off 2.4GHz LED
gpio enable 13
# turn off 5GHz LED
gpio enable 12
# disable USB 2 LED
gpio enable 18
# disable USB 1 LED
gpio enable 17

Packet capture

https://kb.intermedia.net/article/3392

tcpdump host <ip address> -w <filename>.pcap

Filun kopsaus:

scp -rp user@192.168.x.x:/tmp/mnt/sda/filu ./filu

https://www.cacti.net/

DNS-tsekkaus

# tcpdump -i eth0 -n udp port 53 or tcp port 53

Kopiointi SSHoola

scp /path/to/file username@a:/path/to/destination

SSH yhteyksien rajottaminen, palvelimella

sudo nano /etc/hosts.allow

sshd : 192.168 : allow
sshd : ALL : deny

https://superuser.com/questions/299036/can-i-create-an-ssh-user-which-can-access-only-certain-directory

HTTPS

https://ukk.kapsi.fi/questions/511/lets-encrypt

Koitanpas laittaa tähän noin copy&paste kelpoiset rivit miten sain itse toimimaan:

Ensin kertaluonteiset:

Ladataan Acme-tiny ja annetaan sille suoritusoikeudet:

git clone https://github.com/diafygi/acme-tiny.git
chmod u+x acme-tiny/acme_tiny.py

Luodaan käyttäjälle avain, tämä on privaatti, joten luodaan kotihakemistoon, ja pidetään visusti omana tietona, tätä voi käyttää tarvittaessa useamman, toisistaan riippumattoman, domainin kanssa:

openssl genrsa 4096 > ~/account.key
chmod 600 ~/account.key

Sitten luodaan haluttua sertifikaattia varten oma avain, tämä on domainkohtainen, ja kapsin webbipalvelin tarvitsee myös tämän tiedoston, tämä tallennetaan ~/sites/domain.tld/.ssl/server.key tiedostoon:

openssl genrsa 4096 > ~/sites/domain.tld/.ssl/server.key

Tämän jälkeen luodaan ”Certificate signing request” domainnimeä varten. Yhtä domainnimeä/subdomainia varten vaaditaan hieman erilainen komento kuin SNI-sertifikaattia varten (eli sertifikaatti joka kattaa esim domain.tld että www.domain.tld), eli suorita seuraavista joko/tai:

Yhtä domain/subdomainnimeä varten:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/CN=domain.tld" > ~/sites/domain.tld/.ssl/server.csr

monta domain/subdomainnimeä varten, tämä on hieman hankalan näköinen, mutta pääasia on huomioida nuo DNS:domain.tld kohdat, ylärajaa ei subdomainien määrissä periaatteessa ole, mutta kovin monen kymmenen kohdalla alkaa asiat tukehtumaan pullaansa:

openssl req -new -sha256 -key ~/sites/domain.tld/.ssl/server.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:domain.tld,DNS:www.domain.tld")) > ~/sites/domain.tld/.ssl/server.csr

Jos myöhemmin haluaa lisätä tai poistaa subdomaineja, niin ajaa vain komennon uudestaan sopivilla domainnimillä.

Seuraavaksi voidaankin jo testata että kaikki toimii, huomionarvoista on että acme-tiny/Let’s encrypt vaatii intuituion vastaisesti ”pääsyn” suojaamattoman http-yhteyden yli autentikaatio-noncen varmistamiseksi, eli jos sivusto pakko-ohjaa kaiken https:ään, niin tälle pitää tehdä poikkeus (Esimerkki ohjeiden lopussa). Luodaan Let’s encryptin vaatima sijainti nonce:a varten:

mkdir -p ~/sites/domain.tld/www/.well-known/acme-challenge/

Komennetaan acme-tiny allekirjoittamaan sertifikaatti, sekä ladataan ajantasainen Let’s encryptin intermediate-sertifikaatti

~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt

wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Kun komennot suoriutuvat onnistuneesti, oikein konffattu sivusto toimii sivusto https:n yli, kun kapsin Apache-palvelin reloadataan, tämä suoritetaan vuorokausittain automaattisesti.

Tämän jälkeen jäljelle jääkin vain sertifikaatin uusiminen ajoittain, tätä varten loin itse cronia varten skriptin tiedostoon ~/cron/acme-tiny-domain.tld.sh:

#!/bin/bash
~/acme-tiny/acme_tiny.py --account-key ~/account.key --csr ~/sites/domain.tld/.ssl/server.csr --acme-dir ~/sites/domain.tld/www/.well-known/acme-challenge/ > ~/sites/domain.tld/.ssl/server.crt
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem -O ~/sites/domain.tld/.ssl/ca.crt

Annetaan tälle skriptille suoritusoikeudet:

chmod u+x ~/cron/acme-tiny-domain.tld.sh

Ja viimeiseksi lisätään croniin rivi komennolla crontab -e joka samalla logittaa ulosantinsa tiedostoon, sekä suoritetaan 1 kuukauden välein:

0 0 1 * * ~/cron/acme-tiny-domain.tld.sh 2> ~/cron/domain.tld.log

Extra: .htaccess esimerkki, jossa ohjataan kaikki liikenne https, sekä alidomainin uudelleenohjaus + näille säännöille Lets encrypt poikkeus jotta Acme-tiny voi toimia oikein:

# Ohjaa kaikki liikenne HTTPS, paitsi Lets Encrypt
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]

# Ohjaa "mail" alidomain uudelle palvelimelle, paitsi Lets Encrypt
RewriteCond %{HTTP_HOST} ^mail\.domain\.tld$ [NC]
RewriteCond %{REQUEST_URI} !^/?\.well-known/acme-challenge/
RewriteRule (.*)$ https://mail.google.com/a/domain.tld [L,R=302,NC]
muokattu 31.07.2016 klo 18:13

ikilinkki

olmari's gravatar imageolmari vastasi
13.02.2016 klo 16:27
14614, hyväksyttyjä vastauksia:25%

https://tsk.iki.fi/2016/07/kapsi-lets-encrypt-ansible/

ansible-playbook -i production.ini site.yml -bash: ansible-playbook: command not found

Moro

Tuo johtuu siitä, että Lakalle ei ole asennettu Ansiblea. Itse ajoin Ansiblea omalta koneeltani.

Ansiblen voi Lakalla asentaa virtualenviin komennoilla

virtualenv env
. env/bin/activate
pip install ansible

Ja jos komento ”ansible –version” tulostaa ansiblen version, niin sitten asennus kaikella todennäköisyydellä onnistui.

Itse Ansiblesta löytyy ohjeita sivulta https://docs.ansible.com/ ja niihin kannattaa tutustua. Ja sitten kokeilemalla muokkaamalla sovittaa skriptit omaan käyttöönsä.