CentOS is a Industry Standard Linux Distribution which is a derivative of RedHat Enterprise Linux. You may start using the OS as soon as you install it, but to make the most out of your system you need to perform a few updates, install a few packages, configure certain services and application.
This article aims at “30 Things to Do After Installing RHEL/CentOS 7”. The post is written keeping in mind you have installed RHEL/CentOS Minimal Install which is preferred in Enterprise and production environment, if not you can follow below guide that will show you minimal installations of both.
The following are the list of important things, which we’ve covered in this guide based on industry standard requirements. We hoping that, these things will be very helpful in setting up your server.
1. Register and Enable Red Hat Subscription
After minimal RHEL 7 installation, it’s time to register and enable your system to Red Hat Subscription repositories and perform a full system update. This is valid only if you have a valid RedHat Subscription. You need to register your in order to enable official RedHat System repositories and update the OS from time-to-time.
We have already covered a detailed instructions on how to register and active RedHat subscription at the below guide.
Note: This step is only for RedHat Enterprise Linux having a valid subscription. If you are running a CentOS server immediately move to further steps.
2. Configure Network with Static IP Address
The first thing you need to do is to configure Static IP address, Route and DNS to your CentOS Server. We will be using ip command the replacement of ifconfig command. However, ifconfig command is still available for most of the Linux distributions and can be installed from default repository.
# yum install net-tools [Provides ifconfig utility]
But as I said we will be using ip command to configure static IP address. So, make sure you first check the current IP address.
# ip addr show
Now open and edit file /etc/sysconfig/network-scripts/ifcfg-enp0s3 using your choice of editor. Here, I’m using Vi editor and make sure you must be root user to make changes…
# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Now we will be editing four fields in the file. Note the below four fields and leave everything else untouched. Also leave double quotes as it is and enter your data in between.
IPADDR = “[Enter your static IP here]” GATEWAY = “[Enter your Default Gateway]” DNS1 = “[Your Domain Name System 1]” DNS2 = “[Your Domain Name System 2]”
After making the changes ‘ifcfg-enp0s3‘, looks something like the image below. Notice your IP, GATEWAY and DNS will vary, please confirm it with your ISP. Save and Exit.

Restart service network and check the IP is correct or not, that was assigned. If everything is ok, Ping to see network status…
# service network restart

After restarting network, make sure to check the IP address and network status…
# ip addr show # ping -c4 google.com


3. Set Hostname of Server
The next thing to do is to change the HOSTNAME of the CentOS sever. Check the currently assigned HOSTNAME.
# echo $HOSTNAME

To set new HOSTNAME we need to edit ‘/etc/hostsname‘ and replace old hostname with the desired one.
# vi /etc/hostname

After setting hostname, make sure to confirm hostname by logout and login again. After login check new hostname.
$ echo $HOSTNAME

Alternatively you may use command ‘hostname‘ command to view your current hotsname.
$ hostname
4. Update or Upgrade CentOS Minimal Install
This will not install any new packages other than updating and installing the latest version of installed packages and security updates. Moreover Update and Upgrade are pretty same except the fact that Upgrade = Update + enable obsoletes processing during updates.
# yum update && yum upgrade

Important: You can also run the below command which will not prompt for the packages update and you do not need to type ‘y‘ for accepting the changes.
However it is always a good idea to review the changes which is going to take place on the sever specially in production. Hence using the below command may automate the update and upgrade for you but it is not recommended.
# yum -y update && yum -y upgrade
5. Install Command Line Web Browser
In most cases, specially in production environment, we usually install CentOS as command line with no GUI, in this situation we must have a commandline browsing tool to check websites via terminal. For this, we going to install a most famous tool called ‘links‘.
# yum install links

For usage and examples to browse web sites u links tool, read our article Command Line Web Browsing with Links Tool
6. Install Apache HTTP Server
No matter for what purpose you will be using the server, in most of the cases you need a HTTP server to run websites, multimedia, client side script and many other things.
# yum install httpd

If you would like to change default port (80) of Apache HTTP Server to any other port. You need to edit the configuration file ‘/etc/httpd/conf/httpd.conf‘ and search for the line that starts typically like:
LISTEN 80
Change port number ‘80‘ to any other port (say 3221), save and exit.

Add the port you just opened for Apache through the firewall and then reload the firewall.
Allow service http through firewall (Permanent).
# firewall-cmd --add-service=http
Allow port 3221 through firewall (Permanent).
# firewall-cmd --permanent --add-port=3221/tcp
Reload firewall.
# firewall-cmd --reload
After making all above things, now it’s time to restart Apache HTTP server, so that the new port number is taken into effect.
# systemctl restart httpd.service
Now add the Apache service to system-wide to start automatically when system boots.
# systemctl start httpd.service # systemctl enable httpd.service
Now verify the Apache HTTP Server by using links command line tool as shown in the below screen.
# links 127.0.0.1

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
The articel does only contain nonsense. Why somebody should protect grub when it can be by passed so easy?
A speedtest cronjob? wtf?
the guy that wrote to this… went to some trouble to help. Dont be a douche and leave thoughtless comments.
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);
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.
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.
Thanks
@Zack,
Enable JavaScript at browser level, Firefox or chrome.
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‘.
why install wget? isn’t curl available by default?
Hi,
The following
# firewall-cmd -permanent -add-port=3221/tcp
should be
# firewall-cmd –permanent –add-port=3221/tcp
4.unable to chown
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:
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
try su root
Tape
#History
And update ur post please