Skip to content

Some useful linux commands

Tulisan ini sekedar dokumentasi yang mungkin berguna bagi anda juga.

Split file besar menjadi file-file kecil dengan tiap file terdiri dari 20000 baris:

split -l 20000 nama_file.txt prefix_file

Rename banyak file, mengubah ekstensinya jadi .txt:

rename 's/\$/\.txt/' *

Mengetahui jumlah baris dalam file:

wc -l nama_file.txt

Meng-compress file menjadi .tar.gz:

tar cvfz nama_directory

Meng-uncompress file .tar.gz:

tar xvzf nama_file.tar.gz

Meng-uncompress file .tar:

tar xvf nama_file.tar

Meng-uncompress file .gz:

gunzip nama_file.gz
gzip -d nama_file.gz

Mengetahui load tiap prosesor:

top

(kemudian tekan angka 1)

Grep dengan regex (contoh: mencari karakter tab):

grep -P '\t' nama_file.txt

Install .deb:

dpkg -i nama_file.deb

Menjalankan aplikasi di background (tidak mati walaupun shell-nya sudah mati):

nohup commandnya &

Synchronize file-file dari server dengan wget:

wget -N -nd -np -r http://server.com/directory

Copy file via scp:

scp * username@server:/home/target

phpMyAdmin Security Issue

phpMyAdmin adalah aplikasi web-based untuk melakukan administrasi database MySQL yang sangat populer. Karena sangat populer, aplikasi ini banyak diincar oleh para hacker.

Bagi anda yang menginstall aplikasi ini harap berhati-hati (baik yang anda install di server, laptop, atau komputer pribadi), jangan sampai bisa diakses oleh orang yang tidak berhak.

Bila anda menginstallnya di komputer anda, coba tengok di error log web server anda.

[Mon] [error] File does not exist: /var/www/phpmanager
[Mon] [error] File does not exist: /var/www/php-myadmin
[Mon] [error] File does not exist: /var/www/phpmy-admin
[Mon] [error] File does not exist: /var/www/webadmin
[Tue] [error] File does not exist: /var/www/phpmyadmin
[Tue] [error] File does not exist: /var/www/phpMyAdmin
[Tue] [error] File does not exist: /var/www/phpMyAdmin-2
[Tue] [error] File does not exist: /var/www/php-my-admin
[Tue] [error] File does not exist: /var/www/phpMyAdmin-2.2.3
[Tue] [error] File does not exist: /var/www/phpMyAdmin-2.2.6
[Tue] [error] File does not exist: /var/www/phpMyAdmin-2.5.1
[Tue] [error] File does not exist: /var/www/phpMyAdmin-2.5.4
[Tue] [error] File does not exist: /var/www/phpMyAdmin-2.5.5-rc1
[Tue] [error] File does not exist: /var/www/phpMyAdmin-2.5.5-rc2

Kalau ada log seperti di atas, berarti seseorang telah melakukan scanning terhadap komputer anda.

Selama komputer anda menyala dan terkonneksi internet dengan IP Public (static/dynamic), baik di kantor, wifi, atau memakai internet 3G; komputer anda rentan sekali dengan scanning seperti ini.

Hati-hati bila anda menginstall phpMyAdmin, beberapa versi phpMyAdmin mengandung beberapa bug:

  • Sesorang bisa menggunakan  fitur import file, untuk mengupload file-file selain sql. Penyerang bisa mengupload file .php yang bisa mengakses file-file anda; atau file .exe yang berisi trojan atau bot.
  • setup.php lupa dihapus. Bug pada file setup.php bisa digunakan penyerang untuk mereset password mysql. File setup.php merupakan file instalasi awal dalam phpMyAdmin, selesai instalasi seharusnya file ini segera dihapus.
  • Beberapa versi, rentan terhadap XSS injection; penyerang bisa mengeksploitasinya untuk mengakses file-file di server.
  • Lebih lengkap bug-bugnya di sini!

Beberapa tip untuk mencegah phpMyAdmin diakses orang tidak berhak:

  • Update script phpMyAdmin dengan versi terbaru
  • Batasi akses phpMyAdmin dengan menaruhnya dibelakang firewall. Bila tidak ada firewall bisa membatasi akses hanya dari IP tertentu, misalnya dengan membuat .htaccess:
    <Directory /var/www/phpmyadmin>
    order deny,allow
    deny from all
    allow from localhost
    allow from 127.0.0.1
    allow from 10.10.10.10
    allow from 192.168.0.0/255.255.255.0
    </Directory>

     

  • Bila terpaksa membuka akses phpMyAdmin, tambahlah password protect folder, dengan htpasswd dan htaccess misalnya:
    AuthUserFile .htpasswd
    AuthName "Restricted Area"
    AuthType Basic
    Require valid-user

    Untuk lebih jelasnya bisa melihat tutorial di sini.

     

