Change password the first time you login to RDP

Since server 2008 Microsoft introduced higher security on RDP sessions with NLA. If you have a company that never logs in to the domain controller using a pc and policy dictates that people should change passwords at first login this is impossible.

however, you can fix this by going to the collection, edit the properties and select Security.

Disable ‘Allow connections only from computers running Remote Desktop with Network Level Authentication’
Save and now you’re done!

Updating openssl on directadmin for Heartbleed

Updating openSSL for the new Heartbleed exploit.

[code]

cd /usr/src
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -xvzf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g

./config –prefix=/usr no-threads shared
make
make test
make install

After updating openSSL, we need to update DirectAdmin
cd /usr/local/direcctadmin/custombuild
./build clean
./build update
./build apache
./build php d
./build exim
./build dovecot

[/code]

MAILSCANNER + POSTFIX PART 2

Dus, de vorige keer hadden we het over baruwa en het installeren daarvan. Dat is natuurlijk een makkie. Nu moeten we het volgende deel namelijk het installeren van mailscanner en instellen hiervan.
Het plan hiervan is het opzetten van een simpel te gebruiken spamfilter welke voor meerdere domeinen werkt zonder teveel issues te zorgen.
Als eerste gaan we Postfix installeren en geen exim, postfix is weliswaar iets wat ikzelf fijner vind werken en daarom verkies ik dat boven exim.
apt-get install postfix
nu wordt exim gelijk weggehaald en postfix erop gezet.

Nu gaan we Mailscanner aanpassen, deze verwacht dat we nog Exim gebruiken maar dat willen we niet. Dus aanpassen!
nano -w /etc/MailScanner/MailScanner.conf
Zoek nu naar Run As User = Debian-exim en pas deze aan naar postfix. Doe dit ook voor Run As Group.
Nu de incoming dir en de Outgoing dir. Deze staan nu naar Exim en moeten dus ook aangepast worden.
Incoming Queue Dir = /var/spool/postfix/hold
Bij Outgoing Queue Dir = /var/spool/exim4_outgoing/input pas je deze aan naar Outgoing Queue Dir = /var/spool/postfix/incoming.
Hierna nog MTA aanpassen naar Postfix en klaar.
Pas nu /etc/default/mailscanner aan, uncomment run_mailscanner=1 en start mailscanner. Mailscanner logt standaard naar /var/log/mail.log
Mailscanner is klaar.

Terug naar Postfix, voor postfix moeten we 3 dingen nog doen, dit zijn transport, relay en header_check.
Voeg aan main.cf de volgende lines toe:

relay_domains = /etc/postfix/relay
transport_maps = hash:/etc/postfix/transport
header_checks = regexp:/etc/postfix/header_checks

Als eerste passen we header_checks aan. Hierin plaats je het volgende: /^Received:/ HOLD .
De overige 2 zijn voor het werkelijk versturen van mail. In de transport rule komt het volgende te staan:

domein.tld smtp:mailserver.domein.tld

Dit zegt: ik ga transport doen voor het domein domein.tld en ik verstuur dit naar de mailserver.domein.tld via SMTP. Nu de relay_domains nog. Zonder dit file gaat postfix de mail niet eens accepteren. Dus aanpassen 🙂 nano -w relay_domains en zet daar alleen het domein in. Zonder extra subdomeinen.

domein.tld

Hierna zowel baruwa als mailscanner en Postfix herstarten en testen. Testen doen we met telnet.

telnet “spamfilter” 25
helo x
mail from: mail@hacktheplanet.nl
rcpt to: ontvanger@hacktheplanet.nl
data
subject: test van htp.nl

dit is een test zodat we weten of de mailserver werkt.

.

Waarbij je “spamfilter” moet aanpassen naar het ip of hostname van je zojuist geinstalleerde spamfilter.
Mocht je hier verder nog vragen over hebben, gooi het in de comments of via twitter!

SETTING UP ELASTIX ON A SHARED HOSTING PLATFORM WITH FIREWALL

Setting up Elastix on a shared hosting platform like ours is not that different from any other installation. The only key difference is that we host clients on it and that security + monitoring are KEY!

first agenda point, defaulting the config so everone can do this.
We want to have this system secure, so first we will use the intergrated update tool:

yum update
yum upgrade
yum update elastix-* -y
yum update elastix- -y
yum update elastix -y
reboot

