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
Pi-hole
-
install curl with: sudo apt install curl
-
install pihole with: curl -sSL https://install.pi-hole.net | bash
-
i selected all the preset prompts in pihole I used ifconfig to determine my Ip although you can use ip addr show
-
write down pihole password at end
-
change DNS IP on router to pihole IP
-
change DNS IP on each device / pc in your lan to the pihole IP
-
from a browser http://piholeIP/admin
- 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
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]
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ä.