Linux: Instalasi Webmin

Sebenarnya sudah banyak tutorial meng-install webmin. Tulisan ini sekedar pengingat bagi saya sendiri, dan mungkin berguna bagi anda juga.

Webmin adalah salah satu web based control panel di linux. Walaupun tidak se-user friendly cpanel, namun webmin cukup memudahkan adminstrasi server, dibanding harus mengelola dari command line.

Berikut adalah step by step instalasinya di Linux ubuntu:

  1. Pertama pastikan web server sudah terinstall di server. Bila belum anda dapat menginstall dari command line:
    sudo apt-get install apache2
  2. Setelah web server terinstall sekarang saatnya menginstall webmin. Langkah selanjutnya yaitu menambah sumber file instalasi, dengan mengedit file /etc/apt/sources.list
    sudo vi /etc/apt/sources.list
  3. Dalam file di atas tambahkan baris berikut, dan simpan.
    deb http://download.webmin.com/download/repository sarge contrib
    deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
  4. Download GPG key dan kemudian import:
    wget http://www.webmin.com/jcameron-key.asc
    sudo apt-key add jcameron-key.asc
  5. Update source list:
    sudo apt-get update
  6. Install webmin:
    sudo apt-get install webmin
  7. Setelah terinstall anda dapat mengakses webmin lewat https di port 10000, misal: https://alamat.ip:10000
  8. Untuk meningkatkan aspek keamanan, sebaiknya port webmin diubah ke port yang tidak biasa, misal port 18459 atau port tidak standard lainnya

 

Untuk Linux distribusi lain misalnya Centos, anda dapat mencoba langkah-langkah berikut:

yum install openssl perl-Net-SSLeay perl-Crypt-SSLeay

echo -e "[Webmin]\nname=Webmin Distribution Neutral\nbaseurl=http://download.webmin.com/download/yum\nenabled=1" > /etc/yum.repos.d/webmin.repo

wget http://www.webmin.com/jcameron-key.asc

rpm --import jcameron-key.asc

yum install webmin

yum -y install perl-Net-SSLeay

Linux: Netcat Tidak Ada Respon

Issue:

Beberapa hari lalu server Linux Ubuntu  2.6.32-33-server (Lucid 10.4) telah selesai disetup, dan aplikasi telah diupload.

Namun setelah dicoba, aplikasi tidak jalan. Padahal di server lain jalan dengan baik (Linux Ubuntu  2.6.38-8-server [Natty 11.4]).

Aplikasi ini memerlukan respon dari netcat. Aplikasi tersebut mengeksekusi perintah di shell, kurang lebih seperti ini:

echo -e "HEAD / HTTP/1.0\r\n" | nc google.com 80

Seharusnya bila berjalan normal minimal akan mengeluarkan respon seperti ini:

HTTP/1.0 200 OK
Date: Thu, 22 Dec 2011 07:01:54 GMT
Expires: -1

 

Solusi:

Netcat ternyata ada beberapa variant, yang mempunyai behavior yang berlainan. Netcat bawaan dari Ubuntu adalah nc.openbsd.

Di Ubuntu  Lucid 10.04  perintah di atas tidak menghasilkan respon apapun.

Agar keluar responnya, solusinya adalah meng-install nc.traditional, dengan:

sudo apt-get install netcat-traditional

Setelah ter-install, dapat dicoba perintah berikut:

echo -e "HEAD / HTTP/1.0\r\n" | nc.traditional google.com 80

Dan akhirnya reponnya keluar juga sekarang.

Keep Moving

Di suatu atap sebuah tangga berjalan (eskalator) terdapat suatu tulisan:

“It does not matter how slowly you go as long as you do not stop.”  – Confucius-

Sebuah kutipan bijak dari Confucius, yang memberi saran kepada setiap orang untuk tidak berhenti dan tetap bergerak walaupun jalannya pelan.

Namun yang jadi pertanyaan, karena tulisan tersebut ditempel di atap tangga berjalan, untuk siapakah tulisan tersebut dibuat?

Apakah untuk orang yang memakai tangga berjalan atau untuk si tangganya?

