Friday, September 18, 2015

cara menambahkan IP Client di MRTG dengan OPENSUSE


  1. Untuk bisa mengetahui jumlah keluar/masuknya paket data untuk suatu komputer kita harus menghitungnya secara terpisah yaitu untuk yang masuk dan untuk yang keluar. Bila kita akan mengamati sepuluh komputer, maka setidaknya harus ada 20 rule iptables. Chain yang digunakan untuk mengamati adalah chain FORWARD
iptables -N NamaKomputer-in
iptables -N NamaKomputer-out
iptables -A FORWARD -d xxx.xxx.xxx.xxx -j NamaKomputer-in
iptables -A FORWARD -s xxx.xxx.xxx.xxx -j NamaKomputer-out


NamaKomputer        = Dapat di ganti sesuai dengan keinginan sendiri
xxx.xxx.xxx.xxx     = Di Sesuai dengan IP Komputer target


cek apakah rule yang di buat berhasil

iptables -nvxL FORWARD

2. Di atas dapat kita lihat bahwa kalau kita ingin mengambil besar data(dalam bytes) output iptables -nvxL FORWARD dapat kitapipe kan ke grep dan mengambil nilai kolom kedua dari output yang dihasilkan oleh grep.


iptables -nvxL FORWARD | grep NamaKomputer-in
0     0     bagong-in     all     --     *     *     0.0.0.0/0     10.11.12.3


iptables -nvxL FORWARD | grep NamaKomputer-in | awk '{print $2}'
0


Untuk memudahkan kita dalam memasukkan nilainya ke MRTG kita bisa membuat script kecil seperti ini:

#!/bin/sh
paketIN=`/sbin/iptables -nvxL FORWARD | grep "$1-in" | awk '{print $2}'`
paketOUT=`/sbin/iptables -nvxL FORWARD | grep "$1-out" | awk '{print $2}'`
echo $paketIN
echo $paketOUT


jangan lupa chmod +x namafilescript

untuk jalankannya 

./namafilescript NamaKomputer-in, atau
./namafilescript NamaKomputer-out


Pemakaiannya hanyalah dengan cara menuliskan nama scriptnya dengan 1 parameter yaitu [nama komputer], misalnya scriptbacatrafik.sh bagong. Script ini akan mencetak nilai bytes yang keluar dari jaringan kita yang berasal dari komputer "bagong". Angka ini diambil dari iptables, sehingga kata bagong atau apa pun itu harus anda sesuaikan dengan nama chain yang anda gunakan di iptables.


3. Tambahkan aturan yang ada di mrtg.cfg

Nilai yang dimasukkan ke mrtg haruslah berpasangan, pertama untuk in dan kedua untuk out. Nilai ini dapat diambil dari SNMP, dapat pula diambil dari nilai eksekusi program tertentu. Contohmrtg.cfg yang mengambil nilai dari script yang tadi kita buat dapat dilihat di bawah ini.

WorkDir: /var/www/mrtg

Target[NamaKomputer]: `/posisi_file_script/namafilescript.sh NamaKomputer`
Title[NamaKomputer]: NamaKomputer
PageTop[NamaKomputer]: <h1>NamaKomputer</h1>
MaxBytes[NamaKomputer]: 1250000
YLegend[NamaKomputer]: Bytes/s
ShortLegend[NamaKomputer]: B/s
LegendI[NamaKomputer]:  Traffic in
LegendO[NamaKomputer]:  Traffic out
Legend1[NamaKomputer]: Traffic in Bytes per Second




Setelah di simpan, jalan kan indexmaker untuk membentuk file HTML

indexmaker /path/file/mrtg.cfg > /var/www/mrtg/index.html


4. Pengembangan

Dengan cara pengukuran yang persis sama anda dapat pula mengukur besarnya keluar masuk paket per layanan misal web, ftp, smb, domain, dan sebagainya. Pengukuran dilakukan dengan menggunakan iptables, hanya saja kita tidak mendefinisikan alamat IP per komputer. Yang kita definisikan adalah protokol(TCP/UDP/ICMP) beserta nomor portnya, serta network address jaringan kita seperti contoh di bawah ini.
root:~# iptables -N www-in
root:~# iptables -N www-out
root:~# iptables -A FORWARD -d 10.11.12.0/24 -p tcp --dport 80 -j www-in
root:~# iptables -A FORWARD -s 10.11.12.0/24 -p tcp --sport 80 -j ww-out

root:~# iptables -N ftp-in
root:~# iptables -N ftp-out
root:~# iptables -A FORWARD -d 10.11.12.0/24 -p tcp --dport 20:21 -j ftp-in
root:~# iptables -A FORWARD -s 10.11.12.0/24 -p tcp --sport 20:21 -j ftp-out

