NordVPN su SysLinuxOS e Debian 11

 

NordVPN su SysLinuxOS e Debian 11

NordVPN su SysLinuxOS e Debian 11

 

Guida su come configurare NordVPN, su SysLinuxOS e Debian 11 Bullseye, in modo grafico utilizzando Network Manager oppure direttamente da terminale.

Prerequisiti:

  • Abbonamento a NordVPN
  • SysLinuxOS Debian Bullseye e derivate

SysLinuxOS:

cd /etc/openvpn
sudo wget https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip
sudo unzip ovpn.zip
sudo rm ovpn.zip
cd ovpn_udp
ls -al

Debian:

sudo apt-get install openvpn network-manager-openvpn-gnome ca-certificates unzip
sudo service network-manager restart
cd /etc/openvpn
sudo wget https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip
sudo unzip ovpn.zip
sudo rm ovpn.zip
cd ovpn_udp
ls -al

per far partire la VPN, basta scegliere un server della lista:

sudo openvpn de1022.nordvpn.com.udp.ovpn

OpenVPN chiederà le credenziali, quindi inserire user e password.

Per utilizzare Network Manager, basta solo importare la configurazione del server scelto

NordVPN su SysLinuxOS e Debian 11

NordVPN su SysLinuxOS e Debian

 

enjoy 😉

 

Nextcloud Server su Raspberry Pi

 

 Nextcloud Server su Raspberry Pi

Nextcloud Server su Raspberry Pi

 

Guida su come installare un server, utilizzando Nextcloud su Raspberry Pi 3/4. A differenza della guida precedente, dove ho utilizzato Nginx come web server, adesso utilizzerò Apache2.  Ci saranno anche 10 consigli per rendere più sicuro il server.

Prerequisiti ed info
  • Raspberry Pi 3/4
  • Raspberry Pi OS Bullseye già installato con accesso ssh.
  • Consiglio di utilizzare rpi-imager per preparare la sd card, e nelle impostazioni abilitare subito ssh, e sopratutto creare un nuovo utente.
  • La guida è stata testata su una installazione pulita di Raspberry Pi OS Lite.
1) Accedere al Raspberry via ssh ed aggiornare
sudo apt update; sudo apt upgrade -y
sudo reboot
2) Installazione php8.0 Mariadb Apache2
sudo apt install apache2 php8.0 php8.0-gd php8.0-sqlite3 php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-mysql php8.0-bz2 php8.0-intl php-smbclient php8.0-imap php8.0-gmp libapache2-mod-php8.0 mariadb-server python3-certbot-apache
3) Verifica Apache2
sudo systemctl restart apache2
sudo systemctl status apache2
4) Creazione utente nextcloud e db
sudo mysql -u root -p

ed invio

create database nextcloud_db;
create user nextclouduser@localhost identified by 'YOUR-STRONG-PWD';
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'YOU-STRONG-PWD';
flush privileges;
exit
5) Download Nextcloud
cd /var/www/
sudo wget -v https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo rm latest.zip

creazione  della directory di storage, quest’ultima può essere creata anche all’esterno della cartella Nextcloud o su unità esterna.

sudo mkdir -p /var/www/nextcloud/data
sudo chown -R www-data:www-data /var/www/nextcloud/
sudo chmod 750 /var/www/nextcloud/data
6) Configurazione Apache2
sudo nano /etc/apache2/sites-available/nextcloud.conf

ed incollare questa semplice configurazione, che punterà a http://ip-server/nextcloud/

<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

<IfModule mod_dav.c>
Dav off
</IfModule>

</Directory>
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2

se si volesse utilizzare invece un proprio dominio:

<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName your.domain.com

<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
7) Nextcloud post installazione

 

Nextcloud Server su Raspberry Piandare all’indirizzo del server: http://my-ip-address/nextcloud/

# hostname -I

creare username e password per l’accesso via web, e poi inserire nextclouduser e nextclouddb. I dati di default saranno in /var/www/nextcloud/data, ma si possono anche spostare successivamente.

8) Tuning Apache2

alcune essenziali modifiche:

sudo nano /etc/php/8.0/apache2/php.ini

trovare queste tre stringhe e modificarle da così:

memory_limit = 128M
post_max_size = 8M
upload_max_filesize = 2M

a così:

memory_limit = 512M
post_max_size = 1024M
upload_max_filesize = 1024M
sudo systemctl restart apache2
9) Certificato SSL

