Postup je otestován pro webový server Apache běžící na serveru Ubuntu 14.04. Pokračování textu Zabezpečení domén pomocí SSL certifikátu Let’s Encrypt
Štítek: ubuntu
Server Ubuntu: Automatické provádění (bezpečnostních) aktualizací
Ruční aktualizace systému
Při přihlášení na server se v konzoli pravidelně objevuje hlášení systému:
32 packages can be updated.
23 updates are security updates.
V tomto okamžiku je doporučeno provést aktualizaci balíčků systému:
$ sudo apt-get update $ sudo apt-get upgrade $ reboot
Automatická aktualizace
Na serveru Ubuntu lze jednoduše nastavit stahování a instalaci aktualizací automaticky.
Řešením je tzv. unattended upgrades – upgrade bez dozoru.
Instalace
$ sudo apt-get install -y unattended-upgrades
Nastavení
Soubor: /etc/apt/apt.conf.d/50unattended-upgrades
Nastavení pro aktualizaci jen bezpečnostních aktualizací
Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; // "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; };
(Pokud chcete aktualizovat i ostatní typy balíčku, odkomentujte další řádky.)
Povolíme automatický restart systému:
Unattended-Upgrade::Automatic-Reboot "true";
Povolíme provádění aktualizace po malých částěch:
Unattended-Upgrade::MinimalSteps "true";
Můžeme zvolit čas restartu (ideálně v nočních hodinách):
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
Můžeme nastavit emailovou adresu pro zaslání zpráv o výsledcích aktualizací:
Unattended-Upgrade::Mail "info@zooom.cz";
Nakonec nastavíme četnost provádění automatické aktualizace 1x za den:
Soubor: /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1";
Hotovo!
O provádění položek „Periodic“ se stará soubor /etc/cron.daily/apt.
Informace o provedených aktualizacích jsou logovány do souboru /var/log/unattended-upgrades.
Let’s Encrypt – zabezpečení webu SSL certifikátem ZDARMA na serveru Apache na Ubuntu
Instalace potřebných balíčků
$ sudo apt-get update $ sudo apt-get install git
Instalace Let’s Encrypt
$ sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
Vystavení SSL certifikátu
$ cd /opt/letsencrypt $ ./letsencrypt-auto --apache -d example.com -d www.example.com
Vygenerované soubory certifikátu najdeme ve složce: /etc/letsencrypt/live
Seznam domén s vysavenými certifikáty na serveru
/etc/letsencrypt/live
Ověření nastavení a stavu SSL certifikátu
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
Obnovení platnosti certifikátu (renew)
$ cd /opt/letsencrypt $ ./letsencrypt-auto certonly --apache --renew-by-default -d example.com -d www.example.com $ service apache2 restart
Automatické obnvení platnosti certifikátu
Certifikáty Let’s Encrypt mají platnost 90 dnů. Je však doporučeno provádět obnovení pro jistotu již po 60 dnech.
Řešením je nastavit cron, který bude obnovení provádět automaticky.
Shell skript (ke stažení zde, případně zde): ověří datum expirace SSL certifikátu vystaveného pro danou doménu a v případě potřeby provede prodloužení certifikátu. Skript bude spouštěn v pravidelných intervalech 1x za týden.
Stažení skriptu a nastavení přístupových práv k souboru:
$ sudo curl -L -o /usr/local/sbin/le-renew http://do.co/le-renew $ sudo chmod +x /usr/local/sbin/le-renew
Ruční spuštění skriptu
$ sudo le-renew example.com
Automatické spouštění skriptu
Přidáme nový úkol do tabulky cronu, který jendou týdně skript spustí.
Editace tabulky cronu:
$ sudo crontab -e
Pro každou zabezpečenou doménu přidáme řádek:
30 2 * * 1 /usr/local/sbin/le-renew example.com >> /var/log/le-renew.log
Aktualizace klienta Let’s Encrypt
V případě vydání nové verze klienta Let’s Encrypt je vhodné provést jeho aktualizaci na serveru:
$ cd /opt/letsencrypt $ sudo git pull