December 10, 2019
  • 11:03 pm Office 365 Security & Compliance – Alert Policyjen ja auditoinnin käyttöönotto
  • 6:06 pm Exchange Online – Global Address List -osoitteiston piilottaminen käyttäjältä ABP-käytännöllä
  • 4:39 pm Office 365 – Omasta kalenterista tehdyt varaukset näkyvät huonekalenterissa vain varaajan nimellä, vaikka varaajalla on omistajaoikeudet
  • 4:14 pm Office 365 – Exchange Online -palveluun yhdistäminen PowerShellillä MFA-tunnistautumisen kanssa
  • 7:12 pm Windows Server 2019 Datacenter – Kokeilujakson uusiminen

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).
osticket1

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

osticket2
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.
osticketDNSnamecheap
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.
osticketDNSdigitalocean


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

osticket5
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ä).
osticket6
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;

osticket7

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:
osticket8
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

osticket9
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:
osticket10
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:
osticket11EDIT
Lopuksi painoin Install Now, ja osTicket asentui palvelimelleni.
osticket12
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.
osticket13
Tukihenkilön ylläpitoportaaliin pääsee osoitteessa markuspyharanta.com/scp. Sisäänkirjautumisen jälkeen tikettijärjestelmä näyttää tältä:
osticket14
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

 

Markus Pyhäranta

RELATED ARTICLES