Kecenderungan orang yang memakai eskalator pasti berhenti di ujung tangga dan menunggu si tangga mengantarkannya sampai ujung. Karena kecenderungan pemakai eskalator berhenti, maka tulisan tersebut tampaknya bukan untuk pemakai tangga berjalan.

Kalau bukan untuk orangnya, pastilah tulisan tersebut ditujukan untuk si tangga berjalan. Kalau si tangga berhenti pasti tangga tersebut menjadi useless dan dimaki banyak orang.

Jadi lebih baik si tangga tersebut berjalan pelan daripada berhenti sama sekali.

Maaf tulisan ini ditujukan untuk si tangga berjalan bukan untuk pembaca.

Prediksi Futurolog Abal-abal

source: sxc.hu

Tidak mau kalah dengan Presiden SBY yang pensiun mau jadi futurolog, penulis pun akan mencoba menjadi seorang futurolog namun futurolog yang amatir alias abal-abal.

Futurolog dalam Kamus Besar Bahasa Indonesia, berarti orang yang ahli futurologi. Sedang futurologi sendiri berarti ilmu tentang masa depan. Jadi futurolog dapat dikatakan sebagai orang  yang ahli meramal masa depan.

Berbeda dengan ahli nujum atau tukang ramal, futurolog menggunakan metode ilmiah yang menggabungkan berbagai ilmu seni, sejarah, dan sains untuk memprediksi keadaan masa depan.

Beberapa orang yang terkenal akan prediksi masa depannya antara lain Moore, Alvin Tofler, dan John Naisbitt. Moore terkenal dengan hukumnya yang memprediksi bahwa jumlah transistor dalam sebuah IC akan bertambah dua kali lipat setiap dua tahun.

Sedang Alvin Tofler terkenal karena beberapa bukunya yang berisi prediksi masa depan. Salah satu prediksi Alvin Tofler yang terkenal yaitu, akan ada era sesudah era industri yaitu era gelombang ketiga. Gelombang ketiga ini yang sekarang disebut dengan era informasi.

Senada dengan Alvin Tofler, John Naisbitt dalam bukunya Megatrends juga meramalkan adanya era setelah era industri. Di era setelah era industri, akan ada era ekonomi informasi. Di era ekonomi informasi ini, kegiatan ekonomi akan menjadi global dan tidak terpengaruh jarak dan waktu.

Prediksi Abal-abal

Tentunya prediksi penulis tidak bisa dibandingkan dengan orang-orang terkenal di atas. Prediksi berikut tanpa metode apapun sehingga hasilnya tidak bisa dipertanggungjawabkan, wong namanya juga prediksi abal-abal.

OK berikut prediksi saya:

  • Dilihat dari trendnya, krisis ekonomi di Amerika dan Eropa akan semakin parah, dan sedikit banyak akan berpengaruh terhadap ekonomi Indonesia; ini terjadi sekitar tahun 2012-2014.
  • Nilai dollar amerika secara umum semakin merosot dibanding mata uang lain didunia, namun anehnya nilai rupiah malah merosot terhadap dollar amerika.
  • Nilai rupiah mungkin akan merosot antara Rp12.000,- sampai Rp 18.000,- per dollar amerikanya. Hal ini disebabkan dana-dana asing ditarik ke luar negeri, dan BI tidak mampu menahan laju kemerosotan ini karena jumlah devisa yang semakin menipis.
  • Utang-utang pemerintah Indonesia yang jatuh tempo bisa memperparah keadaaan ini. Gali lubang tutup lubang dengan menerbitkan surat utang baru pun akan dilakukan, namun karena rating utangnya turun, surat utang ini tidak begitu laku.
  • Tahun 2012, kemungkinan besar Obama terpilih lagi; namun karena keadaan ekonomi semakin memburuk, bisa jadi Obama diturunkan di tengah jalan.
  • Ekonomi Amerika memburuk, pengangguran semakin banyak, akan memicu terjadi kerusuhan di berbagai tempat di Amerika, yang bisa menyebabkan terjadinya perang sipil.
  • Kerusuhan akan merembet ke negara Eropa dan Asia termasuk Indonesia.
  • Ditambah lagi adanya bencana alam super besar seperti gempa, tsunami dan gunung meletus, yang akan semakin memperburuk ekonomi dunia.
Begitulah prediksi amatir saya. Kalau prediksi di atas salah adalah hal yang wajar, kalau prediksi benar itu karena semata-mata kehebatan penulis (baca: hanya kebetulan belaka).

Machine Translation (Terjemahan Mesin)

Pernah menggunakan Google Translate atau Rekso Translator? Kedua aplikasi tersebut merupakan contoh dari aplikasi Machine Translation (MT )

