Webmin / Virtualmin / Usermin

Instalace GPL Webmin/Virtualmin a Usermin na VPS Debian 8 (jessie) standardní a s virtualizační technologií OpenVZ.

Příprava

Přihlášení

  • SSH
    • s​sh [email protected]_address_or_hostname
  • Změna hesla
    • aktuální uživatel
      • passwd
    • případně konkrétní uživatel např. user
      • sudo passwd user
  • Odhlášení
    • exit

Lokalizace

  • dpkg-reconfigure locales
    • ​cs_CZ.UTF-8 UTF-8 (vygenerování)
    • cs_CZ.UTF-8 (nastavení)
  • Více info viz např. debian.cz/users/localization.php

Kontrola

  • Datum a čas
    • zobrazení aktální hodnoty
      • date
    • nastavení (měsíc, den, hodiny, minuty, rok)
      • date mmddhhMMYYYY
    • synchronizace datumu systému s nastavením na desce
      • hwclock --systohc
  • Aktualizace instalačních zdrojů + aktualizace
    • apt-get update
      apt-get upgrade

      nebo

      aptitude update
      aptitude upgrade
  • ​Zobrazení informací o distribuci:
    • cat /etc/os-release

      nebo

      lsb_release -a

      nebo

      lsb-release -a

Fully Qualified Domain Name (FQDN)

  • Zobrazení FQDN
    • hostname -f
  • Příklad nastavení "servername.example.com"
    • /etc/hostname
      • servername
    • /etc/hosts
      • [external IP address] servername.example.com servername
    • (použití nastavených hodnot)
      • /etc/init.d/hostname.sh start
      • sysctl kernel.hostname=servername.example.com
      • service hostname restart; service networking restart

Webmin/Virtualmin GPL

Instalace

  • wget http://software.virtualmin.com/gpl/scripts/install.sh
  • /bin/sh install.sh
  • Přihlášení (výchozí port 10000)
    • https://server1.example.com:10000
      • ​potvrdit certifikát
        • Post-Installation Wizard – můžete nechat výchozí hodnoty
          • Set MySQL password – zvolte si heslo
          • Password storage mode: Only store hashed passwords

Virtualmin

System Information (případně ikona "i")

  • Upgrade Webmin Now (tlačítko)
    • z příkazového řádku je možné Webmin spustit, zastavit a restartovat (start | stop | restart)
      • ​/etc/webmin/start
  • Re-check and refresh configuration (tlačítko)
    • v případě potřeby vedou odkazy ve výsledné "zprávě" přímo na příslušné konfigurační stránky
      • viz Virtualmin, System Settings, Re-Check Configuration

