Configuració d’etckeeper amb push a Gitlab

etckeeper és un conjunt d’eines que et permeten mantenir un repositori git de /etc.

Instal·lació d’etckeeper

Instal·lem etckeeper:

$ sudo apt install etckeeper

Editem el fitxer de configuració:

$ sudo nano /etc/etckeeper/etckeeper.conf

Aquí ens hem d’assegurar que el VCS sigui git. I que el paràmetre PUSH_REMOTE sigui “origin”.

Generalment s’inicialitza en instal·lar, però per si de cas:

$ cd /etc
$ sudo etckeeper init

Amb això es crea el directori /etc/.git i el fitxer /etc/.gitignore.

Configuració de la clau SSH

Generem una clau:

Seguim el tutorial de Gitlab per generar i afegir claus: https://gitlab.com/help/ssh/README

Editem ~/.ssh/config:

Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile /home/usuari/keys/git.key

Per afegir la clau al ssh-agent i que ens duri tota la sessió editem ~/.bash_profile:

if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent -s`
  ssh-add /home/usuari/keys/git.key
fi

Si ens segueix fent mandra posar-la cada cop que iniciem podem crear una clau sense passphrase. Personalment prefereixo no utilitzar el .bash_profile i configurar /root/.ssh/config (només entorns amb un administrador).

Commit i push

Afegim el repositori remot:

$ sudo git remote add origin git@gitlab.com:REPO

Fem un commit:

$ sudo etckeeper commit "Initial commit."

Fem push:

$ sudo -E git push -u origin master # Utilitzo -E per tal de mantenir les variables d’entorn.

A partir d’ara l’etckeeper farà els push automàticament 1 cop al dia i cada cop que es modifiquin paquets.
Si volem fer-ho manualment:

$ sudo -E etckeeper commit “Comentari”

 

Ampliar partició LVM

Per ampliar un volum lògic dins una partició LVM només cal executar un parell de comandes. Suposarem que el nostre VG es diu virtual1 que el LV a ampliar és logical1 i que l’ampliarem 50GB.

Primer de tot podem comprovar l’espai disponible:

# pvscan

Ampliem el volum:

# lvextend -L+50G /dev/virtual1/logical1

Finalment, si utilitzem ext4:

# resize2fs /dev/virtual1/logical1

Instal·lar i configurar logwatch

El logwatch és una eina que permet analitzar els logs i enviar una còpia més simple a l’administrador.

Instal·lem el paquet:

# apt install logwatch

Per configurar-lo editem /usr/share/logwatch/default.conf/logwatch.conf:

MailTo = correu@exemple.com
MailFrom = logwatch@exemple.com
Range = yesterday
Detail = Med

Per defecte tots els serveis venen activats:

Service = All

Si en volem només alguns de concrets hem de comentar aquesta línia i fer una llista:

Service = http
Service = sshd2
Service = sudo

Si volem desactivar els informes diaris descomentem;

# DailyReport = No

I si volem executar-lo manualment:

$ logwatch --detail Med --mailto correu@exemple.com --service sudo --range today

Instal·lació i configuració d’un servidor FTPS

Com configurar un servidor FTPS amb vsftpd a Debian.

Els certificats que s’utilitzen són verificats per Let’s Encrypt (veure entrada).

Recomanacions prèvies:

Instal·lem els paquets:

$ sudo apt-get install vsftpd openssl

Editem el fitxer de configuració:

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
$ sudo nano /etc/vsftpd.conf

En el meu cas queda així:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=It's bigger on the inside!
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd_user_conf
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

Amb aquesta configuració tenim que tots els usuaris queden fixats al seu home, excepte els que posem al fitxer /etc/vsftpd.chroot_list.
La línia user_config_dir=/etc/vsftpd_user_conf ens serveix per tenir configuracions especifiques per cada usuari, en aquest cas el local_root.

Afegim usuaris al vsftpd.chroot_list (un usuari per línia):

$ sudo nano /etc/vsftpd.chroot_list

Afegim configuracions personals d’usuari:

$ sudo mkdir /etc/vsftpd_user_conf
$ cd /etc/vsftpd_user_conf
$ sudo nano <usuari>

Hi posem la línia:

local_root=<directori>

Habilitem l’usuari root:
No és una opció recomanable, però es pot fer. Editem el següent fitxer i comentem la línia root.

$ sudo nano /etc/ftpusers

Reiniciem el servei:

$ sudo /etc/init.d/vsftpd restart

Configuració del TLS

Editem el fitxer de configuració:

$ sudo nano /etc/vsftpd.conf

Afegim:

# Turn on SSL
ssl_enable=YES

# Allow anonymous SSL connections
allow_anon_ssl=NO

# All non-anonymous logins are forced to use a secure SSL connection in order to
# send and receive data on data connections.
force_local_data_ssl=YES

# All non-anonymous logins are forced to use a secure SSL connection in order to send the password.
force_local_logins_ssl=YES

# Permit TLS v1 protocol connections. TLS v1 connections are preferred
ssl_tlsv1=YES

# Permit SSL v2 protocol connections. TLS v1 connections are preferred
ssl_sslv2=NO

# Permit SSL v3 protocol connections. TLS v1 connections are preferred
ssl_sslv3=NO

# Disable SSL session reuse (required by WinSCP)
require_ssl_reuse=NO

# Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla)
ssl_ciphers=HIGH

# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/letsencrypt/live/aniolmarti.cat/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/aniolmarti.cat/privkey.pem

Reiniciem el servei:

$ sudo /etc/init.d/vsftpd restart

Configuració del mode passiu

Editem el fitxer de configuració:

$ sudo nano /etc/vsftpd.conf

Afegim les línies:

pasv_enable=YES
pasv_max_port=10100
pasv_min_port=10090

Reiniciem el servei:

$ sudo /etc/init.d/vsftpd restart

Fitxer final

# Basic configuration
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=It's bigger on the inside!
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd_user_conf
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

# Turn on SSL
ssl_enable=YES

# Allow anonymous SSL connections
allow_anon_ssl=NO

# All non-anonymous logins are forced to use a secure SSL connection in order to
# send and receive data on data connections.
force_local_data_ssl=YES

# All non-anonymous logins are forced to use a secure SSL connection in order to send the password.
force_local_logins_ssl=YES

# Permit TLS v1 protocol connections. TLS v1 connections are preferred
ssl_tlsv1=YES

# Permit SSL v2 protocol connections. TLS v1 connections are preferred
ssl_sslv2=NO

# permit SSL v3 protocol connections. TLS v1 connections are preferred
ssl_sslv3=NO

# Disable SSL session reuse (required by WinSCP)
require_ssl_reuse=NO

# Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla)
ssl_ciphers=HIGH

# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/letsencrypt/live/aniolmarti.cat/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/aniolmarti.cat/privkey.pem

Configurar client Filezilla

Tot aquest procés es pot fer executant aquest script que tinc al Github: https://github.com/aniolm9/admin-scripts

Apache “site” bàsic

Creem el directori del lloc i donem els permisos:

$ sudo mkdir /var/www/ltec.cat
$ sudo chown -R www-data:www-data /var/www/ltec.cat
$ sudo chmod -R 755 /var/www/ltec.cat

Creem el lloc a l’Apache:

$ sudo nano /etc/apache2/sites-available/ltec.cat.conf

En el meu cas queda així:

<VirtualHost *:80> 
    ServerAdmin amarti@ltec.cat
    ServerName ltec.cat 
    ServerAlias www.ltec.cat 
    DocumentRoot /var/www/ltec.cat 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

Habilitar els llocs:

$ sudo a2ensite /etc/apache2/sites-available/ltec.cat.conf
$ sudo /etc/init.d/apache2 restart