OpenVPN Server – CentOS 7 x64

twitterlinkedin

In questo documento viene descritta la procedura per installare un server OpenVPN per la connettività verso l’azienda da sedi mobili remote. La soluzione è compatibile con i nuovi standard di sicurezza Apple ed utilizzabile dai sistemi operativi iOS, MAC OS, Microsoft Windows.

La configurazione proposta prevede la distribuzione lato client del certificato CA embedded nel file di configurazione e la preparazione di username/password per l’accesso account.

Per la preparazione del sistema operativo CentOS 7 x64 seguire l’articolo al link http://vlab.abconsultinggroup.eu/centos-7-perfetta-installazione-e-preparazione/ .

Installazione servizi

# yum install epel-release
# yum install openvpn easy-rsa -y

Configurazione chiavi RSA

# /usr/share/easy-rsa/2.0
# nano vars

# . vars
# ./clean-all
# ./build-ca
# ./build-key-server openvpn.abconsulting.local
# ./build-dh

Configurazione OpenVPN Server

# nano /etc/openvpn/server.conf
local 10.0.0.14
dev tun
proto udp
port 1194


ca /usr/share/easy-rsa/2.0/keys/ca.crt
cert /usr/share/easy-rsa/2.0/keys/openvpn.abconsulting.local.crt
key /usr/share/easy-rsa/2.0/keys/openvpn.abconsulting.local.key
dh /usr/share/easy-rsa/2.0/keys/dh2048.pem

user nobody
group nobody

server 10.8.0.0 255.255.255.0

persist-key
persist-tun

client-to-client

push "redirect-gateway def1"
push "dhcp-option DNS 10.0.0.1"
push "dhcp-option DOMAIN abconsulting.local"

status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
verb 1

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
client-cert-not-required
username-as-common-name

Configurazione routing

# nano /etc/sysctl.conf

# sysctl -p
# systemctl start iptables
# iptables -F
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens32 -j MASQUERADE
# iptables-save > /etc/sysconfig/iptables
# systemctl enable iptables
# systemctl restart network.service

 il valore ens32 dipende dalla scheda di rete

Start e auto esecuzione server OpenVPN

# systemctl start openvpn@server.service
# systemctl enable openvpn@server.service

File di configurazione client

es: abgroup.ovpn


client
dev tun
proto udp
remote <ip pubblico della rete> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
<ca>
il contenuto di questa parte è da ricavare eseguendo il comando
cat /usr/share/easy-rsa/2.0/keys/ca.crt e incollare qui all'interno
da
-----BEGIN CERTIFICATE-----
a
-----END CERTIFICATE-----
compresi
</ca>
auth-user-pass
verb 3

 

twitterlinkedin

CentOS 7 – perfetta installazione e preparazione

twitterlinkedin

La versione CentOS 7 presenta una serie di differenze rispetto la precedente. In questo articolo verranno riportati i passaggi per una preparazione e prima configurazione CentOS 7 in ambiente VMWare.

(0) Installazione CentOS 7 x64 minimal package

Scaricare il pacchetto software ISO da uno di questi link diretti:
http://it.centos.contactlab.it/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
http://mi.mirror.garr.it/mirrors/CentOS/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
ftp://ftp.eutelia.it/CentOS/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso

(1) Interfaccia di rete e primi comandi utili alla gestione

# ip addr

# nmcli

# nmtui

ATT.NE alla compilazione del prefisso; nel caso si trascuri il sistema aggiunge
in automatico /32 e l’host non sarà quindi raggiungibile dalla rete.

** una volta preparata la configurazione di rete, verifichiamo l’effettiva scrittura nel file di conf. e riavviamo il sistema
# cat /etc/sysconfig/network-scripts/ifcfg-ens32

# reboot
** aggiornamento del sistema
# yum update
# reboot
** installazione delle vmware tools
# yum install open-vm-tools
# reboot

(2)  Installazione dei pacchetti di base

# yum install -y nano.x86_64 telnet.x86_64 wget.x86_64 lynx.x86_64 bind-utils.x86_64 crontabs.noarch ntpdate dnsmasq.x86_64 sysstat nc sudo screen system-config-network-tui.noarch setuptool.x86_64 system-config-firewall-tui.noarch setup.noarch
# yum install -y compat-libstdc++-33.x86_64 compat-glibc.x86_64 glibc-common.x86_64 glibc.x86_64 glibc-headers.x86_64 glibc-devel.x86_64 glibc-static.x86_64 glibc-utils.x86_64
# yum install -y net-tools perl-core
# yum groupinstall -y “Development Tools”

