Posted by: junkerkokngeblog | December 29, 2010

Menulis dan berbagi

Tampaknya baru hari ini saya menyentuh blog saya lagi. Setelah sekian lama(lebih dari satu tahun) blog yang saya canangkan sebagai media untuk menampung cerita-cerita, sharing pengetahuan dan coretan iseng-iseng dari saya terbengkalai begitu saja  Seorang kawan menginspirasi saya untuk menekan tuts di keyboard saya untuk mengisi kembali blog ini, kebetulan dia mempunyai nama depan yang sama dengan saya. Tulisan tidak harus panjang dan ‘intelek’ katanya, mungkin yang dimaksud dengan ‘intelek’ disini adalah suatu tulisan dengan istilah-istilah canggih dari berbagai bidang yang dicampuradukan, menggambarkan suatu objek rumit dan penuh filosofi sehingga menjadi suatu tulisan yang ketika orang awam membacanya mungkin akan berpikir “kereeen gwe ga ngerti nih, ngarit rumput lagi aja ah”  yups, yang menjadi esensi dari menulis di blog adalah semangat berbagi.  kata “berbagi” tampaknya sering sekali saya dengar dan dipraktikan dikalangan teman-teman saya, saya pun sering mengatakan kepada para peserta traning yang saya ajar setiap bulan bahwa yang saya lakukan adalah sharing(berbagi) tapi ada suatu kelebihan dari berbagi melalui bahasa tulis, duplikasi, yups duplikasi, dengan menggunakan lisan mungkin kita bisa menjangkau beberapa orang dalam satu waktu dan satu ruang, merekam via video dan teleconfrence perkecualian pastinya, tapi ketika bahasa tulis yang digunakan, kita menjangkau ruang dan waktu yang lebih luas, orang yang membaca tulisan saya di blog ini menjadi teman sharing saya tanpa saya harus mengulang kata-kata, mudah diucapkan secara teori memang, tapi untuk tetap konsisten berbagi lewat tulisan sepertinya bukan sesuatu yang mudah, butuh komitmen dan tujuan yang jelas. Tujuannya sudah jelas bagi sya sejak setahun yang lalui, menjadi seseorang yang turut andil mencerdaskan kehidupan bangsa. masalah komitmen untuk menulis secara rutin, hmm ok itu tantangan buat saya dan menjadi salah satu resolusi saya di tahun depan, moga-moga sampe bisa bikin buku… jiaahhh baru nambah tulisan satu aja dah belagu gwe hahahah. Dah ah, bersambung

Posted by: junkerkokngeblog | July 14, 2009

menginstall pure-ftpd di centos

  1. Ambil source pureftpd:

wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.20.tar.gz

  1. Install gcc: yum install gcc
  2. Install openldap-client: yum install openldap-client openldap nss_ldap
  3. Extrak file tarball yang baru saja di download: tar xzvf pure-ftpd-1.0.20.tar.gz
  4. Masuk ke directory pure-ftpd: cd pure-ftpd-1.0.20
  5. Configure: ./configure –with-extauth –with-ftpwho –with-quotas –with-ratios –with-throttling –with-ldap=/opt/zimbra/openldap –prefix=/usr/local/prefix
  6. Make && make install && make clean

Posted by: junkerkokngeblog | July 13, 2009

migrasi dari qmail+vpopmail ke zimbra

Ada mail server di lingkungan kampusku yang sudah cukup berumur, menggunakan MTA qmail +vpopmail untuk membuat virtual domain, sebagai pengganti mail server ini adalah zimbra yang lebih powerfull, fitur lengkap dan juga kemudahan untuk menginstall, mengkonfigurasi dan melakukan pemeliharaan, selengkapnya mengenai zimbra bisa di baca di situs resmi zimbra, berikut adalah langkah-langkah yang aku lakukan untuk melakukan konversi database user dan maildir dari vpopmail ke zimbra.

  • Ubah database vpopmail semua domain ke database passwd dengan menggunakan perintah berikut: #sudo -s vpopmail /usr/local/vpopmail/bin/vconvert -c -e dan program ini akan membaca database vpopmail yang ada di /usr/local/vpopmail/domains/vpasswd
  • Ubah database berformat passwd dengan menggunakan script berikut:

#!/usr/bin/perl
#
# $Id: passwd2zmprov,v 1.2 2008/03/05 05:01:29 phil Exp $
=head1 NAME
passwd2zmprov – create zmprov commands from a passwd file
=head1 SYNOPSIS
usage: passwd2zmprov [options] [[passwd_file] …] > commands.zmp
-help show a brief help message
-man show the full documentation
-domain <domain> [REQUIRED]
-cosid <cos_id> [default “Default COS”]
-password <password> [default “”]
Getting a COS id:
zimbra$ zmprov gc <myCos> | grep ^zimbraId:
Example converting CSV to zmprov commands:
$ ./passwd2zmprov -domain example.moc /etc/passwd > commands.zmp
Example provisioning ZCS accounts as ‘zimbra’ user:
zimbra$ zmprov < commands.zmp
=head1 DESCRIPTION:
Tool to create commands suitable for zmprov from a UNIX passwd file.
We don’t use getpwent etc., because we are likely working on a copy
and not running as root.
See Also:
http://wiki.zimbra.com/index.php?title=Bulk_Create
=cut
use strict;
use warnings;
use File::Basename qw(basename);
use Getopt::Long qw(GetOptions);
use Pod::Usage qw(pod2usage);
my $prog = basename($0);
my ( @err, %option );
GetOptions( \%option, ‘help|?’, ‘man’, ‘domain=s’, ‘cosid=s’, ‘password=s’ )
or pod2usage( -verbose => 0 );
pod2usage( -verbose => 1 ) if ( $option{help} );
pod2usage( -verbose => 2 ) if ( $option{man} );
push( @err, “-domain <domain> is required” )
unless ( $option{domain} );
pod2usage( -verbose => 0, -message => map( “$prog: $_\n”, @err ) )
if (@err);
warn(“$prog: using Default COS\n”) unless ( $option{cos_id} );
warn(“$prog: reading passwd like entries from STDIN\n”) unless (@ARGV);
my $date = localtime();
my $cosid = $option{cosid};
my $domain = $option{domain};
my $password = defined $option{password} ? $option{password} : “”;
my $MIN_UID = 500; # skip system accounts like httpd
my $MAX_UID = 60000; # skip other system accounts like nfsnobody
# sanitize password
$password =~ s/\”/\\\”/g;
while (<>) {
chomp;
next if (/^\s*$/); # skip empty lines
my ( $uname, $x, $uid, $gid, $gecos, $dir, $shell ) = split( /:/, $_, 7 );
if ( $uid < $MIN_UID or $uid > $MAX_UID ) {
warn(“$prog: skip $uname: $uid not between $MIN_UID and $MAX_UID\n”);
next;
}
# assuming gecos format is First [[MI] [Last]], sanitize a little
$gecos =~ s/\”/\\\”/g;
my ( $fullname, $description ) = split( /\s*,\s*/, $gecos, 2 );
my ( $fname, $mname, $lname ) = split( ” “, $fullname, 3 );
unless ( defined($lname) ) {
$lname = $mname;
undef($mname);
}
my $displayname = $fname
. ( defined($mname) ? ” $mname” : “” )
. ( defined($lname) ? ” $lname” : “” );
print(
qq{ca “$uname\@$domain” “$password”},
( defined($cosid)  ? qq{ zimbraCOSid “$cosid”}  : () ),
( defined($fname)  ? qq{ givenName “$fname”}  : () ),
( defined($lname)  ? qq{ sn “$lname”}  : () ),
( defined($uname)  ? qq{ cn “$uname”}  : () ),
( defined($displayname) ? qq{ displayName “$displayname”} : () ),
( defined($description) ? qq{ description “$description”} : () ),
qq{ zimbraNotes “Migrated $date”},
qq{ zimbraPasswordMustChange TRUE},
qq{\n},
);
}
=head1 HISTORY
2007/01/23, Version 1.0/1.1 Dlbewley
2008/03/04, Version 1.2 Plobbes
=cut

  1. Gunakan perintah berikut untuk membuat database baru
  • perl passwd2zmprov -domain “namadomain” “vpasswdfile” > databaru.zmp
  • Hasilnya kurang lebih akan berbentuk seperti ini:

