osTicket on avoimen lähdekoodin tikettijärjestelmä sekä Linuxille että Windowsille.
Asensin osTicketin DigitalOceanista vuokraamalleni Ubuntu 16.04.4 x64 pohjaiselle virtuaalipalvelimelle (1 CPU, 1GB RAM, 25GB Disk, FRA1).
Alustavat toimet palvelimella
Ensimmäiseksi loin uuden käyttäjän, jonka kotihakemistosta tulen hostamaan tikettijärjestelmää. Lisäsin myös kyseisen käyttäjän sudo ja adm ryhmiin.
$ sudo adduser osticket $ sudo adduser osticket sudo $ sudo adduser osticket adm
Seuraavaksi sallin ufw palomuurista ssh, http ja https liikenteen:
$ sudo ufw allow 22/tcp $ sudo ufw allow 80/tcp $ sudo ufw allow 443/tcp
Sitten laitoin palomuurin päälle. Tämä toki tehdään vasta ssh-liikenteen sallimisen jälkeen. Muuten lukitsisin itseni omalta palvelimeltani.
$ sudo ufw enable
Tietoturvasyistä estin kirjautumisen root-tunnuksin. Hyökkääjien botit yrittävät automaattisesti sisään root-tunnuksia ja muita yleisiä hallintatunnuksia käyttäen.
Root-käyttäjätunnuksilla kirjautuminen estetty sudo usermod –lock root -komennolla. Lisäksi muokkasin sshd_config-konfiguraatiotiedostoa, josta allaolevan esimerkin mukaisesti:
$ sudo usermod --lock root $ sudoedit /etc/ssh/sshd_config
sshd_configiin:
# Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes
Käynnistin SSH:n uudelleen:
$ sudo service ssh restart
Domain-nimen osoittaminen palvelimeen:
Osoitin NameCheapin kautta vuokraamani domain-nimen palvelimeeni luomalla uuden A recordin DigitalOceanin DNS:n asetuksista. Yleensä olisin käyttänyt NameCheapin omaa Basic DNS-palvelua, mutta heillä sattui olemaan huoltotöitä tekeillä juuri, kun olin osoittamassa nimeä.
Domain-nimeni hallintapaneelista laitoin nimipalvelinten kohdalle Custom DNS-vaihtoehdon ja siihen DigitalOceanin nimipalvelimet.
DigitalOceanin puolelta Networking-välilehdeltä lisäsin tuon uuden domain-nimeni ja loin sille A-recordin, joka osoittaa markuspyharanta.com nimen palvelimeni IP-osoitteeseen.
Lisäksi loin CNAME-recordin, joka osoittaa www.markuspyharanta.com nimen markuspyharanta.com nimeen. Näin ollen, ei ole väliä laittaako käyttäjä www:n nimen eteen vai ei.
osTicketin ohjelmistovaatimukset:
- Apache 2 tai vastaava webpalvelinohjelmisto (esimerkiksi Nginx)
- PHP 5.3 tai parempi
- MySQL 5 tai parempi
Apachen asennus ja konfigurointi
Asensin Apachen paketinhallinnan kautta ja otin käyttöön userdir-moduulin, joka sallii verkkosivujen hostaamisen käyttäjän kotihakemistosta. Muutos vaatii Apache-demonin uudelleenkäynnistyksen.
$ sudo apt-get install apache2 $ sudo a2enmod userdir $ sudo service apache2 restart
osticket-käyttäjän kotihakemistoon tein public_html-kansion. Sen sisään laitoin index.html -tiedoston, jonka sisään kirjoitin tyyliin “Testisivu!”.
$ cd $ mkdir public_html $ nano index.html
Sitten muokkasin Apachen 000-default.conf -konfiguraatiotiedostoa, josta vaihdon Apachen DocumentRootin osticket käyttäjän public_html-kansioon. Tämän tein aluksi testaustarkoituksessa, sillä myöhemmin loin osTicketille oman conf-tiedoston.
$ sudoedit /etc/apache2/sites-available/000-default.conf
Nyt, kun menin selaimella markuspyharanta.com, testisivuni näkyi.
MySQL asennus:
Asensin paketinhallinnasta MySQL-serverin ja MySQL-clientin.
$ sudo apt-get install mysql-server mysql-client
Asennusvaiheen aikana tulee asettaa MySQL:n root-käyttäjälle salasana (täysin erillinen käyttäjä palvelimen root-käyttäjästä).
Sitten kirjauduin MySQL:n root-käyttäjälle:
$ mysql -u root -p
Loin uuden tietokannan nimeltä osticket UTF8-encodingilla ja annoin kaikki oikeudet osticket-tietokantaan palvelimen paikalliselle osticket-käyttäjälle. ‘password’-sisälle laitoin toki käyttäjän oikean salasanan.
mysql> CREATE DATABASE osticket CHARACTER SET utf8; mysql> GRANT ALL ON osticket. *TO osticket@localhost IDENTIFIED BY 'password'; mysql> exit
Kirjauduin ulos root-käyttäjältä ja kokeilin kirjautumista osticket-käyttäjällä. Samalla tarkistin, että luomani osticket-tietokanta on olemassa.
$ mysql -u osticket -p mysql> SHOW DATABASES;
PHP asennus:
Asensin paketinhallinnasta PHP 7.0:n ja muutamia lisämoduleita sille, joita osTicket suosittelee. Sinänsä pakollisia olisivat oikeasti vaan php7.0 ja sen MySQL-laajennus.
$ sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0 php7.0-mcrypt php7.0-gd php7.0-mbstring php7.0-zip php7.0-dom php7.0-xml php7.0-imap
Koska pyörittelen tikettijärjestelmää käyttäjän kotihakemistossa, pitää PHP: ajaminen ajaminen sallia siellä erikseen. Oletuksena se on näet estetty.
$ sudoedit /etc/apache2/mods-available/php7.0.conf
Kommentoin IfModule-rivit pois tiedoston loppupuolelta:
Testasin PHP:n toimivuuden luomalla info.php tiedoston osticket-käyttäjän public_html:ään.
$ cd public_html $ nano info.php
Tiedoston sisään kirjoitin:
<?php phpinfo(); ?>
Nyt, kun navigoin nettiselaimella osoitteeseen: markuspyharanta.com/info.php, näkyy phpinfo oikein. Tämä näyttää, että PHP on asentunut oikein. Testauksen jälkeen poistin info.php tiedoston tietoturvasyistä.
$ rm info.php
osTicketin asennus ja konfigurointi:
Latasin .zip-paketin osTicketin sivuilta puclic_html kansioon:
$ cd /home/osticket/public_html/ $ wget http://osticket.com/sites/default/files/download/osTicket-v1.10.1.zip
Purin sen:
$ unzip ostTicket-v1.10.1.zip
Navigoin upload-kansioon, jossa tein kopion ost-sampleconfig.php tiedostosta nimellä ost-config.php.
$ cd /home/osticket/public_html/upload/include/ $ cp ost-sampleconfig.php ost-config.php
Aiemmin käytin Apachen oletus virtualhostia, mutta nyt loin osticketille oman tekemällä kopion 000-default.conf:ista nimellä osticket.conf.
$ cd /etc/apache2/sites-available/ $ sudo cp 000-default.conf osticket.conf
Muokkasin confin tällaiseksi:
<VirtualHost markuspyharanta.com:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerName markuspyharanta.com ServerAlias www.markuspyharanta.com ServerAdmin webmaster@localhost DocumentRoot /home/osticket/public_html/upload/ <Directory /home/osticket/public_html/upload/> Options Indexes FollowSymLinks MultiViews AllowOverride All </Directory> # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Sitten otin osticket-sivuston käyttöön ja samalla otin 000-default.conf:in pois käytöstä, sillä sitä ei enää tarvita.
$ sudo a2ensite osticket.conf $ sudo a2dissite 000-default.conf $ sudo service apache2 reload
osTicketin installer tarvitsee seuraavat oikeudet ost-config.php-tiedostoon:
$ cd /home/osticket/public_html/upload/include/ $ chmod 0666 ost-config.php
Eli oikeudet ovat:
$ ls-l ost-config.php -rw-rw-rw- 1 osticket osticket 5753 May 2 08:51 ost-config.php
Omistajalla, ryhmällä ja muilla käyttäjillä on luku ja kirjoitusoikeudet.
Navigoin selaimella markuspyharanta.com, jossa tuli vastaan:
Kaikki asennusvaatimukset löytyvät palvelimeltani ja jopa suurin osa suositelluista lisäosista. Siirryin asennuksen seuraavalle sivulle, jossa minua pyydettiin täyttämään seuraavat tiedot:
Lopuksi painoin Install Now, ja osTicket asentui palvelimelleni.
On tärkeää muuttaa ost-config.php-tiedoston oikeudet asennuksen jälkeen. Kirjoitusoikeus jätetään ainoastaan tiedoston omistajalle, mutta poistetaan muilta ryhmän jäseniltä ja muilta käyttäjiltä.
cd /home/osticket/public_html/upload/include/ chmod 0644 ost-config.php
Lisäksi poistetaan kokonaan setup-kansio.
cd /home/osticket/public_html/upload/ rm -r setup
osTicket on nyt täysin toimintakelpoinen! Pääsen tikettijärjestelmäni etusivulle selaimesta osoitteella: markuspyharanta.com. Etusivun sisältöä pystyy muokata ylläpitoportaalin kautta.
Tukihenkilön ylläpitoportaaliin pääsee osoitteessa markuspyharanta.com/scp. Sisäänkirjautumisen jälkeen tikettijärjestelmä näyttää tältä:
Tikettijärjestelmän mukauttamiseen kuuluu vielä monia vaiheita, mutta asennus on tällä selvä. Admin panelista pääsee muuttamaan asetuksia aika kattavasti. Erityisesti sähköposti-asetukset kannattaa laittaa kuntoon (ks. http://osticket.com/wiki/Email_settings)
Lähteet:
osTicket Installation:
http://osticket.com/wiki/Installation
How to install osTicket on Ubuntu 16.04
https://myvpsource.com/how-to-install-osticket-on-ubuntu-16-04
TÄTÄ DOKUMENTTIA SAA KOPIOIDA JA MUOKATA GNU GENERAL PUBLIC LICENSE (VERSIO 3 TAI UUDEMPI) MUKAISESTI. HTTP://WWW.GNU.ORG/LICENSES/GPL.HTML”
MARKUS PYHÄRANTA
Pingback: Let’s Encrypt SSL/TLS-sertifikaatti ilmaiseksi ja vaivattomasti omille sivuille – Markus Pyhäranta