Creating user in Phpmyadmin using SQL

1) Login to phpmyadmin

2) open the perticular DB

3) click on SQL tab

4) Paste the below line there and change the username and dbname as yours and password as you require .

-------------------------------------------------------------------------------------------------------------------------------------
grant all privileges on dbname.* to username@localhost identified by 'passwd';
-------------------------------------------------------------------------------------------------------------------------------------

INSTALL MONGODB ON UBUNTU


Create a the /etc/apt/sources.list.d/10gen.list file and include the most appropriate version of the following lines for the 10gen repository

----------------------------------------------------------------------------------------------------------------------------------------
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
-----------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv 7F0CEB10
----------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------
sudo apt-get update
-----------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------
sudo apt-get install mongodb-10gen
-----------------------------------------------------------------------------------------------------------------------------------------

You are ready with mongodb , to check status service mongodb status.



 INSTALL GRAPHICAL TOOL

Download mViewer from

--------------------------------------------------------------------------------------------------------------------------------------   
https://github.com/Imaginea/mViewer
--------------------------------------------------------------------------------------------------------------------------------------

Now go to scripts folder and run start_mviewer.sh

Visit your localhost on 8080 port with no username and password if you have not set any(

---------------------------------------------------------------------------------------------------------------------------------------
http://127.0.0.1:8080
---------------------------------------------------------------------------------------------------------------------------------------

Now you are done with mongodb GUI interface.

ENABLE IP FORWORDING (RHEL ,CENT OS)

Open /etc/sysctl.conf file using a text editor, enter:

------------------------------------------------------------------------------------------------------------------------------------------
 # vi /etc/sysctl.conf
--------------------------------------------------------------------------------------------------

Set net.ipv4.ip_forward to 1, enter:
 
-------------------------------------------------------------------------------------------------- 
net.ipv4.ip_forward = 1
-------------------------------------------------------------------------------------------------- 
 
Save and close the file. Reload the changes by typing the following command: 
 
--------------------------------------------------------------------------------------------------
# sysctl -p
--------------------------------------------------------------------------------------------------                  

ACL (access control list)

1 ) To check if your ext4 filesystem has the proper default options, use tune2fs as below :
  ------------------------------------------------------------------------------------------------------------------------
   # tune2fs -l /dev/sdb1
 --------------------------------------------------------------------------------------
2 ) To enable ACLs on a filesystem, we must set the fs default and remount: 
 -------------------------------------------------------------------------------------------
 # tune2fs -o acl /dev/sdb1
 # mount -o remount,acl /data1
 -------------------------------------------------------------------------------------------
3) Use getfacl to view ACLs: 
------------------------------------------------------------- 
# touch /data1/foo.txt
# getfacl /data1/foo.txt
-------------------------------------------------------------
4) Use setfacl to set ACLs, with -m to modify and -x to remove a given ACL. 
          a) give user bob read+write+execute on a file:
----------------------------------------------------------------------------------------------------------------------------------------
#setfacl -m u:bob:rwx /data1/foo.txt
 
      b)give group peeps read+write on a file: 


#setfacl -m g:peeps:rw /data1/foo.txt
--------------------------------------------------------------------------------------------------------------------------------------

5)remove bob's ACL permissions:
-------------------------------------------------------------------------------------------------------------------------------------
#setfacl -x u:bob /data1/foo.txt
-----------------------------------------------------------------------------------------------
6)setfacl permission to directory
------------------------------------------------------------------------------------------------ 
#setfacl -m d:g:peeps:rw /data1/stuff/
---------------------------------------------------------------------------------------------- 
7) revoke write permission for everyone:
--------------------------------------------------------------------------------------------------- 
#setfacl -m m::rx /data1/foo.txt 
------------------------------------------------------------------------------------------------- 
 
8) When ACLs are present, an ls -l will show a plus sign to notify you:
-------------------------------------------------------------------------------------------------- 
 # ls -l /data1/foo.txt 
-rw-rwxr--+ 1 root root 0 Dec  3 14:54 /data1/foo.txt
 --------------------------------------------------------------------------------------------------------------------------------------

To remove only the tables in DB :


Go to terminal and excute the bellow command with your database username ,databasename , and password :

mysqldump -u username -p --no-data dbname | grep ^DROP > drop.sql 

mysql -u username -p dbname < drop.sql   

rm drop.txt

To find which version of linux OS installed

This is only for the Linux distribution
open the terminal and enter the bellow command

