MyTrueHost launched Web Hosting for Indian clients just in Rs 60/Month with various payment options(netbanking, debit card, credit card,cash card or paypal).
Please Visit at https://www.mytruehost.in

Update the webalizer logs manually

To update the webalizer for the single domain refer the following steps, for your kind information if domlogs are rotated on the server then it could be possible that you will miss the existing stats therefore run the command after taking all the essential files backups.

root@server [~]#/usr/local/cpanel/3rdparty/bin/webalizer /usr/local/apache/domlogs/DomainName -n DomainName

For example we are runnning the webalizer for the cpanelblog.in domain

root@server [~]#/usr/local/cpanel/3rdparty/bin/webalizer /usr/local/apache/domlogs/cpanelblog.in -n cpanelblog.in

Once above command run successfuly run the following command

root@server [~]#/usr/local/cpanel/startup

 

 

How To Install FFmpeg + FFmpeg-PHP + Mplayer + Mencoder + flv2tool + LAME MP3 Encoder

Following are the steps to install FFmpeg + FFmpeg-PHP + Mplayer + Mencoder + flv2tool + LAME MP3 Encoder + Libog on a Linux server or VPS Hosting Manually. There are many automated scripts available which install these but its better to do it manually as in case of an error occuring during the installation process, we can stop the installation and fix them. These steps also include the common fixes for such errors.

cd /usr/local/src/

DOWNLOAD MODULES

wget www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20061022.tar.bz2
wget rubyforge.org/frs/download.php/9225/flvtool2_1.0.5_rc6.tgz
wget easynews.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
wget superb-west.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.5.1.tbz2
wget downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
wget downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz

EXTRACT MODULES

tar zxvf lame-3.97.tar.gz
tar zxvf libogg-1.1.3.tar.gz
tar zxvf libvorbis-1.1.2.tar.gz
tar zxvf flvtool2_1.0.5_rc6.tgz
tar jxvf essential-20061022.tar.bz2
tar jxvf ffmpeg-php-0.5.1.tbz2

mkdir /usr/local/lib/codecs/

yum install gcc gmake make libcpp libgcc libstdc++ gcc4 gcc4-c++ gcc4-gfortran subversion ruby ncurses-devel -y

DOWNLOAD FFMPEG and MPLAYER

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
cd /usr/local/src/mplayer

svn update