ca “adis@pusat.itb.ac.id” “” givenName “adis” cn “adis” displayName “adis” zimbraNotes “Migrated Thu Jul 9 10:36:40 2009″ zimbraPasswordMustChange TRUE

ca “adiwiyarso@pusat.itb.ac.id” “” givenName “M.” sn “Adiwiyarso” cn “adiwiyarso” displayName “M. Yusuf Adiwiyarso” zimbraNotes “Migrated Thu Jul 9 10:36:40

2009″ zimbraPasswordMustChange TRUE

  • Generate database baru di zimbra dengan menggunakan perintah ini, jangan lupa create dahulu domain di server zimbra.

zmprov < databaru.zmp, di layar akan keluar log seperti ini:

prov> dd9ad143-32bf-4c7b-946f-0482abc59c5d

prov> de02cb98-985c-4eb3-bff5-af0fa64d4b25

prov> d1cc9075-4ee8-49e2-a0e7-025b6bd2a84f

prov> d18a58a8-9c54-462f-ae3c-f2ba21546e06

prov> f832f635-cdde-4fb4-bc9b-b821bfa27dcc

prov> d5c9b938-8e3f-4147-9afc-75b40e72cdae

prov> 5b70bacc-a912-4f2e-907a-ab6c6d039929

  • Sekarang kita pindahkan password dengan menggunakan script ini:

#!/usr/bin/perl

# Usage: as root # ./shadow2zm.pl /etc/shadow > shadow.zm

#

as zimbra # zmprov < shadow.zm

$domain=”my.domain.com”;

while(<>) {

chomp;

my ($uname,$pass) = split(/:/);

print qq{zmprov ma $uname\@$domain userPassword ‘{crypt}$pass’\n};

print qq{\n};

}

  • Jalankan script diatas dengan cara: script “vpasswd” > databaru2.zmp
  • Masukan password2 tersebut dengan cara menjalankan file yang sudah tercreate tadi:

./databaru2.zmp

Oh iya jangan lupa menjalankan export path terhadap path binary file zimbra:

PATH=$PATH:/data/myscripts

export PATH

  • Selesai, sekarang semua user-user mail telah terpindahkan ke zimbra.

Selamat mencoba

Posted by: junkerkokngeblog | July 9, 2009

Installasi fail2ban di centos

Cara menginstall Fail2ban:

1, Install gamin-python

yum install gamin-python

2, Download shorewall

wget http://www.invoca.ch/pub/packages/shorewall/4.0/shorewall-4.0.9/shorewall-shell-4.0.9-3.noarch.rpm

wget http://www.invoca.ch/pub/packages/shorewall/4.0/shorewall-4.0.9/shorewall-perl-4.0.9-3.noarch.rpm

wget http://www.invoca.ch/pub/packages/shorewall/4.0/shorewall-4.0.9/shorewall-4.0.9-3.noarch.rpm

3, Install Shorewall

rpm -i shorewall-perl-4.0.9-3.noarch.rpm shorewall-shell-4.0.9-3.noarch.rpm shorewall-4.0.9-3.noarch.rpm

4, Download fail2ban

wget http://download.fedora.redhat.com/pub/fedora/linux/extras/6/i386/fail2ban-0.8.1-10.fc6.noarch.rpm

5, install fail2ban

rpm -i fail2ban-0.8.1-10.fc6.noarch.rpm

File-file software fail2ban akan terinstall di /usr/share/fail2ban/, /usr/bin/ (fail2ban-client, fail2ban-regex, fail2ban-server ), /etc/init.d (fail2ban).

6, Configure: edit jail.conf file ganti baris yang berisi email untuk notifikasi dengan email administrator server:

vi /etc/fail2ban/jail.conf