#cat /etc/*release

.htaccess Proctection

IP address restrictions to protect directories using .htaccess

    copy the below 6 lines to .htaccess file 
    <limit GET>
    order deny,allow
    deny from all
    allow from 128.175
    allow from 128.4
    </limit>
       

Folder proctection using .htaccess this is only for linux users

     Create .htaccess if not present and add below 5 lines
    AuthName "Restricted Area"
    AuthType Basic
    AuthUserFile /var/www/vhosts/sitename/httpdocs/.htpasswd
    AuthGroupFile /dev/null
    require valid-user

# htpasswd -c /var/www/vhosts/sitename/httpdocs/.htpasswd kirthan

Creating Vhosts in Ubuntu

Steps for Creating Vhosts in Ubuntu :


1)
Create the folders that will host your new sites. By default, Apache in Ubuntu serves from /var/www

2) 
mkdir /var/www/site
 
 
3) 
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/site
 
4)  
Edit the new config files for each site using your preferred text 
editor. Add the line ServerName server1 right below the ServerAdmin line
 and change both DocumentRoot and Directory to point to your new sites.

repeat this step for as many new sites as you’ll be 
creating
/etc/apache2/sites-available/site



<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 ServerName site1

 DocumentRoot /var/www/site
 <Directory />
  Options FollowSymLinks
  AllowOverride All
 </Directory>
 <Directory /var/www/site1/>
  Options -Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

 ErrorLog ${APACHE_LOG_DIR}/error.log

 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

 CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
 
5)  
  After you have edited the config files just tell Apache to start serving the 
new domains and stop serving the default:
 
 sudo a2ensite site
 

 6)
Now reload apache and you should be able to get to each of your new domains
 
sudo /etc/init.d/apache2 reload

7)
for disabling the site use command 
 
sudo a2dissite site 

Create DNS server in Ubuntu version

1) Install bind9
#aptitude install update
#aptitude install bind9 dnsutils

2)Configure local Network
 #sudo nano /etc/hosts

as below

127.0.0.1       [yourhostname]   localhost.localdomain   localhost
192.168.1.x     [yourhostname].[yourdomain]              [yourhostname]
 

eg:-

 127.0.0.1       ns1 localhost.localdomain   localhost
192.168.1.2      ns1.geoffke.be              ns1


3)Configure your firewall
#sudo ufw allow 53
#sudo ufw allow bind9
 #sudo ufw app list 

4)create the zone file 


#cd /etc/bind
#sudo nano db.geoffke.be


Replace geoffke.be with your domain name to become your zone file name. Here's an example

;
; BIND zone definition file for geoffke.be
;
geoffke.be.      IN      SOA      ns1.geoffke.be. admin.geoffke.be. (
                        2011072601; Serial
                        28800
                        3600
                        604800
                        38400
)

; Nameserver and mailserver (replace with your own hostnames):
geoffke.be.        IN     NS           ns1.geoffke.be.
geoffke.be         IN     MX     10    mail.geoffke.be

; IP addresses of local hosts (replace the lines with your own hosts):
router             IN     A     192.168.1.1
ns1                IN     A     192.168.1.2
www                IN     A     192.168.1.3
mediacenter        IN     A     192.168.1.4
laptop1            IN     A     192.168.1.5
workstation1       IN     A     192.168.1.6




 5. Create the reverse zone file:

#sudo nano rev.1.168.192.in-addr.arpa

Use the following example file and replace the hosts and domain name with your own, matching the ones in the zone file above:

;
; BIND reverse zone file for geoffke.be
;
@ IN SOA ns1.geoffke.be. admin.geoffke.be. (
                        2011072601; Serial
                        28800;
                        604800;
                        604800;
                        86400
)

; IP addresses of local hosts (replace the lines with your own hosts):
        IN      NS      ns1.geoffke.be.
1       IN      PTR     router.geoffke.be
2       IN      PTR     geoffke.be
3       IN      PTR     www.geoffke.be
4       IN      PTR     mediacenter.geoffke.be
5       IN      PTR     laptop1.geoffke.be
6       IN      PTR     workstation1.geoffke.be


6. Edit the named.conf.local file:

and add the following:

zone geoffke.be {
        type master;
        file "/etc/bind/db.geoffke.be";
};

zone 1.168.192.in-addr.arpa {
        type master;
        file "/etc/bind/rev.1.168.192.in-addr.arpa";
}; 


7. Configure your clients:

