For noget tid siden fik jeg beskyttet mine domainer med Dmarc, en forholdvis let opgave, dog betød dette at jeg begyndte at løbe i nogle udfordringer i forhold til forenings arbejde, hvor vi benytter One.com som maillist distributions knud.

Efter Dmarc var kommet på plads, blev mine email der via mail listen hos One.com skulle videre til "gmail" afvise, jeg kunne sandsynligvis løse dette med at gå fra -all til ~all i min spf record, eller jeg kunne opsætte DKIM, noget jeg har haft planer om i noget tid.

Mit udgangs punkt blev beskrivelsen her: https://www.obstance.com/ubuntu/dkim-on-multiple-domains-with-exim4/ dog med nogle ændringer og naturligvis Exim dokumentationen her: https://www.exim.org/exim-html-current/doc/html/spec_html/ch-dkim_and_spf.html

Jeg benytter 2048 i mine certifiater og jeg benytter ikke default selector.

Step 1) oprette korrekte mapper

mkdir /etc/exim4/dkim

Step 2) opret keys

cd /etc/exim4/dkim

openssl genrsa -out mxbox.dk.pem 2048

openssl rsa -in mxbox.dk.pem -pubout > mxbox.dk.pub

 

Step 3) sæt korrekt permissions på keys

chown -R Debian-exim:Debian-exim /etc/exim4/dkim/