vi /etc/fail2ban/action.d/mail.conf

dest = xx@email.com

7, Testing:

fail2ban-client -d

8, Start fail2ban:

fail2ban-client start

9, restart fail2ban:

fail2ban-client reload

10, set agar fail2ban berjalan pada saat booting:

chkconfig fail2ban on

11, check log file

more /var/log/fail2ban.log

Posted by: junkerkokngeblog | March 27, 2009

Greylisting

Greylisting di postfix freebsd

Greylisting adalah aplikasi yang digunakan untuk mencegah spamming dengan cara memberikan kode “temporary reject” ke pengirim yang belum “dikenal” sehingga si mail server akan mencoba mengirimkan ulang email tersebut, tapi apabila pengirimnya adalah spammer maka dia tidak akan mengirimkan lagi email tersebut karena spammer mempunyai karakteristik mengirimkan banyak email ke banyak alamat email secara acak. Berikut adalah cara menggunakan greylist di mail server postfix yang terinstall di mesin freebsd.

#portinstall postgrey

Jalankan postgrey

#/usr/local/etc/rc.d/postgrey start, sebelumnya jangan lupa ubah terlebih dahulu file /usr/local/etc/rc.d/postgrey di bagian postgrey_enable menjadi “YES”

monitoring# sockstat -l | grep postgrey
postgrey perl5.8.8 83835 5 tcp4 127.0.0.1:10023 *:*

Tambahkan baris berikut di /usr/local/etc/postfix/main.cf

smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:10023

#postfix reload

Untuk membuktikan efektifitas greylisting silahkan buat mail graph dan amati jumlah spam sebelum dan sesudah penerapan greylisting.

Posted by: junkerkokngeblog | March 16, 2009

fail2ban in freebsd

Akhirnya fail2ban di porting juga ke freebsd, so mari kita jalankan fail2ban di freebsd

Best practices menggunakan fail2ban di freebsd untuk mencegah ssh bruteforce dan yang lainnya.

  1. Install fail2ban /usr/ports/security-py-fail2ban
  2. configure beberapa file berikut:
    1. fail2ban.conf sesuaikan dengan keperluan.
    2. Jail.conf

[ssh-ipfw]

enabled = true

filter = sshd

action = ipfw[localhost=167.205.n.m]

sendmail-whois[name=”SSH,IPFW”, dest=galih@arc.itb.ac.id]

logpath = /var/log/auth.log

ignoreip = 167.205.xx.xx/24 167.205.yy.yy/24 167.205.zz.zz/24

  1. ubah file /usr/local/etc/fail2ban/action.d/ipfw.conf

localhost=’ip address anda’

port=’port yang dilindungi’

  1. Ubah file /usr/local/etc/fail2ban/filter.d/sshd.conf

failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from <HOST>\s*$

^%(__prefix_line)sFailed [-/\w]+ for .* from <HOST>(?: port \d*)?(?: ssh\d*)?$

^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$

^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$

^%(__prefix_line)sUser \S+ from <HOST> not allowed because not listed in AllowUsers$

^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=<HOST>(?:\s+user=.*

)?\s*$

^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$

# ^%(__prefix_line)sAddress <HOST> .* POSSIBLE BREAK-IN ATTEMPT\s*$

Untuk contoh bisa mengacu pada regex yang ada di noc.monitoring.itb.ac.id

  1. start fail2ban: #fail2ban-client –c /usr/local/etc/fail2ban
  2. Tambahan jangan lupa enabling ipfw dengan default to accept:
      options    IPFIREWALL
options    IPFIREWALL_VERBOSE
options    IPFIREWALL_VERBOSE_LIMIT=5
options    IPFIREWALL_DEFAULT_TO_ACCEPT
options    IPDIVERT

Compile kernel.

Posted by: junkerkokngeblog | January 19, 2009

bruteforce blocker

Melakukan blocking terhadap ssh bruteforce