domain <yourdomain.ext>
search <yourdomain.ext>
nameserver <ip_of_dns_server_1>
nameserver <ip_of_dns_server_2>
nameserver <ip_of_dns_server_3>


 If you have only one DNS server, you could use the following example:

domain geoffke.be
search geoffke.be
nameserver 192.168.1.2
nameserver 192.168.1.1


8. Test your DNS server:
Be sure that all of your hosts DNS settings on your clients point to your new DNS server before testing! Reload bind to accept the changes:

sudo service bind9 reload

Test your server with:
Source code 
dig example.com 

If your server doesn't respond correctly, you can check the logs to see what is causing the problem.
Source code
tail -f /var/log/syslog

CREATE A YUM REPOSITORY LOCALLY

Mount your CD/DVD or ISO images

DVD Disk or DVD ISO image

  • If you have DVD disk, please mount dvd-rom first, and then create yum repository:
  • # mkdir /mnt/dvd/
    # mount /dev/cdrom /mnt/dvd/
  • If you use DVD iso, please copy it to the system, and then create yum repository:
  • # mkdir /mnt/dvd/
    # mount -o loop /root/rhel5.1-dvd.iso /mnt/dvd

CD images

If you have multiple CD image files, you should mount all iso images and then create yum repository.
  • Mount all iso images:
  • # mkdir -p /mnt/{1,2,3,4,5}
    # mount -o loop rhel5.1-disc1.iso /mnt/1
    # mount -o loop rhel5.1-disc2.iso /mnt/2
    # mount -o loop rhel5.1-disc3.iso /mnt/3
    # mount -o loop rhel5.1-disc4.iso /mnt/4
    # mount -o loop rhel5.1-disc5.iso /mnt/5

Install necessary package

  • Find and install 'createrepo' package in /mnt directory:
  • # find /mnt -iname 'createrepo*'
    /mnt/dvd/Server/createrepo-0.4.11-3.el5.noarch.rpm
    # rpm -ivh /mnt/dvd/Server/createrepo-0.4.11-3.el5.noarch.rpm

Create yum repository

Create metadata

  • Create yum repository:
  • # cd /mnt/
    # createrepo .

Define yum repository

Create yum repository define file /etc/yum.repos.d/dvdiso.repo:
[ANYNAME]
name=ANYNAME
baseurl=file:///mnt/
enabled=1
gpgcheck=0

Test it

# yum clean all
# yum list

ಥಾಟ್ಸ್ ಇಟ್ ಡನ್

Editing or Adding Grub 2 Menu Entries

Open these three entering via terminal 

$ sudo gedit /etc/default/grub

$ sudo gedit /etc/grub.d/40_custom

$ sudo gedit /boot/grub.cfg

From the grub.conf copy the content which starts from 
#BEGIN
menuentry

After u done that you run the command :

$  sudo update-grub


CREATE JAIL FOR USER TO THEIR HOME DIRECTORY


-->
  • You need the GNU Compiler Collection to install these programs.
yum install gcc

  • Install zlib
--------------------------------------------------------------------------------------------------------------------------------------
cd /tmp
mkdir -p /opt/zlib
mkdir zlib1.25
cd zlib1.25/
wget http://zlib.net/zlib125.zip
unzip zlib125.zip
make
make install prefix=/opt/zlib/
--------------------------------------------------------------------------------------------------------------------------------------
  • Now we install openssl into the opt directory as well
The make commands here take forever to run. If the 'make test' command returns any errors, you will need to fix them before continuing.

--------------------------------------------------------------------------------------------------------------------------------------
cd /tmp
mkdir -p /opt/openssl
wget http://www.openssl.org/source/openssl-1.0.0e.tar.gz
tar xvzf openssl-1.0.0e.tar.gz
cd openssl-1.0.0e
./config --prefix=/opt/openssl --openssldir=/opt/openssl
make
make test
make install
--------------------------------------------------------------------------------------------------------------------------------------
  •  Next we will download openssh
--------------------------------------------------------------------------------------------------------------------------------------
cd /tmp
mkdir -p /opt/openssh
wget http://mirror.team-cymru.org/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz
tar xvzf openssh-5.9p1.tar.gz
cd openssh-5.9p1
--------------------------------------------------------------------------------------------------------------------------------------
  • Now we will install openssh. To find where your xauth file is located you may need to run the "which xauth" command. If you know what you are doing you may add your own options to the configure command below.