MT adalah perpaduan antara ilmu bahasa dengan ilmu komputasi, sering disebut sebagai bagian dari ilmu computational linguistic. Intinya ilmu ini mencoba membuat mesin mampu menerjemahkan satu bahasa ke bahasa yang lainnya,

Sekarang ini ada beberapa jenis MT, yang umum ditemui adalah Statistical Machine Translator (SMT), Rule Based Machine Traslator, dan Hybrid Machine Translator.

Statistical Machine Translator (SMT)

SMT menggunakan hitung-hitungan statistik untuk menerjemahkan suatu kalimat bahasa tertentu ke bahasa yang lain. Salah statu contoh SMT yang terkenal adalah Google Translate dan Microsoft Translator.

Karena menggunakan hitungan statistik, maka SMT memerlukan contoh-contoh terjemahan yang sudah ada (biasa disebut bilingual corpora). Contoh terjemahan kemudian dihitung peluang suatu kata atau frasa diterjemahkan ke bahasa yang lain. Hasil perhitungan ini menghasilkan suatu model translasi.

Diperlukan juga contoh-contoh kalimat dalam kedua bahasa (biasa disebut monolingual corpora). Contoh-contoh kalimat ini digunakan sebagai model bahasa. Model bahasa ini digunakan agar translasi yang dihasilkan tata bahasanya lebih baik.

Semakin banyak data contoh terjemahan dan data contoh kalimat, semakin baiklah hasil terjemahan yang dihasilkan.

Rule Based MT

Teknik ini menggunakan aturan-aturan bahasa baku dalam menerjemahkan. Selain aturan-aturan, diperlukan juga data kamus untuk tiap kata dalam dua bahasa.

Jadi tiap kata diterjemahkan satu persatu, kemudian diatur lagi berdasarkan aturan bahasa baku. Contoh aplikasi rule based ini yaitu rekso translator.

Namun karena aturan bahasa tidak selalu baku, dan data kamus terbatas, maka penerjemahan terkadang tidak sesuai dengan yang diharapkan. Pada umumnya rule based MT kualitasnya masih kalah dibanding SMT.

Hybrid MT

MT jenis ini adalah perpaduan antara statistical dan rule based MT. Ada beberapa teknik hybrid MT, antara lain: keluaran rule based MT, kemudian hasilnya diatur lagi berdasar statistical; atau hasil penerjemahan dari SMT kemudian diatur ulang tata bahasanya berdasar aturan yang baku.

Hasil terjemahannya dari SMT yang kemudian diatur ulang tata bahasanya, umumnya kualitasnya lebih baik dibanding metode penerjemahan lainnya.

VPS Linux: 10 menit pertama

source:sxc.hu

Setelah order VPS (Virtual Private Server) Linux, apa yang sebaiknya anda lakukan?

Ini merupakan tip sederhana yang biasanya penulis lakukan, ketika pertama kali memperoleh username & password account VPS.

Menit 1 – 2

– Pastikan anda memperoleh data IP Address Server, dan root password
– Pastikan anda  memperoleh URL untuk VPS management, username dan passwordnya

Menit 2 – 3

– Download SSH client, biasanya penulis menggunakan putty
– Login ke server dengan menggunakan login root

Menit 3 – 5

– Membuat user baru dan passwordnya (pastikan user dan password-nya tidak mudah ditebak)

adduser userbaru
passwd userbaru

– Buka SSH client baru, dan mencoba login dengan user baru tersebut (jadi sekarang ada dua terminal SSH); bila sudah bisa masuk silakan lanjut ke langkah selanjutnya

Menit ke 5 – 8

– Dari terminal user root, buka file /etc/ssh/sshd_config

vi /etc/ssh/ssd_config

– Cari tulisan PermitRootLogin, ubah konfigurasinya menjadi no (hilangkan tanda pagar kalau masih ada)

# Prevent root logins:
PermitRootLogin no

– Restart sshd service

/sbin/service sshd restart

Menit ke 8 – 10

– Keluar dari terminal root, dan buka SSH client baru
– Coba login dengan user root, bila root masih berhasil login berarti langkah di atas harus diulang

Mengapa langkah di atas sebaiknya dilakukan?

– Satu menit setelah VPS anda aktif, banyak orang akan mencoba meng-hack server anda

– Biasanya peretas tersebut akan melakukan brute force attack pada port SSH dengan login root

– Jadi untuk memperkecil peluang keberhasilan serangan tersebut, root dilarang login langsung lewat SSH

Semoga berguna buat anda.