Kemarin malam saya iseng-iseng melihat dokumentasi fail2ban yaitu software yang berfungsi untuk melakukan blocking terhadap percobaan bruteforce login ke suatu server, aplikasi ini bisa diterapkan untuk melakukan pengamanan terhadap aplikasi ssh dan juga http. Saya menggunakan aplikasi ini di server NMS yang menggunakan Linux Ubuntu, barang ini dipasang setelah beberapa kali ada orang yang coba-coba melakukan bruteforce login ke mesin ini, cara kerja aplikasi ini cukup sederhana, dia akan membaca log file authentikasi dan apabila suatu ip melakukan n(tergantung setingan) kali kegagalan melakukan login maka otomatis ip address tersebut akan di block, tapi pernah juga akhirnya justru saya yang keblock sendiri gara-gara salah memasukan password waktu login hahahahahaha, 3 kali salah langsung block, tega amaaaat…..

Selidik punya selidik ternyata aplikasi ini diperuntkan hanya untuk operating system Linux, wow kk wow… mungkin kalo mau sedikit utak-atik souce code bisa aja lah ya tuh barang buat digunain di FreeBSD, tapi jelas itu bukan ide yang bagus kalo lagi diburu waktu, lagian gwe bukan programmer hihihihihi cups kali awa………. 😛

Ok mulailah diriku mencari-cari alternatif lain untuk fail2ban yang bisa dijalankan di FreeBSD, dan ketemulah link ini: http://www.freebsdsoftware.org/security/bruteblock.html silahkan baca sendiri yah, aplikasi ini melakukan blocking menggunakan ipfw sedangkan fail2ban menggunakan iptables. Bruteblock… ok aku pikir inilah solusi yang aku cari, dari pada berlama-lama ayo kita install aja.

# cd /usr/ports/security/bruteblock/

# pwd

/usr/ports/security/bruteblock

# make install clean

Cara melakukan konfigurasinya sebagai berikut:

Tambahkan baris berikut di /etc/rc.conf

bruteblockd_enable=”YES”
bruteblockd_table=”1″
bruteblockd_flags=”-s 5″

Edit file /etc/syslog.conf

Ubah baris berikut :
auth.info;authpriv.info                                /var/log/auth.log

menjadi
auth.info;authpriv.info                         |exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/ssh.conf

Restart Syslogd

#/etc/rc.d/syslogd restart

Jalankan aplikasi bruteblock dengan perintah :

#/usr/local/etc/rc.d/bruteblockd.sh start

Tambahkan baris di ipfw untuk memblock IP-IP yang di masukkan oleh bruteblock

#ipfw add 400 deny ip from me to table\(1\)
#ipfw add 410 deny ip from table\(1\) to me

Aplikasi ini aku gunakan untuk melakukan pengamanan terhadap aplikasi ssh, aku configure agar suatu ip yang gagal melakukan login berturut-turut sebanyak 5 kali langsung aku block selama 2 jam… hohohoho gini caranya:

Edit file /usr/local/etc/bruteblock/ssh.conf

# Number of failed login attempts within time before we block
max_count       = 5

# Time in seconds in which all failed login attempts must occur
within_time     = 60

# Time in seconds to block ip in firewall

# 120 minutes
reset_ip       = 7200

# IPFW table number to add “bad” hosts
ipfw2_table_no = 1

Kalo pengen tau lebih banyak soal file konfigurasinya baca aja manual ya 😀

Posted by: junkerkokngeblog | August 30, 2008

Menjelang bulan ramadhan.

Bulan suci ramadhan datang lagi, besok mungkin jadi hari untuk shalat tarawih yang pertama kali. Minta maaf yang sebesar-besarnya untuk semua teman-teman, semoga bulan ramadhan kali ini kita semua di beri berkah dan ampunan. Amin.

Galih

Posted by: junkerkokngeblog | August 30, 2008

Kerberos????

Kata kerberos berasal dari kata cerberus, yang dalam mithology yunani adalah sesosok makhluk penjaga alam baka milik hades, memastikan bahwa hanya orang mati saja yang bisa masuk ke alam baka sekaligus mencegah arwah yang sudah berada disana untuk kabur. Kerberos digambarkan sebagai anjing berkepala tiga dan berekor seperti ekor ular.