Some of these commands make take some time to run. Go grab a coke.
REMEMBER: This tutorial is meant for setting up a server for the first time. You may need to copy your sshd_config file (or at least the directives you want to keep) from /etc/ssh to save your old settings.

--------------------------------------------------------------------------------------------------------------------------------------
./configure --prefix=/opt/openssh --with-ssl-dir=/opt/openssl --with-xauth=/usr/X11R6/bin/xauth --with-zlib=/opt/zlib
make
make install
--------------------------------------------------------------------------------------------------------------------------------------


  • To automatically run the new ssh shell, we will use init. You need to change the following lines in /etc/init.d/sshd
--------------------------------------------------------------------------------------------------------------------------------------
# Some functions to make the below more readable
KEYGEN=/opt/openssh/bin/ssh-keygen
SSHD=/opt/openssh/sbin/sshd
RSA1_KEY=/opt/openssh/etc/ssh_host_key
RSA_KEY=/opt/openssh/etc/ssh_host_rsa_key
DSA_KEY=/opt/openssh/etc/ssh_host_dsa_key
--------------------------------------------------------------------------------------------------------------------------------------
  • Then we will restart ssh and test to see if it is running smoothly.
--------------------------------------------------------------------------------------------------------------------------------------
/etc/init.d/sshd restart
telnet localhost 22
--------------------------------------------------------------------------------------------------------------------------------------

The telnet command should return some lines looking like this:
You need to be sure that the last line includes the "OpenSSH_5.9" to confirm that it is the version we just installed.

--------------------------------------------------------------------------------------------------------------------------------------
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
SSH-2.0-OpenSSH_5.9
--------------------------------------------------------------------------------------------------------------------------------------


  • Next you need to edit '/opt/openssh/etc/sshd_config' to enable the jail.
    Replace any lines starting with 'subsystem' with this line:
--------------------------------------------------------------------------------------------------------------------------------------
Subsystem sftp internal-sftp
--------------------------------------------------------------------------------------------------------------------------------------
Also add (at the bottom of the file) the following lines
--------------------------------------------------------------------------------------------------------------------------------------
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
Now, all users added to the 'sftponly' group will be jailed to their home directory.
--------------------------------------------------------------------------------------------------------------------------------------
  • We will need to create the 'sftponly' group so we can add our untrustworthly users to it. Also, we set up the environment to allow jailing.
--------------------------------------------------------------------------------------------------------------------------------------
groupadd sftponly
chown root:root /home
chmod 755 /home
--------------------------------------------------------------------------------------------------------------------------------------
Now when you create users that need to be jailed, make sure they belong to the 'sftponly' group. For the user "mark" with the password "test", you will need to do the folling steps.

--------------------------------------------------------------------------------------------------------------------------------------
useradd mark
usermod -g sftponly mark
usermod -s /bin/false mark
usermod -d /home/mark mark
passwd mark
--------------------------------------------------------------------------------------------------------------------------------------

  • To set up the jail run the following commands
--------------------------------------------------------------------------------------------------------------------------------------
chmod 755 /home/mark
chown root:root /home/mark
mkdir /home/mark/public_html
chown mark:sftponly /home/mark/public_html
--------------------------------------------------------------------------------------------------------------------------------------

Try to log in as mark through putty (or any ssh terminal). You should get some sort of error involving an abort or denied access.
(optinal for ftp users )
Install vsftpd
#yum install vsftpd
Now it is done 

MYSQL MASTER-SLAVE REPLICATION

MySQL Master-Slave Replication on CentOS / RHEL

 This was using MySQL 5.0 and CentOS 5.3, but this should work for most semi-recent versions of both.In this setup, transactions are mirrored to the slave server as they happen on the master.
In this tutorial I’ll use the following setup:
Master Server: 10.1.100.1
Slave Server: 10.2.200.2
MySQL Data path: /var/lib/mysql
MySQL slave user named slave_user

[Master]

First, edit the master server MySQL config file. Add/Replace the following lines

vim /etc/my.cnf
# [mysqld] section
# Start Modification
# First line is probably already there
datadir = /var/lib/mysql
server-id = 1
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/var/mysql-relay-bin.index
log-error = /var/lib/mysql/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
log-bin = /var/lib/mysql/mysql-bin
# Stop Modification
Restart MySQL to load the changes
1
service mysqld restart

[Slave]

