30 Things to Do After Minimal RHEL/CentOS 7 Installation

25. Install Linux Malware Detect (LMD)

Linux Malware Detect (LMD) is a open source Linux malware scanner released under the GNU GPLv2 license, that is
specially designed for threats faced in hosting environments. For complete installation, configuration and usage of LMD can be found at:

  1. Install and Use (LMD) with ClamAV as Antivirus Engine

26. Server Bandwidth Testing with Speedtest-cli

speedtest-cli is a tool written in python to test internet bandwidth including download and upload speed. For complete installation and usage of speedtest-cli tool, read our article at Check Linux Server Bandwidth Speed from Command Line

27. Configure Cron Jobs

This is one of the most widely used software utility. It function as job scheduler i.e., schedule a job now that will execute in future itself. It is useful in logging and maintaining records unattained as well as several other routine work like regular backup. All the schedule is written in /etc/crontab file.

The crontab file contains 6 fields as follows:

Minutes	         Hour		Day of Month		Month of Year		Week Day		Command
(0-59)           (0-23)		  (1-31)                (1/jan-12/dec)       (0-6/sun-sat)          Command/script
Crontab Fields
Crontab Fields

To run a cron job (say run /home/$USER/script.sh) everyday at 04:30 am.

Minutes 	  Hour   	Day of Month        month of year 	Week Day         command
30                4  		      *		         *		   *            speedtest-cli

Add the following entry to the crontab file ‘/etc/crontab/‘.

30  4  *  *  *  /home/$user/script.sh

After adding the above line to crontab, it will run automatically at 04:30 am everyday and the output depends upon what is there in script file. Moreover script can be replaced by commands. For more examples of cron jobs, read 11 Cron Jobs Examples in Linux

28. Install Owncloud

Owncloud is a HTTP based data synchronization, file sharing and remote file storage application. For more detail on installing own cloud, you may like to see this article : Create Personal/Private Cloud Storage in Linux

29. Enable Virtualization with Virtualbox

Virtualization is a process of creating virtual OS, Hardware and Network, is one of the most sought technology of these days. We will be discussing on how to install and configure virtualization in detail.

Our CentOS Minimal server is a headless server. Lets prepare it to host virtual machines that is accessible over HTTP by installing following packages.

# yum groupinstall 'Development Tools' SDL kernel-devel kernel-headers dkms
Install Development Tools
Install Development Tools

Change working directory to ‘/etc/yum.repos.d/‘ and download Virtualbox repository.

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc

Install the key just downloaded.

# rpm --import oracle_vbox.asc

Update and Install Virtualbox.

# yum update && yum install virtualbox-4.3

Next, download and install Virtualbox extension pack.

# wget http://download.virtualbox.org/virtualbox/4.3.12/Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack
Install Virtualbox Extension Pack
Install Virtualbox Extension Pack
Installing Virtualbox Extension Pack
Installing Virtualbox Extension Pack

Create a user ‘vbox‘ to manage virtualbox and add it to group vboxusers.

# adduser vbox
# passwd vobx
# usermod -G vboxusers vbox

Install HTTPD server.

# yum install httpd

Install PHP (with soap extension).

# yum install php php-devel php-common php-soap php-gd

Download PHP virtualBox.

# wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-4.3-1.zip

Extract the zip and copy the extracted folder to HTTP working directory.

# unzip phpvirtualbox-4.*.zip
# cp phpvirtualbox-4.3-1 -R /var/www/html

Next, rename file /var/www/html/phpvirtualbox/config.php-example to var/www/html/phpvirtualbox/config.php.

# mv config.php.example config.php

Open the configuration file to edit and add ‘username‘ and ‘password‘ we just created in the above step.

# vi config.php

Finally, restart VirtualBox and HTTP server.

# service vbox-service restart
# service httpd restart

Now forward the port and access it on a headed server.
PHP Virtualbox Login
PHP Virtualbox Login
PHP Virtualbox Dashboard
PHP Virtualbox Dashboard
A Passionate GNU/Linux Enthusiast and Software Developer with over a decade in the field of Linux and Open Source technologies.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

