Kamis, 26 September 2013

Mikrotik Router Protection

Misalnya saja jaringan local kita memiliki kelas ip 192.168.0.0/24, dan interface WAN disebut ether1, kita membuat firewall yang membolehkan koneksi yang menuju server dan mendrop /blocking sisanya. Kita juga akan memperbolehkan protokol ICMP yang dengan itu orang bisa melakukan ping ke jaringan kita lewat internet (meskipun ada baiknya di tutup dari jaringan lain / di allow hanya untuk beberapa ip yang kita percayai)

/ip firewall filter
add chain=input connection-state=invalid action=drop comment="Drop Invalid connections"

add chain=input connection-state=established action=accept comment="Allow Established connections"

add chain=input protocol=icmp action=accept comment="Allow ICMP"
add chain=input src-address=192.168.0.0/24 action=accept in-interface=!ether1
add chain=input action=drop comment="Drop everything else"

Memproteksi Kustomer

Untuk memproteksi jaringan customer /client kita harus melakukan chek pada semua trafik yang melewati router dan memblok yang tidak di inginkan, untuk icmp, tcp, dan udp trafik kita akan membuat chains, yang mana chain itu akan men-drop semua paket yang tidak di inginkan.

/ip firewall filter
add chain=forward protocol=tcp connection-state=invalid action=drop comment="drop invalid connections"

add chain=forward connection-state=established action=accept comment="allow already established connections"

add chain=forward connection-state=related action=accept comment="allow related connections"

Block Bogon IP ADDRESS pada Mikrotik

/ip firewall filter
add chain=forward src-address=0.0.0.0/8 action=drop 
add chain=forward dst-address=0.0.0.0/8 action=drop 
add chain=forward src-address=127.0.0.0/8 action=drop
add chain=forward dst-address=127.0.0.0/8 action=drop
add chain=forward src-address=224.0.0.0/3 action=drop
add chain=forward dst-address=224.0.0.0/3 action=drop

Buat JUMP ke chain yang baru Mikrotik

/ip firewall filter 
add chain=forward protocol=tcp action=jump jump-target=tcp 
add chain=forward protocol=udp action=jump jump-target=udp 
add chain=forward protocol=icmp action=jump jump-target=icmp

Buat TCP CHAIN untuk men- DENY tcp port yang tidak perlu pada Mikrotik

/ip firewall filter 
add chain=tcp protocol=tcp dst-port=69 action=drop comment="deny TFTP"
add chain=tcp protocol=tcp dst-port=111 action=drop comment="deny RPC portmapper"
add chain=tcp protocol=tcp dst-port=135 action=drop comment="deny RPC portmapper"
add chain=tcp protocol=tcp dst-port=137-139 action=drop comment="deny NBT"
add chain=tcp protocol=tcp dst-port=445 action=drop comment="deny cifs"
add chain=tcp protocol=tcp dst-port=2049 action=drop comment="deny NFS"
add chain=tcp protocol=tcp dst-port=12345-12346 action=drop comment="deny NetBus"
add chain=tcp protocol=tcp dst-port=20034 action=drop comment="deny NetBus"
add chain=tcp protocol=tcp dst-port=3133 action=drop comment="deny BackOriffice"
add chain=tcp protocol=tcp dst-port=67-68 action=drop comment="deny DHCP"

Deny UDP PORT di dalam UDP CHAIN

add chain=udp protocol=udp dst-port=69 action=drop comment="deny TFTP"
add chain=udp protocol=udp dst-port=111 action=drop comment="deny PRC portmapper"
add chain=udp protocol=udp dst-port=135 action=drop comment="deny PRC portmapper"
add chain=udp protocol=udp dst-port=137-139 action=drop comment="deny NBT"
add chain=udp protocol=udp dst-port=2049 action=drop comment="deny NFS"
add chain=udp protocol=udp dst-port=3133 action=drop comment="deny BackOriffice"

Allow ICMP yang dibutuhkan didalam chain ICMP

add chain=icmp protocol=icmp icmp-options=0:0 action=accept comment="echo reply"
add chain=icmp protocol=icmp icmp-options=3:0 action=accept comment="net unreachable"
add chain=icmp protocol=icmp icmp-options=3:1 action=accept comment="host unreachable"
add chain=icmp protocol=icmp icmp-options=4:0 action=accept comment="allow source quench"
add chain=icmp protocol=icmp icmp-options=8:0 action=accept comment="allow echo request"
add chain=icmp protocol=icmp icmp-options=11:0 action=accept comment="allow time exceed"
add chain=icmp protocol=icmp icmp-options=12:0 action=accept comment="allow parameter bad"
add chain=icmp action=drop comment="deny all other types" 

