How To Configuration Iptables Firewall on CentOS

Configuration Iptables Firewall on CentOS

Iptables is a user space application program that allows a system administrator to configure the tables provided by the Linux kernel firewall (implemented as different Netfilter modules) and the chains and rules it stores. Different kernel modules and programs are currently used for different protocols; iptables applies to IPv4, ip6tables to IPv6, arptables to ARP, and ebtables for Ethernet frames. (Read more on: wikipedia)

Configuration Iptables Firewall on CentOS

Setting up iptables

You can use the following procedure to verify that iptables has been installed and view the status of iptables. Open terminal and type the following command:

# iptables -V
# yum info iptables

iptables-centos

If the above message does not appear, you can type the following command to install iptables:

 # yum -y install iptables

Understanding Firewall, At present here are total four chains:

  • INPUT : The default chain is used for packets addressed to the system.
  • OUTPUT : The default chain generating from system.
  • FORWARD : The default chains is used when packets send through another interface.
  • RH-Firewall-1-INPUT : The user-defined custom chain.

Target Meanings

  • The target ACCEPT means allow packet.
  • The target REJECT means to drop the packet and send an error message to remote host.
  • The target DROP means drop the packet and do not send an error message to remote host or sending host.

The default iptables configuration on CentOS does not allow access to the HTTP (TCP PORT # 80) and HTTPS (TCP PORT # 443) ports used by Nginx web server. You can do step by step to configure:

Step 1: Flush all iptables rules

# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X

Step 2: Set default rules

# iptables -P INPUT DROP
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT

Step 3: Allow access to HTTP (port 80) and HTTPS (port 443)

# iptables -A INPUT -i lo -j ACCEPT 
# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT 
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
# iptables -A INPUT -p icmp -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

 Turn on and save iptables

Type the following two commands to turn on firewall:

# chkconfig iptables on
# service iptables save

How To Install PHP 5.5 on CentOS

Install PHP 5.5 on CentOS

PHP (PHP: Hypertext Preprocessor) is a server-side scripting language designed for web development but also used as a general-purpose programming language. PHP code is interpreted by a web server with a PHP processor module, which generates the resulting web page: PHP commands can be embedded directly into an HTML source document rather than calling an external file to process data.

This tutorial we will show you how to install PHP 5.5 on CentOS.

Install PHP 5.5 on CentOS

To install, first you must add the Webtatic yum repository information corresponding to your CentOS/RHEL version to yum:

For CentOS 6.x use:

 #rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

For CentOS 5.x use:

 #rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm

Now you can install PHP 5.5:

 #yum install php55w --enablerepo=webtatic-archive[/#yum install php55w --enablerepo=webtatic-archive

Restart apache after PHP installation:

#service httpd restart
#php -v

PHP should now be installed. You can check by creating a file called info.php in /var/www/html/ with the following content:

<?php
 phpinfo();
 ?>

Congratulation’s! You have successfully installed PHP. Thanks for using this tutorial for installing PHP 5.5 in CentOS system. For additional help or useful information, we recommend you to check the official PHP web site.

You Might Also Like: How To Install and Enable Alternative PHP Cache (APC) on CentOS

How To Install MongoDB on CentOS 6

Install MongoDB on CentOS 6

MongoDB is a NoSQL document-oriented database. Refers to a database with a data model other than the tabular format used in relational databases such as MySQL, PostgreSQL, and Microsoft SQL. MongoDB features include: full index support, replication, high availability, and auto-sharding. It is a cross-platform and it makes the process of data integration faster and much easier. Since it is free and open-source, MongoDB is used by number of websites and organizations.

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple. In this tutorial we are going to learn the step by step installation MongoDB on CentOS 6 machine.

Step 1. First, add the official MongoDB repository to your system.

Create a /etc/yum.repos.d/mongodb.repo file.

#nano /etc/yum.repos.d/mongodb.repo

## CentOS 64-bit ##

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

## CentOS 32-bit ##

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
gpgcheck=0
enabled=1

Step 2. Install mongoDB packages.

 yum install mongo-10gen mongo-10gen-server

MongoDB daemon should be enabled to start on boot:

/etc/init.d/mongod start
chkconfig mongod on

The main configuration file is located in the /etc directory on your Linux VPS as mongod.conf. To edit it, you can use your favorite text editor.

 nano /etc/mongod.confp.

Step 3. Verifying mongoDB database.

Unlike MySQL, there aren’t a lot of graphical UIs and/or desktop clients available for MongoDB.  There are of course language bindings, to allow us to use PHP and other languages to access the database, but a lot of the fundamental work is done using the command-line client.

# mongo

MongoDB shell version: 2.6.7
connecting to: test
Welcome to the MongoDB shell.
>

A good way to start using MongoDB on your CentOS 6 is to read the MongoDB manual on the official web site.

You Might Also Like: How To Install MongoDB on Ubuntu 14.04

How To Install OwnCloud 8 on CentOS 6

Install OwnCloud 8 on CentOS 6

OwnCloud is a free and open-source software which enables you to create a private “file-hosting” cloud. OwnCloud is similar to DropBox service with the diference of being free to download and install on your private server. Owncloud made by PHP and backend database MySQL (MariaDB), SQLLite or PostgreSQL. OwnCloud also enables you to easily view and sync address book, calendar events, tasks and bookmarks. You can access it via the good looking and easy to use web interface or install OwnCloud client on your Desktop or Laptop machine (supports Linux, Windows and Mac OSX).

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple. I will show you through the step by step installation OwnCloud 8 on CentOS 6.

Step 1. First, we need to install the latest EPEL and Remi repository RPM suited to your architecture.

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

Step 2. Install the necessary PHP components.

yum update
yum install httpd php php-mysql sqlite php-dom php-mbstring php-gd php-pdo php-json php-xml php-zip php-gd curl php-curl -y


Step 3.
Install MySQL.

 yum install mysql-server -y

Start MySQL:

 service mysql start

By default, MySQL is not hardened. You can secure MySQL using the mysql_secure_installation script. you should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MySQL.

 mysql_secure_installation

Step 4. Create a new MySQL database using the following commands.

#mysql -uroot -p

CREATE DATABASE owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_user'@'localhost' IDENTIFIED BY 'owncloud_user_pasword';
FLUSH PRIVILEGES;

Step 5. Install OwnCloud and dependencies.

wget https://download.owncloud.org/community/owncloud-8.0.0.tar.bz2
tar -xjf owncloud-8.0.0.tar.bz2
mv owncloud /var/www/html/owncloud/

Set the directory permissions:

 chown -R apache.apache /var/www/html/owncloud/

Step 5. Configuring Apache for OwnCloud.

While configuring Apache web server, it is recommended that you to enable .htaccess to get a enhanced security features, by default .htaccess is disabled in Apache server. To enable it, open your virtual host file and make AllowOverride is set to All.For example, here i used external config file instead of modifying main file.

#nano /etc/httpd/conf.d/owncloud.conf

<IfModule mod_alias.c>
Alias /owncloud /var/www/html/owncloud
</IfModule>
<Directory “/var/www/html/owncloud”>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>

Remember to restart all services related to Apache server.

 service httpd restart

Step 6. Access OwnCloud application.

Navigate to http://your-domain.com/ and follow the easy instructions. Enter username and password for the administrator user account, click on the ‘Advanced options’ hyperlink and enter the data directory (or leave the default setting), then enter database username, database password, database name, host (localhost) and click ‘Finish setup’.

You Might Also Like: How To Install OwnCloud 8 on Ubuntu 14.04

How To Install and Enable Remi Repository on CentOS

Install and Enable Remi Repository on CentOS

The Remi repository provides newer version of popular opensource software for CentOS and Red Hat Enterprise Linux. More than 5000 individual packages are included in the repository. It’s a great repository to add to your system if you’re running CentOS or Red Hat servers.

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple. I will show you through the step by step installation and enable Remi repository on CentOS 5, CentOS 6 and CentOS 7.

In this tutorial we will show you how to install and configuration of remi repository on your CentOS server.

Enable Remi Repository on CentOS 5, CentOS 6 and CentOS 7

On CentOS The Remi repository depends on the Epel repository which must be installed along with it, for it to work. If you already have epel repository setup then execute the following command:

  • CentOS 7
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
  • CentOS 6
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm
  • CentOS 5
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5.rpm

If you want to permanently enable the Remi repository, you need to edit the yum configuration file for Remi. Open the repository configuration file by using a text editor of your choice:

 nano /etc/yum.repos.d/remi.repo

The very first section that starts with [remi] is the main repository. Change the value of enabled from 0 to 1 to enable it.

[remi]
name=Les RPM de remi pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

Now list out the installed repositories with command:

 yum repolist

Now, you’re ready to install packages. You can install packages using command:

yum update
yum install <package-name>

Congratulation’s! You have successfully installed remi repository. Thanks for using this tutorial for installing remi repository on CentOS system. For additional help or useful information, we recommend you to check the official remi repository web site.

How To Install MariaDB On CentOS 6

Install MariaDB On CentOS 6

MariaDB is a drop-in replacement for MySQL. It is easy to install, offers many speed and performance improvements, and is easy to integrate into most MySQL deployments. MariaDB is widely used and several Linux distributions and large companies have already switched from MySQL to MariaDB.

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple. I will show you through the step by step installation MariaDB on CentOS 6.

In this tutorial we will show you how to install and configuration of MariaDB on your CentOS 6 server.

Install MariaDB on CentOS 6

Step 1. First, you need to enable repository on your system.

Navigate to /etc/yum.repos.d/ on your CentOS box and create a new file called MariaDB repo.

## RHEL/CentOS 6 64-Bit ##

[mariadb]
name = MariaDB 
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

## RHEL/CentOS 6 32-Bit ##

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Step 2. Install MariaDB.

Installing MariaDB using yum:

yum update
yum install -y MariaDB-server MariaDB-client MariaDB-devel

After the installation is completed, start MariaDB:

 service mysql start

Set MariaDB to start on boot:

 chkconfig mysql on


Step 3.
Configuring MariaDB.

The configuration files and binaries for MariaDB are mostly the same as MySQL. For example, both use a configuration file called my.cnf.

 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

Step 4. Secure MariaDB after installation to.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. you should read and below each steps carefully which will set root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB.

# mysql_secure_installation 
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
[root@wpcademy]#

Step 5. Login into MariaDB.

Login MariaDB with root credential which was set earlier.

 mysql  -u root -p

Congratulation’s! You have successfully installed MariaDB. Thanks for using this tutorial for installing MariaDB in CentOS 6 system. For additional help or useful information, we recommend you to check the official MariaDB web site.

You Might Also Like: How To Install MariaDB on Ubuntu 14.04

How To Install Fping on CentOS 6

Install Fping on CentOS 6

Fping is a program like ping which uses the Internet Control Message Protocol ( ICMP ) echo request to determine if a target host is responding. fping differs from ping in that you can specify any number of targets on the command line, or specify a file containing the lists of targets to ping.

This article assumes you have at least basic knowledge of linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple. I will show you through the step by step installation Fping on CentOS 6.

In this tutorial we will show you how to install and configuration of Fping on your CentOS 6 server.

Install Fping on CentOS 6

Step 1. First, you need to enable repository on your system.

## RHEL/CentOS 6 64-Bit ##
# wget http://pkgs.repoforge.org/fping/fping-3.9-1.el6.rf.x86_64.rpm
# rpm -ivh fping-3.9-1.el6.rf.x86_64.rpm

## RHEL/CentOS 6 32-Bit ##
# wget http://pkgs.repoforge.org/fping/fping-3.9-1.el6.rf.i686.rpm
# rpm -ivh fping-3.9-1.el6.rf.i686.rpm

Step 2. Install Fping.

 yum install fping

Installing Fping from source

Step 1. First, download fping source package (latest version is 3.10) and install.

wget http://fping.org/dist/fping-3.10.tar.gz
tar -xvf fping-3.10.tar.gz
cd fping-3.10
./configure
make
make install

Example usage fping program:

#fping 8.8.8.8 8.8.4.4 74.125.200.113

8.8.4.4 is alive
8.8.8.8 is alive
74.125.200.113 is alive

Congratulation’s! You have successfully installed PunBB. Thanks for using this tutorial for installing Fping in CentOS 6 system. Those who wants to get more information with options about Fping command please visit Fping official website.