after rebooting your system should be up to date.
Next, we start securing the box. I prefer to use fail2ban for this
Install fail2ban, if not installed yet using yum install fail2ban

nano -w /etc/asterisk/sip_general_custom.conf
alwaysauthreject=yes
srvlookup=yes
allowguest=yes
useragent=Something

Now fail2ban, we need to create a file

nano -w /etc/fail2ban/filter.d/asterisk.conf
and add the following lines to it.

[Definition]

#_daemon = asterisk

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named “host”. The tag “” can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#

failregex = NOTICE.* .*: Registration from ‘.*’ failed for ‘:.*’ – Wrong password
NOTICE.* .*: Registration from ‘.*’ failed for ‘:.*’ – No matching peer found
NOTICE.* .*: Registration from ‘.*’ failed for ‘:.*’ – Username/auth name mismatch
NOTICE.* .*: Registration from ‘.*’ failed for ‘:.*’ – Device does not match ACL
NOTICE.* failed to authenticate as ‘.*’$
NOTICE.* .*: No registration for peer ‘.*’ (from )
NOTICE.* .*: Host failed MD5 authentication for ‘.*’ (.*)
VERBOSE.* logger.c: — .*IP/-.* Playing ‘ss-noservice’ (language ‘.*’)

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

Edit the

nano -w /etc/fail2ban/jail.conf
file and add the next lines to the bottom:

[asterisk-iptables]

enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@example.org]
logpath = /var/log/asterisk/full
maxretry = 3
bantime = 600

Check the config with

chkconfig fail2ban
on and start fail2ban with

/etc/init.d/fail2ban start
Thats it for now.

BARUWA ANTISPAM FILTERING

Momenteel gebruiken we een betaalde, semiwerkende appliance voor het spamfiltering. Mijn baas, welke graag houdt van een uitdaging voor ons, heeft besloten dat we over gaan op Baruwa.

Baruwa is een opensource antispam/antivirus systeem, het systeem bestaat uit Postfix, clamav en spamassasin. De webinterface (voor de baas ;)) is AJAX en de backend draait SQL. Het mooie is dat baruwa ook geclusterd kan worden zodat een volledig exchange platform erachter kan worden gezet zonder problemen.

Als basis pak ik zoals altijd ubuntu 12.10, even updaten:

apt-get update && apt-get upgrade
So far, so good, altijd makkelijk.

apt-get install rabbitmq-server
RabbitMQ is de messaging service tussen het frontend en de server. Zodra je clustert zal Rabbit de loadbalancing en clustering bijhouden.

rabbitmqctl add_user baruwa wachtwoordopgeven
rabbitmqctl add_vhost baruwa
rabbitmqctl set_permissions -p baruwa baruwa “.*” “.*” “.*”
Onze servers staan achter firewalls en worden hierdoor afgeschermd. Hang je nou je baruwa server direct aan het internet, zorg er dan voor dat de rabbitmq port niet vanaf andere machines dan je eigen systemen benaderd kan worden.

Nu, om het leven een stuk makkelijker te maken heeft baruwa zijn eigen APT server draaien, altijd een pluspunt als je installs moet doen.

wget -O – http://apt.baruwa.org/baruwa-apt-keys.gpg | apt-key add –
Hiermee laad je de juiste gpg key in voor de apt source, de apt source is http://apt.baruwa.org/. Nu nog de juiste line voor onze ubuntu install.

deb http://apt.baruwa.org/ubuntu quantal main
Doordat we gebruik maken van de apt sources van baruwa is het opeens een stuk makkelijker geworden om de install te starten.

apt-get update
apt-get install baruwa
Veel makkelijker kan haast niet! dependancies worden automatisch ingeladen en de installatie start. Hierbij wordt apache, mysql, mailscanner en baruwa geinstalleerd.
De interactieve installer doet ook nog:

apache virtualhost name
database host
database admin user
database admin password
database user
database password
database name
rabbitmq host
rabbitmq vhost
rabbitmq user
rabbitmq password
baruwa admin user
baruwa admin password
baruwa admin email
Volgende stap is het laden van de database gegevens. Ook dit is vrij simpel in baruwa:

baruwa-admin syncdb –noinput
for name in $(echo “accounts messages lists reports status fixups config”); do
baruwa-admin migrate $name;
done
Nog een baruwa admin user toevoegen voor beheren:

baruwa-admin createsuperuser
Done, baruwa is nu geinstalleerd. Volgende post zal ik mailscanner uitleggen en instellen.