Pages

Tuesday, December 14, 2010

Execute script at certain time

Cronjob used for automating script in certain continues period. For execute once at certain time we can use "at" command.

user@sabily:/etc/cron.weekly$ at -m 10:00 < /home/user/ftp.sh
warning: commands will be executed using /bin/sh
job 1 at Tue Dec 14 10:00:00 2010

Automating sftp with shell script

1. Create public key on local machine

ssh-keygen -t rsa

(just choose the default options. let the passphrase blank, or else you have to enter the passphrase everytime you login. this should generate /home/localuser/.ssh/id_rsa.pub)

2. Login to remote machine 
3. Create file /home/remoteuser/.ssh/authorized_keys (if .ssh folder doesn't exists then create it, and if authorized_keys file is exists then use it)
4. Copy the contents of id_rsa.pub on local machine to authorized_keys file on remote machine
    scp .ssh/id_rea.pub remotehost:.ssh/authorized_keys
5. Run ssh-add on local machine, then you can run: "sftp remoteuser@remotehost" without password

Monday, December 13, 2010

Avoid "Page Has Expired" Warnings

This problem occurs in my office's ticketing web application (using php). When switching back to previous page using back button of the browser, it displays a warning that page has expired. To obtain it, we have to press F5 in IE. In firefox always shows cofirmation box to resend the page.

Googling for the solutions, i found two references that useful:
http://support.microsoft.com/kb/183763
http://shiflett.org/articles/how-to-avoid-page-has-expired-warnings

I then change the php.ini configuration from:


session.cache_limiter = nocache

to:

session.cache_limiter = private

note:

lately known that this "private" option causes new problem, when clicking home the applications always prompt login form. well this is annoying.

I then set:

session.cache_limiter =

refs:
http://php.net/manual/en/function.session-cache-limiter.php
php.ini comments

Friday, November 26, 2010

These are the Hackers Most Popular All Time

Some do the hacking for the satisfaction only.


VIVAnews - In addition to regular Internet users, the virtual world is also filled by those who are referred to as hackers, called crackers or black hat hackers. Their penchant is to exploit a computer system and do what is referred to as cybercrime.
Some of them do it for pleasure and sense of curiosity alone, while others do it for personal profit. Here are some "black hack 'most popular hacker community.


Jonathan James

James suddenly popular name because he was the first person thrown into the courts because of hacking. While incarcerated, he was only 16 years old.
In an interview with private TV stations in the United States, he says, "I just play and see," said James, as quoted from ITSecurity, 16 November 2010. "The interesting challenge for me is what I can get if you succeed," he said.
James who became the target is top class organization. For example, he installed a backdoor on the server Defense Threat Reduction Agency (DTRA). The organization is one unit in the U.S. Defense Department in charge of reducing the threat against the United States and its allies from conventional weapons, special weapons, biological, chemical, up to nuclear.
Backdoor created by James enable view sensitive emails and retrieve data employee username and password.
James also managed to get into NASA computers and stole software worth a total of U.S. $ 1.7 million or about Rp15 billion.
According to the Justice Department, software that is stolen is a free physical environment supporting the International Space Station that controls temperature and humidity in the residence of the astronauts in space.
As a result, NASA was forced to shut down their computer systems and a loss of up to U.S. $ 41 thousand or Rp366 million. According to James, he downloads the software code to support them in learning the C programming language"The code itself is ugly, indecent, valued at U.S. $ 1.7 million as claimed to NASA," said James.
Looking at the crimes committed, if only James or known by the name c0mrade in cyberspace that has grown old, he would be punished at least 10 years in prison.Because underage, he only sentenced prohibited from using computers and be under house arrest for six months with the experiment. However, since he violated the punishment, he was jailed for 6 months.
Currently, James admitted that he had converted, will not commit similar crimes and plans to establish a security company.


Adrian Lamo


Lamo popular because he managed to infiltrate the New York Times and Microsoft.Dubbed the "homeless hacker" because he used computers in public places like coffee shops and libraries to launch attacks.
Infiltration by Lamo is generally a penetration experiment through a security hole that he found, exploit it, then spread around the company that he infiltrated the existing gap. He also had time to infiltrate into Yahoo, Bank of America, Citigroup, and Cingular.
If a white hacker company hired to perform penetration testing, it is legal. However, do not Lamo. When he entered the New York Times intranet, he saw the personal information of contributors, including Social Security number. Lamo also go into the newspaper's LexisNexis account and steal confidential information.
As a result, he was fined U.S. $ 65 thousand, under house arrest for 6 months to two years probation. After his sentence ended, he worked as a journalist and speaker at various events.


Kevin Mitnick

Mitnick was known when he was sought after by the authorities. Its practices heavily publicized in the media even though the crime which he did in fact not very significant.
Even so, the Justice Department declared that Mitnick is: "The most wanted computer criminal in United States history." Even the exploitation was doing made into two films namely Freedom Downtime and Takedwon.
Mitnick had a number of hacking experience before committing crimes that made him popular. He begins by breaking into the network card of mass transportation in Los Angeles to get a free bus ride.
After that, he cheated telephone billing. Although other crimes, Mitnick was ultimately arrested for through the Digital Equipment Corporation's computer network and stealing software.
Mitnick's behavior is getting worse after he was hacking from around the country for two half years. In an article titled 'legendary computer hacker who got out of jail' on CNN, said that Mitnick is often entered into the computer network, steal company secrets, disrupt the phone network and into the early warning system state.
Now Mitnick had abandoned his past as a black hat hacker and become active members in the community. Had imprisoned for 5 years, 8 months with them locked up in isolation cells, Mitnick is now working as a computer security consultant, author and speaker.


Source: http://teknologi.vivanews.com/news/read/189141-black-hat-hacker-terpopuler-sepanjang-masa

Enable remote access to mysql

There are three steps to do:
First, edit my.cnf:

[mysqld] 
Make sure line skip-networking is commented (or remove line) and add following line
bind-address=YOUR-SERVER-IP
For example, if your MySQL server IP is 65.55.55.2 then entire block should be look like as follows:
[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 65.55.55.2
# skip-networking
....
..
....
Where,
  • bind-address : IP address to bind to.
  • skip-networking : Don’t listen for TCP/IP connections at all. All interaction with mysqld must be made via Unix sockets. This option is highly recommended for systems where only local requests are allowed. Since you need to allow remote connection this line should be removed from my.cnf or put it in comment state.

Second, grant access right to remote user

If you want to add a new database called foo for user bar and remote IP 202.54.10.20 then you need to type the following commands at mysql> prompt:mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD';

How Do I Grant Access To An Existing Database?

Let us assume that you are always making connection from remote IP called 202.54.10.20 for database called webdb for user webadmin, To grant access to this IP address type the following command At mysql> prompt for existing database, enter:
mysql> update db set Host='202.54.10.20' where Db='webdb';
mysql> update user set Host='202.54.10.20' where user='webadmin';
Third, open firewall ports (go to firewall note)


source: http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

Reinitializing the root password of MySQL

It's important that you are able to access and modify the admin (root) password of MYSQL, either when installing MySQL for the first time or in situations where the master password is lost. 

The root password is lost!

To be able to modify the existing root password, you must firstly be connected to it. If you know the root password and just want to reinitialize it, you can skip this part. In the case that you donâ€(TM)t have the root password then follow the steps below. 
It s is possible to bypass the authentication process and to access MySQL:

  • Stop the MySQL server.
    • #/etc/init.d/mysql stop
  • Restart MySQL, disabling network communication and skipping the authentication procedure.
    • #mysqld --skip-grant-tables --skip-networking &

Reinitializing the password:

  • Get connected to the system database (mysql) of MySQL:
    • # mysql mysql -u root
  • Type in the following command and reset your password
    • UPDATE user SET password=PASSWORD('newpassword') WHERE user="root";
  • If you didn't go through the first step, to validate the changes simply type:
    • FLUSH PRIVILEGES;
  • If you started MySQL manually(bypassing the authentication process), the server must be restarted:
    • #/etc/init.d/mysql restart

source: http://en.kioskea.net/faq/630-reinitializing-the-root-password-of-mysql

Thursday, November 25, 2010

3 Steps to Hack Windows Password with Ubuntu

Jakarta - Lost is a common problem faced by humans. If you forget your Windows login password, no way to recover it using the Ubuntu Linux operating system.

The first thing to do is create a Live CD or Live USB stick Ubuntu Linux. Ubuntu Live will be used to boot into the system and perform the procedures required to dismantle the Windows password earlier.
The easiest way to do that is by downloading and running UNetbootin. This simple application will download the selected Ubuntu version and install on the flash that you prepared.
The second stage is to install Open Source utility called chntpw. This is done from Ubuntu by running Synaptic Package Manager.

To be able to get chntpw, Synaptic Package Manager should be directed to look at storage applications Universe. This can be done by clicking the Settings menu> Repositories in Synaptic window. Then, check the option 'Community-maintained Open Source software (universe) "and click Close.
After that, click the Reload button and Synaptic will download the latest package information from the Universe. When finished, type chntpw on the Quick Search box.
If it appears, check the box on the side chnptw writing, choose 'Mark for Installation'.Then click Apply to install it.
The third stage is to change the Windows password with chntpw.

1. Mount the hard disk / drive that contains your Windows installation
2. Open the hard drive it (click on Places) and record labels drive that appears on the menu bar window file browser
3. Open a Terminal window (Applications> Accessories> Terminal)
4. Type the following command in Terminal:cd / medials
5. Type: cd [label hard drive that you noted earlier]
6. type: cd WINDOWS/system32/config
7. To change the Administrator password, type the command: sudo chntpw SAM
8. Will appear a few commands you can choose, the command is safest to create a password to be blank. Do this by pressing the number '1 ', then press' y' to confirm
9. Select '2 'to change the password to a particular word, but this has a greater risk of error
10. To change the passwords of other users (non-administrator), type the following command (from Terminal): sudo chntpw-u [user name] SAM


source: http://www.detikinet.com/read/2010/10/13/141552/1463843/510/3-tahap-membuka-password-windows-dengan-ubuntu/

Wednesday, November 24, 2010

Installing Gammu from source on Linux

In this example, i use gammu-1.28.0.tar.gz on Ubuntu.
  1. Install 3rd party services module. For mysql, install libmysqlclient15-dev.
  2. extract gammu.tar.gz to /opt/src/gammu and goto this folder
  3. mkdir build, and cd build
  4. cmake .. -DWITH_NOKIA_SUPPORT=OFF -DWITH_BLUETOOTH=OFF -DWITH_IRDA=OFF 
  5. make
  6. make install
note:
gammu is here

    Monday, November 22, 2010

    Compile Kernel Centos 5.5

    This is how i compile kernel 2.6.36 on Centos 5.5:
    1. Backup /boot & /usr/src/kernels
    2. Download kernel 2.6.36 and extract on /usr/src/kernels
    3. Download patch and run bzip2 -dc /usr/src/patch-2.6.36.bz2 | patch -p1 --dry-run
    4. cd /usr/src/kernels/2.6.36
    5. make clean && make mrproper
    6. make menuconfig
    7. name it -basic1 on General Setup > Local Version
    8. Set the option and save to config-2.6.36-basic1, then exit and save
    9. cp /boot/config-2.6.36-basic1 .config
    10. vi .config and set CONFIG_SYSFS_DEPRECATED_V2=y
    11. make rpm
    12. cd /usr/src/redhat/SRPMS
    13. rpm -ivh kernel-2.6.36basic1-1.src.rpm
    14. cd /usr/src/redhat/RPMS/x86_64/
    15. rpm -ivh kernel-2.6.36basic1-1.x86_64.rpm
    16. mkinitrd /boot/initrd-2.6.36-basic1.img 2.6.36-basic1
    17. vi /boot/grub/menu.lst and set the vmlinuz & initrd of the new kernel
    18. reboot


    ref: 
    http://www.howtoforge.com/kernel_compilation_centos
    http://forum.linux.or.id/viewtopic.php?f=41&t=6299&start=0
    http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

    note:
    Actually this compilation result is not stable, so i use kernel-2.3.18-194.26.1.el5.
    I ran: yum install kernel kernel-headers kernel-devel
    and the rest is yum's business...

    Single-line sftp command

    This trick ussually needed at automation process.
    There are several alternatives:

    Create this file:
    #!/usr/local/bin/expect
    spawn  sftp  -b cmdFile user@yourserver.com
    expect "password:"
    send "shhh!\n";
    interact
    This will spawn sftp in batch mode and pass in the password shhh! to the program. SFTP will than execute all the commads in cmdFile

    cmdFile:
    lcd /home/ftp/test
    cd /home/ftp/somedir
    mput *.dat
    lcd /home/recieving
    cd /home/someotherdir
    mget *.dat
    • ssh public key 
    • using specific tools

    Turn off SELinux


    Turning off SELinux temporarily

    Disabling SELinux temporarily is the easiest way to determine if the problem you are experiencing is related to your SELinux settings. To turn it off, you will need to become the root users on your system and execute the following command:
    echo 0 > /selinux/enforce
    This temporarily turns off SELinux until it is either re-enabled or the system is rebooted. To turn it back on you simply execute this command:
    echo 1 > /selinux/enforce
    As you can see from these commands what you are doing is setting the file /selinux/enforce to either '1' or '0' to denote 'true' and 'false'.

    Configuring SELinux to log warnings instead of block

    You can also configure SELinux to give you a warning message instead of actually prohibiting the action. This known as permissive mode. To change SELinux's behavior to permissive mode you need to edit the configuration file. On Fedora and RHEL systems that file is located at /etc/selinux/config. You need to change the SELINUX option to permissive like so:
    SELINUX=permissive
    Note that these changes will not take effect until the system is rebooted, which is why the first section comes in handy on a system you either cannot or do not want to reboot right now.

    Completely turning off SELinux

    To completely disable SELinux instead of setting the configuration file to permissive mode you set it to disabled like:
    SELINUX=disabled
    You will need to reboot your system or temporarily set SELinux to non-enforcing mode to create the desired effect like the example above.

    source: http://www.revsys.com/writings/quicktips/turn-off-selinux.html

    Thursday, November 18, 2010

    Dell & Open Souce

    This link might be useful if you run OSS on Dell Server:

    • http://linux.dell.com
    • http://www.delltechcenter.com/

    Dell OpenManage on Centos 5.x

    Dell OpenManage Server Administrator (OMSA) is a suite of tools provided by Dell for managing an individual server. Dell provides a Windows installation tool set on their support website but information pertaining to the installation on non-supported Dell operating systems (e.g. CentOS, Fedora) is a little hard to find.
    If your running Dell branded servers with CentOS 5.x and need to install the current version of Dell OpenManage and OpenIPMI, the following script will automate the process.
    1. Login to your server.
    2. cd /usr/src
    3. nano -w dellomi.sh
    4. Cut and paste the following text:
    #!/bin/bash
    #
    # Dell OpenIPMI & OpenManage Installer (m)
    # Revision: 030609-1
    #
    HOST=`hostname`
    D=`date '+%d%m%y'`
    echo
    echo "Dell OpenIPMI & OpenManage Automatic Installer"
    echo "Revision: 030609 m"
    echo
    echo "Installing Dell Yum Repository..."
    echo
    wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash
    echo
    echo "Dell Repository Install Complete!"
    echo
    echo "Installing Dell Server Administrator..."
    echo
    yum -y install srvadmin-all
    echo
    echo "Dell Server Administrator Install Complete!"
    echo
    echo "Starting Dell IPMI Services..."
    echo
    /opt/dell/srvadmin/sbin/srvadmin-services.sh start
    echo
    echo "Dell OpenIPMI & Dell OpenManage Install Complete!"
    echo
    echo "Please go to https://$HOST:1311 in order to access Dell OpenManage."
    echo
    5. Save and exit nano (CTRL+X the Y to Save then exit)
    6. Run the script: sh dellomi.sh
    7. Once the script has complete you will be able to login to Dell OpenManage at https://your-server:1311 with your root username and password.
    For more information on Dell's Open Source initiatives click here.

    Wednesday, November 17, 2010

    Install Centos 5.5 on Dell PowerEdge R910 Rack Server

    This server is the highest specification i ever touch. Here's it:

    • Four Processor @ Eight-Core Intel Xeon
    • 112 GB Total RAM
    • Four Hardisk @ 146 GB
    • Integrated RAID Controller
    • OpenManage Dell Management Console

    More on: http://www.dell.com/us/en/enterprise/servers/poweredge-r910/pd.aspx?refid=poweredge-r910&cs=555&s=biz

    Although Centos 5.5 is not officially supported, i encourage myself to install it because it's brother, RHEL 5.5, is supported. Well i hope i'm lucky.

    These are the steps:
    1. First thing i do is configure the BIOS.
    2. At first boot screen press F10 for Sistem Services. With this, you can find detailed information about the system, and there also menu for deploying OS, and several more.
    3. Entering OS deployment menu, i found several OS lists that supported by this system. 
    4. I choose RHEL 5.5, the system shows warning because the DVD is not match. I bypass this, and .. ups, it hangs the system.
    5. Then i rebooted and repeat steps 1-3, and choose another OS. It then rebooted the machine for manual installation.
    6. I skip the first boot menu, and after responding F1 the installation process begins. 
    7. Like ussual Centos installation, firstly it shows Centos installation option. I just enter the default one.
    8. On the partioning phase, i choose custom layout.
    9. Surprisingly the four-hardisk are joined on sda devices with its cummulative size 146 x 4 = 600 GB. I think this caused by RAID5, this machine's default setting. And there's 2G partition on vfat, i guess this is used by Dell System Services. I let it be that way for the current partition setting, and customize the rest 435 GB free space.
    10. I then created new /boot partition with 300 MB size and set to primary partition.
    11. Then i created LVM partition for the rest.
    12. I configure LVM partition with these setting: / 50 G; /home 200 G; /var 160 G; swap 5 G
    13. The format and install steps takes about 1 hour. Quite fast i assume.
    14. After rebooting with the fresh-installed Centos 5.5, i then try to install Dell OpenManage.
    15. to be continued..

    Friday, November 12, 2010

    Configure Service to Autostart at Booting

    Apache 1.3.42 on Centos 5.5:

    • cp /opt/apache/bin/apachectl /etc/init.d/apachectl
    This makes the script can be run by command "service apachectl start".
    • ln -s /etc/init.d/apachectl /etc/rc3.d/S56apachectl 
    Keyword "S" makes the script executed at boot process. 
    rc3.d means executed on command-line mode, and for GUI it should be rc5.d.

    Open Specific Port with iptables

    Here's the example steps:


    open port 8000:
    iptables -I INPUT -p tcp --dport 8000 -j ACCEPT 


    save new configuration. if don't, the port will return closed where iptables restarted:
    service iptables save 


    A sample iptables rule to open Linux iptables firewall
    /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT


    OR only allow remote connection from your web server located at 10.5.1.3:
    /sbin/iptables -A INPUT -i eth0 -s 10.5.1.3 -p tcp --destination-port 3306 -j ACCEPT


    OR only allow remote connection from your lan subnet 192.168.1.0/24:
    /sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT


    test it: 
    $ telnet 65.55.55.2 3306


    note:
    if the above steps doesn't work try this..

    /sbin/iptables -I INPUT -p tcp -s 202.1.9.17 --dport 5434 -j ACCEPT
    [user@server ~]$ sudo /etc/init.d/iptables save
    Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]




    ref: 

    Monday, November 8, 2010

    Install Apache-PHP 4 on Centos 5.5

    I have a project to migrate a server to a new machine. Currently using Centos 4.6 with services like: php4, postgresql, mysql, etc.
    Since version 5, Centos is not including php4 packet in their distribution. So i have 2 choice:

    1. keeping the current OS version and update the kernel
    2. use the latest OS version and install php4 manually
    My friend suggest option #2. I tried that and well done!!
    Here's the steps:
    1. Download php-4.4.9 and apache-1.3.42
    2. Install apache, this should be easy.
    3. Install php, this is the main challenge. the detail is next..
    4. i'd use these modules: mysql, pgsql, gd. Then i installs devel packet of each modules.
    5. It looks like gd requires zlib, jpeg, and png.. si i installed those packets with the devel parts.
    6. Then i configure php
    7. ./configure --with-mysql --with-apxs=/opt/apache/bin/apxs --with-pgsql=/usr/lib/pgsql/ --with-gd --with-jpeg-dir --with-zlib-dir --with-png-dir
    8. make
    9. make install
    10. set "LoadModule php4_module libexec/libphp4.so" on httpd.conf
    11. start apache
    12. Done

    [root@vmware php-4.4.9]# make install
    Installing PHP SAPI module: apache
    [activating module `php4' in /opt/apache/conf/httpd.conf]
    cp libs/libphp4.so /opt/apache/libexec/libphp4.so
    chmod 755 /opt/apache/libexec/libphp4.so
    cp /opt/apache/conf/httpd.conf /opt/apache/conf/httpd.conf.bak
    cp /opt/apache/conf/httpd.conf.new /opt/apache/conf/httpd.conf
    rm /opt/apache/conf/httpd.conf.new
    Installing PHP CLI binary: /usr/local/bin/
    Installing PHP CLI man page: /usr/local/man/man1/
    Installing PEAR environment: /usr/local/lib/php/
    [PEAR] Archive_Tar - installed: 1.3.2
    [PEAR] Console_Getopt - installed: 1.2.1
    [PEAR] HTML_Template_IT- installed: 1.1
    [PEAR] Net_UserAgent_Detect- installed: 2.0.1
    warning: pear/PEAR requires package "pear/Structures_Graph" (recommended version 1.0.2)
    pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0)
    [PEAR] PEAR - installed: 1.5.0
    Wrote PEAR system config file at: /usr/local/etc/pear.conf
    You may want to add: /usr/local/lib/php to your php.ini include_path
    [PEAR] Structures_Graph- installed: 1.0.2
    Installing build environment: /usr/local/lib/php/build/
    Installing header files: /usr/local/include/php/
    Installing helper programs: /usr/local/bin/
    program: phpize
    program: php-config
    Installing man pages: /usr/local/man/man1/
    page: phpize.1
    page: php-config.1

    Install Centos 5.5 using Software RAID

    Yesterday i've done my project installing Centos with Software RAID. I choose RAID 1 to make things easier for newbie. I didn't install LVM because i think the hardisk capacity is enough for the next 2 years, but i'm planning to install LVM on the fly.. can it?
    Here's some reference:

    1. http://en.wikipedia.org/wiki/RAID 
    2. http://dennytobing.wordpress.com/2010/09/18/cara-menginstall-centos-lengkap-dengan-raid-1-dan-lvm/ (good tutorial in indonesian)
    3. http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-raid-config.html
    4. http://www.linuxtopia.org/online_books/centos5/centos5_administration_guide/centos5_s1-raid-levels.html
    5. http://mymcp.blogspot.com/2009/07/creating-raid-5-array-in-software-on.html
    6. http://wiki.centos.org/HowTos/SoftwareRAIDonCentOS5 (i combine this tutorial with #2)
    7. http://sulistyawan.wordpress.com/2009/06/19/raid-1-vs-raid-5-which-one-better/ (quite detail comparation of RAID level)
    8. http://yonaldi.wordpress.com/2009/08/28/how-to-change-the-timezone-in-linux/ (setting timezone using UTC is not that instant in my case)
    9. http://wiki.centos.org/TipsAndTricks/NTFS (Centos 5.5 can't read NTFS?)
    10. http://forums.spry.com/centos-fedora-redhat/98-change-ssh-port.html (Changing sshd port to gain NAT access from used line)
    11. http://forums.spry.com/centos-fedora-redhat/98-change-ssh-port.html (iptables tutorial)
    12. http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables
    13. http://techgurulive.com/2009/02/23/how-to-configure-ports-and-protocols-in-iptables/