Tips Server : Portsentry

Portsentry adalah aplikasi yang digunakan untuk mendeteksi dan merespon semua kegiatan yang berhubungan dengan 'port scanning' pada sebuah sistem.

install portsentry

centos
yum install portsentry
ato
rpm -ivh portsentry-1.1-11.fr.i386.rpm

mandriva
urpmi portsentry

dengan konfigurasi default portsentry langsung bisa digunakan. untuk file-file konfigurasi terletak di direktori :

/etc/portsentry/

dengan isi file sbb :

portsentry.blocked.atcp
portsentry.blocked.audp
portsentry.conf
portsentry.history
portsentry.ignore
portsentry.modes

untuk konfigurasi utama, silahkan di edit file /etc/portsentry/portsentry.conf , disini yang diperlu di perhatikan adalah di bagian 'kerjaan' portsentry setelah terjadi ato mendeteksi adanya 'port scanning'. di linux mandriva defaultnya adalah menge-blok usaha 'port scanning' tersebut menggunakan 'iptables', seperti terlihat di file portsentry.conf.

###################
# Dropping Routes:#
###################
# This command is used to drop the route or add the host into
# a local filter table.
#
# The gateway (333.444.555.666) should ideally be a dead host on
# the *local* subnet. On some hosts you can also point this at
# localhost (127.0.0.1) and get the same effect. NOTE THAT
# 333.444.555.66 WILL *NOT* WORK. YOU NEED TO CHANGE IT!!
#
# ALL KILL ROUTE OPTIONS ARE COMMENTED OUT INITIALLY. Make sure you
# uncomment the correct line for your OS. If you OS is not listed
# here and you have a route drop command that works then please
# mail it to me so I can include it. ONLY ONE KILL_ROUTE OPTION
# CAN BE USED AT A TIME SO DON'T UNCOMMENT MULTIPLE LINES.
#
# NOTE: The route commands are the least optimal way of blocking
# and do not provide complete protection against UDP attacks and
# will still generate alarms for both UDP and stealth scans. I
# always recommend you use a packet filter because they are made
# for this purpose.
#

...
# iptables support for Linux
KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"
...

dimana opsi diatas adalah default, dan bisa di ubah untuk menyesuaikan situasi dan kondisi serta kebutuhan.
semisal akan memerintahkan portsentry agar memasukkan usaha ip_orang 'port scanning' ke dalam file /etc/hosts.deny, cukup dengan mengkombinasikan dengan opsi yang ada di bagian tcp wrappers (service). liat contoh :

###############
# TCP Wrappers#
###############
# This text will be dropped into the hosts.deny file for wrappers
# to use. There are two formats for TCP wrappers:
#
# Format One: Old Style - The default when extended host processing
# options are not enabled.
#

KILL_HOSTS_DENY="ALL: $TARGET$"
#hilangkan tanda #

# Format Two: New Style - The format used when extended option
# processing is enabled. You can drop in extended processing
# options, but be sure you escape all '%' symbols with a backslash
# to prevent problems writing out (i.e. \%c \%h )
#
#KILL_HOSTS_DENY="ALL: $TARGET$ : DENY"

dan jika ingin memberikan alert tentang kejadian 'port scanning' tsb, misalnya menggunakan email, bisa langsung menggunakan konfigurasi 'External Command' :

###################
# External Command#
###################
# This is a command that is run when a host connects, it can be whatever
# you want it to be (pager, etc.). This command is executed before the
# route is dropped or after depending on the KILL_RUN_CMD_FIRST option below
#
#
# I NEVER RECOMMEND YOU PUT IN RETALIATORY ACTIONS AGAINST THE HOST SCANNING
# YOU!
...
KILL_RUN_CMD="/bin/mail -s 'Portscan from $TARGET$ on port $PORT$' admin@server.org < /dev/null"

...

mudah bukan mengkonfigurasi portsentry ? :D
dan yang perlu di perhatikan lagi adalah file /etc/portsentry/portsentry.ignore

# Put hosts in here you never want blocked. This includes the IP addresses
# of all local interfaces on the protected host (i.e virtual host, mult-home)
# Keep 127.0.0.1 and 0.0.0.0 to keep people from playing games.
#
# PortSentry can support full netmasks for networks as well. Format is:
#
# /
#
# Example:
#
# 192.168.2.0/24
# 192.168.0.0/16
# 192.168.2.1/32
# Etc.
#
# If you don't supply a netmask it is assumed to be 32 bits.
#
#

beberapa fitur dari portsentry (diambil dari tulisannya pak onno w purbo)

•Mendeteksi adanya Stealth port scan untuk semua platform Unix. Stealth port scan adalah teknik port scan yang tersamar / tersembunyi, biasanya sukar di deteksi oleh sistem operasi.
•PortSentry akan mendeteksi berbagai teknik scan seperti SYN/half-open, FIN, NULL dan X-MAS. Untuk mengetahui lebih jelas tentang berbagai teknik ini ada baiknya untuk membaca-baca manual dari software nmap yang merupakan salah satu software portscan terbaik yang ada.
•PortSentry akan bereaksi terhadap usaha port scan dari lawan dengan cara membolkir penyerang secara real-time dari usaha auto-scanner, probe penyelidik maupun serangan terhadap sistem.
•PortSentry akan melaporkan semua kejanggalan & pelanggaran kepada software daemon syslog lokal maupun remote yang berisi nama sistem, waktu serangan, IP penyerang maupun nomor port TCP atau UDP di mana serangan di lakukan. Jika PortSentry didampingkan dengan LogSentry, dia akan memberikan berita kepada administrator melalui e-mail.
•Fitur cantik dari PortSentry adalah pada saat terdeteksi sebuah scan, sistem anda tiba-tiba menghilang dari hadapan si penyerang. Fitur ini betul-betul membuat penyerang tidak berkutik.
•PortSentry selalu mengingat alamat IP penyerang, jika ada serangan Port Scan yang sifatnya random PortSentry akan bereaksi.

I'm Linux Girl