(3) Predisposizione configurazioni

# systemctl stop firewalld
# systemctl disable firewalld
# systemd-analyze set-log-level notice
#nano /etc/selinux/config


#nano /root/.bashrc
** aggiungere le seguenti linee

#nano /etc/hosts
** definizione dell’host

# crontab -e
** mantenimento dell’orario corretto

01 23 * * * /usr/sbin/ntpdate ntp1.inrim.it >/dev/null 2>&1

twitterlinkedin

Ubiquiti controller WiFi – nuvola WiFi

twitterlinkedin

La diffusione delle reti WiFi è sempre più estesa e sempre più vengono richieste prestazioni e stabilità di copertura. Un brand che offre access point di alta qualità e la controller software è Ubiquiti. Ubiquiti offre la controller software free license, non dipende da quanti apparati dovrà gestire.

In questo articolo è possibile seguire l’installazione della controller software Ubiquiti in ambiente Linux Debian su VMWare ESXi.

ISO del sistema operativo Linux Debian 8.6.0 64bit: http://cdimage.debian.org/debian-cd/8.6.0/amd64/iso-cd/debian-8.6.0-amd64-netinst.iso
DEB per installazione software controller Ubiquiti: http://dl.ubnt.com/unifi/5.2.9/unifi_sysvinit_all.deb

Step 1 – installazione sistema operativo Debian 8.6.0 64bit in ambiente VMWare

Comandi utilizzati durante lo step 1
# apt-get install open-vm-tools
# nano /etc/ssh/sshd_config

PermitRootLogin yes

Step 2 – installazione e configurazione controller Ubiquiti WiFi

Comandi utilizzati durante lo step 2
# nano /etc/network/interfaces

# iface eth0 inet dhcp
iface eth0 inet static
address 10.0.0.25
netmask 255.255.255.0
network 10.0.0.0
gateway 10.0.0.1
dns-search abconsulting.local
dns-nameservers 10.0.0.1
broadcast 10.0.0.255

# wget http://dl.ubnt.com/unifi/5.2.9/unifi_sysvinit_all.deb
# dpkg -i unifi_sysvinit_all.deb
# apt-get install -f

twitterlinkedin

VMWare e licenze ROK (brand HP, DELL)

twitterlinkedin

Le licenze MS Windows possono essere acquistate godendo dello sconto del brand (ad es: HP o DELL) solo se queste vengono installate su hardware dedicato. Il controllo di queste licenze (che avviene durante l’installazione) può trovare impedimenti se l’ambiente è virtualizzato. In questo caso la licenza non trova le specifiche hardware a cui è legata.

Il risultato è il blocco dell’installazione.

Failed Bios Lock when installing Windows 2012 ROK on VMware

In ambiente VMWare è possibile trasferire in modo trasparente le informazioni BIOS dell’hardware al sistema operativo guest impostando il parametro

smbios.ReflectHost = TRUE

Di seguito le schermate per impostare correttamente il parametro nella VM.

vmproperties

aggiungere la riga seguente nella lista parametri:

VMware issue

twitterlinkedin

CentOS 5/6/7 – installazione PHP > 5.3 – es: php 5.4

twitterlinkedin

Per installare PHP successiva alla versione proposta dal sistema (repository di default) CentOS, si devono abilitare nuovi repository. Di seguito le versioni CentOS e i relativi comandi YUM.

CentOS / RHEL 7.x

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

CentOS / RHEL 6.x

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

CentOS / RHEL 5.x

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm

Eseguendo il comando di seguito si possono verificare le nuove versioni di PHP installabili sul proprio sistema CentOS/RHEL.

yum search php

twitterlinkedin

VPN site-to-site dietro router, NAT e firewall: quando non vi sono i requisiti standard

twitterlinkedin

La realizzazione delle VPN site to site richiedono requisiti strutturali ben precisi per realizzare connessioni fra uffici stabili e prestanti. Ci si trova in situazioni dove non è possibile avere:

  • pool di IP pubblici statici
  • configurazione dell’ip pubblico sulla interfaccia WAN del proprio device di rete (normalmente firewall)
  • router in gestione autonoma

Questo articolo propone una soluzione di VPN site-to-site basata sul protocollo PPTP di Microsoft.

Rete A – 192.168.0.0 / 24 (sede centrale)