#http://www.jasasettingmikrotik.web.id/2011/02/mikrotik-router-protection.html

Kamis, 16 September 2010

Setup Nagios (NMS) om FEDORA

1- First install some tools : httpd, gcc, glib, glibc-common, gd and gd-devel

yum install httpd
yum install gcc
yum install glibc glibc-common
yum install gd gd-devel
 

2- Create nagios user :

#/usr/sbin/useradd -m nagios
#passwd nagios

3- Add nagcmd group

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache

4- Now go to http://www.nagios.org download files .

nagios-3.1.0.tar.gz nagios-plugins-1.4.13.tar.gz nrpe-2.12.tar.gz

tar  -zxvf  nagios-3.1.0.tar.gz  
cd  nagios-3.1.0
./configure --with-command-group=nagcmd
 #make all; make install; make install-init; make install-config; make install-commandmode; make install-webconf

5- Edit your email admin address :

Go to

vi /usr/local/nagios/etc/objects/contacts.cfg

6- Create a nagiosadmin account for logging into the Nagios web interfaceassign to this you’ll need it later.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

enter the password.

7- Restart the httpd server :

#Service  httpd   restart

The second step : Extract and install plugins

1- Go to you downloaded nagios tools

 tar  -zxvf   nagios-plugins-1.4.13.tar.gz

2- cd nagios-plugins

./configure --with-nagios-user=nagios --with-nagios-group=nagios
make; make   install

3- Now you have to add nagios to Chkconfig

chkconfig --add nagios
chkconfig nagios on

4- Verify if you have a good config of nagios with the command

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

5- Check if there are no errors displayed; then start nagios with command :

service  nagios  start

To simplify the procesure please disable the selinux and iptables and ip6tables

now open your browser and http://localhost/nagios orr http://ip/nagios

Selasa, 10 Agustus 2010

Reset Factory Default Cisco (SOHO & 2600 Series)

Jika sedang tugas lapangan, kadang sering harus berurusan dengan router propietary yang sebelumnya dipegang aksesnya oleh orang lain, lalu dilimpahkan tanpa dikasih tau login passwordnya. Seperti beberapa hari yang lalu saya mendapatkan 2 mesin Cisco (SOHO91 & 2600 Series) yang tidak tau login passwordnya. Setelah bertanya ke sana kemari, ternyata caranya adalah sebagai berikut:

  • Akses ke mesin Cisco dengan kabel console, lalu pada saat booting tekan tombol ctrl + break, hingga muncul prompt:
    rommon 1 > _

  • Pada prompt tersebut isikan confreg 0x2142, dilanjutkan dengan perintah reset seperti di bawah ini:

    rommon 1 > confreg 0x2142
    rommon 2 > reset

    Setiap kali kita mengisikan perintah dan menekan enter, maka index pada prompt akan bertambah.

  • Jika berhasil, maka proses booting akan muncul seperti:
    System Bootstrap, Version 12.2(8r) [cmong 8r], RELEASE SOFTWARE (fc1)
    Copyright (c) 2003 by cisco Systems, Inc.
    C2600 platform with 131072 Kbytes of main memory

    .............

    --- System Configuration Dialog ---

    Would you like to enter the initial configuration dialog? [yes/no]:


    Ketik no dan tekan enter, maka kita akan langsung masuk ke prompt Cisco tanpa ada password, dan setting sebelumnya sudah hilang.

Kamis, 11 Maret 2010

Check mailbox size of all accounts in Zimbra mail server

Buat File dengan isi Scrip di bawah ini :

################
#!/bin/bash
all_account=`zmprov gaa`;
for account in ${all_account}
do
mb_size=`zmmailbox -z -m ${account} gms`;
echo "Mailbox size of ${account} = ${mb_size}";
done
##############

misal nya : checkmailsize.sh

# chmod 755

untuk menjalankan nya

# ./checkmailsize.sh


Kamis, 11 Februari 2010

Automating Cisco Router Backups

Automating Cisco Router Backups


tep 1: Download and install rancid.
——————————————————————–

For additional information on rancid’s complete functionality see the following site.

http://www.shrubbery.net/rancid/