chmod 640 /etc/exim4/dkim/*

 

Step 4)

Derefter skal exim config filen ændres, jeg køre med split så hos mig var det
Nano /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp

og indsæt i toppen

 DKIM_DOMAIN = ${lc:${domain:$h_from:}}

DKIM_FILE = /etc/exim4/dkim/${lc:${domain:$h_from:}}.pem

DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}

DKIM_SELECTOR = gw2019

DKIM_CANON = relaxed

 

 

Dkim selector er vigtigt at bide mærke i, da dette er den DNS TXT record som det public certificat skal ligges ind i.

 

Step 5)

Opret txt record. gw2019._domainkey.mxbox.dk

Text: v=DKIM1; p=MIGfMA0GCSqGS....... stregnen fra  mxbox.dk.pub certificatet der blev oprettet i step 2)

 

Step 6)

test DNS opsætningen efter 5 minutter i hos dmarcian:  https://dmarcian.com/dkim-inspector/?domain=mxbox.dk&selector=gw2019
d
et er for at sikre der ikke er nogle typo  eller c&p fejl.

Step 7)

opdater exim  config. med

update-exim.conf

derefter reload exim

/etc.init.d/exim restart

 

step 8) 

Send en email til f.eks en gratis gmail konto og se at DKIM er blevet valideret korrekt.

 

echo "This is a123123123" | mail -r This email address is being protected from spambots. You need JavaScript enabled to view it. -s Test23123 This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Herefter skulle dkim gerne køre korrekt. :-) husk at forny selector nøglen 1 gang årligt ;-)

Ovenstående bør naturligvis løbes igennem for alle de domains en gateways sender emails ud på vegne af.

 

Et af mine senste små projekter har være at lave en linux baseret RDS løsnig. JA, linux service som agere som RDS server :-)

Projektet er baseret på Guacamole og projekt sitet findes her: https://guacamole.apache.org/

Det virker super fint, men kræver at man ændre nogle sikkerhed indstillinger på windows 10 før RDP.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
 “SecurityLayer” dword 1
“UserAuthentication” dword 0

Kort info om hvad konsekvensen af overnståene ændring giver kan læses her:

 https://www.mvps.net/docs/how-to-secure-remote-desktop-rdp/

Ældre RDP kiienter ( windows 7 / server 2008R2 ser udtil at virke ude problemer )

Men ellers Guacamole er en fin lille java web-service hosted på en jboss motor.

Installationen er nem, jeg fulgte blot den samme som findes på debians Wiki : https://wiki.debian.org/Guacamole men brugte seneste pakker på siden.

 

Login page, hvor brugen godt kan styres fra en ldap f.eks ad i følge dokumentationen.

 

 

Efterfølgende kommer man en til landing sted, hvor de maskiner som man har rettigheder til en kan tilgåes fra.

Her under er der en RDP til en windows 10 klient ( jump station) og en ssh til en linux box.

 

Selve windows 10 logon via browser

 

 

og fuld desktop

 

 What not to like ?

Hvis der ikke er mfa på siden, vil jeg nok have at folk skal køre ind igennem nogle "jump" stations, sådan det er 2 sæt credentials som skal crackes før data kan tilgåes.

Mit test har jeg en Haproxy foran, guacamole serveren og et Lets encrypt  SSL certificat. 

 

 

Har lige haft gang i en Lille opgraderings opgave af en HAproxy, som benyttes primært til at redirect web trafik.

Et par noter:

Haproxy stats.

Version 1.5 virkede

listen stats minipaddresse:1936
mode http
log global

maxconn 10

stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:mitlangekodeord
stats uri /haproxy?stats

 

Version 1.7 skal man bruge "Bind" dvs:

listen stats
bind minipaddresse:1936

mode http
log global#

maxconn 10

stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:mitlangekodeord
stats uri /haproxy?stats

Stats kan forsat findes ved at tilgå uri http://minipaddresse:1936/haproxy?stats

 

En anden til som tog mig lidt tid var brug af ssl i frontend.

Version 1.5 havde jeg hvor rappidssl mappen var lå under /etc/ssl/private

frontend ft_443_tcp
bind *:443 name https ssl crt rappidssl/

 

Version 1.7 er skal root path til /etc/ssl/private defineres med ( certifiate flyttede jeg ned i private mappen, da jeg også benytter Letsencrypt certs )

frontend ft_443_tcp
bind 172.16.222.85:443 ssl crt /etc/ssl/private
mode tcp

 

Standard http port 80 frontend er der ikke sket såmeget ved.

frontend ft_http-in
bind *:80
mode http
option httplog
# Define hosts
#redir sitemutrunSSL fra http til https
redirect scheme https code 301 if { hdr_end(host) -i sitemustrunSSL } !{ ssl_fc }

#Fanger letsencrypt challenge og smider det til standalone backend port 1080 for verification.
acl letsencrypt_check path_beg /.well-known/acme-challenge/
use_backend letsencrypt_backend if letsencrypt_check

 backend letsencrypt_backend
mode http
log global
#http-request set-header Host letsencrypt.request
server letsencript-standalone 127.0.0.1:1080

 

 

 

Har lige været rundt på et par af mine debian linux kasser :-)

En virtuel Debian box, på en hyper-v server

Debian servre

Jeg er dog sikker på at der er et par "live" migrations ind over denne oppe tid.


En anden, denne dog fysisk debian box, baseret på Intel atom

Intel atom - gateway

Denne kasse står uden ups, dvs. er afhængig af alm forsynings strøm. - blev kun genstartet da elektrikkeren skulle arbejde i huset.

Jeg har fået lidt tid til at lege med Letsencrypt og haproxy.
Letsencrypt er en projekt som gør det mulight at få "gratis" ssl certificater, dog kun med 90 dages løbetid pt, senere i projektet vil dette blive ændret til kortere tid efter hvad jeg kan læse på https://letsencrypt.org/

Foran mine web services har jeg en Haproxy kørrende, da denne kan splittet http / tcp trafik og derved er ligeglad med om en M$ service overholder http standard.

Dette betyder også at det er her mine offentlige ssl certificater termineres og det vil være her jeg skal have letsencrypt til at fungere.

Jeg vil gøre nytte af at ./letsencrypt-auto faktisk kan starte sin "egen" webserver til at gennemføre den authentikering som er nødvendig for at certificatet kan udstedes.

Denne authentikering køre over port 80 som udgangspunkt, hvor jeg har andre webserver kørrende, derfor kan jeg benytte " path_beg" funktionen i Haproxy til at fange url forspørgselser imode "/.well-known/acme-challenge/" og sikre at dette sendes videre til letencrypts egen webserver, som kun køre i forbindelse med oprettelse/fornyelse af certificater på den port der defines via "--http-01-port" parameteren af ./letsencrypt-auto scriptet.

De færdige certifivater vil være at finde under  /etc/letsencrypt/live og det PEM certificat som Haproxy skal bruge dannes via cat fullchain.pem privkey.pem > gw.mxbox.dk.pem og kopier gw.mxbox.dk.pem til /etc/ssl/private/

vi /etc/haproxy/haproxy.cfg

frontend ft_http-in bind *:80
mode http
option httplog

acl letsencrypt_check path_beg /.well-known/acme-challenge/
use_backend letsencrypt_backend if letsencrypt_check

backend letsencrypt_backend
mode http
log global
server letsencript-standalone 127.0.0.1:1080


vi /etc/letsencrypt/cli.ini

standalone-supported-challenges = http-01
authenticator = standalone
email = This email address is being protected from spambots. You need JavaScript enabled to view it.
rsa-key-size = 4096


./letsencrypt-auto certonly --renew-by-default --agree-tos  --http-01-port 1080 --domains gw.mxbox.dk

cd /etc/letsencrypt/live/gw.mxbox.dk

cat fullchain.pem privkey.pem > gw.mxbox.dk.pem

cp gw.mxbox.dk.pem /etc/ssl/private/

/etc/init.d/haproxy reload