Contoh rule iptables di atas berguna untuk menghitung:
  1. Besar paket data yang kita dapatkan dari webserver yang berasal dari luar jaringan kita.
  2. Besar paket data request ke webserver di luar jaringan kita.
  3. Besar paket data yang kita download melalui ftp yang berasal dari luar jaringan kita.
  4. Besar paket data upload melalui ftp ke luar jaringan kita.
Edit mrtg.cfg untuk memasukkan hasil perhitungan iptables untuk kedua port yang baru.
Target[www]: `/usr/local/sbin/scriptbacatrafik.sh www`
Title[www]: www
PageTop[www]: <h1>www</h1>
MaxBytes[www]: 1250000
YLegend[www]: Bytes/s
ShortLegend[www]: B/s
LegendI[www]:  Traffic in
LegendO[www]:  Traffic out
Legend1[www]: Traffic in Bytes per Second

Target[ftp]: `/usr/local/sbin/scriptbacatrafik.sh ftp`
Title[ftp]: ftp
PageTop[ftp]: <h1>ftp</h1>
MaxBytes[ftp]: 1250000
YLegend[ftp]: Bytes/s
ShortLegend[ftp]: B/s
LegendI[ftp]:  Traffic in
LegendO[ftp]:  Traffic out
Legend1[ftp]: Traffic in Bytes per Second


Selamat mencoba, semoga sukses. 