Install rancid, build-essential, and expect.

Code:
sudo apt-get install rancid-core rancid-util build-essential expect

Step 2: Create .cloginrc file in the rancid directory.
——————————————————————–

Opend a terminal and type the following.

Code:
sudo gedit /var/lib/rancid/.cloginrc

Add entries for each router, switch, pix firewall you’d like to backup by using the following format.

Code:
add password    IPADDRESS       {telnetpassword}      {enablepassword}

IPADDRESS = the actual ip address of the device you want to backup.
telnetpassword = the actual telnet password for the device you want to backup.
enablepassword = the actual enable password for the device you want to backup.

The “{}” are required. At the bottom of the .clogin add the following line if you require SSH access to your equipment.

Code:
add method     *    telnet ssh

With this clogin will first try to telnet then ssh to your equipment.

Step 3: Protect the .cloginrc file.
——————————————————————–

Code:
sudo chmod 640 /var/lib/rancid/.cloginrc

Step 4: Create a backup directory for backup configs.
——————————————————————–

Code:
sudo mkdir /var/lib/rancid/backups/

Step 5: Change ownership of the /usr/lib/rancid/backups/ directory.
——————————————————————–

Code:
sudo chown -R rancid.rancid /var/lib/rancid/backups/

Step 6: Change permissions to the rancid directory.
——————————————————————–

Code:
sudo chmod 770 /var/lib/rancid/

Step 7: Set password for rancid account
——————————————————————–

Code:
sudo passwd rancid

Step 8: Test .cloginrc
——————————————————————–

As the user rancid test accessing your equipment.

Code:
su rancid

Now using once of the network devices that you’ve put in the .cloginrc for rancid type the following in the open terminal.

Code:
/usr/lib/rancid/bin/clogin  IPADDESSOFDEVICE

You should see the clogin telnet (or ssh) to the device in question and switch to enable mode on the device. If everything works the proceed on to step 8. Otherwise take a look at your /var/lib/rancid/.cloginrc .


Step 9: Test grabing a backup config from the same device.

——————————————————————–

As rancid run the following test to make sure that you have everything setup correctly.

Code:
/usr/lib/rancid/bin/clogin  -c 'write term' IPADDESSOFDEVICE > /var/lib/rancid/backups/test.cfg

Verify the output:

Code:
less /var/lib/rancid/backups/test.cfg

If everthing checks out move on to step 10.

Step 10: Create the bash script for the backups
——————————————————————–

Here’s a sample script for you to copy and paste into a file (i.e. network_device_backup.sh) and to tweak, add, or change for your needs. But save the script somewhere the rancid user can access and execute the script from (i.e./var/lib/rancid/). If you are planning on backing up a various types of routers, switches, firewalls etc you may want to create serveral differnet scripts.

Code:
#!/bin/bash
# Variables

clogin=/usr/lib/rancid/bin/clogin
path=/var/lib/rancid/backups/
tdy=`date +%m%d%Y`

#backup network device

$clogin -c 'write term' 192.168.0.1 > $path/foo-$tdy.cfg

NOTE: When rancid is installed the default shell for the rancid user is csh. So for the script above to work the “#!/bin/bash’ is needed.

Step 11: Make the script executable to rancid.
——————————————————————–

Code:
sudo chmod 700 /path/to/script

Step 12: Test the backup script.
——————————————————————–

Test your script logged in as rancid.

Code:
su rancid

Now from wherever you put the backup script verify that it works before adding it as a cron job. For this example I’m going to use the following location /var/lib/rancid/.scripts/routers.sh with the output path being /var/lib/rancid/backups/.

Code:
 ./var/lib/rancid/.scripts/routers.sh

verify the config file that was generated to the output path you specified.

Code:
less /var/lib/rancid/backups/foo-12202005.cfg

Step 13: Add script to CRON.
——————————————————————–

As rancid add your script to CRONTAB.

Code:
su rancid

Now add an entry for your script.

Code:
crontab -e

To backup your equipment every Friday at 5pm should look like…

0 17 * * 5 /var/lib/rancid/.scripts/routers.sh >/dev/null 2>&1

Save the entry (crtl+x).

Verify the entry in crontab is correct.

Code:
crontab -l

For more infor on CRONTAB see the following post.
http://ubuntuforums.org/showthread.php?t=102626

Jumat, 29 Agustus 2008

Otomatisasi firewalling IP dan MAC Address dengan bash script

