Configure WIFI Without GUI in Linux

1) Find out the wireless device name.

#iw dev

2) check wireless device status up or down

#ip link show wlan0

3) scan wireless networks

#iw wlan0 scan

Now to configure and connect wireless without GUI we will require package wpa_supplicant-0.7.3-9.el6.i686


4) Create a configuration file

#wpa_passphrase >> /etc/wpa_supplicant/wpa_supplicant.conf

5) To start the device through command line

#wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

where -B means run wpa_supplicant in the background.
-D specifies the wireless driver. wext is the generic driver.
-c specifies the path for the configuration file.

put above command in /etc/rc.local so that after booting it will automatically connect to wireless device.

Enabling usb wifi on CentOS 7

Enabling usb wifi  on Centos is really a difficult job. most of the times it requires drivers compilation and adding /removing modules which may be time consuming.

Its better to upgrade kernel to the latest release

To upgrade the kernel without kernel compilation follow below steps

Step 1: Install elrepo to your CentOS 7 system

# rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -ivh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

# yum –enablerepo=elrepo-kernel list available |grep kernel

# yum –enablerepo=elrepo-kernel install kernel-ml*  (select kernel-ml as they are the stable release kernels)

# grub2-set-default “CentOS Linux (4.18.1-1.el7.elrepo.x86_64) 7 (Core)”

reboot your system and configure network to the wireless usb card.

 

Country settings in AWStats

 

By implementing this setting in AWStats you can track the Geo location of visitor of your website.

Follow the procedure to implement the settings
# mkdir /usr/local/share/GeoIP
# cd /tmp wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# gunzip GeoIP.dat.gz mv GeoIP.dat /usr/share/GeoIP
# wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

or or or

# yum install mod_geoip
# yum install geoipdate
# yum install geoip-devel

Now Edit the file configuration file for your website in /etc/awstats  and  search below lines

#LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /pathto/GeoIPCity.dat"
#LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"

and change to

GeoIPCity.dat LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/share/GeoIP/"

It may give you error like below



















To Fix this error run below commands
# yum install perl-CPAN
# cpan YAML
# cpan Geo::IP::PurePerl Geo::IP
# ldconfig -v

 

How to setup AWStats for apache log analyzer (CentOS 6.8)

 awstats
 
1) Installation
 
 yum install epel-release
 yum install httpd
 chkconfig httpd on
 service httpd start
 yum install awstats

2) Configuration

 a) Changes in log format in httpd.conf
 
 check the below entry for log format. if it does not exist then add it.    
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    

 b) changes in virtualhosts 

 change your log configuration like below
 CustomLog logs/yourdomain.com-access_log combined
 
 c) configuring awstats.conf for apache 
 
 vim /etc/httpd/conf.d/awstats.conf

  add below entries in <Directory "/usr/share/awstats/wwwroot">
  </Directory> container

  AuthUserFile "/path-to-file/.htpasswd"
  AuthName "Restriceted Access"
  AuthType Basic
  Require user "htuser"


 Then create password file by below command
 htpasswd -c /path-to-file/.htpasswd htuser
 chmod 404 /path-to-file/.htpasswd htuser

d) creating configuation file for awstat

 cp /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/yourdomain.com.conf
 
 then edit the file /etc/awstats/yourdomain.com.conf

# vim /etc/awstats/yourdomain.com.conf and change the below entries according to domain

LogFile="/var/log/httpd/yourdomain.com-access_log"
SiteDomain="yourdomain.com"
HostAliases="yourdomain.com www.yourdomain.com"
( for multiple domains its better to create seperate files for each domain)

e) setting permissions 


now change permissions for the awstat folder

find  /usr/share/awstats -type d -exec chmod 701 '{}' \;
find /usr/share/awstats  -type f  -exec chmod 404 '{}' \;