Rete B – 192.168.10.0/24 (sede remota, ad es: magazzino)

Diagramma di rete.

vpn-pptp

Composizione della rete A.

Server Windows: 192.168.0.100 / 255.255.255.0, gateway 192.168.0.254
Firewall: LAN 192.168.0.254 / 255.255.255.255.0 – WAN 192.168.1.254 /255.255.255.0 – GW 192.168.1.1
Router operatore: LAN 192.168.1.1 – WAN: IP-Pubblico-Rete-A (assegnato dall’operatore)

vpn-pptp-A

Composizione della rete B.

Linux PPTP-client-gateway: 192.168.10.254 / 255.255.255.0, gateway 192.168.10.1
Router operatore: LAN 192.168.10.1 – WAN: IP-Pubblico-Rete-B (assegnato dall’operatore)

vpn-pptp-B

Configurazione apparati della rete A.

Le parti che necessitano configurazioni sono il Server Windows e il firewall. L’installazione da svolgere sul server windows riguarda l’attivazione del ruolo di “Servizio di accesso e criteri di rete” e la relativa configurazione VPN (è necessario avere un servizio DHCP attivo e limitare il numero di connessioni lato VPN per non saturare il range DHCP).

ruolo

Nella definizione dell’utente per la connession VPN (in esempio “magazzinovpn”) va definita correttamente la proprietà “chiamate in ingresso”

account

e va inoltre definita la parte “Assegna inidirizzi IP statici”

indirizzo-ip-statico

definendo così (ad es: 192.168.0.20) l’ip che avrà la connessione con utente “magazzinovpn” e che rappresenterà il gateway della rete-A verso la rete-B.

Lato firewall vanno definite le regole di port-forwarding verso il server windows (192.168.0.100) delle porte TCP/1723 e GRE/47 (è probabile che il la porta GRE/47, quella responsabile del tunnel VPN non si definibile perché implicitamente già aperta). Lato firewall va definita una route statica dove si indica che tutte le sorgenti LAN (rete-A: 192.168.0.0/24) che hanno come destinazione la rete magazzino (rete-B: 192.168.10.0/24) il next-hop è il 192.168.0.20. Il router dell’operatore deve “girare” tutte le richieste da “Internet” sull’ip del firewall 192.168.1.254.

IMPORTANTE. Ora serve un’ultima definizione di routing: le destinazioni che devono raggiungere la rete-B (192.168.10.0/24) devono attraversare il tunnel VPN. Questa definizione deve essere scritta all’interno del server windows (è il sistema operativo che ha in gestione il tunnel VPN). Inoltre questa definizione deve essere attivata tutte le volte che viene accessa la VPN. In caso di caduta di linea la VPN cade, la route viene eliminata dal sistema operativo e quando la connettività riprende la VPN si ristabilisce e con sè si deve ristabilire anche la route statica di attraversamento tunnel.

Per realizzare questo meccanismo creiamo un file di script all’interno di c:\scripts e lo chiamiamo routevpn.cmd e al suo interno le seguenti righe:

route add 192.168.10.0 mask 255.255.255.0 192.168.0.20

Per “far scattare” questo meccanismo tutte le volte che il tunnel VPN si attiva, utilizziamo la tecnica delle schedulazioni Microsoft basate su evento. L’evento di attivazione tunnel VPN è nel registro di “Sistema” con event-ID=20274.

pianificazioneavvio-script

Configurazioni apparati della rete B.

Sulle sedi remote, nell’esempio “magazzino”, viene richiesta una macchina Linux con una interfaccia di rete. La configurazione che si andrà a predisporre è molto “leggera” e non richiede nessun intervento da parte dell’operatore. Nell’architettura VPN site-to-site routing, deve comunque essere rispettata la regola di non sovrapposizione di rete: i due segmenti di rete sono disgiunti, proprio come nel nostro esempio.

Il PC Linux deve avere come ruoli il routing, client PPTP e gateway principale della rete. Indico i pacchetti di “rito” da installare da una versione Linux CentOS 6.8 minimal e il pacchetto necessario per eseguire la funzione di PPTP client:

yum install -y nano telnet wget lynx bind-utils crontabs.noarch ntpdate dnsmasq sysstat nc sudo screen system-config-network-tui.noarch setuptool system-config-firewall-tui.noarch setup.noarch
yum install nano wget lynx telnet bind-utils
yum install dnsmasq
yum install -y compat-libstdc++-33 compat-glibc glibc-common glibc glibc-headers glibc-devel glibc-static glibc-utils
yum groupinstall “Development Tools”
yum install pptp