Bagaimana jika client kita berjumlah banyak, puluhan atau ratusan. Yang terpenting adalah, kita mempunyai daftar IP Address dan MAC Address client yang terhubung. Dengan menggunakan sedikit baris bash script sederhana, kita dapat membuat otomatisasinya.
Berikut langkah-langkahnya :

1. Buat file bernama rc.iplock didalam directory /etc/rc.d/ dengan isi sebagai berikut :

#!/bin/bash
# Bash script Lock IP Address dan MAC Address
iptables="/sbin/iptables" #path ke iptables
files="/etc/rc.d/list.txt" #path ke list IP Address dan MAC Address
device="eth1" #ethernet devices ke client
lockall="yes" #yes|no ,yes jika mendaftarkan semua IP & MAC Address
#jika tidak, tulis no.
#yes untuk metode pertama, no untuk metode kedua


if [ $lockall = "yes" ]; then
$iptables -I PREROUTING -t nat -i $device -j DROP
cat $files | while read ip_address mac_address; do
$iptables -I PREROUTING -t nat -i $devices -s $ip_address
-m mac --mac-source $mac_address -j ACCEPT
$iptables -I FORWARD -i $device -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
$iptables -I PREROUTING -t nat -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
done
elif [ $lockall = "no" ]; then
$iptables -I PREROUTING -t nat -i $device -j ACCEPT
cat $files | while read ip_address mac_address; do
$iptables -I FORWARD -i $device -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
$iptables -I PREROUTING -t nat -s ! $ip_address
-m mac --mac-source $mac_address -j DROP
done
fi

echo "Locking IP Address and Mac Address..."
#end script


2. Buat file bernama list.txt didalam directory /etc/rc.d/ dengan format penulisan sebagai berikut :



Peringatan!! Jangan tambahkan baris apapun atau kalimat apapun selain format diatas!

Contoh isi file /etc/rc.d/list.txt untuk 3 client:

192.168.1.5 00:89:CD:64:01:EF
192.168.1.20 00:90:DD:14:11:CF
192.168.1.14 00:40:EE:21:26:GE


3. Set file rc.iplock agar dapat di eksekusi :

chmod +x /etc/rc.d/rc.iplock


4. Tambahkan didalam file /etc/rc.d/rc.local agar dapat di eksekusi pada saat start up :

/etc/rc.d/rc.iplock


5. Jalankan :

/etc/rc.d/rc.iplock

6. Selesai! Selamat Anda dapat bintang =P

Firewalling IP Address dan MAC Address dengan iptables

Kadang kita sebagai administrator suatu jaringan sangat dipusingkan dengan beberapa client "nakal" yang suka berganti-ganti IP Address. Padahal sebelumnya suatu IP Address tertentu dari client sudah kita blok aksesnya untuk jam-jam tertentu, atau kita blok untuk mengakses suatu situs tertentu.
Mungkin sedikit yang bisa saya berikan disini adalah, bagaimana kita dapat mengatasi "kenakalan" client-client tersebut agar tidak bisa mengganti IP Address mereka secara "enaknya saja". Saya harapkan Anda paling tidak sudah tahu apa itu IP Address dan apa itu MAC Address.

Keuntungan dan kerugian :

  • Keuntungan yang didapatkan adalah, kita dapat dengan mudah memonitor "pergerakan" client dan melakukan logging untuk administrasi jaringan atau analisa-analisa lain yang diperlukan, karena client tidak dapat melakukan perubahan IP Address.
  • Kerugian, seandainya saja interface hardware milik client mengalami kerusakan dan melakukan pergantian, kita harus melakukan konfigurasi ulang rules firewall kita berdasarkan MAC Address yang baru. Tapi kerusakan ini sangat jarang terjadi.


Ada 2 metode yang saya gunakan disini dan dapat rekan-rekan sekalian pilih salah satunya, yaitu :

  • Pertama, apakah kita akan melakukan pendaftaran semua IP Address dan MAC Address client-client kita dan tidak memperkenankan semua client yang terhubung dengan kita tidak dapat berganti-ganti IP Address. Jika IP dan MAC Address tidak terdaftar didalam rules firewall, maka client tidak dapat melakukan koneksi.
  • Kedua, apakah kita hanya menginginkan IP Address dan MAC Address tertentu saja yang tidak kita inginkan untuk berganti-ganti IP Address. Disini, jika ada IP baru dan dengan MAC Address baru, client tetap dapat melakukan koneksi.