The full definition of what Kerberos provides is a secure, single-sign-on, trusted, third-party mutual authentication service. What does that mean? Let’s break that definition down into its parts and quickly describe each one.

Fungsi dari kerberos adalah sistem autentikasi yang aman, single-sign-on, terpercaya dan bersifat mutual, apa arti dari definisi tersebut, mari kita coba membahasnya satu persatu.

Secure

Kerberos bersifat aman karena tidak pernah mentransmit password melewati jaringan dalam bentuk plaintext. Kerberos menggunakan objek unik bernama tiket, yaitu pesan yang terenkripsi dengan menggunakan time-limited cryptographic, yang membuktikan identitas user kepada sebuah server tanpa mengirimkan password melalui jaringan atau melakukan cache password di hardisk local si user.

Single-sign-on

Single-sign-on berarti end user hanya perlu melakukan login sekali untuk melakukan akses kepada seluruh resource jaringan yang support terhadap kerberos. Ketika user telah melakukan authentikasi kerberos pada saat memulai sesi login, maka surat kepercayaan user tersebut akan dikirim ke setiap resource yang dia akses.

Trusted third-party

Trusted third-party berarti mengacu kepada fakta bahwa kerberos bekerja sebagai sistem authentikasi terpusat yang diacu oleh semua sistem di jaringan, seluruh request untuk mengauthentikasi suatu user akan dilemparkan ke server authentikasi kerberos.

Mutual authentication

Mutual authentication memastikan bukan hanya orang dibalik keyboard adalah sesuai apa yang ia klaim, tapi juga si server yang dia akses.

Posted by: junkerkokngeblog | August 30, 2008

Menginstall kerberos5 di FreeBSD 6.2

  1. Introduction

Dapat tugas dari mas Affan Basalamah buat bikin sistem authentikasi terpusat untuk server-server di ITB menggunakan Kerberos. Malam ini aku mulai bikin dokumen yang berisi tentang desain dan implementasi sistem. Aku coba install kerberos 5 melalui ports di freebsd(/usr/ports/security/krb5) dan ketika proses kompilasi berlangsung keluar error code yang isinya menyatakan bahwa aku harus mengupgrade installasi x-org ku, dan inilah yang aku lakukan:

  1. Buat log untuk terminal session, iseng aja sih

# script xorg-upgrade

Ganti paket portupgrade dengan portupgrade-devel, sebab dari apa yang aku baca, untuk upgrade x-org sebaiknya menggunakan portupgrade yang terbaru.

# portupgrade -f -o ports-mgmt/portupgrade-devel portupgrade

Hapus index port dan database port

# rm -f /usr/ports/INDEX*.db /var/db/pkg/pkgdb.db

Buat database port terbaru

# pkgdb -fu

Buat index port terbaru.

# cd /usr/ports && make index

Set environment untuk upgrade XORG

# setenv XORG_UPGRADE yes

# portupgrade -Rf libXft

Hapus manual page dari xorg

# pkg_delete xorg-manpages\*

  1. Kerjakan apa yang di tulis di manual, proses untuk membuat index port akan berlangsung lama, apalagi proses upgrade xorg, jadi sambil kerja sambil nonton the simpson session 7 episode satu yang judulnya “Who shot Mr. Burns”, dan setelah menunggu beberapa jam xorg berhasil diupgrade.

  1. Ok selanjutnya install kerberos5, masuk ke direktori /usr/ports/security/krb5, oh ya sewaktu menginstall kerberos saya menemui error yaitu tidak bisa melakukan fetch terhadap Fonts.tar.bz2 dan setelah googling akhirnya saya menemukan site untuk mendownload package Font. Langsung saja unduh file nya

wget ftp://ftp.tw.freebsd.org/pub/ports/distfiles/ghostscript/Font.tar.bz2 masukan filenya ke /usr/ports/distfiles/ghostscript/ dan ketikan kembali

# make install clean di direktori /usr/ports/security/krb5

Older Posts »

Categories