Una volta installato il software si passa alle parti di configurazione. In elenco files e relativa configurazione.

SELINUX

[root@gw ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted – Targeted processes are protected,
# mls – Multi Level Security protection.
SELINUXTYPE=targeted

SYSCTL.CONF

[root@gw ~]# cat /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
#
# Use ‘/sbin/sysctl -a’ to list all possible parameters.

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

# Controls source route verification
net.ipv4.conf.default.rp_filter = 0

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

IP-UP.LOCAL (con permessi di esecuzione, chmod 755)

[root@gw ppp]# cat /etc/ppp/ip-up.local
#!/bin/bash

ip route add 192.168.0.0/24 dev ppp0

PPTPVPN

[root@gw peers]# cat /etc/ppp/peers/pptpvpn
pty “pptp <ip-pubblico-statico-rete-A> –nolaunchpppd”
lock
noauth
nobsdcomp
nodeflate
refuse-eap
refuse-pap
name magazzinovpn
password <password-utente-magazzinovpn-definito-in-ms-windows>
persist
remotename PPTP
require-mppe-128
ipparam pptpvpn

CON.SH (con permessi di esecuzione, chmod 755)

[root@gw peers]# cat /root/con.sh
#!/bin/bash
pppd call pptpvpn
sleep 10
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

RC.LOCAL

[root@gw peers]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

/root/con.sh

touch /var/lock/subsys/local

Il client Linux creerà il tunnel VPN ed essendo il gateway della rete-B smisterà le chiamate pubbliche verso il router dell’operatore, mentre le chiamate con destinazione la rete-A verranno instradate nel tunnel VPN.

Se siete interessati a approfondimenti o valutazioni di scenari diversi potete contattarmi compilando il form al link http://www.abconsultinggroup.eu/contatti/index.php .

twitterlinkedin

Windows Azure – link utili e automation

twitterlinkedin

Alcuni link utili per il servizio Azure di Microsoft:

Portale Microsoft Azure
Active Directory Microsoft Azure
Account Microsoft Windows Azure

 

Alcuni link utili per gli abbonati Microsoft Action Pack

Software, codici e vantaggi delle licenze

Partner Membership Center

Review Program Purchases

 

Manuale in PDF per la gestione delle automazioni in ambiente Microsoft Winodws Azure

Microsoft_Press_eBook_Azure_Automation_PDF

 

twitterlinkedin

CentOS 7 – PPTPD Vpn, how to

twitterlinkedin

Accesso al sistema SSH da root e seguire i comandi di installazione librerie attraverso l’utility yum.

Installazione librerie PPTPD

# yum install ppp pptp pptp-setup
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install ppp pptpd

Configurazione servizio PPTPD

# nano /etc/pptpd.conf

localip 10.0.0.15
remoteip 10.0.0.200-210

# nano /etc/ppp/chap-secrets

USERNAME pptpd PASSWORD *

# nano /etc/sysctl.conf

net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.ipv4.ip_forward = 1

# sysctl -p
# systemctl enable pptpd
# systemctl start pptpd

twitterlinkedin

Virus Cryptolocker – Ransomware – TeslaCrypt

twitterlinkedin

Lo Studio AB Consulting Group SRLS con questo documento, vuole informare del rischio mondiale in corso, il più elevato numero di utenti possibili che operano quotidianamente con strumenti informatici. La minaccia a cui ci si sta riferendo ha il nome di “CryptoLocker” o “Ransomware”. Di seguito alcuni link di approfondimento:

https://it.wikipedia.org/wiki/CryptoLocker ,

https://it.wikipedia.org/wiki/Ransomware .

La modalità di attacco (sino ad ora misurata) di questo virus informatico è l’e-mail: vengono generate numerose e-mail con mittenze fasulle (ad es: Telecom, Agenzia delle Entrate, Ministero degli Interni, SDA, TNT e così via) con un allegato somigliante a un normale file .zip o file .pdf accompagnato da un nome circa “fattura”, “invoice”, “order number”, “conferma ordine”, “consegna”, “ritiro”. L’utente che riceve l’e-mail attraverso il proprio programma di posta elettronica (ad es: Windows Mail, Microsoft Outlook, Mozilla Thunderbird) apre (con un doppio click) l’allegato, e questo scatena (esegue) il programma malizioso virale. Il virus da quel doppio click svolge la sua attività distruttiva: in soli 10 secondi è in grado di criptare (rendere inutilizzabili) migliaia di files. I files che vengono attaccati sono tutti quelli presenti sul PC infettato e sulle cartelle di rete raggiungibili da quel PC sul server, danneggiando quindi tutti i documenti condivisi sul server. Questo produce un blocco esteso a tutta l’azienda (anche se il PC infetto è uno solo). Anche eliminando il virus dal PC infetto, i files rimangono illeggibili e inutilizzabili.

Tutti i sistemi informatici presentano vulnerabilità a questo tipo di virus. E’ ormai certo che questo virus verrà implementato nel tempo: produce un business agli hacker che diffondono e controllano queste chiavi di criptazione. Il virus propone sullo schermo del PC infettato un tariffa di ca. 3 bitcoin (ca. € 750,00 – € 1.000,00 , https://bitcoin.org/it/ , http://it.coinmill.com/BTC_EUR.html#BTC=3 ) come compenso per la soluzione. Questo tipo di virus è in grado di mutare velocemente e questo rende difficoltoso ai sistemi antivirus il processo di riconoscimento.

Attualmente non esiste “la contromisura” a questo sistema virale. Si può pensare di abbassare il rischio di contagio implementando strutture e servizi informatici che concorrono a evitare e risolvere incidenti distruttivi, nello specifico:

  • Formazione agli utenti nel riconoscere “fake e-mail”
  • Sistemi operativi di nuova generazione e aggiornati (Windows 7/8/10 Pro)
  • Posta elettronica affidata ai servizi Microsoft Exchange OnLine (Office 365)
  • Antivirus con servizi cloud (es: Symantec.cloud)
  • Scelta puntuale dei dati informatici da proteggere
  • Backup e monitoraggio quotidiano del backup aziendale (Acronis)

Questi 6 punti per la difesa da Cryptolocker rappresentano attualmente le uniche possibilità per rendere il rischio da contagio al minimo. Purtroppo la mutabilità della famiglia dei virus “Ransomware” non permette di sviluppare strategie e atteggiamenti definitivi e risolutivi. E’ certo che questo tipo di virus continuerà a essere implementato, perfezionato e distribuito sempre di più nel tempo.

twitterlinkedin

Backup a caldo VMWare ESXi 5.x – IBM x3650 M4 – Open Source, caso di successo

twitterlinkedin

Obiettivo.
Backup a caldo della struttura virtualizzata in ambiente VMWare ESXi 5.5 free edition, sia su storage sia su sistema removibile. I backup devono essere apribili in chiaro per il ripristino di un singolo file e devono essere di tipo baremetal per un ripristino in modalita’ disaster recovery.

Scenario.
Lo scenario su cui si dovrà installare il sistema di backup è composto da:
nr. 1, host dual CPU 6cores VMWare ESXi 5.5 free edition
nr. 7, virtual machines di cui un database server MSSQL-Server-2005 e un database server ORACLE
nr. 2, LUN in fibre channel da 1.2TB ciascuna in RAID5 + Hot Spare su EMC2 VNX (totale 2.4TB)

Soluzione.
La soluzione si compone del seguente sistema hardware e software:
nr. 1, sistema operativo open source CentOS 6.5 64bit
nr. 1, script realizzati dallo Studio AB Consulting GROUP
nr. 1, IBM x3650-M4, 12 dischi 1TB RAID5 (storage disponibile ca. 11TB)
nr. 5, dischi removibili 1.5TB/cadauno

IBM-x3650-M4-VMWARE-BACKUP
IBM-x3650-M4-VMWARE-BACKUP

Risultato.
Sullo storage sono presenti gli ultimi backup con storico settimanale e sul disco removibile è presente tutto l’ambiente virtuale. E’ possibile dotarsi di nr. X cassette per ottenere la politica di storico dati aziendale.
Il contenuto dello storage e di una singola cassetta rappresenta tutto il sistema server aziendale per ripristini granulari, totali o in modalità disaster recovery.
Grazie alla tecnologia offerta dai sistemi virtuali (in questo caso VMWare) l’azienda può riparatire in pochi minuti in un altro qualsiasi luogo.

Prestazioni.
Le attuali prestazioni registrano il backup di tutte le virtual machines sullo storage IBM pari a un tempo di 130 minuti e il riversamento su dischi removibili di tutte le virtual machines di 300 minuti.

twitterlinkedin