System Settings

  • Re-Run Install Wizard
  • Re-Check Configuration
    • Chyba: Postfix can support per-domain outgoing IP addresses, but is not currently configured to do so...
      • viz Webmin, Servers, Postfix Mail Server, Sender Dependent Transport Mapping
    • Chyba: The mailman queue processor /var/lib/mailman/bin/qrunner is not running on your system...
      • viz Webmin, System, Bootup and Shutdown
    • Chyba: Default IP address is set to 127.0.0.2, but the detected external address is actually...
      • viz Virtualmin, System Settings, Virtualmin Configuration, Networking settings
    • Chyba: Virtualmin could not work out the default IPv6 address for virtual servers on your system...
      • viz Virtualmin, System Settings, Virtualmin Configuration, Networking settings
    • Chyba: Quotas are not enabled on the filesystem / which contains home directories...
      • ???
        • http://sourceforge.net/p/webadmin/bugs/4440/
          • zjištění typu souborového systému: "df -T"
            • u typu: "simfs" přidejte do souboru /etc/fstab řádek
              • /dev/simfs / simfs rw,relatime,usrquota,grpquota 0 0
          • reboot
          • Webmin
            • System
              • Disk and Network Filesystems
                • Enable quotas
                  • cat /etc/mtab
                  • cat /etc/fstab
    • Chyba: The Postfix server does not appear to be installed on your system, or has not yet been set up properly in Webmin's Postfix Configuration module. If you are running a different mail server, select it on the module configuration page.
      • ???
        • viz Virtualmin, System Settings, Server settings (nebo instalovat Postfix)
  • Virtualmin Configuration
    • Networking settings
      • Network interface for virtual addresses: "venet0:0" nebo "eth0"
      • Default virtual server IPv6 address: "wlan0"
        • Save (tlačítko)
          • Update Incorect IP Address (tlačítko)
            • Change Now (tlačítko)
  • Account Plans
    • Default Plan
      • Disk Quota (default 1024 MB): 5 GB
  • Features and Plugins
    • Disable:
      • AWstats reporting (public_html/awstats-icon+awstatsicons+icon)
      • ???
  • Server Templates
    • Default Settings
      • sekce: Apache website
        • Directives and settings for new websites
          • změňte SymLinksIfOwnerMatch => FollowSymLinks (3x)
          • ??? toto globální nastavení se neaplikuje :(
          • ??? httpd.conf | /etc/apache2/apache2.conf
            • nastavení je také možné změnit jen u požadovaného Virtuálního serveru a ne globálně
        • Subdirectory for Webalizer statistics
          • Directory under home "stats"

Email Messages

  • Spam and Virus Scanning

System Customization

  • Custom Shells
    • povolit "/bin/bash" a zvolit jej jako Default (u /bin/sh odškrtnout Defualt)
      nebo
      /etc/passwd
      • /bin/sh => /bin/bash

Limits and Validation

  • FTP Directory Restrictions
    • aktivovat (All virtual servers + Other directory) a nastavit cestu na
      • ~/public_html
    • nebo
      • v /etc/proftpd/proftpd.conf upravte sekci "Global"
        • <Global>
          #DefaultRoot ~
          DefaultRoot ~/public_html
          </Global>
          
      • ​restartujte ProFTPd
        • service proftpd restart

Server configuration (dostupné až ve vytvořeném Virtual serveru)

  • PHP Versions (phpfarm, phpbrew, php-version, phpenv atd.)
    • instalační zdroje
      • v /etc/apt/sources.list upravte instalační zdroj
      • zaktualizujte instalační zdroje
        • apt-get update
    • instalace
      • apt-get install build-essential
        apt-get install libxml2 libxml2-dev libssl-dev
        apt-get install libcurl4-openssl-dev pkg-config
        apt-get install libcurl4-gnutls-dev libjpeg-dev libpng12-dev libmysqlclient-dev
        apt-get install git
        cd /opt
        git clone https://github.com/cweiske/phpfarm
        apt-get install libapache2-mod-fastcgi apache2-mpm-worker apache2-suexec
        a2enmod actions fastcgi suexec
        service apache2 restart
        
    • konfigurace
      • cd /opt/phpfarm/src
        touch custom-options-5.3.29.sh
        
      • do souboru custom-options-5.3.29.sh vložte požadovanou konfiguraci např.:
        • #gcov='--enable-gcov'
          configoptions="\
          --enable-bcmath \
          --enable-calendar \
          --enable-exif \
          --enable-ftp \
          --enable-mbstring \
          --enable-pcntl \
          --enable-soap \
          --enable-sockets \
          --enable-sqlite-utf8 \
          --enable-wddx \
          --enable-zip \
          --enable-gd-native-ttf \
          --with-zlib \
          --with-gettext \
          --with-mysql \
          --with-mysqli \
          --with-jpeg-dir=/usr \
          --with-png-dir=/usr \
          --with-pdo-mysql \
          --with-curl \
          --with-gd=yes \
          $gcov"
      • soubor custom-options-5.3.29.sh​ nastavte jako spustitelný
        • chmod +x custom-options-5.3.29.sh
    • kompilace PHP
      • cd /opt/phpfarm/src
        ./compile.sh 5.3.29
        cd /opt/phpfarm/inst/bin
        ./php-5.3.29 --version
    • propojení PHP verze s administrací Virtualmin
      • mkdir /opt/rh/
        ln -s /opt/phpfarm/inst/php-5.3.29 ./php53
    • výchozí verzi PHP pro nové Virtuální servery je možné nastavit v:
      • Virtualmin, System Settings, Server Templates, Default Settings, Apache website, Default PHP version
        • ??? volba "Highest available" nějak nefunguje :(
    • test
      • index.php
        • <?php phpinfo(); ?>
    • více info:
      • serverfault.com/questions/367885/downgrade-php-5-4-to-5-3-in-debian
      • jabommi.de/wiki/downgrade-php-5-5-to-5-3-ubuntu-14-with-multiple-php-versions/
      • howtoforge.com/how-to-use-multiple-php-versions-php-fpm-and-fastcgi-with-ispconfig-3-ubuntu-12.10
      • blog.servergrove.com/2011/08/22/how-to-setup-multiple-php-versions-on-apache/
      • devkardia.com/easyblog/ubuntu-12-04-multiple-php-versions-and-virtualmin-using-phpbrew.html

Administration Options

  • Disk Usage

Webmin

Webmin

  • Change Language and Theme
    • Webmin UI language
      • English US (en.UTF-8)
        nebo
        Czech (CZ.UTF-8)
    • Webmin UI theme
      • Global theme (Virtualmin Framed Theme)
        • vždy přehledné volby
      • Authentic theme
        • zpřístupňuje funkci "Search" i v sekci Virtualmin :)
        • grafické ukazatele výkonu v sekci "System Information"
        • v postranním menu zůstává rozbalená jen jedna sekce
        • umožňuje definovat vlastním seznam oblíbených sekcí "Favorites" (hvězdička)
        • barevně odlišená důležítá "akční talčítka"
  • Webmin Configuration
    • IP Access Control
      • Only allow from listed addresses
        • každá IP adresa na samostatný řádek
      • ruční přidání další IP adresy při zakázaném přístupu
        • /etc/webmin/miniserv.conf
          • allow=ip.address ip.address ip.address
        • /etc/webmin/restart
    • Authentication
      • Auto-logout after (např. 10 minut)
    • Sending Email
      • Send test message

System

  • Bootup and Shutdown
    • mailman
      • Start Now and On Boot (tlačítko)
  • Scheduled Cron Jobs
    • např.
      • /usr/bin/wget -O - -q http://www.myweb.cz/cron.php
  • Running Processes (Uživatel, Paměť, CPU atd.)
  • Software Package Updates
    • Only updates
    • Check for updates on schedule? Yes, every day (hour|week)
    • Install security updates
      • Save
  • Virtualmin Package Updates
    • Only updates
    • All packages
    • Check for updates on schedule? Yes, every day (hour|week)
    • Install security updates
      • Save
  • Software Packages
    • Package from APT
      • Search APT (tlačítko)

Automatická instalace pouze bezpečnostních aktualizací (Debian/Ubuntu)

  • Zobrazení bezpečnostních aktualizací:
    • apt-get upgrade -s | grep ^Inst | grep -i security
  • Balíček unattended-upgrades:
    1. Instalace
      • apt-get install unattended-upgrades update-notifier-common
    2. Povolení provádění aktualizací (v dialogovém okně zvolte Ano)
      • dpkg-reconfigure -plow unattended-upgrades
    3. Dle potřeby upravte configurační soubor /etc/apt/apt.conf.d/50unattended-upgrades např.
      • ...
        Unattended-Upgrade::Mail "[email protected]";
        ...
        Unattended-Upgrade::Automatic-Reboot "true";
        ...
    4. Výsledky aktualizací je možné sledovat v log soboru /var/log/unattended-upgrades/
  • Více informací viz např.
    • help.ubuntu.com/community/AutomaticSecurityUpdates
    • [email protected]/how-to-set-up-automatic-ubuntu-security-updates-82dd2914c4c1

Servers

  • Postfix Mail Server
    • Sender Dependent Transport Mapping
      • Map specifications: hash:/etc/postfix/virtual
  • MySQL Database Server
    • MySQL Server Configuration
      • Maximum packet size: 32 MB (odpovídá [mysqld] viz níže)
        • kde se mění [mysqldump] nevím
      • nebo přímo v /etc/mysql/my.cnf
        • [mysqld]
          max_allowed_packet = 32M
          [mysqldump]
          max_allowed_packet = 32M

Hardware

  • System Time
    • Change timezone
      • Europe/Prague
        nebo
        UTC (UTC)

Others

  • PHP Configuration
    • /etc/php5/apache2/php.ini
      • Edit Manually
        • mbstring.http_input = pass ;Commerce Kickstart
          mbstring.http_output = pass ;Commerce Kickstart
          memory_limit = 256M
          post_max_size = 64M
          upload_max_filesize = 32M
          max_execution_time = 300
  • Upload and Download

Virtual Server

Create Virtual Server | Zvolte požadovaný Virtual server

  • Domain name: doména bez www
  • Email je na adrese "mail.domain.name"

Edit Databases

  • Passwords

Services

  • Configure Website
    • Edit Directives
      • změnit SymLinksIfOwnerMatch => FollowSymLinks (3x)
        nebo
        /etc/apache2/sites-available/...
        • SymLinksIfOwnerMatch => FollowSymLinks (3x)
  • PHP 5 Configuration
    • Edit Configuration Manually
      • mbstring.http_input = pass ;Commerce Kickstart
        mbstring.http_output = pass ;Commerce Kickstart
    • Resource Limits
      • Maximum memory allocation: 256M
        Maximum file upload size: 32M
        Maximum HTTP POST size: 64M
        Maximum execution time: 300

Server Configuration

  • Website Redirects

System Information

  • Status
    • po úpravách konfigurace je vhodné příslušnou službu restartovat enlightened

PhpMyAdmin | Adminer | SqlBuddy

Globálně:

  • ručně
    • apt-get install phpmyadmin
      • zvolte: apache2
      • configure database: yes
      • vložte heslo uživatele root zvolené při instalaci MySQL
      • zvolte si heslo pro uživatele phpmyadmin
    • povolení HTTPS
      • a2ensite default-ssl
        service apache2 restart
        
    • vynucení HTTPS
      • na konec souboru /etc/phpmyadmin/config.inc.php vložte
        • $cfg['ForceSSL'] = true;
  • Webmin
    • Software Packages
      • Package from APT
        • Search APT (tlačítko)
          • phpmyadmin
            • Install (tlačítko)
  • URL: ServerIP/phpmyadmin | servername.example.com/phpmyadmin
    • ??? https

Pro zvolený Virtual host:

  • Install Scripts
    • phpMyAdmin
      • !!! nainstaluje se do "public_html/phpmyadmin"

Doména

DNS

Jsou dva typy DNS serveru:

  • autoritativní – obsahuje DNS záznamy pro domény
  • rekurzivní – výše uvedené záznamy prochází a překládá domény na IP adresy nebo naopak

Některá VPS poskytují pouze rekurzivní DNS servery, tj. ty, které jsou zapsané v /etc/resolv.conf a použijí se např při použití příkazu "ping".

Pro VPS s rekurzivním DNS serverem je nutné u domény nastavit zázanam typu A (případně i AAA/MX/TXT), který směřuje na příslošnou IP adresu VPS serveru.

Odesílání e-mailů

Pokud je e-mailový server jinde než webový je vhodné ve Virtualmin, Edit Virtual Server vypnout:

  • Virus filtering enabled
  • Mail for domain enabled
  • Spam filtering enabled
  • Mailman mailing lists

Odesílání e-mailů z externího serveru uvedeném v MX záznamu domény:

  • nainstalujte ssmtp
    • apt-get install ssmtp
  • v etc/php5/apache2/php.ini nastavte
    •  sendmail_path = /usr/sbin/ssmtp -t
  • v etc/ssmtp/ssmtp.conf nastavte
    • root=[email protected]
      mailhub=mail.example.com # actual MX record
      hostname=example.com
      

Doplňky

mc

  • apt-get install mc
    • ​F9, Nastavení, Konfigurace, Použít interní editor

rsync, unzip

  • apt-get install rsync unzip

Drupal

PHP rozšíření

  • apt-get install php5-gd php5-curl
  • service apache2 restart
    • nebo
    • /etc/init.d/apache2 restart

Imagemagick (volitelně)

  • apt-get install imagemagick

Drush

Virtualizace VMware

  • apt-get install open-vm-tools

Certifikáty

V /etc/ssl/ můžete vytvořit vlastní adresář a do něj vložit příslušné soubory my.crt (certifikát) a my.key (nešifrovaný privátní klíč).

Web

V /etc/apache2/sites-available/default-ssl.conf upravte cesty:

  • SSLCertificateFile    /etc/s​sl/.../my.crt
    SSLCertificateKeyFile /etc/ssl/.../my.key

FTP

V /etc/proftpd/proftpd.conf povolte:

  • Include /etc/proftpd/tls.conf

V /etc/proftpd/tls.conf upravte:

  • TLSEngine on
    ...
    TLSRSACertificateFile    /etc/ssl/.../my.crt
    TLSRSACertificateKeyFile /etc/ssl/.../my.key
    ...
    TLSRequired on #volitelne
    

Restart Proftpd:

  • service proftpd restart

Tipy

Pomalé SSH přihlašování:

  • na konec souboru /etc/ssh/sshd_config přidejte:
    • useDNS no

Pomalé FTP přihlašování:

  • na konec souboru /etc/proftpd/proftpd.conf přidejte:
    • UseReverseDNS off

ToDo:

Další info:

  • https://jazzymarketing.com/lc/20110610/restricting-webmin-acess-specific-ip-and-port yes
  • http://doxfer.webmin.com/Webmin/Securing_Webmin
  • phpMyAdmin
    • !!! https://www.virtualmin.com/node/10199 - funguje jen částečně
      • Požadovaný Virtual server
        • Services
          • Configure Website
            • Edit Directives
              • <Location /phpmyadmin>
                  Options -Indexes +IncludesNOEXEC +FollowSymLinks
                  allow from all
                  AddHandler php5-script .php
                  AddType text/html .php
                </Location>

Doplňky

  • (aptitude – pamatuje si, které balíky byly instalovány jako závislosti a pak je umí i automaticky odstranit)
    • apt-get -y install aptitude

Poznámky

  • PHP (Apache nainstalujeme jako závislost php5) a několik knihoven pro CMS systémy
    • aptitude install php5 php-gd php5-curl php-pear
  • MySQL a několik knihoven vhodných pro CMS systémy
    • aptitude install php5-mysql mysql-server
      • zvolte si heslo pro uživatele root (psaní hesla není nijak indikováno)
  • curl (nebo wget) – vhodné pro instalaci a používání Drupal shellu Drush
    • aptitude install curl wget

Tipy

Webhosting Control Panels (alternativeto.net, en.wikipedia.org/wiki/Comparison_of_web_hosting_control_panels)

  • Zdarma
    • GNUPanel (Debian)
    • OpenPanel (Debian) – git
    • Domain Technologie Control – git
    • Ajenti (Debian, Ubuntu, RHEL, CentOS, FreeBSD) – git
    • Sentora – git
    • ISPConfig
    • Kloxo/LxAdmin (Red Hat, CentOS) – git, IPV6
    • ispCP
    • Easy Hosting Control Panel
    • i-MSCP
    • Artica
    • Webuzo
    • ApacheGUI
    • CentOS Web Panel
    • Ubuntu Server GUI
    • Virtual Hosting Control System
    • JavaMin (Java Management Interface)
    • AlternC – git, IPV6
    • LiveConfig
    • SysCP (Debian, Ubuntu, SuSE-Linux, Gentoo)
  • Zdarma i komerční
    • Webmin/Virtualmin – git, IPV6
      • digitalocean.com/community/tutorials/how-to-install-and-utilize-virtualmin-on-a-vps
    • Vesta Control Panel
  • Komerční
    • cPanel
    • ServerPilot.io
    • InterWorx
    • DirectAdmin
    • Parallels Plesk Panel
    • Core-Admin (Debian)
    • ISPmanager

Zamknutí/odemknutí PHP verze

  • Holding packages using aptitude
    • sudo aptitude hold php5
  • Unhold:
    • sudo aptitude unhold php5