Now we’ll do about the same thing on the slave server
1
vim /etc/my.cnf
# [mysqld] section
# Start Modification
# First line is probably already there
datadir = /var/lib/mysql
server-id = 2
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
log-error = /var/lib/mysql/var/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
# Stop Modification
Restart MySQL to load the changes
1
service mysqld restart

[Master]

Now we need to tell MySQL where we are replicating to and what user we will do it with.





mysql -u root -p
mysql> STOP SLAVE;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'slave_password';
mysql> FLUSH PRIVILEGES;
Now we will test that this side of the replication is working and get the location that we will start the replication from.









mysql> USE Any_database_name;
mysql> FLUSH TABLES WITH READ LOCK;mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+
| File             | POSITION | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |   451228 |              |                  |
+------------------+----------+--------------+------------------+
1 ROW IN SET (0.00 sec)
Write down the File, Position number, as this is where we will start the replication from.
Here it is a good idea to do a dump of your master database(s) and pipe it into your slave server.


mysqldump -u root --all-databases --single-transaction --master-data=1 > /home/MasterSnapshot.sql

[Slave]

First grab your SQL dump file from the master server. You can use whatever method you would like to transfer the file. SCP example:



scp root@10.1.100.1:/path/to/MasterSnapshot.sql root@10.2.200.2:/home/MasterSnapshot.sql
Import the SQL file into MySQL


mysql -u root -p < /home/MasterSnapshot.sql
Now we’ll set the slave to read from the master server, starting at the record position we wrote down earlier. Make sure you use the MASTER_LOG_FILE and MASTER_LOG_POS from a few steps back.




mysql> CHANGE MASTER TO MASTER_HOST='10.1.100.1', MASTER_USER='slave_user', 
MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=451228;
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS\G;
Make sure that from the resulting output you have the following:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
If you don’t, check the MySQL error log to find out what is causing the problem :)

AFTER DOING THIS IF WE WANT TO KEEP DELAY FROM MASTER TO SLAVE WE SHOULD USE MAAKIT :

#rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm

#yum install maatkit 
#mk-slave-delay --delay 1m --interval 15s --run-time 10m slavehost
 

SOME OF THE RED HAT NETWORK COMMAND WITH DISCRIPTION

METHOD 1
# system-config-network-tui & (this is to edit ip and dns )


METHOD 2
#system-config-network &

METHOD 3
# cd /etc/sysconfig/network-scripts/ 

You need to edit / create files as follows:
  • /etc/sysconfig/network-scripts/ifcfg-eth0 : First Ethernet card configuration file
  • /etc/sysconfig/network-scripts/ifcfg-eth1 : Second Ethernet card configuration file
To edit/create first NIC file, type command:
# vi ifcfg-eth0
Append/modify as follows:

# Intel Corporation 82573E Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=static
DHCPCLASS=
HWADDR=00:30:48:56:A6:2E
IPADDR=10.10.29.66
NETMASK=255.255.255.192
ONBOOT=yes

Save and close the file. Define default gateway (router IP) and hostname in /etc/sysconfig//network file:
# vi /etc/sysconfig/network
Append/modify configuration as follows:
NETWORKING=yes
HOSTNAME=www1.nixcraft.in
GATEWAY=10.10.29.65


Save and close the file. Restart networking:
# /etc/init.d/network restart

Make sure you have correct DNS server defined in /etc/resolv.conf file:
# vi /etc/resolv.conf

Setup DNS Server as follows:
nameserver 10.0.80.11
nameserver 10.0.80.12
nameserver 202.67.222.222


Save and close the file. Now you can ping the gateway/other hosts:
 
$ ping 10.0.80.12

Output:
PING 10.0.80.12 (10.0.80.12) 56(84) bytes of data.
64 bytes from 10.0.80.12: icmp_seq=1 ttl=251 time=0.972 ms
64 bytes from 10.0.80.12: icmp_seq=2 ttl=251 time=1.11 ms

You can also check for Internet connectivity with nslookup or host command:
$ nslookup cyberciti.biz

Output:
 
 Server:         10.0.80.11
Address:        10.0.80.11#53
Non-authoritative answer:
Name:   cyberciti.biz
Address: 75.126.43.232

You can also use host command:
 
$ host nixcraft.in

Output:
nixcraft.in has address 75.126.43.232 
nixcraft.in mail is handled by 10 mail.nixcraft.in.

Start and Stop ssh-agent

Below is the bash script used to start and stop ss-agent #!/bin/bash ## in .bash_profile SSHAGENT=`which ssh-agent` SSHAGENTARGS="...