Differences between revisions 9 and 10
Revision 9 as of 2015-01-24 11:48:27
Size: 3841
Comment: sync with English master
Revision 10 as of 2015-10-03 10:49:39
Size: 7831
Comment: è
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
Modificare il file {{{/etc/printcap}}}; è necessario riavviare il servizio. CUPS è il Common Unix Printing System (Sistema di stampa comune di Unix).

Modificare il file {{{/etc/printcap}}}.

Si deve cambiare il vecchio nome host in qualsiasi riga in questo modo (il nome host è in grassetto: Kyocera_TASKalfa_3050ci|Kyocera TASKalfa 3050ci:rm='''debian''':rp=Kyocera_TASKalfa_3050ci: È necessario riavviare il servizio perché ciò abbia effetto
Line 40: Line 44:
Modificare il valore di {{{hostname=}}} nel file {{{/etc/exim4/update-exim4.conf.conf}}}; è necessario riavviare il servizio. Riconfigurare Exim (ciò modifica {{{/etc/exim4/update-exim4.conf.conf}}} e {{{/etc/mailname}}}):
 {{{
dpkg-reconfigure exim4-config
}}}
O modificare manualmente {{{/etc/exim4/update-exim4.conf.conf}}} ({{{hostname=}}}). È necessario riavviare il servizio.
Line 43: Line 51:
Modificare il file {{{/etc/mailname}}}; non è necessario riavviare il servizio. Riconfigurare Exim (vedere voce precedente) o modificare manualmente il file {{{/etc/mailname}}}; non è necessario riavviare il servizio.
Line 48: Line 56:
=== OpenSSH server ===
Modificare i file {{{/etc/ssh/ssh_host_rsa_key.pub}}}, {{{/etc/ssh/ssh_host_dsa_key.pub}}} e {{{/etc/ssh/ssh_host_ecdsa_key.pub}}} ({{{root@hostname alla fine}}}); è necessario riavviare il servizio.
=== Server OpenSSH ===
Modificare i file {{{/etc/ssh/ssh_host_rsa_key.pub}}}, {{{/etc/ssh/ssh_host_dsa_key.pub}}}, {{{/etc/ssh/ssh_host_ed25519_key.pub}}} e {{{/etc/ssh/ssh_host_ecdsa_key.pub}}} ({{{root@hostname alla fine}}}); è necessario riavviare il servizio.

=== Certificato SSL auto-firmato ===
Ricreare il certificato auto-firmato creato dal pacchetto DebianPkg:ssl-cert usando il nome host attualmente configurato sul computer.
 {{{
make-ssl-cert generate-default-snakeoil --force-overwrite
}}}
È necessario riavviare i servizi che lo usano, ad esempio apache2.
Line 58: Line 73:

=== fail2ban ===
fail2ban analizza i log per rilevare connessioni fallite e può bandire IP in caso di troppi fallimenti.

Il nome host può essere nell'indirizzo email {{{sender}}} in {{{/etc/fail2ban/jail.local}}}. È necessario riavviare il servizio.

=== lvm ===
Logical Volume Manager (LVM, Gestore di volumi logici) è un mappatore di dispositivi che fornisce la gestione dei volumi logici.

Il nome host appare nel file di configurazione dei backup: {{{/etc/lvm/backup/<Proprio gruppo volumi>}}}.
Line 86: Line 111:
=== Script invasivo migliorato ===
Questo script farà le stesso cose del precedente ma chiede con un dialogo in shell quali file si desiderino modificare prima di farlo.
{{{#!highlight
#!/bin/bash
#

# Recupero dei nomi host vecchio e nuovo
OLD_HOSTNAME=$(hostname)
NEW_HOSTNAME=$1

WHIPTAIL_TITLE="Cambio del nome host"
WHIPTAIL_BACKTITLE="ShrimpDev <dev@csoellinger.at>"
WHIPTAIL_TEXT="Piu' sotto e' presente una lista con caselle di spunta con tutti i file in cui e' stato trovato il vecchio nome host \"${OLD_HOSTNAME}\" all'interno di /etc\n\nControllare quali file devono essere aggiornati al nuovo nome host \"${NEW_HOSTNAME}\""

not_root() {
    echo "ERRORE: E' necessario essere root per eseguire questo script"
    exit 1
}

usage() {
    echo "uso : $0 <nuovo nome host> [Optionale:--backup/Imposta la modalita' di backup] [Optionale:--debug/Imposta la modalita' di debug]"
    exit 1
}

# Controlla se l'utente è root
[ $EUID != 0 ] && not_root

# Controlla se e' stato fornito almeno un parametro
[ "$1" ] || usage

[ "$1" == "--backup" ] && usage
[ "$1" == "--debug" ] && usage

DEBUG="NO"
BACKUP="NO"

if [ "$2" == "--debug" ] || [ "$3" == "--debug" ]; then
    DEBUG="YES"
fi

if [ "$2" == "--backup" ] || [ "$3" == "--backup" ]; then
    BACKUP="YES"
fi

[ "$DEBUG" == "YES" ] && echo "DEBUG (NESSUN FILE VERRA' CAMBIATO)"
[ "$BACKUP" == "YES" ] && echo "MODALITA' BACKUP ATTIVATA"

# Fail grep di tutti i possibili obiettivi
TARGETS=($(grep "$OLD_HOSTNAME" /etc/ -rl))
let TARGETSLENGTH=${#TARGETS[@]}

CHECKLIST=()
for ((i=0; i<${#TARGETS[@]}; i++)); do
    CHECKLIST+=("${TARGETS[$i]}" "" "ON")
done

CHECKLIST_RESULT=$(whiptail --clear --fb --title "$WHIPTAIL_TITLE" --backtitle "$WHIPTAIL_BACKTITLE" --checklist "$WHIPTAIL_TEXT" 30 80 $TARGETSLENGTH "${CHECKLIST[@]}" 3>&2 2>&1 1>&3)
CHECKLIST_RESULT=${CHECKLIST_RESULT//\"/}
CHECKLIST_RESULT_ARR=(`echo $CHECKLIST_RESULT | tr ' ' '\n'`)

clear

for CHECKLIST_ITEM in "${CHECKLIST_RESULT_ARR[@]}"; do
    echo "sed \"s:${OLD_HOSTNAME}:${NEW_HOSTNAME}:g\" \"${CHECKLIST_ITEM}\" > \"${CHECKLIST_ITEM}.tmp\""
    [ "$DEBUG" == "NO" ] && sed "s:$OLD_HOSTNAME:$NEW_HOSTNAME:g" "$CHECKLIST_ITEM" > "$CHECKLIST_ITEM.tmp"

    if [ "$2" == "--backup" ]; then
        echo "cp \"${CHECKLIST_ITEM}\" \"${CHECKLIST_ITEM}.BCK\""
        [ "$DEBUG" == "NO" ] && cp "$CHECKLIST_ITEM" "$CHECKLIST_ITEM.BCK"
    fi

    echo "mv -f \"${CHECKLIST_ITEM}.tmp\" \"${CHECKLIST_ITEM}\""
    [ "$DEBUG" == "NO" ] && mv -f "$CHECKLIST_ITEM.tmp" "$CHECKLIST_ITEM"

    echo ""
done

exit 0
}}}

Traduzioni: English - Italiano


Rinominare un computer

Questa pagina spiega come cambiare l'hostname di un sistema (cioè rinominare un computer o un server).

Sintesi: hostname(1) non è sufficiente.

Rete

  • Aggiornare /etc/hostname.

  • Aggiornare /etc/hosts in modo che gli indirizzi locali risolvano con il nuovo nome del sistema.

  • Ricaricare la configurazione della rete; sono possibili due opzioni:
    • ricaricare i file di configurazione

      <!> Ciò disconnetterà temporaneamente il sistema dalla rete (di solito ssh resiste alle disconnessioni brevi)

      <!> Ciò potrebbe disconnettere definitivamente il sistema dalla rete in quanto non è in grado di ripristinare le connessioni; in questo caso riavviare, non perché sia la via più semplice ma perché accerta che la configurazione sia corretta

      invoke-rc.d hostname.sh start
      invoke-rc.d networking force-reload
      invoke-rc.d network-manager force-reload

      ToDo: è utile ricaricare network-manager?

    • oppure il metodo facile: riavviare il sistema.

Applicazioni specifiche

avahi

Avahi è utilizzato per pubblicare (annunciare) servizi locali; se si modifica /etc/avahi/* bisogna eseguire:

  • invoke-rc.d avahi-daemon force-reload

CUPS

CUPS è il Common Unix Printing System (Sistema di stampa comune di Unix).

Modificare il file /etc/printcap.

Si deve cambiare il vecchio nome host in qualsiasi riga in questo modo (il nome host è in grassetto: Kyocera_TASKalfa_3050ci|Kyocera TASKalfa 3050ci:rm=debian:rp=Kyocera_TASKalfa_3050ci: È necessario riavviare il servizio perché ciò abbia effetto

ejabberd

Fare riferimento alla sezione Change Computer Hostname della "Installation and Operation Guide" di ejabberd.

Exim

Riconfigurare Exim (ciò modifica /etc/exim4/update-exim4.conf.conf e /etc/mailname):

  • dpkg-reconfigure exim4-config

O modificare manualmente /etc/exim4/update-exim4.conf.conf (hostname=). È necessario riavviare il servizio.

Mailname

Riconfigurare Exim (vedere voce precedente) o modificare manualmente il file /etc/mailname; non è necessario riavviare il servizio.

Message Of The Day

Modificare il file /etc/motd; non è necessario riavviare il servizio.

Server OpenSSH

Modificare i file /etc/ssh/ssh_host_rsa_key.pub, /etc/ssh/ssh_host_dsa_key.pub, /etc/ssh/ssh_host_ed25519_key.pub e /etc/ssh/ssh_host_ecdsa_key.pub (root@hostname alla fine); è necessario riavviare il servizio.

Certificato SSL auto-firmato

Ricreare il certificato auto-firmato creato dal pacchetto ssl-cert usando il nome host attualmente configurato sul computer.

  • make-ssl-cert generate-default-snakeoil --force-overwrite

È necessario riavviare i servizi che lo usano, ad esempio apache2.

ssmtp

Ssmtp è un server SMTP leggero in sola uscita.

Modificare il valore di hostname= nel file /etc/ssmtp/ssmtp.conf; non è necessario riavviare il servizio.

sysklogd

Al fine di rendere visibile il nuovo hostname sul syslog è necessario riavviare il servizio sysklogd.

fail2ban

fail2ban analizza i log per rilevare connessioni fallite e può bandire IP in caso di troppi fallimenti.

Il nome host può essere nell'indirizzo email sender in /etc/fail2ban/jail.local. È necessario riavviare il servizio.

lvm

Logical Volume Manager (LVM, Gestore di volumi logici) è un mappatore di dispositivi che fornisce la gestione dei volumi logici.

Il nome host appare nel file di configurazione dei backup: /etc/lvm/backup/<Proprio gruppo volumi>.

Idea di script per aiutare nel passaggio

Invasivo

Questo script è pericoloso. Bisogna controllare che tutti i file elencati da grep -rl "$vecchio" /etc debbano realmente essere modificati prima di eseguirlo:

   1 #!/bin/bash
   2 #
   3 usage() {
   4    echo "uso: $0 nuovo_hostname"
   5    exit 1
   6 }
   7 
   8 [ "$1" ] || usage
   9 
  10 vecchio=$(hostname)
  11 nuovo=$1
  12 
  13 grep "$vecchio" /etc/ -rl 2>/dev/null |
  14 while read file
  15 do
  16       sed "s:$vecchio:$nuovo:g" "$file" > "$file.tmp"
  17       mv -f "$file.tmp" "$file"
  18 done

È meglio fare un grep prima...

Script invasivo migliorato

Questo script farà le stesso cose del precedente ma chiede con un dialogo in shell quali file si desiderino modificare prima di farlo.

   1 #!/bin/bash
   2 #
   3 
   4 # Recupero dei nomi host vecchio e nuovo
   5 OLD_HOSTNAME=$(hostname)
   6 NEW_HOSTNAME=$1
   7 
   8 WHIPTAIL_TITLE="Cambio del nome host"
   9 WHIPTAIL_BACKTITLE="ShrimpDev <dev@csoellinger.at>"
  10 WHIPTAIL_TEXT="Piu' sotto e' presente una lista con caselle di spunta con tutti i file in cui e' stato trovato il vecchio nome host \"${OLD_HOSTNAME}\" all'interno di /etc\n\nControllare quali file devono essere aggiornati al nuovo nome host \"${NEW_HOSTNAME}\""
  11 
  12 not_root() {
  13     echo "ERRORE: E' necessario essere root per eseguire questo script"
  14     exit 1
  15 }
  16 
  17 usage() {
  18     echo "uso : $0 <nuovo nome host> [Optionale:--backup/Imposta la modalita' di backup] [Optionale:--debug/Imposta la modalita' di debug]"
  19     exit 1
  20 }
  21 
  22 # Controlla se l'utente è root
  23 [ $EUID != 0 ] && not_root
  24 
  25 # Controlla se e' stato fornito almeno un parametro
  26 [ "$1" ] || usage
  27 
  28 [ "$1" == "--backup" ] && usage
  29 [ "$1" == "--debug" ] && usage
  30 
  31 DEBUG="NO"
  32 BACKUP="NO"
  33 
  34 if [ "$2" == "--debug" ] || [ "$3" == "--debug" ]; then
  35     DEBUG="YES"
  36 fi
  37 
  38 if [ "$2" == "--backup" ] || [ "$3" == "--backup" ]; then
  39     BACKUP="YES"
  40 fi
  41 
  42 [ "$DEBUG" == "YES" ] && echo "DEBUG (NESSUN FILE VERRA' CAMBIATO)"
  43 [ "$BACKUP" == "YES" ] && echo "MODALITA' BACKUP ATTIVATA"
  44 
  45 # Fail grep di tutti i possibili obiettivi
  46 TARGETS=($(grep "$OLD_HOSTNAME" /etc/ -rl))
  47 let TARGETSLENGTH=${#TARGETS[@]}
  48 
  49 CHECKLIST=()
  50 for ((i=0; i<${#TARGETS[@]}; i++)); do
  51     CHECKLIST+=("${TARGETS[$i]}" "" "ON")
  52 done
  53 
  54 CHECKLIST_RESULT=$(whiptail --clear --fb --title "$WHIPTAIL_TITLE" --backtitle "$WHIPTAIL_BACKTITLE" --checklist "$WHIPTAIL_TEXT" 30 80 $TARGETSLENGTH "${CHECKLIST[@]}" 3>&2 2>&1 1>&3)
  55 CHECKLIST_RESULT=${CHECKLIST_RESULT//\"/}
  56 CHECKLIST_RESULT_ARR=(`echo $CHECKLIST_RESULT | tr ' ' '\n'`)
  57 
  58 clear
  59 
  60 for CHECKLIST_ITEM in "${CHECKLIST_RESULT_ARR[@]}"; do
  61     echo "sed \"s:${OLD_HOSTNAME}:${NEW_HOSTNAME}:g\" \"${CHECKLIST_ITEM}\" > \"${CHECKLIST_ITEM}.tmp\""
  62     [ "$DEBUG" == "NO" ] && sed "s:$OLD_HOSTNAME:$NEW_HOSTNAME:g" "$CHECKLIST_ITEM" > "$CHECKLIST_ITEM.tmp"
  63 
  64     if [ "$2" == "--backup" ]; then
  65         echo "cp \"${CHECKLIST_ITEM}\" \"${CHECKLIST_ITEM}.BCK\""
  66         [ "$DEBUG" == "NO" ] && cp "$CHECKLIST_ITEM" "$CHECKLIST_ITEM.BCK"
  67     fi
  68 
  69     echo "mv -f \"${CHECKLIST_ITEM}.tmp\" \"${CHECKLIST_ITEM}\""
  70     [ "$DEBUG" == "NO" ] && mv -f "$CHECKLIST_ITEM.tmp" "$CHECKLIST_ITEM"
  71 
  72     echo ""
  73 done
  74 
  75 exit 0

Non così invasivo

#!/bin/bash
# 
usage() {
   echo "uso: $0 <nuovo nomehost>"
   exit 1
}

[ "$1" ] || usage

vecchio=$(hostname)
nuovo=$1

for file in \
   /etc/exim4/update-exim4.conf.conf \
   /etc/printcap \
   /etc/hostname \
   /etc/hosts \
   /etc/ssh/ssh_host_rsa_key.pub \
   /etc/ssh/ssh_host_dsa_key.pub \
   /etc/motd \
   /etc/ssmtp/ssmtp.conf
do
   [ -f $file ] && sed -i.old -e "s:$vecchio:$nuovo:g" $file
done

È meglio fare un grep prima...


Si veda anche