nell’esempio sotto, userò un auto-certificato, ma è consigliato un certificato del tipo Let’s Encrypt, come mostrato nella guida precedente.

sudo mkdir -p /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
sudo a2enmod ssl
sudo systemctl restart apache2

trovare queste due stringhe:

sudo nano /etc/apache2/sites-available/default-ssl.conf

e modificarle da così:

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

a così:

SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
sudo a2ensite default-ssl.conf
sudo systemctl reload apache2
10) Sicurezza

10.1) Installazione e configurazione firewall ufw:

sudo apt install ufw
sudo ufw enable

bloccare tutte le connessioni in ingresso:

sudo ufw default allow outgoing
sudo ufw default deny incoming

aprire solo le porte interessate, come quella ssh o https, ad ogni modo mai utilizzare porte standard:

sudo ufw allow 22
sudo ufw allow 443/tcp

verifica:

sudo ufw status verbose
sudo iptables -S

10.2) Installazione e configurazione fail2ban:

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

proteggere tutti i servizi usati, utilizzando /etc/fail2ban/jail.local, fail2ban arriva già con dei filtri predefiniti che possono essere abilitati:

ls /etc/fail2ban/filter.d/

esempio:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 120
ignoreip = whitelist-IP

# detect password authentication failures
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6

# detect potential search for exploits and php vulnerabilities
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6

# detect Apache overflow attempts
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2

