===== Ubuntu 16.04 Template =====
==== Rimozione dummy user ====
Ubuntu 16.04 non offre di default la possibilità di effettuare l'accesso come utente root. Per abilitare l'accesso eseguiamo i seguenti passaggi.
Creiamo una password per l'utente root:
# sudo -i
# passwd
Abilitiamo l'accesso come root via ssh modificando il file sshd_config (''vi /etc/ssh/sshd_config'') inserendo
PermitRootLogin yes
Quindi riavviamo il servizio sshd
# systemctl restart sshd
A questo punto possiamo eliminare l'utente creato durante l'installazione
# userdel -r [dummy user]
==== Rigenerazione chiavi SSH al boot ====
Aggiungere nel file /etc/rc.local, prima di exit 0, la riga:
echo [ -f /etc/ssh/ssh_host_dsa_key ] || dpkg-reconfigure openssh-server
==== Script di setup hostname ====
cat > /etc/dhcp/dhclient-exit-hooks.d/hostname <<''EOT''
#!/bin/sh
if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \
&& [ "$reason" != REBIND ] && [ "$reason" != REBOOT ]
then
return
fi
hostname "$new_host_name"
echo -n "$new_host_name" > /etc/hostname
HOSTS='/etc/hosts'
TARGET_KEY='127.0.1.1'
sed -i "s/\($TARGET_KEY\)\(\s*\).*/\1\2$new_host_name/" $HOSTS
EOT
==== Data e ora ====
Installare il servizio NTP:
# apt install ntp
Controllare che in ''/etc/ntp.conf'' siano presenti i server LNF:
server ntp1.lnf.infn.it iburst
server ntp2.lnf.infn.it iburst
server ntp3.lnf.infn.it iburst
Abilitare la sincronizzazione:
# timedatectl set-ntp true
==== Mail ====
Installiamo il pacchetto ''mailutils'' per poter utilizzare il comando **mail** da linea di comando
# apt install mailutils
Durante il processo di installazione inseriamo le seguenti impostazioni:
General type of mail configuration: Internet with smarthost
System mail name: lnf.infn.it
Relay host: smtp.lnf.infn.it
Modifichiamo nel file main.cf di postfix (''vi /etc/postfix/main.cf'') le seguenti direttive:
#myhostname
mydomain = lnf.infn.it
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost = [smtp.lnf.infn.it]
==== Kerberos ====
Installiamo i pacchetti per il client Kerberos
# apt install krb5-user
Editiamo il file di configurazione ''/etc/krb5.conf'' per impostare i realm, LNF.INFN.IT K5 come realm di default, il dominio del realm e alcuni valori di default utilizzati dagli applicativi di Kerberos 5.
[libdefaults]
default_realm = LNF.INFN.IT
[domain_realm]
.lnf.infn.it = LNF.INFN.IT
lnf.infn.it = LNF.INFN.IT
[realms]
LNF.INFN.IT = {
kdc = kdc5s3.lnf.infn.it:88
kdc = kdc5s2.lnf.infn.it:88
kdc = kdc5s1.lnf.infn.it:88
kdc = kdc5s0.lnf.infn.it:88
kdc = kdc5p.lnf.infn.it:88
admin_server = kdc5p.lnf.infn.it:749
default_domain = lnf.infn.it
}
INFN.IT = {
kdc = k5.infn.it:88
kdc = afscnaf.infn.it:88
kdc = afsrm1.roma1.infn.it:88
kdc = afsna.na.infn.it:88
admin_server = k5.infn.it:749
default_domain = infn.it
}
[appdefaults]
aklog_homedir = true
pam-afs-session = {
minimum_uid = 1000
ignore_root = true
debug = true
}
pam = {
minimum_uid = 1000
ticket_lifetime = 259200 # 86400
renew_lifetime = 604800
forwardable = true
krb4_convert = false
ccache_dir = /tmp
tokens = true
krb4_convert_524 = false
krb4_use_as_req = false
#afs_cells = lnf.infn.it=afs@LNF.INFN.IT
afs_cells = lnf.infn.it=afs/lnf.infn.it@LNF.INFN.IT
#existing_ticket = true
validate = true
#validate = false
keytab = FILE:/etc/krb5.keytab
debug = false
#debug = true
}
==== OpenAFS ====
Installiamo i seguenti pacchetti confermando, quando richiesto, i parametri di default:
# apt install openafs-client openafs-krb5 openafs-modules-dkms
Modifichiamo il file ''CellAlias'' in ''/etc/openafs/'' inserendo
lnf.infn.it lnf
e il file ''ThisCell'' sempre in ''/etc/openafs/'' inserendo
lnf.infn.it
Riavviamo quindi ''openafs-client''
# systemctl stop openafs-client
# systemctl start openafs-client
# systemctl status openafs-client
==== Abilitare gli aggiornamenti automatici di sicurezza ====
Verifichiamo che in ''/etc/apt/apt.conf.d/50unattended-upgrades'' sia impostato
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Per abilitare gli aggiornamenti automatici, modificare ''/etc/apt/apt.conf.d/10periodic'' e impostare le appropriate opzioni di configurazione di apt:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
La configurazione precedente aggiorna l'elenco dei pacchetti, scarica gli aggiornamenti disponibili ed installa gli aggiornamenti di sicurezza. L'archivio locale dei file scaricati viene pulito ogni settimana.
==== Disabilitare ipv6 ====
Aggungiamo le seguenti voci in fondo al file ''/etc/sysctl.conf'':
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Rendiamo effettive le modifiche eseguendo il comando:
# sysctl -p
Inseriamo la voce ''AddressFamily'' nel file ''/etc/ssh/sshd_config''
AddressFamily inet
Quindi riavviamo ''ssh''.
Infine modifichiamo la voce ''inet_interfaces'' in ''/etc/postfix/main.cf'' nel modo seguente:
inet_interfaces = 127.0.0.1
==== oVirt agent ====
Installiamo il pacchetto relativo ai guest agent di oVirt
# apt-get install ovirt-guest-agent
Modifichiamo il proprietario della directory ''/var/log/ovirt-guest-agent''
# chown ovirtagent:ovirtagent -R /var/log/ovirt-guest-agent
Eseguiamo i seguenti comandi per avviare il servizio e abilitarlo al boot:
# systemctl enable ovirt-guest-agent.service
# systemctl start ovirt-guest-agent.service
==== check-mk agent ====
Installiamo i pacchetti ''check-mk-agent'' e ''xinetd''
# apt install check-mk-agent xinetd
Modifichiamo il file ''/etc/xinetd.d/check_mk'' inserendo in ''only_from'' la lista degli host che hanno il permesso di connettersi al client, ovvero ''localhost'' e il server Nagios.
only_from = 127.0.0.1 193.206.84.50
Riavviamo il servizio ''xinetd''
# systemctl restart xinetd.service
==== Log alert script ====
Modifichiamo il file ''/etc/rsyslog.d/50-default.conf'' inserendo
# Custom hourly warning mail
*.warning /var/log/unsent.warnings
# Send all logs to logsrv.lnf.infn.it
*.* @logsrvdata.lnf.infn.it
Creiamo la directory ''/usr/custom/scripts''
# mkdir -p /usr/custom/scripts
Copiamo nella directory appena create gli script:
* z-send.warnings
* summarize
Creiamo il file ''unset.warnings'' in ''/var/log/''
# touch /var/log/unsent.warnings
Creiamo un link simbolico dallo script ''z-send.warnings'' a ''/etc/cron.hourly/''
# ln -s /usr/custom/scripts/z-send.warnings /etc/cron.hourly/
Infine riavviamo il servizio ''rsyslog''
# systemctl restart rsyslog
==== Tivoli Storage Manager e configurazione backup ====
Scarichiamo la versione client di Tivoli Storage Manager
# curl -O ftp://ftp.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v6r4/Linux/LinuxX86/BA/v643/6.4.3.4-TIV-TSMBAC-LinuxX86.tar
Estraiamo il contenuto:
# tar -xf 6.4.3.4-TIV-TSMBAC-LinuxX86.tar
Istalliamo il tool di conversione ''alien''.
# apt install alien
Questo tool consente di convertire i pacchetti Linux RPM in pacchetti Ubuntu Debian.
# alien -k --scripts gskcrypt64-8.0.14.53.linux.x86_64.rpm
# alien -k --scripts gskssl64-8.0.14.53.linux.x86_64.rpm
# alien -k --scripts TIVsm-API64.x86_64.rpm
# alien -k --scripts TIVsm-BA.x86_64.rpm
Lanciamo l'installazione:
# dpkg -i tivsm-api64_6.4.3-4_amd64.deb tivsm-ba_6.4.3-4_amd64.deb gskcrypt64_8.0-14.53_amd64.deb gskssl64_8.0-14.53_amd64.deb
Creiamo i seguenti link simbolici:
# ln -s /opt/tivoli/tsm/client/api/bin64/libgpfs.so /lib/
# ln -s /opt/tivoli/tsm/client/api/bin64/libdmapi.so /lib/
# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8cms_64.so /lib/
# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8ssl_64.so /lib/
# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8sys_64.so /lib/
# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8iccs_64.so /lib/
Modifichiamo il file ''/opt/tivoli/tsm/client/ba/bin/dsm.sys'' con il seguente contenuto:
************************************************************************
* Tivoli Storage Manager *
* *
* Sample Client System Options file for UNIX (dsm.sys.smp) *
************************************************************************
* This file contains the minimum options required to get started
* using TSM. Copy dsm.sys.smp to dsm.sys. In the dsm.sys file,
* enter the appropriate values for each option listed below and
* remove the leading asterisk (*) for each one.
* If your client node communicates with multiple TSM servers, be
* sure to add a stanza, beginning with the SERVERNAME option, for
* each additional server.
************************************************************************
servername tsm01
commmethod tcpip
tcpport 1500
tcpserveraddress tsm01.lnf.infn.it
Inclexcl /opt/tivoli/tsm/client/ba/bin/inclexcl.file
passwordaccess generate
passworddir /etc/security/tsm01
nodename __NODENAME__
users root
schedlogname /var/log/dsmcschedule.log
errorlogname /opt/tivoli/tsm/client/ba/bin/dsmerror.log
Analogamente modifichiamo il file ''/opt/tivoli/tsm/client/ba/bin/dsm.opt'' inserendo:
************************************************************************
* Tivoli Storage Manager *
* *
* Sample Client User Options file for UNIX (dsm.opt.smp) *
************************************************************************
* This file contains an option you can use to specify the TSM
* server to contact if more than one is defined in your client
* system options file (dsm.sys). Copy dsm.opt.smp to dsm.opt.
* If you enter a server name for the option below, remove the
* leading asterisk (*).
************************************************************************
* SErvername A server name defined in the dsm.sys file
servername tsm01
compressalways no
Modifichiamo lo scheduler in ''/usr/lib/systemd/system/tsmscheduler.service'' con il seguente contenuto:
[Unit]
Description=Tivoli Storage Manager Client Scheduler
After=network.target
[Service]
ExecStart=/opt/tivoli/tsm/client/ba/bin/dsmc schedule
StandardOutput=null
StandardError=journal
KillMode=process
Restart=always
RestartSec=10m
[Install]
WantedBy=multi-user.target
==== Templetize script ====
Configurati tutti i servizi precedenti è necessario eseguire il seguente script per ripulire la macchina da tutte le configurazioni non necessarie:
#!/bin/bash
echo 'Removing apt cache files...'
apt-get clean
apt-get autoclean
echo 'Done.'
echo 'Removing config and log files...'
rm -vrf /root/.ssh/known_hosts /root/.viminfo /root/.pine-debug2 /root/.bash_history /tmp/* /var/log/anacond* /var/log/boot* /var/log/cron* /var/log/dmes* /var/log/faillo* /var/log/lastlo* /var/log/maillo* /var/log/mcelo* /var/log/message* /var/log/rpmpkg* /var/log/scrollkeepe* /var/log/secur* /var/log/spoole* /var/log/unsen* /var/log/wtm* /var/log/Xor* /var/log/yu* /var/log/audit/* /var/log/cups/* /var/log/gdm/* /var/log/mail/* /var/log/news/* /var/log/pm/* /var/log/prelink/* /var/log/settroubleshoot/* /etc/udev/rules.d/70-persistent-net.rules /etc/ssh/ssh_host* /var/lib/dhcp/dhclient*
echo 'Done.'
echo 'Shutdown in 10 seconds...'
sleep 10
history -c
shutdown -h now