Installation of CentOS 7

This guide covers installing CentOS 7 as a server on a typical PC. It was written using CentOS 7.2, but should be applicable to any CentOS 7.X.

  1. Download the CentOS installation media from www.centos.org and burn it to a DVD.
  2. Install CentOS
    1. Boot the computer from the DVD.
    2. At the welcome screen, choose Install CentOS 7.
    3. Choose the appropriate language and keyboard layout.
    4. Configure the network as necessary and set a hostname.
    5. Installation destination:
      1. Select all disks to be modified and check "I will configure partitioning"
      2. If you need to repartition, wipe out the current partitions and add new ones. If not, simply reformat existing partitions and assign mountpoints.
    6. Set the location appropriately, and enable Network Time. If you use a specific time server, you may provide it now.
    7. In Software Selection, choose Server with GUI, with addons: E-mail Server, Development Tools.
    8. Start the installation. As it works, set a root password and create a user.
  3. If this installation is to be text-based implementation, you may set it to boot to the command line
  4. $ sudo systemctl set-default multi-user.target
    $ sudo systemctl isolate multi-user.target
  5. Update CentOS
  6. # yum clean all
    # yum -y update
  7. Configure firewalld
    Provided here are a few commands to set up a basic firewall that allows ssh and http at your local institution, drops traffic from the rest of the world, and allows all traffic on the internal network:
    # firewall-cmd --permanent --zone=internal --add-source=[IP/MASK OF YOUR INSTITUTION]
    # firewall-cmd --permanent --zone=internal --remove-service=dhcpv6-client
    # firewall-cmd --permanent --zone=internal --remove-service=ipp-client
    # firewall-cmd --permanent --zone=internal --add-service=ssh
    # firewall-cmd --permanent --zone=internal --add-service=http
    # firewall-cmd --permanent --zone=public --remove-service=ssh
    # firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
    # firewall-cmd --permanent --zone=public --set-target=DROP
    # firewall-cmd --permanent --zone=public --change-interface=[EXTERNAL INTERFACE]
    # echo "ZONE=public" >> /etc/sysconfig/network-scripts/ifcfg-[EXTERNAL INTERFACE]
    # nmcli con reload
    # firewall-cmd --reload
    where [IP/MASK OF YOUR INSTITUTION] is the network address and netmask for your school, business, etc. formatted as 123.45.67.0/24, and [EXTERNAL INTERFACE] is the interface connected to the outside world, such as eno1.
    For a more detailed explanation, see our article on Understanding Firewalld.
  8. Since we have a good firewall in place, disable selinux.
  9. # setenforce 0
    # cp -p /etc/selinux/config /etc/selinux/config.000
    # vi /etc/selinux/config
    Change the line
          SELINUX=enforcing
    to
          SELINUX=permissive
  10. Install logwatch to monitor your system log files
  11. # yum -y install logwatch
    # cd /usr/share/logwatch/default.conf/
    # cp -p logwatch.conf logwatch.conf.000
    # vi logwatch.conf
    Change the line
          Output = stdout
    to
          Output = mail
    # vi /root/.forward
    Add your email address to this new file.
  12. Optionally, install samba if you want to support Microsoft networking
  13. # yum -y install samba
    # cd /etc/samba/
    # mv smb.conf smb.conf.000
    # vi smb.conf
    add the following:
          [global]
                workgroup = [WORKGROUP]
                server string = Samba Server Version %v
                unix password sync = yes
                pam password change = yes
                interfaces = lo [INTERFACES]
                security = user
                passdb backend = tdbsam
                load printers = no
          [homes]
                comment = Home Directories
                browseable = no
                writable = yes
                csc policy = disable
                inherit permissions = yes
    where [WORKGROUP] is the workgroup of the windows computers that will connect, and [INTERFACES] includes the interface they will connect over.
  14. Optionally, install torque if you want to support batch queuing instead of using WebMO's internal queue. To use torque on a single machine, follow the Installing Torque 6 on Centos OS 7 instructions, but install mom (without client) to the server. Continue to use the fully qualified domain name as the server name (localhost does not work).
  15. Configure httpd for WebMO
    1. Install httpd, perl, and perl-CGI
    2. # yum -y install httpd perl perl-CGI
    3. Enable and start httpd
    4. # systemctl enable httpd.service
      # systemctl start httpd.service
    5. Back up and edit /etc/httpd/conf.d/userdir.conf
    6. # cd /etc/httpd/conf.d/
      # cp -p userdir.conf userdir.conf.000
      # vi userdir.conf
      Comment out
            UserDir disabled
      Uncomment
            UserDir public_html
      Append to the end:
            <Directory /home/*/public_html/cgi-bin>
                  Options +ExecCGI
                  AddHandler cgi-script .cgi
            </Directory>
    7. Restart httpd
    8. # systemctl restart httpd.service
  16. Install WebMO
  17. Install computational chemistry engines