Kasus, disini kita mempunya 3 client, yaitu :
IP Client 1 = 192.168.1.5
MAC Address 1 = 00:89:CD:64:01:EF

IP Client 2 = 192.168.1.20
MAC Address 1 = 00:90:DD:14:11:CF

IP Client 3 = 192.168.1.14
MAC Address 3 = 00:40:EE:21:26:GE

Semua client terkoneksi melalui ethernet (LAN Card/NIC) 1 yang diberi nama eth1.

Firewalling dengan metode pertama :

#drop semua prerouting di eth1
iptables -I PREROUTING -t nat -i eth1 -j DROP

#------------------- client pertama------------------------
#accept IP 192.168.1.5 dengan mac address 00:89:CD:64:01:EF
iptables -I PREROUTING -t nat -i eth1 -s 192.168.1.5
-m mac --mac-source 00:89:CD:64:01:EF -j ACCEPT

#drop IP 192.168.1.5 dengan mac address 00:89:CD:64:01:EF
#jika menggantinya dengan IP lain selain dari 192.168.1.5
iptables -I FORWARD -i eth1 -s ! 192.168.1.5
-m mac --mac-source 00:89:CD:64:01:EF -j DROP

#drop prerouting IP 192.168.1.5 dengan mac address 00:89:CD:64:01:EF
#jika menggantinya dengan IP lain selain dari 192.168.1.5
iptables -I PREROUTING -t nat -s ! 192.168.1.5
-m mac --mac-source 00:89:CD:64:01:EF -j DROP

#------------------- client kedua------------------------
#accept IP 192.168.1.20 dengan mac address 00:90:DD:14:11:CF
iptables -I PREROUTING -t nat -i eth1 -s 192.168.1.20
-m mac --mac-source 00:90:DD:14:11:CF -j ACCEPT

#drop IP 192.168.1.20 dengan mac address 00:90:DD:14:11:CF
#jika menggantinya dengan IP lain selain dari 192.168.1.20
iptables -I FORWARD -i eth1 -s ! 192.168.1.20
-m mac --mac-source 00:90:DD:14:11:CF -j DROP

#drop prerouting IP 192.168.1.20 dengan mac address 00:90:DD:14:11:CF
#jika menggantinya dengan IP lain selain dari 192.168.1.20
iptables -I PREROUTING -t nat -s ! 192.168.1.20
-m mac --mac-source 00:90:DD:14:11:CF -j DROP

Catatan :
Disini karena client 3 tidak masuk kedalam rules, maka tidak dapat melakukan koneksi, walaupun berganti IP Address yang sama dengan client 1 dan 2. Sedangkan client 1 dan 2 tetap dapat melakukan koneksi, selama tidak melakukan perubahan IP Address.


Firewalling dengan metode kedua :

#------------------- client pertama------------------------
#drop IP 192.168.1.5 dengan mac address 00:89:CD:64:01:EF
#jika menggantinya dengan IP lain selain dari 192.168.1.5
iptables -I FORWARD -i eth1 -s ! 192.168.1.5
-m mac --mac-source 00:89:CD:64:01:EF -j DROP

#drop prerouting IP 192.168.1.5 dengan mac address 00:89:CD:64:01:EF
#jika menggantinya dengan IP lain selain dari 192.168.1.5
iptables -I PREROUTING -t nat -s ! 192.168.1.5
-m mac --mac-source 00:89:CD:64:01:EF -j DROP

#------------------- client kedua------------------------
#drop IP 192.168.1.20 dengan mac address 00:90:DD:14:11:CF
#jika menggantinya dengan IP lain selain dari 192.168.1.20
iptables -I FORWARD -i eth1 -s ! 192.168.1.20
-m mac --mac-source 00:90:DD:14:11:CF -j DROP

#drop prerouting IP 192.168.1.20 dengan mac address 00:90:DD:14:11:CF
#jika menggantinya dengan IP lain selain dari 192.168.1.20
iptables -I PREROUTING -t nat -s ! 192.168.1.20
-m mac --mac-source 00:90:DD:14:11:CF -j DROP

Catatan :
Disini walaupun client 3 tidak masuk kedalam rules, tetap dapat melakukan koneksi, walaupun berganti IP Address asal tidak sama IP Addressnya dengan client 1 dan 2. Client 1 dan 2 tetap dapat melakukan koneksi, selama tidak melakukan perubahan IP Address.