Sumber (Kamas Muhammad http://www.sokam.or.id)

Network Monitoring dengan MRTG

Network Monitoring dengan MRTG


Sumber 
by Toto Harjendro 140808
Based on CentOS 5

MRTG, atau Multi Router Traffic Graph adalah suatu program yang digunakan untuk mengumpulkan informasi-informasi SNMP dari beberapa router, diolah datanya menjadi log-log dan ditampilkan dalam bentuk grafik. Gambar grafik tersebut disajikan di dalam halaman web dan dapat diakses dari browser apapun. Dikarenakan MRTG berbasis SNMP, pada dasarnya anda dapat menampilkan grafik untuk segala perangkat dan service yang di-support oleh SNMP. Tetapi apabila SNMP anda tidak berfungsi maka grafik juga tidak bisa ditampilkan oleh MRTG.
MRTG akan membuat grafik secara berkala per hari, per minggu, per bulan dan per tahun, sehingga anda dapat mendapat gambaran atas jaringan anda. Tetapi MRTG hanya mengumpulkan data dan mengolah grafik, bukan untuk memberikan peringatan.
MRTG juga bergantung terhadap web server, karena grafik ditampilkan dalam suatu website. Anda bisa gunakan webserver apa saja yang anda kehendaki.

Install MRTG

Untuk menginstall MRTG anda membutuhkan beberapa paket :
  • net-snmp
  • net-snmp-utils
  • mrtg
  • httpd
Untuk menginstallnya pada Fedora/CentOS anda gunakan perintah :
# yum install net-snmp-utils net-snmp mrtg httpd

SNMP

Simple Network Management Protocol adalah suatu program untuk mempermudah anda dalam memonitor dan mengatur perangkat-perangkat jaringan, seperti router, switch, server, printer dan lain-lain. Informasi yang dapat di monitor pun bermacam-macam dari hal-hal biasa seperti memonitor traffic di suatu perangkat sampai yang tidak biasa seperti temperatur udara di dalam router.
Versi dari SNMP terdiri dari v1, v2 dan v3. Dimana pada versi 3 sudah memberikan pengamanan yang lebih dibanding dua versi di bawahnya. Tetapi karena versi 1 dan 2 SNMP masih umum digunakan, saya batasi di ke 2 versi ini saja.

Konfigurasi SNMP

  • Pertama kali anda nyalakan service dari snmpd, caranya :
    # /etc/init.d/snmpd restart
    # chkconfig snmpd on
  • Kemudian anda test dengan menggunakan program snmpwalk. Caranya :
    # snmpwalk -v 2c -c public localhost system
    Keterangan :
    • -v 2c ==> Adalah versi SNMP yang digunakan. Dalam hal ini SNMP versi 2c.
    • -c public ==> Adalah "community string" yang dijadikan password dari SNMP yaitu public.
    • localhost ==> Adalah device yang ingin ditampilkan informasinya.
    • system ==> Adalah shortcut dari semua OID dibawah dari hirarki dari 1.3.6.1.2.1.1. Atau anda bisa tuliskan :
      # snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.1.
      Maka menghasilkan hasil yang sama.

    Contoh hasil tampilan yang benar adalah :
    SNMPv2-MIB::sysDescr.0 = STRING: Linux lp3t0106 2.6.18-8.el5 #1 SMP Thu Mar 15 19:57:35 EDT 2007 i686
    SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
    DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (499593) 1:23:15.93
    SNMPv2-MIB::sysContact.0 = STRING: Root (configure /etc/snmp/snmp.local.conf)
    [ ... ]
  • Kemudian untuk mempermudah anda ganti saja file konfigurasi-nya dengan yang baru. Tetapi jangan sampai selain user root dapat membaca file tersebut.
    # cd /etc/snmp
    # mv snmpd.conf snmpd.conf-old
    # chmod 0600 snmpd.conf
    # vi /etc/snmp/snmpd.conf
    Anda isi dengan :
    ##/etc/snmp/snmpd.conf
    # com2sec adalah pengaturan "security name" yang digunakan untuk
    # terhubung dengan dengan server anda. Dimana "source" berisi IP 
    # address user yang boleh menggunakan snmp anda, dan "community"
    # adalah password yang digunakan untuk terhubung dengan server 
    # anda.
    #
    ## sec.name       source              community
    ##  =======       ======              =========
    com2sec local             localhost            123456
    com2sec lan               192.168.1.0/24       123456
    #
    # group digunakan untuk memetakan security name dengan nama 
    # groupnya. 
    #
    ##        group.name          sec.model    sec.name
    ##       =================   =========     ========
    group     ROGroup_1               v1        local
    group     ROGroup_1               v1        lan
    group     ROGroup_1               v2c       local
    group     ROGroup_1               v2c       lan
    #
    # view digunakan untuk mengatur komponen MIB yang boleh ditampilkan.
    # Dalam hal ini semua informasi dapat ditampilkan.
    #
    ##     MIB.view.name    incl/excl MIB.subtree mask
    ##    ==============   ========= =========== ====
    view  all-mibs         included      .1      80
    #
    # access digunakan untuk mengatur dibagian mana dari hirarki MIB
    # boleh diakses oleh suatu user. 
    #
    ##       MIB
    ##       group.name   context sec.model sec.level prefix read       write notif
    ##       ========== ======= ========= ========= ====== ====       ===== =====
    access   ROGroup_1    ""      v1        noauth     exact all-mibs none   none
    access   ROGroup_1    ""      v2c       noauth     exact all-mibs none   none
    
  • Kemudian anda cek kembali apakah sudah berubah konfigurasi snmp-nya dengan merestart service snmp dan lakukan percobaan akses snmp.
    # /etc/init.d/snmpd restart
    # snmpwalk -v 2c -c 123456 localhost system

Konfigurasi HTTPD/Apache

  • Untuk menggunakan httpd anda cukup menyalakan service httpd/apache.
    # /etc/init.d/httpd restart
    # chkconfig httpd on
  • Anda tidak perlu melakukan perubahan apapun di apache anda. Tetapi yang perlu diperhatikan adalah DocumentRoot dari dokumen-dokumen html anda. Karena di bawah direktori itulah file MRTG akan ditempatkan. Secara default DocumentRoot Apache berada pada /var/www/html.

Konfigurasi Standard MRTG

  • Pertama kali anda harus membuat file kofigurasi dari MRTG, dimana akan dibuat supaya MRTG memonitor semua perangkat jaringan di komputer anda. caranya :
    # cfgmaker --output=/etc/mrtg/mrtg.cfg --global "workdir: /var/www/html/bandwidth" \
          -ifref=ip --global 'options[_]: growright,bits' 123456@localhost

    Keterangan :
    • --output=/etc/mrtg/mrtg.cfg ==> adalah file konfigurasi yang akan dibuat.
    • --global: /var/www/html/bandwidth ==> adalah lokasi direktori tempat grafik dari mrtg akan disajikan.
    • -ifref=ip ==> MRTG akan mengecek traffic berdasarkan IP address dari setiap device.
    • --global 'options[_]: growright,bits' ==> berarti grafik ditampilkan dari sebelah kanan dan traffic akan diukur berdasarkan bit.
    • 123456@localhost ==> adalah community string atau "password" dari snmp server dan lokasi snmp server.
  • Kemudian anda jalankan mrtg anda secara manual, untuk memulai membentuk grafiknya.
    # mrtg /etc/mrtg/mrtg.cfg
    Tetapi cara ini sering gagal, disebabkan variabel LANG dalam format UTF-8 tidak disupport MRTG, untuk merubahnya anda gunakan :
    # env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
  • Setelah itu anda bentuk file index supaya halaman web dapat diakses.
    # mkdir /var/www/html/bandwidth
    # chmod 755 /var/www/html/bandwidth
    # indexmaker --output=/var/www/html/bandwidth/index.html /etc/mrtg/mrtg.cfg
  • Pembuatan grafik traffic jaringan dilakukan secara periodik, untuk itu diperlukan penjadwalan agar grafik akan selalu terbentuk dalam jangka waktu tertentu. Secara default penjadwalan sudah dilakukan oleh Fedora dan CentOS selama 5 menit sekali yang diatur pada file /etc/cron.d/mrtg. Anda bisa cek dengan cara :
    # cat /etc/cron.d/mrtg
    Apabila file konfigurasi tidak ada bisa buat penjadwalan sendiri
    # crontab -e 
    Diisi dengan :
    */5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
  • Sekarang MRTG anda sudah berjalan anda bisa lihat pada browser pada alamat "http://localhost/bandiwidth".

Wednesday, September 16, 2015

seting FireWall transparent proxy

Buat Script dengan nama fw.proxy

dengan isi

# URL: http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html
# (c) 2006, nixCraft under GNU/GPL v2.0+

# -------------------------------------------------------------------------------------
#squid server
IP
SQUID_SERVER="192.168.10.2"

# Interface connected to Internet
INTERNET="eth0"

# Interface connected to LAN
LAN_IN="eth1"

# Squid port
SQUID_PORT="3128"


# DO NOT MODIFY BELOW

# Clean old firewall

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -t mangle -F

iptables -t mangle -X

# Load IPTABLES modules for NAT and IP conntrack support

modprobe ip_conntrack

modprobe ip_conntrack_ftp

# For win xp ftp client

modprobe ip_nat_ftp

echo 1 > /proc/sys/net/ipv4/ip_forward

# Setting default filter policy

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

# Unlimited access to loop back

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow UDP, DNS and Passive FTP

iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT

# set this system as a router for Rest of LAN

iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE
iptables -A FORWARD -i $LAN_IN -j ACCEPT

# unlimited access to LAN

iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT

# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy

iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT

# if it is same system

iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT

# DROP everything and Log it

iptables -A INPUT -j LOG
iptables -A INPUT -j DROP



Lanjut dengan Simpan
chmod +x ./fw.proxy

jalankan script tersebut dengan mengtikan perintah
./fw.proxy





Setting Squid.conf



# DAFTAR AKSES PORT YANG BIASA DI GUNAKAN


acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 8080
acl Safe_ports port 8443
acl Safe_ports port 182
acl Safe_ports port 16569
acl Safe_ports port 5050
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT


# LIST IP YANG TERHUBUNG KE LOKAL


acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.10.0/24 # RFC1918 possible internal network


# CONTOH BATASAN IP YANG BISA AKSES INTERNET


acl ADMIN src 192.168.10.2/32
acl marketing src 192.168.10.3/32

# CONTOH BATASAN SITUS YANG BISA DI AKSES YANG BISA DI AKSES


acl po_external dstdomain -i .ramayana.co.id
acl po_external dstdomain -i .intraco.co.id
acl po_external dstdomain -i 202.77.100.212
acl po_external dstdomain -i .lottemart.co.id
acl po_external dstdomain -i 202.77.100.194
acl po_external dstdomain -i indogrosir.co.id


# BATASANA AKSES STANDAR PADA SQUID


http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost


# TAMBAHAN AKSES YANG SESUAI DENGAN KEINGINAN


http_access allow admin
http_access allow marketing po_external


# YANG DI AKHIRI DENGAN MEMBLOKIR SELURUHNYA


http_access deny all

# PORT YANG DI GUNAKAN OLEH SQUID PROXY


http_port 3128


# SETINGAN STANDAR SQUID PROXY


cache_mem 256 MB    # SETENGAH DARI MEMORY

cache_dir aufs /var/cache/squid 100 16 256  # PENYIMPANAN CHACE TEMPORY

access_log daemon:/var/log/squid/access.log squid  # FOLDER PENYIMPANAN AKTIFIKAS USER MENGGUNAKAN SQUID PROXY BERUPA LOG FILE

cache_log /var/log/squid/cache.log # FOLDER UNTUK AKTIFITAS PENYIMPANAN CHACE SQUID PROXY
coredump_dir /var/cache/squid

# UNTUK PROSES PENYEGARAN SQUID PROXY


refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

# ALAMAT EMAIL ADMIN KETIKA ADA ERROR DI SISI USER
cache_mgr tsa_sumbar@sosro.com


# HOST NAME SQUID PROXY
visible_hostname TeamSupportArea