76 thoughts on “30 Things to Do After Minimal RHEL/CentOS 7 Installation”

  1. I followed this guide. Its really helpful. As you said quite extensively about installing apache, databases and others.

    Can you also provide a guide regarding how to upload a site in CentOS after doing all this?

  2. There is a mistake in the SSH section. The config file is NOT ‘ssh-config’. That is meant for the SSH client not the server. The SSH server settings are in ‘sshd-config’. As a noob, it took me a while to figure out why my changes had no effect on the server.

    Otherwise, this has been a great resource for someone like me learning Linux for the first time. Thanks!

  3. One of the commands didn’t work for me, the one related to opening up the httpd port through firewalld. I got a syntax error

    I got a successful execution with the following command, because I did not choose to assign http a funky port, just the standard one (80)

    # firewall-cmd --permanent --zone=public --add-service=http 

    If you want to use a custom port for httpd, use this command, which specifies the port/protocol:

    # firewall-cmd --permanent --zone=public --add-port=2888/tcp 


  4. Thank you for getting this information together, it is very helpful for people not familiar to minimal dekstop-less installations.

  5. Hey, thanks for this list. It was very valuable for me to set up a new CentOS 7 configuration. So far I had only to deal with SLES. Thank you

  6. The articel does only contain nonsense. Why somebody should protect grub when it can be by passed so easy?
    A speedtest cronjob? wtf?

  7. When i change the Listen directive and restart the httpd following error occurs.

    Job for httpd.service failed. See ‘systemctl status httpd.service’ and ‘journalctl -xn’ for details.

    This happen when i tried to change Listen to 3221, 9090 or :9090 .. anything.
    While it works fine for port 80 and 8080

    • Hi Atul. This could be caused by SELinux. Check if it is enabled by running “sestatus“. If it says enabled, you have to ways:

      1. Disable SELinux by running ‘setenforce 0‘;
      2. Add SE rules (using ‘semanage‘ command). In this case you will have SELinux enabled (which is recommended);

  8. Hey, thank you for this list. It has been invaluable for me while setting up a new CentOS 7 configuration. I’m technical but this is easily understandable and readable for anyone.

  9. Hi Guys,

    Cant open my website with elinks. It is saying that I need to enable my javascript. How to do that on centos7 minimal.

  10. Use Secure Protocol over the default SSH Protocol and change port number also for extra Security. Edit the SSH configuration file ‘/etc/ssh/ssh_config‘.

  11. Hi,
    The following
    # firewall-cmd -permanent -add-port=3221/tcp
    should be
    # firewall-cmd –permanent –add-port=3221/tcp

  12. Hi, is anybody help me I am new to CentOS 7, regarding I am unable to enter into root mode.

    After reading point #22, I tried commands, but now i am unable to get into:

    1.sudo mode  
    2.unable to edit visudo
    3.unable to chmod 
    4.unable to chown
    5.unable to get into su-
    6.unable to get into su-

    why this happened it always says even i tried to attempt…

    sudo: >>> /etc/sudoers: syntax error near line 45 <<>> /etc/sudoers: syntax error near line 101 <<<
    sudo: parse error in /etc/sudoers near line 45

    sudo: no valid sudoers sources found, quitting
    sudo: unable to initialize policy plugin

    please help me i am new to cent os 7

    • @Zack,

      Yes, you right, port should be opened to access from the public network over IP Address or Domain, for example:

  13. Hi, Nice post

    would you happen to have solution to install nginx in front of Apache to avoid opening httpd services by apache every time, and saving system resources.


    • @Zack,

      You mean both nginx and apache should run on same server without any conflict? if yes, you should run nginx or apache on different ports..

    • @Smallufo,

      Both links and elinks are commandline based web browsers and both are available to install from default repositories, no need to replace…

    • @Vaishnavi,

      Thanks for finding this article useful, could you share the screenshot of the same? it will help us to understand more better about your problem..

  14. thanks million for your good post,
    i find 2 small mistakes in spelling of commands that maybe because of them some users face problem in copy and paste the commands from the post.
    1. “permanent” spell in below section is not correct:
    Add service tomcat and default port (8080) through firewall and reload settings.
    # firewall-cmd —zone=public —add-port=8080/tcp —permannet

    2.reload in below command has just one dash(-):
    To add a service say http, temporarily and reload firewalld.
    # firewall-cmd –reload

  15. I’m not sure who wrote this but it seems clear that he/she never attempted to follow her own instructions.
    The first step in setting up the network is to invoke

    yum install net-tools

    yum install requires a functioning network with accessible repositories if using the minimal CD.

    These instructions simply won’t ever work with a minimal installation CD.

  16. For people unfamiliar with CLI text editors (vi, vim, nano), etc.
    You can configure static IP and hostname in a GUI environment, just type:

    # nmtui

    Once there, you can edit what you need.

    If ‘nmtui’ command not found, install it:

    yum install NetworkManager-tui

    My 2 cents…

    • @Chris,

      Thanks for the tip about configuring and setting hostname and IP address using GUI way, hope it will help Desktop Linux users, from me 10 cents to you…:) keep it up..

  17. Thank You for collecting all that useful and not so useful in one article. :)
    Hmm, interesting, how many copypasters have used your sample passwords unchanged? :)
    # nmap 127.0.01
    # visudo

  18. Thanks for the write up, I’m very new to this and it helps a bit. However, when I got to the firewall-cmd commands in step 6 I ran into some problems. Not sure if I did this correct or not but I had to run “yum install firewalld” then start it with “systemctl start firewalld”. Then I had to add a “-” before the arguments (replaced “firewall-cmd -add-service=http” with “firewall-cmd –add-service=http”.

  19. as an experienced computer hobbyist, I was able to use this howto with minimal effort, only found some typo’s and all went well

    thank you for providing this information in such a well-written format

  20. Hello

    my VPS only provide a centos standard version. How to change it to minimal version. What services will be remove?

    thank you before…

  21. Hi,

    Your website was very helpful, thank you .

    In the Mariadb install section, think to change the following line :

    # firewall-cmd –add-service=mysql


    # firewall-cmd –-add-service=mysql


      • It mustn’t be the best idea to add MySQL as public available service!

        For my point of view, the title of this article should be different, Noobies which install all this on their systems might end up with things, not ideally for everybody. Your site has built a huge reputation over time, and you just cannot recommend installing things like java or a compiler on a system, where it might not be explicitly needed!
        BUT: Positive to note: You explained mysql_secure_installation, firewalld, and selinux. There are still too may sites out there who forget, or disable this.

  22. You have an mistake at Step 7:
    echo -e “” > /var/ww/html/phpinfo.php
    has to be
    echo -e “” > /var/www/html/phpinfo.php

  23. lot of spelling errors in this article for the commands. nmap for example, “# namp 127.0.01” should be “# nmap”. the firewall command right after that part, “# firewall-cmd –list-ports” should be “# firewall-cmd –list-ports” (2 – , not 1).

    various other mistakes. the screenshots are good, just not the commands in code blocks.


Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.