# detect failures to find a home directory on a server
[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/apache*/*error.log
maxretry = 2
sudo systemctl restart fail2ban 
sudo fail2ban-client status

10.3) Trusted Domain

indicare solo gli ip ed i domini che possono accedere:

sudo nano /var/www/nextcloud/config/config.php
'trusted_domains' => 
array (
0 => '192.168.1.122',
1 => 'my-domain.com',

10.4) Forzare la connessione via SSL

sudo nano /etc/apache2/sites-available/000-default.conf

sostituire http con https:

<VirtualHost *:80>
ServerAdmin admin@example

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

10.5) Aggiornamenti di sicurezza automatici giornalieri:

sudo apt install unattended-upgrades
sudo nano /etc/apt/apt.conf.d/02periodic

inserire:

APT::Periodic::Enable "1";
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::Verbose "2";

aggiornare:

sudo unattended-upgrades -d

10.6) Sudo DEVE sempre chiedere la password:

sudo nano /etc/sudoers.d/010_pi-nopasswd

diventa da così:

YOUR-USER ALL=(ALL) NOPASSWD: ALL

a così:

YOUR-USER ALL=(ALL) PASSWD: ALL

10.7) Mysql in sicurezza

sudo mysql_secure_installation
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y 
Remove anonymous users? [Y/n] Y 
Disallow root login remotely? [Y/n] Y 
Remove test database and access to it? [Y/n] Y 
Reload privilege tables now? [Y/n] Y

10.8) SSH in sicurezza

cambiare subito la porta di default e verificare che non sia abilitato il login come root, ma soprattutto usare una chiave ssh:

sudo nano /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
Port 2223
10.9) Backup

backup da eseguire periodicamente su supporti esterni ed in remoto. Si può utilizzare rsync (guida), tar (guida), dd (guida), scp (guida), lsyncd (guida).

10.10) VPN

il sistema più sicuro per accedere da remoto è tramite vpn, se si ha un router che supporta ipSec o Wireguard (fritzbox 7590) il tutto è semplice, in alternativa si può creare un server vpn, utilizzando openvpn o wireguard

Nextcloud Server su Raspberry Pi

enjoy 😉

Configurare Samba server su Debian 11 e SysLinuxOS

 

Samba è un software gratuito che consente di condividere file in rete utilizzando il protocollo SMB (Server Message Block). Samba è supportato su varie piattaforme come i sistemi operativi Windows e Unix. Guida per OS Debian based e SysLinuxOS

Step 1 Installazione
sudo apt install samba smbclient cifs-utils
Step 2 Creazione cartelle condivisione:
sudo mkdir /mnt/{private,public}
Step 3 Configurazione smb.conf
sudo nano /etc/samba/smb.conf

ed aggiunger in fondo:

[public]
comment = Public Folder
path = /mnt/public
writable = yes
guest ok = yes
guest only = yes
force create mode = 775
force directory mode = 775


[private]
comment = Private Folder
path = /mnt/private
writable = yes
guest ok = no
valid users = @smbshare
force create mode = 770
force directory mode = 770
inherit permissions = yes
Step 4 Creazione utente e gruppo:
sudo groupadd smbshare
sudo chgrp -R smbshare /mnt/private/
sudo chgrp -R smbshare /mnt/public
sudo chmod 770 /mnt/private/
sudo chmod 775 /mnt/public
sudo useradd -M -s /sbin/nologin sambauser
sudo usermod -aG smbshare sambauser
sudo smbpasswd -a sambauser
sudo smbpasswd -e sambauser

Verificare funzionamento:

sudo touch /mnt/private/test1.txt /mnt/public/test2.txt
sudo systemctl restart smbd

Accesso locale:

smbclient '\\localhost\public' -U sambauser

output ls:

edmond@syslinuxbox:~$ smbclient '\\localhost\public' -U sambauser
Enter WORKGROUP\sambauser's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Sat May 28 16:52:47 2022
.. D 0 Sat May 28 16:48:41 2022
test2.txt N 0 Sat May 28 16:52:47 2022

69977312 blocks of size 1024. 40744856 blocks available
smb: \>

Accesso da client Linux:

un metodo veloce è quello di aprire il proprio file manager, nel mio caso Caja, ed inserire il percorso:

smb://sambauser@ip_address/public/

Configurare Samba server su Debian 11 e SysLinuxOS

Configurare Samba server su Debian 11 e SysLinuxOS

enjoy 😉

Installare Docker su Debian 11 e SysLinuxOS

 

Installare Docker su Debian 11

Installare Docker su Debian 11 e SysLinuxOS

Docker è un programma che consente di impacchettare software in contenitori, ed eseguirli su macchine virtuali . Questi contenitori sono completamente indipendenti, il che aumenta la sicurezza del contenitore, ed inoltre sono molto più leggeri rispetto a delle macchine virtuali.

Prerequisiti Debian 11 bullseye e SyslinuxOS

$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

Chiave

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Repository

$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installazione

$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io

Docker versione

$ docker --version
Docker version 20.10.14, build a224086

Verfica servizi

$ sudo systemctl status docker
$ sudo systemctl stop docker
$ sudo systemctl start docker

Abilitazione disabilitazione al boot

$ sudo systemctl enable docker
$ sudo systemctl enable containerd.service
$ sudo systemctl disable docker

Aggiungere user al gruppo docker per evitare i privilegi root

$ sudo usermod -aG docker $USER

Test

$ docker run hello-world

Installare Docker su Debian 11

oppure

$ docker run -it debian bash

Rimozione:

$ sudo apt autoremove docker-ce docker-ce-cli containerd.io
$ sudo rm /etc/apt/sources.list.d/docker.list
$ sudo apt update
Installare Docker su Debian 11 e SysLinuxOS

 

enjoy 😉

 

VMware Workstation 16 Player Debian 11

VMware Workstation 16 Player Debian 11

 

Guida su come installare VMware Workstation 16 Player su Debian 11.

  • Primo step:

Download diretto dal sito ufficiale

  • Secondo:

installazione pacchetti essenziali

sudo apt install build-essential linux-headers-$(uname -r)

Terzo:

installazione

cd Downloads
chmod +x VMware-Player-Full-*.bundle
sudo ./VMware-Player-Full-*.bundle
sudo apt install open-vm-tools-desktop

Quarto:

git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git checkout workstation-16.2.3
make
sudo make install

Disinstallazione:

sudo vmware-installer --uninstall-product vmware-player

 

enjoy 😉

 

SysLinuxOS for Systems Integrator

SysLinuxOS for System Integrator è una debian stable based, creata da me, che include quasi tutti i tools che possono servire per il lavoro, ed in più altri strumenti fuori dai repository ufficiali, che servono ad avere una distro funzionante subito, ed oltre a poterla installare la si può utilizzare e provare da live.

SysLinuxOS (for Systems Integrator) is an Debian-based GNU/Linux live distribution, created for Systems Integrator and Sysadmins. It offers a complete networking environment that is organised to integrate existing software tools, with others added by me, and has an friendly graphical interface. SysLinuxOS was built to work right out of the box, with all networking tools already installed by default. There is no need to install anything, it is a Swiss army knife to always carry with us. There are all the major VPNs, different remote control clients, different browsers, Wine, Wireshark, Etherape, Ettercap, PackETH, Packetsender, Putty, Nmap, Packet Tracer 8, tools for serial console and much more ….

Based on Debian 11 bullseye

Mate Desktop Environment, and last backports kernel 5.16!

enjoy 😉