cd /usr/local/src/
mv /usr/local/src/essential-20061022/* /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/

LAME:

cd /usr/local/src/lame-3.97
./configure
make && make install

LIBOGG

cd /usr/local/src/
cd /usr/local/src/libogg-1.1.3
./configure –enable-shared && make && make install
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

LIBVORBIS

cd /usr/local/src/
cd /usr/local/src/libvorbis-1.1.2
./configure && make && make install

FLVTOOL2

cd /usr/local/src/
cd /usr/local/src/flvtool2_1.0.5_rc6/
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

MPLAYER

cd /usr/local/src/
cd /usr/local/src/mplayer
./configure && make && make install

cd /usr/local/src/

FFMPEG:

cd /usr/local/src/ffmpeg/
./configure –enable-libmp3lame –enable-libvorbis –disable-mmx –enable-shared
make
make install

export LD_LIBRARY_PATH=/usr/local/lib/

ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50
ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49
ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51

FFMPEG-PHP:

cd /usr/local/src/
cd /usr/local/src/ffmpeg-php-0.5.1/
phpize
./configure
make
make install

NOTICE: Make sure this is the correct php.ini for the box!!

echo ‘extension=ffmpeg.so’ >> /usr/local/Zend/etc/php.ini

NOTICE: Make sure this is the correct php.ini for the box!!

RESTART APACHE

service httpd restart

 

 

Disabling USB ports

If you administrating a small or large workstations running with Linux Desktops and want to disable the USB ports for security so that no one can copy the data via pen drive, try the following steps to disable the USB port(s).

Edit the grub.conf and add the following lines(you need to login as root).
# vi /boot/grub/grub.conf

Then add the following lines on the right kernel version

kernel /vmlinuz<your-kernel-version> rhgb quiet nousb

Save and exit the file and reboot the system to disable the USB ports and the boot time.

 

Clearing dmesg logs

What is dmesg?

The main purpose of dmesg is to display kernel messages. dmesg can provide helpful information in case of hardware problems or problems with loading a module into the kernel. In addition, with dmesg, you can determine what hardware is installed on your server. During every boot, Linux checks your hardware and logs information about it. You can view these logs using the command /bin/dmesg.

CLEARING THE KERNEL RING BUFFER

If you want you can backup the logs using dmesg > filename before clearing it. Just execute the following command to clear and frest start the ring buffer loggin (make sure you have logged in as root).

# dmesg -c
Execute the command dmesg to make sure the logs are cleared. Check man dmesg for more help.

Disable the Ctrl-Alt-Delete shutdown keys in Linux

DISABLE CTRL+ALT+DEL KEYS

Open /etc/inittab file, enter:
# vi /etc/inittab
Search for line that read as follows:
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
And remove the line or comment out the above line by putting a hash mark (#) in front of it:
# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Save the file and exit to shell promot. Reboot system to take effect or type command:
# init q

 

 

grub corrupted in linux server

A couple of days back I had faced a problem on one of the Linux Server. I rebooted the server for some task & the server didn’t came up for a long time. When I checked from the console, I found the grub command line screen. I knew that the grub has been corrupted.
I had two options to boot up the server and fix the grub.
1. Boot from the rescue CD and install the grub loader.
2. Use the grub commands to boot the server and then install grub.
I was not having any Linux bootable CD when I faced this problem, hence I had only one option i.e. to boot the server from grub command line and install grub loaded. Fortunately the root file system was clean hence I was able to start the server from grub command prompt but it may not be the case always. Sometimes, there could be inconsistencies with the root file system and the system can be started only after fixing the inconstancies by executing fsck which requires the server to be started in rescue mode.  Hence I thought of explaining both the methods here.
Method 1.
  1. Boot the server in Rescue Mode (For details, please refer my previous article – Linux Rescue Mode )
  2. Select the option to search and mount the previous system @ /mnt/sysimage
  3. Execute /sbin/grub-install to install grub boot loader.

[root@VCSNode2 ~]#/sbin/grub-install /dev/sda
Installation finished. No error reported.This is the contents of the device map /boot/grub/device.map.Check if this is correct or not. If any of the lines is incorrect,fix it and re-run the script `grub-install’.
# this device map was generated by anaconda(hd0) /dev/sda
[root@VCSNode2 ~]#

Method 2
1. Execute the following command on the grub command prompt.

grub> find /boot/grub/stage1
(hd0,0)
grub>

2. If you get the partition information where the file is located, that means you have created a separate /boot and separate / partition. Now execute the following command to get the root file system information.
grub> find /etc/hosts
(hd0,1)
grub>
3. If you get “File not found” error in step 1 above (as shown below), that means you have not created a separate /boot file system.
grub> find /boot/grub/stage1 // “File Not Found Error Output after
Error 15: File not found //executing find /boot/grub/stage1 command at grub prompt
grub>
4. Now execute the following command. In this case, your operating system (boot as well as root partition) is on hard disk 0, partition 1 i.e. hda1/sda1.
grub> find /grub/stage1
(hd0,0)
grub>
5. Now execute the following commands to boot your operating system.
grub> root (hd0,0) //device information you received after executing
Filesystem type is ext2fs, partition type 0×83 //find “/boot/grub/stage1? or “find /grub/stage1: command.
grub> kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/hda1 //device information you received after executing “find /etc/hosts” command.
[Linux-bzImage, setup=0x1e00, size=0x1ad054] // Please note, if you get device information as (hd0,0) then the device name in this case would be /dev/hda1
grub> boot
6. This would start the operating system. Once operating system is loaded execute the following command to install grub boot loader.
[root@VCSNode2 ~]# /sbin/grub-install /dev/sda
Installation finished. No error reported.This is the contents of the device map /boot/grub/device.map.Check if this is correct or not. If any of the lines is incorrect,fix it and re-run the script `grub-install’.
# this device map was generated by anaconda(hd0) /dev/sda
[root@VCSNode2 ~]#

Recovering root password in linux (Red Hat)

Introduction:
Sometimes a system administrator can come across a situation when he need to perform some administrative tasks on the linux box but unable to do so due to unavailability of root password for any reason. The root password can be recovered by performing the following steps on the linux box.
Prerequisites:
To perform the following steps you need physical access to the server or a web console and downtime as server reboot is required.
Method 1(Single user mode with grub as boot loader):
  1. Reboot the linux box.
  2. In the grub screen, select the kernel to boot and press a to append the kernel boot options. (If you have password configured for grub and you forgot the root password as well then follow Method 2 to recover root password)
  3. Type “1? or “single” at the end and press enter to boot the linux box in single user mode.
  4. Once you get the # prompt execute passwd command to set new root password.
  5. Reboot the linux box in normal mode (init 3 or 5) and login as root with new password.
Method 1 (Single user mode with lilo as boot loader):
  1. Reboot the linux box.
  2. On the lilo boot prompt, type linux single and press enter.
  3. Once you get the # prompt, execute passwd command to set new root password.
  4. Reboot the linux box in normal mode (init 3 or 5) and login as root with new password.
Method 2 (Rescue Mode):
  1. Reboot the linux box.
  2. Boot from the linux boot cd. At the boot prompt, type linux rescue and press enter to boot linux in rescue mode. At the end, the boot program will search for root environment and mount as /mnt/sysimage.
  3. Change the root to /mnt/sysimage by executing chroot /mnt/sysimage command.
  4. Edit /etc/shadow file and remove the root password. When you edit the /etc/shadow file, you will see something liike “root:$1$YI044.3/$wQsdPfMXdbJXGK6iyBLDV.:14012:0:99999:7:::”. The text marked in red is the root password separated by colons (:). Delete the root password and save the file. The root entry in the /etc/shadow file should look like “root::14012:099999:7:::” after deleting the root password.
  5. Reboot the linux box in normal mode (init 3 or 5) and login as root with blank password. Once you get # prompt, execute passwd command to set a new password for root user.
  6. Log out and relogin as root with the new password to make sure that the password is changed.

 

Linux Yum Command Examples – Install, Uninstall, Update Packages

Installing, removing, and updating packages is a typical activity on Linux. Most of the Linux distributions provides some kind of package manager utility. For example, apt-get, dpkg, rpm, yum, etc.

On some Linux distributions, yum is the default package manager.

Yum stands for Yellowdog Updater Modified.

This article explains 15 most frequently used yum commands with examples.
1. Install a package using yum install

To install a package, do ‘yum install packagename’. This will also identify the dependencies automatically and install them.

The following example installs postgresql package.

# yum install postgresql.x86_64
Resolving Dependencies
Install       2 Package(s)
Is this ok [y/N]: y

Package(s) data still to download: 3.0 M
(1/2): postgresql-9.0.4-5.fc15.x86_64.rpm          | 2.8 MB     00:11
(2/2): postgresql-libs-9.0.4-5.fc15.x86_64.rpm    | 203 kB     00:00
——————————————————————
Total                                        241 kB/s | 3.0 MB     00:12

Running Transaction
Installing : postgresql-libs-9.0.4-5.fc15.x86_64             1/2
Installing : postgresql-9.0.4-5.fc15.x86_64                   2/2

Complete!

By default ‘yum install’, will prompt you to accept or decline before installing the packages. If you want yum to install automatically without prompting, use -y option as shown below.

# yum -y install postgresql.x86_64

2. Uninstall a package using yum remove

To remove a package (along with all its dependencies), use ‘yum remove package’ as shown below.

# yum remove  postgresql.x86_64
Resolving Dependencies
—> Package postgresql.x86_64 0:9.0.4-5.fc15 will be erased

Is this ok [y/N]: y

Running Transaction
Erasing    : postgresql-9.0.4-5.fc15.x86_64       1/1

Removed:
postgresql.x86_64 0:9.0.4-5.fc15

Complete!

3. Upgrade an existing package using yum update

If you have a older version of a package, use ‘yum update package’ to upgrade it to the latest current version. This will also identify and install all required dependencies.

# yum update postgresql.x86_64

4. Search for a package to be installed using yum search

If you don’t know the exact package name to be installed, use ‘yum search keyword’, which will search all the packages that matches the ‘keyword’ and display it.

The following examples searches the yum repository for all the packages that matches the keyword ‘firefox’ and lists the available packages.

# yum search firefox
Loaded plugins: langpacks, presto, refresh-packagekit
============== N/S Matched: firefox ======================
firefox.x86_64 : Mozilla Firefox Web browser
gnome-do-plugins-firefox.x86_64 : gnome-do-plugins for firefox
mozilla-firetray-firefox.x86_64 : System tray extension for firefox
mozilla-adblockplus.noarch : Adblocking extension for Mozilla Firefox
mozilla-noscript.noarch : JavaScript white list extension for Mozilla Firefox

Name and summary matches only, use “search all” for everything.

5. Display additional information about a package using yum info

Once you search for a package using yum search, you can use ‘yum info package’ to view additional information about the package.

The following examples displays additional information about the samba-common package.

# yum info samba-common.i686
Loaded plugins: langpacks, presto, refresh-packagekit
Available Packages
Name        : samba-common
Arch        : i686
Epoch       : 1
Version     : 3.5.11
Release     : 71.fc15.1
Size        : 9.9 M
Repo        : updates
Summary     : Files used by both Samba servers and clients
URL         : http://www.samba.org/
License     : GPLv3+ and LGPLv3+
Description : Samba-common provides files necessary for both the server and client
: packages of Samba.

6. View all available packages using yum list

The following command will list all the packages available in the yum database.

# yum list | less

7. List only the installed packages using yum list installed

To view all the packages that are installed on your system, execute the following yum command.

# yum list installed | less

8. Which package does a file belong to? – Use yum provides

Use ‘yum provides’ if you like to know which package a particular file belongs to. For example, if you like to know the name of the package that has the /etc/sysconfig/nfs file, do the following.

# yum provides /etc/sysconfig/nfs
Loaded plugins: langpacks, presto, refresh-packagekit
1:nfs-utils-1.2.3-10.fc15.x86_64 : NFS utilities and supporting clients and
: daemons for the kernel NFS server
Repo        : fedora
Matched from:
Filename    : /etc/sysconfig/nfs

1:nfs-utils-1.2.4-1.fc15.x86_64 : NFS utilities and supporting clients and
: daemons for the kernel NFS server
Repo        : updates
Matched from:
Filename    : /etc/sysconfig/nfs

1:nfs-utils-1.2.4-1.fc15.x86_64 : NFS utilities and supporting clients and
: daemons for the kernel NFS server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/sysconfig/nfs

9. List available software groups using yum grouplist

In yum, several related packages are grouped together in a specific group. Instead of searching and installing all the individual packages that belongs to a specific function, you can simply install the group, which will install all the packages that belongs to the group.

To view all the available software groups execute ‘yum grouplist’ as shown below. The output is listed in three groups–Installed Groups, Installed Language Groups and Available Groups.

# yum grouplist

Installed Groups:
Administration Tools
Base
Design Suite
….

Installed Language Groups:
Arabic Support [ar]
Armenian Support [hy]
Bengali Support [bn]
….

Available Groups:
Authoring and Publishing
Books and Guides
Clustering
DNS Name Server
Development Libraries
Development Tools
Directory Server
Dogtag Certificate System

10. Install a specific software group using yum groupinstall

To install specific software group, use groupinstall option as shown below. In the following example, ‘DNS Name Server’ group contains bind and bind-chroot.

# yum groupinstall ‘DNS Name Server’

Dependencies Resolved
Install       2 Package(s)
Is this ok [y/N]: y

Package(s) data still to download: 3.6 M
(1/2): bind-9.8.0-9.P4.fc15.x86_64.rpm             | 3.6 MB     00:15
(2/2): bind-chroot-9.8.0-9.P4.fc15.x86_64.rpm   |  69 kB     00:00
—————————————————————–
Total               235 kB/s | 3.6 MB     00:15

Installed:
bind-chroot.x86_64 32:9.8.0-9.P4.fc15

Dependency Installed:
bind.x86_64 32:9.8.0-9.P4.fc15

Complete!

Note: You can also install MySQL database using yum groupinstall as we discussed earlier.
11. Upgrade an existing software group using groupupdate

If you’ve already installed a software group using yum groupinstall, and would like to upgrade it to the latest version, use ‘yum groupupdate’ as shown below.

# yum groupupdate ‘Graphical Internet’

Dependencies Resolved
Upgrade       5 Package(s)
Is this ok [y/N]: y

Running Transaction
Updating   : evolution-data-server-3.0.2-1.fc15.x86_64     1/10
Updating   : evolution-3.0.2-3.fc15.x86_64                 2/10
Updating   : evolution-NetworkManager-3.0.2-3.fc15.x86_64  3/10
Updating   : evolution-help-3.0.2-3.fc15.noarch            4/10
Updating   : empathy-3.0.2-3.fc15.x86_64                   5/10
Cleanup    : evolution-NetworkManager-3.0.1-1.fc15.x86_64  6/10
Cleanup    : evolution-help-3.0.1-1.fc15.noarch            7/10
Cleanup    : evolution-3.0.1-1.fc15.x86_64                 8/10
Cleanup    : empathy-3.0.1-3.fc15.x86_64                   9/10
Cleanup    : evolution-data-server-3.0.1-1.fc15.x86_64     10/10

Complete!

12. Uninstall a software group using yum groupremove

To delete an existing software group use ‘yum groupremove’ as shown below.

# yum groupremove ‘DNS Name Server’
Dependencies Resolved
Remove        2 Package(s)
Is this ok [y/N]: y

Running Transaction
Erasing    : 32:bind-chroot-9.8.0-9.P4.fc15.x86_64  1/2
Erasing    : 32:bind-9.8.0-9.P4.fc15.x86_64            2/2

Complete!

13. Display your current yum repositories

All yum commands goes against one or more yum repositories. To view all the yum repositories that are configured in your system, do ‘yum repolist’ as shown below.

The following will display only the enabled repositories.

# yum repolist
repo id     repo name                        status
fedora      Fedora 15 – x86_64               24,085
updates     Fedora 15 – x86_64 – Updates     5,612

To display all the repositories (both enabled and disabled), use ‘yum repolist all’.

# yum repolist all
repo id                   repo name                                status
fedora                    Fedora 15 – x86_64                       enabled: 24,085
fedora-debuginfo          Fedora 15 – x86_64 – Debug               disabled
fedora-source             Fedora 15 – Source                       disabled
rawhide-debuginfo         Fedora – Rawhide – Debug                 disabled
rawhide-source            Fedora – Rawhide – Source                disabled
updates                   Fedora 15 – x86_64 – Updates             enabled:  5,612
updates-debuginfo         Fedora 15 – x86_64 – Updates – Debug     disabled
updates-source            Fedora 15 – Updates Source               disabled
updates-testing           Fedora 15 – x86_64 – Test Updates        disabled
updates-testing-debuginfo Fedora 15 – x86_64 – Test Updates Debug  disabled
updates-testing-source    Fedora 15 – Test Updates Source          disabled

To view only the disabled repositories, use ‘yum repositories disabled’.
14. Install from a disabled repositories using yum –enablerepo

By default yum installs only from the enabled repositories. For some reason if you like to install a package from a disabled repositories, use –enablerepo option in the ‘yum install’ as shown below.

# yum –enablerepo=fedora-source install vim-X11.x86_64
Dependencies Resolved
Install       1 Package(s)
Is this ok [y/N]: y

Running Transaction
Installing : 2:vim-X11-7.3.138-1.fc15.x86_64   1/1

Complete!

15. Execute yum commands interactively using Yum Shell

Yum provides the interactive shell to run multiple commands as shown below.

# yum shell
Setting up Yum Shell
> info samba.x86_64
Available Packages
Name        : samba
Arch        : x86_64
Epoch       : 1
Version     : 3.5.11
Release     : 71.fc15.1
Size        : 4.6 M
Repo        : updates
Summary     : Server and Client software to interoperate with Windows machines
URL         : http://www.samba.org/
License     : GPLv3+ and LGPLv3+
Description :
: Samba is the suite of programs by which a lot of PC-related
: machines share files, printers, and other information (such as
: lists of available files and printers). The Windows NT, OS/2, and
: Linux operating systems support this natively, and add-on packages
: can enable the same thing for DOS, Windows, VMS, UNIX of all
: kinds, MVS, and more. This package provides an SMB/CIFS server
: that can be used to provide network services to SMB/CIFS clients.
: Samba uses NetBIOS over TCP/IP (NetBT) protocols and does NOT
: need the NetBEUI (Microsoft Raw NetBIOS frame) protocol.

>

Yum can also read commands from a text file and execute it one by one. This is very helpful when you have multiple systems. Instead of executing the same command on all the systems, create a text file with those commands, and use ‘yum shell’ to execute those commands as shown below.

# cat yum_cmd.txt
repolist
info nfs-utils-lib.x86_64

# yum shell yum_cmd.txt
repo id     repo name                        status
fedora      Fedora 15 – x86_64               24,085
updates     Fedora 15 – x86_64 – Updates     5,612

Available Packages
Name        : nfs-utils-lib
Arch        : x86_64
Version     : 1.1.5
Release     : 5.fc15
Size        : 61 k
Repo        : fedora
Summary     : Network File System Support Library
URL         : http://www.citi.umich.edu/projects/nfsv4/linux/
License     : BSD
Description : Support libraries that are needed by the commands and
: daemons the nfs-utils rpm.

Leaving Shell

 

Howto disable the iptables firewall in Linux

Task: Disable / Turn off Linux Firewall (Red hat/CentOS/Fedora Core)

Type the following two commands (you must login as the root user):
# /etc/init.d/iptables save
# /etc/init.d/iptables stop

Task: Enable / Turn on Linux Firewall (Red hat/CentOS/Fedora Core)

Type the following command to turn on iptables firewall:
# /etc/init.d/iptables start

Other Linux distribution

If you are using other Linux distribution such as Debian / Ubuntu / Suse Linux etc, try following generic procedure.
Save firewall rules
# iptables-save > /root/firewall.rules
OR
$ sudo iptables-save > /root/firewall.rules
Now type the following commands (login as root):
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT

To restore or turn on firewall type the following command:
# iptables-restore < /root/firewall.rules

 

 

PORT FORWARDING with IPTABLES in LINUX

These are the Iptable rules required for port forwarding xxx.xxx.xxx.xxx:8888 to 192.168.0.2:80


/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx
–dport 8888 -j DNAT –to 192.168.0.2:80
/sbin/iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.2 –dport 80 -j ACCEPT
# iptables -t nat -L
Here rdp 75.144.218.185:13389 will forward to 192.168.1.5 port 3389 here 3389 is rdp port
/etc/sysconfig/iptables
-A PREROUTING -d 75.144.218.185 -i eth1 -p tcp -m tcp –dport 13389 -j DNAT –to-destination 192.168.1.5:3389
-A PREROUTING -d 75.144.218.185 -i eth1 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.1.5:8