Et par noter på at få PaloAlto Networks MineMeld til til at starte på Debian 10.

Basalt er det at følge steps'ne for Debian9 her: https://github.com/PaloAltoNetworks/minemeld-ansible

$ sudo apt-get update
$ sudo apt-get upgrade # optional
$ sudo apt-get install -y gcc git python2.7-dev libffi-dev libssl-dev
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo -H python get-pip.py
$ sudo -H pip install ansible
$ git clone https://github.com/PaloAltoNetworks/minemeld-ansible.git
$ cd minemeld-ansible
$ ansible-playbook -K -i 127.0.0.1, local.yml
$ sudo usermod -a -G minemeld <your user> # add your user to minemeld group, useful for development

Men da, det er lavet til Debian-9 kommer man ikke langt, derfør skal nedstående rettes før ovenstående virker :-)

1) tilføj sudo til debian minimal, incl en bruger, dette er nødvendig såfremt starter fra en basic Debian netinst installation

2) Certificaterne på Git virker ikke med nginx, så der skal lige et par nye ind.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/minemeld.key -out /etc/nginx/minemeld.crt
cat minemeld.crt minemeld.key > minemeld.pem
cp minemeld.pem /usr/src/minemeld/minemeld-ansible/roles/minemeld/files/minemeld.pem
cp minemeld.crt /usr/src/minemeld/minemeld-ansible/roles/minemeld/files/minemeld.cer

3) Lav sådan at ansible understøtter Debian-10

cp /usr/src/minemeld/minemeld-ansible/roles/infrastructure/vars/Debian-9.yml /usr/src/minemeld/minemeld-ansible/roles/infrastructure/vars/Debian-10.yml
Change line til Debian 10 : infrastructure_include: Debian-10

cp /usr/src/minemeld/minemeld-ansible/roles/infrastructure/tasks/Debian-9.yml /usr/src/minemeld/minemeld-ansible/roles/infrastructure/tasks/Debian-10.yml

cp /usr/src/minemeld/minemeld-ansible/roles/minemeld/vars/Debian-9.yml /usr/src/minemeld/minemeld-ansible/roles/minemeld/vars/Debian-10.yml

 

Mere info:

https://github.com/PaloAltoNetworks/minemeld/wiki
https://live.paloaltonetworks.com/t5/minemeld-articles/quick-tour-of-minemeld-default-config/ta-p/72042

https://serveripaddrsse/#/login
Default credentials are admin / minemeld

 

For noget tid siden skrev jeg om guacamole, siden da har jeg brugt det en del, og der er kommet nogle gode opdateringer.

Støreste problem, som jeg dog som tekniker kan leve med, var mangle på dansk tastatur i RDP, dette er løst nu, blot husk at sæt det op på connectionen.

Sikkerheds mæssigt, er det nemt at få understøttelse at TOTP -> dvs. en MFA authentication code på min mobil.

Sidst jeg sat det op på en Debian 10 installation,var via guac-install.sh -> https://github.com/MysticRyuujin/guac-install/

Hvis man vælger at benytte "guac-install.sh" scriptet som er nemt og hurtigt, skal man huske at den forventer at man køre det som sudo og gør man det ikke går den i stå da ldconfig ikke kan findes.

Min hurtige workaround som jeg læse mig frem til var at tilføje ALWAYS_SET_PATH yes til   /etc/login.defs ( kilde: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918754)

køre man  guac-install.sh --totp , får man fra sekundt 1 af mfa på admin kontoen, og husker man at give de bruger man oprettet lov til at skifte deres eget pw, kommer det også på dem...

En anden ting, er at man kan få NLA til at virke med RDS, dette kræver dog at man udfylder authentication felterne når man opsætter en ny host, til gængæld skal man ikke nedgrader RDP sikkerheden på klienten i baggrunden som jeg gjort i første omgang,  laver man ldap integration med guacamole, kan man få det første logon, til at løbe hele vejen igennen, sådan det nærmest bliver dynamisk sso logon, agtigt.

beskrivelse af ldap kan ses her: https://github.com/Zer0CoolX/guacamole-install-rhel/wiki/LDAP-or-LDAPS-Authentication

 Den helt korte og hurtige sekvens for at installer guacamole

hent sudo og git ned, det er bland de første commandoer som skal benyttes

apt-get install sudo git

Se at ens bruger er del af sudoers 
sudoedit /etc/sudoers

Log ud og ind igen, såfremt man er forbundet via putty

Opret mappe til at køre installationen fra

mkdir -p /usr/src/guacamole/1.1.0
cd /usr/src/guacamole/1.1.0

Hent installationen

git clone https://github.com/MysticRyuujin/guac-install
cd ./guac-install

Se at git har hentet filerne ned
ls -lh

Gør installations scriptet eksikverbar

chmod +x guac-install.sh

Start installatinen, og besvar spørgsmål som kommer, hvilket primært at omkring mysql kodeord.

Sudo ./guac-install.sh --totp

Opleves nedestående fejl, skyldes path ikker er på plads og man ikke har kørt kommandoen som sudo


./guac-install.sh: line 440: ldconfig: command not found
betyder at man ikke har kør det som sudo
ryd op i mappen
rm -rf guacamole-*
rm -rf mysql-connector-java-8.0.19
rm -rf mysql-connector-java-8.0.19.tar.gz

og køre igen, hvor det huskes at benytte sudo

 

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