chmod +x  /usr/share/awstats/wwwroot/cgi-bin/awstats.pl
chmod 400 /etc/awstats/*.conf


Once you make all the changes make sure to restart apache to get configuration changes into effect

/etc/init.d/httpd stop
/etc/init.d/httpd start

or /etc/init.d/httpd restart

make necessary changes according to your domain in below url  to check the statistics
http://www.yourdomain.com/awstats/awstats.pl?config=yourdomain.com

YUM repository configuration in RHEL 7

Adding local repository ( Using DVD )

1) mkdir /media/cdrom

2 ) mount /dev/cdrom /media/cdrom

3 ) create a repofile by following command

vi /etc/yum.repos.d/rhel.repo

name=Local Repository
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Adding external repositories

1 ) cd /tmp

2) wget https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

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

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
3) install the downloaded rpms

4)  sudo sed -i ‘s/enabled=0/enabled=1/g’ /etc/yum.repos.d/remi.repo

5) (optional )vi /etc/yum.repos.d/remi.repo

disable all test repositories  by setting value enabled=0

type command yum repolist to view list of repositories

Configuring apache mariadb and phpmyadmin on RHEL 7

1 ) Install apache mariadb php and phpmyadmin on server by using following command

yum install php phpmyadmin httpd mariadb

2)  type below command and set the password for root

mysql_secure_installation

3) vim  /etc/httpd/conf.d/phpMyAdmin.conf

in the section/container <Directory /usr/share/phpMyAdmin/> </Directory>

add the following two lines.

Options Indexes FollowSymLinks
Require all granted

4) add firewall rules  and reload firewall

firewall-cmd –permanent –add-port=80/tcp
firewall-cmd –permanent –add-port=80/udp
firewall-cmd –permanent –add-port=443/tcp
firewall-cmd –permanent –add-port=443/udp

firewall-cmd –reload

OR

firewall-cmd –permanent –add-service=http

systemctl restart firewalld

5) Now restart apache service by typing

service httpd restart or

systemctl restart httpd.service

6) checking and adding apache and mariadb services to startup

systemctl is-enabled httpd

systemctl is-enabled mariadb

if it says its disabled then enable it by following command.

systemctl enable httpd

systemctl enable mariadb

Ethernet Bonding ( Centos 6.8 )

Step 1 :

Create the file /etc/sysconfig/network-scripts/ifcfg-bond0 and specify the ip address,netmask & gateway

# vi /etc/sysconfig/network-scripts/ifcfg-bond0
 DEVICE=bond0
 IPADDR=192.168.100.10
 NETMASK=255.255.255.0
 GATEWAY=192.168.100.1
 TYPE=Bond
 ONBOOT=yes
 NM_CONTROLLED=no
 BOOTPROTO=static

Step:2 

Edit the files of eth0 & eth1 and make sure you enter the master and slave entry, as shown below
 # vi /etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE=eth0
 HWADDR=90:2b:34:7b:df:a4
 TYPE=Ethernet
 ONBOOT=yes
 NM_CONTROLLED=no
 MASTER=bond0
 SLAVE=yes

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
 DEVICE=eth1
 TYPE=Ethernet
 HWADDR=e2:5b:f0:60:ba:d8
 ONBOOT=yes
 NM_CONTROLLED=no
 MASTER=bond0
 SLAVE=yes

 Step:3 

Create the Bond file(bonding.conf)
 # vi /etc/modprobe.d/bonding.conf ( for old versions use modprobe.conf )
 alias bond0 bonding
 options bond0 mode=1 miimon=100  <--- This can be defined in  ifcfg-bond0  the line will be BONDING_OPTS="mode=1 miimon=100"
change above line to
options bond0 mode=1 miimon=100 fail_over_mac=1  if you are configuring bonding under vmware workstation.



Step:4 

service network restart

Important Things to know

A ) Different Modes used in bonding
 balance-rr or 0 -- round-robin mode for fault tolerance and load balancing.
 active-backup or 1 -- Sets active-backup mode for fault tolerance.
 balance-xor or 2 -- Sets an XOR (exclusive-or) mode for fault tolerance and load balancing.
 broadcast or 3 -- Sets a broadcast mode for fault tolerance. All transmissions are sent on all slave interfaces.
 802.3ad or 4 -- Sets an IEEE 802.3ad dynamic link aggregation mode. Creates aggregation groups that share the same speed & duplex settings.
 balance-tlb or 5 -- Sets a Transmit Load Balancing (TLB) mode for fault tolerance & load balancing.
 balance-alb or 6 -- Sets an Active Load Balancing (ALB) mode for fault tolerance & load balancing.




B ) Commands

To check the bonding status

watch -n .1 cat /proc/net/bonding/bond0   

or

cat /proc/net/bonding/bond0


To Change active interface in bondig 1 ) remove active interface from bonding by command  echo -eth0 > /sys/class/net/bond0/bonding/slaves this will make the other slave active then add it again into the bonding. by running command echo +eth0 > /sys/class/net/bond0/bonding/slaves or use inenslave to change the active slave in bond To make eth0 active use below command ifenslave -c bond0 eth0 eth1