Belajar untuk lebih aman
March 14, 2005 | Posted in Linux and OSSSemenjak server yang saya install online, hampir tiap hari di log ketemu yang aneh-aneh. Yang paling sering adalah brute force ke sshd. Emang sih belom ada yang bisa masuk (mungkin …?). Kalo brute force kan lama, soalnya mereka mencoba semua kombinasi password sama username-nya, klo beruntung bisa langsung masuk, klo enggak silakan coba lagi ^^.
Contoh log-nya kayak gini:
Mar 11 00:09:38 serverku sshd[9297]: Failed password for illegal user dog from 81.223.104.69 port 49718 ssh2
Mar 11 00:09:42 serverku sshd[9299]: Illegal user blue from 81.223.104.69
Mar 11 00:09:42 serverku sshd[9299]: Failed password for illegal user blue from 81.223.104.69 port 49761 ssh2
Mar 11 00:09:45 serverku sshd[9301]: Illegal user red from 81.223.104.69
Nah bete kan ngeliat log gini? Tiap hari pasti ada, tiap jam malah. Untungnya login root gak diizinin lewat SSH.
Kebetulan pas ke freshmeat ada yang posting aplikasi baru namanya DenyHosts. Aplikasi ini memakai python. Cara kerjanya adalah men-scan file log ssh (misal /var/log/secure atau /var/log/message), mencari pola kesalahan login dari suatu host, kemudian memasukkan host tersebut ke /etc/hosts.deny. Script ini harus dijalankan secara berkala, sesuai kebutuhan, saya sendiri menjalankannya tiap 5 menit sekali.
Namun ternyata, para attacker lebih pintar, karena mereka menggunakan banyak sekali alamat IP, entah itu open proxy atau mesin lain yang udah compromised. Jadinyanya yah tiap hari masih ada aja yang coba-coba.
Apakah service SSH ke-luar dimatikkan saja? Jangan dong ntar gimana klo mo monitoring dari warnet (yg paling penting klo mo nitip wget sama torrent gimana?). Akhirnya saya putuskan menjalankan SSH di port lain (selain 22) untuk koneksi SSH dari luar, trus hanya SSH protokol 2 yang diperbolehkan, no root login, salah login 3x langsung out.
Ini contoh potongan sshd_config saya:
Protocol 2
ListenAddress 192.168.255.254:22 #(ip local)
ListenAddress xxx.xxx.xxx.xxx:2222 #(ini untuk ip luar)
LoginGraceTime 2m
PermitRootLogin no
ChallengeResponseAuthentication no
PrintMotd no
Hasilnya di log jadi nggak kelihatan lagi tuh ada yang nyoba-nyoba masuk ke SSH dari luar. Mungkin program yang buat brute force SSH itu secara default menggunakan default port 22 buat SSH. Jadi selama program itu gak tau port mana yang listen buat SSH, relatif aman lah.
DenyHosts tetep dijalanin buat jaga-jaga.
Eh, jangan-jangan mesin ini udah compromised, dan semua jejak hilang dengan sempurna, doh!
Yah namanya juga belajar ^^
Klo ada yang kurang mohon ditambahin yaa
CMIIW





![[Image]](http://www.pageflakes.com/subscribe2.gif)

om asep, mau tanya dunx, seprernya pake apaan ? dan pake servis apaan ajah ..?
bales yak, soalnya sayah juga mau bikin
Comment by KoronX — April 12, 2005 @ 9:52 am
oo iyah, sekalian tukeran linx, linx anda sudah ada di web koe
Comment by KoronX — April 12, 2005 @ 9:54 am
Hai, koronx!
Ini serper pake Slackware 10.0 tapi banyak paket yang udah diupdate ke versi current (pake swaret)
Serper buat macem-macem (kayak student dulu) dari mulai http(apache), ssh, ftp(vsftpd), dhcp, proxy+cache(squid), mail (qmail), sampe samba sbg pdc
Okeh, bagi-bagi ilmu-nya yaa ^^
Link-mu akan dimasukkan
Comment by asep — April 12, 2005 @ 12:59 pm
Om tanya neh, saya pengen remoth server saya dari luar tapi sampai sekarang masih belum bisa, hanya ip local saja yang bisa….. gmn configurasinya? RH 9
Comment by vido — February 1, 2008 @ 10:36 am
Pastikan SSH daemon listen juga di interface external (cek /etc/ssh/sshd_config) bagian ListenAddress
Terus cek firewall/iptables apakah mengizinkan SSH dari luar? (iptables -L)
Untuk mengizinkan SSH via iptables coba search aja di google iptables allow SSH
Comment by anmsid — February 1, 2008 @ 10:45 am