Home » Linux
Category Archives: Linux
ClamAV is a stable anti virus software for Linux and it is available since two decades. Viruses could be an issue on Linux systems but it is more likely to get a rootkit infection on a Linux system. Basically it is not a failure to have an anti virus software on a Linux computer, for example to check downloaded files.
It could also make sense to install ClamAV to scan a Samba file share for Windows clients which is provided on a Linux server.
ClamAV is easy to install and it is available in the repositories of the most distributions.
First of all we need to install ClamAV (here on Ubuntu) with this command:
apt-get install clamav
As a next step we need to update the virus definitions. But this could lead us to an error:
The Problem and the Fix
The update of the anti virus definitions can be done with this command:
But on several systems I got this message here:
ERROR: /var/log/clamav/freshclam.log is locked by another process ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). ERROR: initialize: libfreshclam init failed. ERROR: Initialization error!
The problem is that “freshclam” locks a file (/var/log/clamav/freshclam.log) and does automatically updates in the background. This is just fine, but if we want to get debugging information of the anti virus definition update procedure we need to run these commands:
We need to find the PID of “freshclam” with the “ps -ef” command and then we need to stop it with the “kill” command. (Here is the PID of the “freshclam -d” process 1281)
The command “kill -p PID” stops the lock of the file “/var/log/clamav/freshclam.log” and then “freshclam” can be executed.
We see several times the message “up-to-date” in the last lines on the picture.
ClamAV is a kind of dinosaur in the Linux world. Its is uncomplicated and works well on Linux. The update procedure of the anti virus definitions can cause an error and the automatic update feature needs to be stopped. After stopping the automatic updates a manual update can be done.
Feel free to comment my blog post.
ZFS is a modern file system with a lot of cool features, like encryption, handling very big volumes, providing data integrity (bit rot prevention) and high performance. Originally ZFS was developed by Sun Microsystems for Solaris and a Linux version of ZFS is available since 2013.
On systems with ECC RAM memory ZFS shows its advantages in terms of data integrity.
Another benefit is that ZFS combines several features like disk redundancy and encryption among other features in one single technology. As well it is possible to send encrypted volumes through a network for backup purposes.
The problem is that auto mounting the ZFS volume could fail if the system is badly configured.
We will generate a key file which should be stored on a LUKS encrypted volume. If the server starts up, the ZFS volume should be mounted automatically. Let me show you how I did it:
First of all we need to install ZFS with apt-get:
apt-get install zfsutils
As next step we need to create a key file for the encryption. Keep this file in a secure place like a LUKS volume on the server and have a copy on another secure storage:
dd if=/dev/random of=/root/zfs-encryption.key bs=1 count=32
Next we create a Zpool. We create a Raidz also known as Raid5.
zpool create -f tank1 -o - ashift=12 -o feature@encryption=enabled -O encryption=on -O keylocation=file:///root/zfs-encryption.key -O keyformat=raw raidz /dev/disk/by-id/wwndisk1 /dev/disk/by-id/wwndisk2 /dev/disk/by-id/wwndisk3 /dev/disk/by-id/wwndisk4
After creating the RAID which contains the disks we need to create a ZFS file system:
zfs create -o mountpoint=/tank1/zfs tank1/zfs
Next we need to create a Systemd startup script for ZFS by opening the file /etc/systemd/system/zfs-load-key.service. Add this code to the file:
[Unit] Description=Load encryption keys DefaultDependencies=no Before=zfs-mount.service After=zfs-import.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/bash -c '/usr/bin/zfs load-key -a' [Install] WantedBy=zfs-mount.service
Now we need to enable the service to start during the system startup:
systemctl enable zfs-load-key.service
Now reboot the system and ZFS should be mounted automatically.
ZFS is a feature rich modern file system. Auto mount a ZFS volume could be a small challenge. I showed you how to automatically mount a ZFS volume on Debian 11. Keep the decryption key file always safe and keep a backup of it.
Feel free to write a comment and have fun!
The topic of the blog post is applied IT Security on Linux Ubuntu Desktops. IT security is a hot topic since all the aspects of our live is based on IT in one form or another. Many companies around the world are affected by attacks against their IT systems and these attacks do a huge harm and cost a lot of money.
On one side systems and data security is a challenge for companies but on the other side also private individuals are seeking for security and want to have safe IT systems.
Ubuntu Desktop and Linux Desktop users are less exposed to cyber threads than Windows users but Microsoft also geared up its recent Windows versions regarding to IT security.
From my experience I can say that mostly an odd behavior of a Linux desktop system is caused by a software bug rather than a hacker, a virus, a rootkit or another malware. That applies to Windows too.
But to be sure it’s always good to know how to check your Ubuntu PC or Linux Desktop for malware and keep it safe. That’s why I want to introduce 4 Linux IT security tools to you. They are:
- Rookit Hunter which is a malware scanner
- ClamAV, an anti virus software
- Chkrootkit, another malware scanner
- UFW, stands for uncomplicated firewall
Let’s start with Rootkit Hunter:
A rootkit is a malicious software which grants a hacker full access to an IT System. There are a lot of different rootkits around for Linux systems.
There is a software for detecting rootkits on Linux systems which is called Rootkit Hunter.
First of all, if we want to use Rootkit Hunter, we need to install it by opening a terminal and and we need to execute:
sudo apt-get install rkhunter
As a next step we need to update Rootkit Hunter:
sudo rkhunter --update
Then we have to do a check of our Linux (Ubuntu) system with:
sudo rkhunter -c
Several checks are done then on the Linux system.
Often Rootkit Hunter doesn’t run immediately after the installation and gives us some errors.
Learn here how to fix WEB_CMD, Update failed, SCRIPTWHITELIST errors.
We learn about a Linux anti virus software next.
ClamAV is the Linux anti virus software which is available since more than two decades. There are every now and then proprietary anti virus solutions for Linux popping up for a short period of time. I have seen Linux versions from the anti virus software vendors Sophos, AVG, Avira and so on. But after so short time these products were vanishing.
So ClamAV is the most reliable anti virus software for Linux. Let’s learn how to install it on Ubuntu:
sudo apt-get install clamav
Next we need to update the virus definitions:
Then we are able to scan a directory with the following command and its options:
clamscan /home –recursive=yes –infected
The parameter “–recursive” means that also sub directories of /home are scanned. The option ” –infected” means that there is only output in the terminal if a virus was found. /home is our directory which we want to be scanned.
So far, so good. Now we are learning about another rootkit scanner – Chkrootkit.
Chkrootkit is like Rootkit Hunter a detection software for rootkits on Linux systems.
The first step is to install Chkrootkit on Ubuntu:
sudo apt-get install chkrootkit
Then do the check with:
Here you are seeing if there are finds or suspicious files on the computer. As next we learn about a firewall.
UFW – Uncomplicated Firewall
Not only scanning a system and detecting malicious software is important for systems and data security. Also protecting our services on our Linux system with a firewall is an important prevention and security measure.
Depending on our systems setup probably several services (servers, also called daemons ) are active on our Linux. It could be the SSH server (Secure Shell Server) or any other service. We want to protect these services with a firewall.
The most firewall products need a deeper understanding of networking and networking technologies. But there is a simple solution available for Linux called “UFW – Uncomplicated Firewall”. If installed and activated it blocks incoming network traffic by default and allows all the outgoing network traffic.
Let’s install UFW with “apt-get”:
sudo apt-get install ufw
Then we need to enable the UFW with:
sudo ufw enable
To get more detailed information type:
ufw status verbose
You will see these lines in the output:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
I introduced 4 important tools to you and I showed you how to install and configure these tools. The rootkit scanners are a good starting point if a systems show an odd or suspicious behavior. And ClamAV is a stable project since many years. It’s always good to have a firewall enabled and UFW is really easy to enable and to handle.
Feel free to comment this post!
IT Security is an important topic nowadays. Since every aspect of our daily life is affected by IT, systems security and data security became essential. Hackers penetrate companies and their IT system all around the world day by day.
Also Linux can be compromised by hackers. Although Windows is still dominant on desktops and laptops and therefore it was the main target for hackers in the past, Linux has its high market shares in the servers sector and as well at the mobile devices market .
Windows systems were mainly affected by classical viruses in the past, while Linux desktops and Linux servers where more exposed to rootkits. A rootkit is a malicious software which grants full access, known as root access, to a hacker on a compromised system.
Rootkits are difficult to detect but there is software available which can give a first hint of compromise to a systems maintainer.
Among a few open source tools there is Rootkit Hunter available to scan Linux systems. But by default it can be misconfigured and some fixes need to be done:
The Problems and their Fixes
First of all the installation of Rootkit Hunter needs to be done. I show here the installation and the fixes on a Ubuntu Desktop. The command for the installation is :
sudo apt-get install rkhunter
As a next step we want to update the rootkit definitions similar to anti virus definitions:
sudo rkhunter --update
And then we are getting this error message:
Invalid WEB_CMD configuration option: Relative pathname: "/bin/false"
Here is a screen shot with of the problem:
…and as well we see the fix for the problem in the last line of the screen shot. Here is the command to copy for you:
sudo sed -i 's/WEB_CMD=\"\/bin\/false\"/WEB_CMD=\"\"/g' /etc/rkhunter.conf
But that’s not all! As we continue another error appears, if we run “sudo rkhunter –update” again. The output is “Update failed”. But there is also a fix as you see next:
The fix for the problem as bash command:
sudo sed -i 's/UPDATE_MIRRORS=0/UPDATE_MIRRORS=1/g' /etc/rkhunter.conf sudo sed -i 's/MIRRORS_MODE=1/MIRRORS_MODE=0"\"/g' /etc/rkhunter.conf
Next we see that the command finally works:
But then another error appears if we want to ran a scan. The command for the scan is:
sudo rkunter -c
Here is the error message:
Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/egrep Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/fgrep
Here is the screen shot of the probĺem:
And as well the fix is here as code:
sudo sed -i 's/\/usr\/bin\/egrep/\/bin\/egrep/g' /etc/rkhunter.conf sudo sed -i 's/\/usr\/bin\/fgrep/\/bin\/fgrep/g' /etc/rkhunter.conf
After these modifications our rootkit check finally worked as you see here:
Rootkit Hunter is a good piece of software but on some Ubuntu version it fails if it is executed after the installation. The procedures here make Rootkit Hunter functioning properly. As well I showed how to fix a problem with updating Rootkit Hunter.
Feel free to comment my blog post!
Ubuntu 20.04 can be very slow on weaker hardware with low RAM and a weaker CPU. It can be the case that the Ubuntu PC is unusable because CPU usage is very high, although not many applications are opened by the user.
An investigation on an affected PC shows that a specific application called “tracker-miner-fs” caused the high CPU usage and slowed down the PC. Further research showed that “tracker”, version 2, caused the PC to be nearly inoperable.
Linux command line tools like “htop” and “ps -ef” can be used to investigate the details of the running processes and it shows details about the memory and CPU usage.
“Tracker” is an indexing software, which creates and updates a database of the files on the PC’s hard disk drive all the time in the background. On faster and newer hardware it has its advantages, providing metadata for the files on the computer.
But on older hardware it can cause the PC to be inoperable.
Several trails of disabling “Tracker” did not work. And: “Tracker” cannot just be uninstalled because the Gnome Desktop, means the whole graphical window system, is dependent on the “Tracker” package. Removing the “Tracker” package would result in a Ubuntu Linux with just a command line interface.
Finally the wooden hammer method worked for me and fixed the trouble we had on the affected system:
sudo chmod -x /usr/libexec/tracker-miner-fs sudo chmod -x /usr/libexec/tracker-extract sudo chmod -x /usr/libexec/tracker-store sudo reboot
The commands above just prevent the “Tracker” binaries to be able to be started. Removing the “execution” permission with the option “-x” in the commands stop the binaries from starting.
The result of the execution of the commands above is a fast running Ubuntu Desktop on older hardware with a little amount of RAM and a weaker CPU. Keep in mind that some cool features of the Gnome Desktop like file meta data info stop working after running the command above.
Have fun with your faster Ubuntu Desktop and comment this blog post!
MySQL is a database management system for a special kind of SQL databases. SQL databases basically contain a data model and then the data itself. The data model defines the structure for the stored data.
SQL is also the name for the programming language.
The SQL Syntax of the programming language is basically distinguished between the Data Definition Language (DDL) and the Data Manipulation Language (DML). SQL for MySQL is well documented in the internet: https://dev.mysql.com/doc/
MySQL is widespread and a base for many web pages and web systems in the internet. MySQL is open source although some module are closed source. In Linux MySQL can be easily installed and used. There is also an installer for Windows available.
Before I upgraded from an older MySQL version to a newer one the following command could be executed successfully:
mysql> GRANT ALL PRIVILEGES ON testdb.* TO testuser@localhost IDENTIFIED BY 'secpasswd';
Executing the command after I upgraded MySQL gave me the following error message:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'secpasswd'' at line 1
The command should basically create a user “testuser” and give this user full access to the database “testdb”. It’s really frustrating because the command above worked for me long time without problems.
But after short trails I found the new way to create a user and to grant access to the database.
The complete procedure is listed here:
CREATE database testdb;
The command above creates the databases with the name “testdb”.
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'secpasswd';
The second command above creates a user (“testuser”) and sets a password.
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
The last step gives the user “testuser” full access to the database “testdb”. The procedure works for me on MySQL version 8.0.31-0ubuntu0.20.04.2.
Often syntax and commands are changing after system upgrades. Software is often replaced by forks or software which fits better to the users needs. Professionals invest a lot of time to find out how the new versions or the new software works. But on the other side updated and new software comes with new features and bug fixes.
Feel free to comment my post.
WordPress is a software which was initially designed for blogging (weblog) purposes. A blog software can be used to publish content chronologically to the internet. Over the time and with ongoing releases WordPress developed and nowadays it can be used as a basis for ordinary webpages. It can be used similar as Joomla! or Drupal or even Bootstrap (HTML and CSS).
If you want to run your own blog or a small webpage WordPress is first choice.
To customize the base system, a broad range of themes and plugins can be installed. Most of them are free and only advanced use costs money.
WordPress is popular because first successes can be achieved easily a no software development skills are required to set up a nice little web page.
The development of WordPress goes on and the current version is 6 and its sub versions. WordPress is based on PHP and runs on the Apache2 web server and on Linux. This tutorial shows the installation of WordPress on Ubuntu Linux.
1. Install Software
First of all we need to install software on our Ubuntu. Open a terminal and type the following lines to have a web server (Apache2), a database (MySQL) and PHP installed:
sudo apt-get --yes install mysql-server apache2 sudo apt-get --yes install libapache2-mod-php php-mbstring sudo apt-get --yes php-xml php-intl php-mysql sudo a2enmod php7.4
2. Create the MySQL Database
Now we need to run the MySQL Command Line Interface (CLI). Therefor we need to execute in a terminal:
sudo mysql -u root -p
We are in the MySQL CLI now. Type:
mysql> CREATE DATABASE wordpress;
As the next step, we need to create a user, grant the necessary permissions to the user and at the same time we are setting a password:
mysql> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'secpasswd'; mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
And then we quit the MySQL CLI:
mysql> FLUSH PRIVILEGES; mysql> quit
3. Download WordPress to the right Directory
Now we need to download and extract WordPress in a terminal/shell with these commands:
cd /var/www/html sudo wget https://wordpress.org/latest.zip sudo unzip latest.zip
To not run into an error during the installation, the ownership for the WordPress directory has to be changed. On my Ubuntu system the “www-data” user and the “www-data” group need to have the ownership of the directory structure. Run the following command:
chown -R www-data:www-data /var/www/html/wordpress
6. Install and Configure WordPress
Next, open an internet browser and connect to “http://localhost/wordpress”.
Select a language and click on “Let’s go!”. Now the fine tuning has to be done. Provide these settings:
Database: "wordpress" Username: "wordpress" Password: "secpasswd" Database Host: "localhost"
Click to “Submit” and on the next page “Run the installation”.
Provide now “Site Title”, the WordPress “Username”, a secure WordPress password, your email address and click to “Install WordPress”.
Congratulations! You successfully installed WordPress on your Ubuntu computer! Open a browser and connect to “http://localhost/wordpress/” and login. You can check out now the backend of WordPress and you have a basic site set up for future customization.
Continue with installing themes and plugins and the configuration of menus. It’s just easy to go on from this point.
Feel free to comment this post!
Many websites in the internet run on Content Management Systems (CMS) nowadays. A CMS provides a relatively easy way to publish web content to the internet. The good thing about a CMS is that no software development skills are necessary. Although there are often good templates and plugins provided the fine tuning to have a CMS with a fancy design still can be tricky.
CMS with high market shares are WordPress, Drupal and Joomla!. These names are around all the time when it is about CMS and web page development. These systems are put on web servers like the Apache web server and they use a database system like MySQL to store the content like blog posts and pages in it.
I am sure there are use cases for CMS where it can be an advantage to not store content in a database system. Webhosters for example limit the amount of available databases to their customers – means in short: more databases cost more money.
I want to introduce a CMS which doesn’t need a database to store its content. The name of the CMS is “CMSimple”. All the pages and the contents of CMSimple are stored in files. The next paragraphs show the procedure to have CMSimple up and running.
Here are the steps I took to install CMSimple on a Ubuntu PC for test purposes:
Open a terminal and download the Zip File from the CMSimple download page:
sudo wget https://www.cmsimple.org/downloads_cmsimple50/CMSimple_5-8.zip /tmp
sudo unzip /tmp/CMSimple_5-8.zip
2. Install the Apache2 Web Server
sudo apt-get --yes install apache2 apache2-data apache2-utils sudo apt-get --yes install libapache2-mod-php
The command above installs the Apache web server on Ubuntu. The next command starts the web server:
sudo service apache2 start
3. Put the CMS on the Webserver
Now the downloaded and extracted files need to be put to the web server directory and permissions need to be modified:
sudo mkdir /var/www/html/cms sudo cp -r /tmp/CMSimple_5-8/* /var/www/html/cms/ sudo rm -rf /var/www/html/cms/2* sudo cp /var/www/html/cms/setup/setupControl.php /var/www/html/cms/ sudo chown -R www-data:www-data /var/www/html/cms/*
4. Login and change the Password
The developers of CMSimple write on their page that there is a limit of 5 minutes for you to change the password. After that time you have to start all over again.
So open a browser and type the following URL to the address line of the browser:
Set a password with at lease 5 positions. I personally recommend to set a 16 positions complex password on production pages.
On the next screen type the same password in to the “Password:” input box. Leave the “User (optional):” input box blank.
Now the hard work just starts. Customize your page with text, images and all the stuff a fancy page requires. As mentioned above the content is just stored in the file system. This can be also an performance advantage and the loading time could be reduced compared to other extensive CMS.
If you are doing a technology evaluation currently, give CMSimple a chance. Small web projects could be done for sure with this CMS. New designs, so called templates, can be easily created for CMSimple.
Have fun 😊
Recently we were experiencing an error on an OpenSuse Linux and BTRFS.
OpenSuse is a popular Linux and comes by default with the BTRFS (B-tree FS) file system. The BTRFS file system is a modern file system with many advantages compared to the old EXT4.
For clarification: A file system basically manages the way how your data is stored on a hard disk drive. A hard disk drive can be spitted into partitions and every partition gets its own file system. As I wrote in our case it is BTRFS.
The basic management like setting permissions and ownership of files and directories is similar on all the Linux file systems – also on BTRFS. Normally a user doesn’t have to care much about the file system type.
Our problem with BTRFS showed up as follows:
Recently we started up an OpenSuse PC with a BTRFS file system and we wanted to erase the file “file.txt” with the “rm” command as you can see here:
rm file.txt rm: cannot remove 'file.txt': Read-only file system
You are seeing in the second line the error message we got.
A further analysis showed up that the device /dev/sde1 was keeping the file which we wanted to erase.
As a symptom of the problem we were identifying that /dev/sde1 was mounted as “read-only” volume.
Because the partition is mounted as “read-only” we cannot erase, create or modify any file on /dev/sde1 – also not our “file.txt” !
1. Boot a Linux Live System
Since the device /dev/sde1 was occupied by the installed OpenSuse Linux and could not be unmounted I decide to boot my PC with a Ubuntu Live System. I choose “Try Ubuntu” and I got a fully working system with graphical user interface.
2. Open a Terminal and Check BTRFS
We assume that the file system is mounted “read-only” because of a file system defect. We have to execute the following command:
sudo btrfs check /dev/sde1
Although now error was recognized by the check we rebooted the system. And: The device /dev/sde1 wan now mounted as rw (read write). We could successfully erase, create and modify all the files on our BTRFS partition again.
The task was successfully closed. Keep in mind that there could be a serious hardware issue with the hard disk drive. It could be the case that the problem appears again. There are other Linux tools to check the integrity of the hard disk drive and maybe the very last solution for the problem could be a hard disk drive replacement.
Confluence is a Wiki system comparable with MediaWiki. In companies it is used for documentation purposes and as an information hub. It is basically a commercial software and Atlassian is the company behind it. It is possible to have a free installation with some limitations or to buy a license to have an instance with full features. Confluence is proprietary software written in Java.
The data store which holds basically the majority of the web content of Confluence is in our case MySQL. MySQL is available in the Ubuntu repositories.
Please notice that a productive installation needs to have a good planning. I provide here a good first impression on how to do a successful setup of a test instance of Confluence.
1. Install Software
On Ubuntu the prerequisite to have Confluence finally up an running is to have these packages installed by Terminal/Shell:
sudo apt-get --yes install mysql-server
2. Create a MySQL Database
After we have installed the MySQL Ubuntu package we need to create a database and an user and grant access to the user with the MySQL Command Line Interface (CLI). First log in with empty password:
sudo mysql -u root -p
Then create a database with the name “confluence”:
mysql> CREATE DATABASE confluence;
The next command creates a user called “confluence” with the password “secpasswd”. And the user gains access to the database:
mysql> GRANT ALL PRIVILEGES ON confluence.* TO confluence@localhost IDENTIFIED BY 'secpasswd';
Exit the MySQL CLI:
mysql> FLUSH PRIVILEGES; mysql> quit
After this stay in the Terminal/Shell and run this command:
sudo echo transaction-isolation=READ-COMMITTED >>/etc/mysql/mysql.conf.d/mysqld.cnf
This step is required. If not done the installation will fail later on.
3. Download Confluence
To download Confluence run in a Terminal/Shell:
wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-7.20.1-x64.bin -O /tmp/atlassian-confluence-7.20.1-x64.bin
Now is is necessary to set the right permissions to the downloaded file to make it executable:
chmod a+x /tmp/atlassian-confluence-7.20.1-x64.bin
4. Start the Installation
To start the installation procedure run in a Terminal/Shell:
Fontconfig and Jave Runtime Environment (JRE) are configured. The next steps are summarized on a screenshot. The configurations are red marked:
We did an “Express Install” and Confluence is now accessible by an internet browser and the address “http://localhost:8090”. The installation continues now by browser.
I recommend for testing purposes to choose:
A link is provided to Atlassian.com to register for a trail license. This can be done easily with a Google Account. After setting the trail license choose:
Non-clustered (single node)
Next it’s about the database settings. Use “MySQL”, open a Terminal/Shell and do the following:
wget https://cdn.mysql.com/archives/mysql-connector-java-5.1/mysql-connector-java-5.1.49.zip -O /tmp/mysql-connector-java-5.1.49.zip unzip /tmp/mysql-connector-java-5.1.49.zip -d /tmp sudo cp /tmp/mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar /opt/atlassian/confluence/confluence/WEB-INF/lib sudo service confluence restart
Refresh the browser and continue with “MySQL” and insert the following data into the appropriate fields:
Setup type: "simple" Hostname: “localhost” Port: "3306" User: “confluence” Database name: “confluence” Password: “secpasswd” Click on “Next”
On the “Load Content” Page, let’s set up an “Example Site”.
On the “Configure User Management” page I selected “Manage users and groups within Confluence. I set on the “Configure System Administrator Account” my username, email and password. Then I got “Setup Successful” and clicked to “Start”.
The setup can be very tricky but finally we got a good first impression and a solid test environment. Maybe several health check messages are popping up and some optimizations need to be done. Since Confluence is not completely free, MediaWiki or XWiki could be an alternative. As I wrote above a free license with several restrictions is offered by Atlassian.