Hostname, időzóna és időszinkron beállítása Linux szerveren

Egy új VPS üzembe helyezésekor érdemes az elsők között beállítani a szerver nevét és az időt. A helyes hostname a levelezésnél és a naplókban fontos, a pontos idő és a megfelelő időzóna pedig az ütemezett feladatoknál (cron), a naplók értelmezésénél, valamint az SSL és a kétlépcsős azonosítás működésénél.

Hostname

Mi legyen a szerver neve?

Javasoljuk, hogy a hostname egy teljes domain név (FQDN) legyen, amely egy Ön által kezelt domain aldomainje, például szerver1.example.hu. Ne használja a weboldal fő domainjét (example.hu) vagy a www aldomaint, mert ez a levelezésben és egyes vezérlőpultokban gondot okozhat.

Beállítás

# Az aktuális név
hostnamectl

# Új név beállítása
sudo hostnamectl set-hostname szerver1.example.hu

A változás azonnal életbe lép, újraindítás nem kell; a parancssor elején a régi név csak a következő bejelentkezéskor frissül.

Vegye fel a nevet az /etc/hosts fájlba is, a szerver saját IP-címével:

203.0.113.10   szerver1.example.hu szerver1

DNS és fordított DNS (PTR)

Hogy a név kívülről is a szerverre mutasson:

  1. A domain DNS zónájában hozzon létre egy A rekordot (IPv6 esetén AAAA rekordot) a szerver1.example.hu névvel, a szerver IP-címére. A DNS rekordokról: DNS rekordok típusai.
  2. Ha a szerverről leveleket küld, a fordított DNS (PTR) rekordnak is erre a névre kell mutatnia, különben sok levelezőszerver spamként kezeli a leveleket. A PTR rekordot az IP-cím tulajdonosa, vagyis mi állíthatjuk be: kérje ügyfélszolgálatunktól, megadva az IP-címet és a hostname-et.

Ellenőrzés:

dig +short szerver1.example.hu A
dig +short -x 203.0.113.10

Időzóna

# Az aktuális idő, időzóna és a szinkronizálás állapota
timedatectl

# A magyar időzóna beállítása
sudo timedatectl set-timezone Europe/Budapest

Az elérhető időzónák a timedatectl list-timezones paranccsal listázhatók. Az Europe/Budapest időzóna a nyári időszámítást is automatikusan kezeli.

Egyes üzemeltetők a szervereket UTC időzónában tartják, hogy a naplók egyértelműek legyenek. Ha a weboldal magyar látogatóknak szól, és a cron feladatokat helyi idő szerint szeretné ütemezni (lásd: Crontab szintaxis és ütemezett feladatok Linuxon), egyszerűbb az Europe/Budapest.

Az időzóna módosítása után indítsa újra azokat a szolgáltatásokat, amelyek időbélyeget írnak (pl. cron/crond, rsyslog, a webszerver és az adatbázis), vagy indítsa újra a szervert.

PHP és adatbázis: a PHP saját időzóna-beállítást használ (date.timezone a php.ini fájlban), és a MariaDB/MySQL is kezelhet saját időzónát. Ha a weboldalon rossz idő jelenik meg, ezeket is ellenőrizze.

Időszinkron (NTP)

A szerver órája idővel elcsúszhat, ezért egy időszerverhez kell szinkronizálni. A timedatectl kimenetében ellenőrizze:

System clock synchronized: yes
              NTP service: active

Ha a szinkronizálás nem aktív, kapcsolja be:

sudo timedatectl set-ntp true

AlmaLinux, Rocky Linux: chrony

Ezeken a rendszereken a chronyd szolgáltatás végzi a szinkronizálást.

sudo dnf install chrony
sudo systemctl enable --now chronyd

# A szinkronizálás állapota és az eltérés
chronyc tracking

# A használt időszerverek
chronyc sources -v

A magyar időszerverek használatához a /etc/chrony.conf fájlban cserélje a pool sort:

pool hu.pool.ntp.org iburst

majd indítsa újra: sudo systemctl restart chronyd.

Ubuntu, Debian: systemd-timesyncd

Ubuntun és Debianon alapból a systemd-timesyncd végzi a szinkronizálást (a timedatectl set-ntp true ezt kapcsolja be). Az állapot:

timedatectl timesync-status

Az időszervert a /etc/systemd/timesyncd.conf fájlban adhatja meg (NTP=hu.pool.ntp.org), majd sudo systemctl restart systemd-timesyncd.