[SQUID] memblokir website pada jam tertentu
Ada pertanyaan dari seseorang, bagaimana mem block facebook , youtube pada jam kantor ?
Dikarenakan karyawan selalu main facebookan pada jam kantor.
caranya ? bisa diselesaikan dengan SQUID acl.
buat file block.acl di /etc/squid
isinya list dari web site yang mau di blokir
trus tulis di squid.conf seperti ini
acl office_time time MTWHF 09:00-18:00
acl bad url_regex "/etc/squid/block.acl"
acl lan_ip src 192.168.9.0/24
http_access deny lan_ip bad office_time
ini untuk mendeklarasikan jam kantor, jam 9 sampai jam 18 pada hari Senin, Selasa,Rabu, Kamis, Jumat
acl office_time time MTWHF 09:00-18:00
Panggil list url yang mau diblokir
acl bad url_regex "/etc/squid/block.acl"
Ini deklarasi lan_ip internal
acl lan_ip src 192.168.9.0/24
dan ini perintah untuk menblokir
http_access deny lan_ip bad office_time
Semoga berhasil !
Unban user dari fail2ban
Contoh kasus : menghilangkan ban dari ssh user yang ter ban karena salah password berkali2
Jadi root
sudo bash
kemudian
iptables -nL
cari Chain fail2ban-ssh
temukan ip address yang mau di unban dan hitung posisi baris nya
e.g.:
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP 0 -- 202.211.117.xxx 0.0.0.0/0
DROP 0 -- 202.231.117.yyy 0.0.0.0/0
RETURN 0 -- anywhere anywhere
execute perintah ini
iptables -D fail2ban-ssh
jika mau unban ip 202.231.117.yyy
iptables -D fail2ban-ssh 2
Postgresql: Cara mengetahui schema ada
Kasus : Ingin mengetahui apakah schema trans201101 ada atau tidak.
Solusi nya :
Menggunakan query dibawah ini :
select nspname from pg_catalog.pg_namespace where nspname =’trans201101′;
lalu di kode check apakah record return 0 atau 1
Konversi ext3 ke ext4
Halo pembaca blog ku yang setia,
Seperti yang kita ketahui filesystem ext4 baru saja keluar. Support terhadap ext4 sudah ada didalam kernel
2.6.28
Keuntungan ext4 nya adalah :
- Support hard disk space yang besar 1 EB (exaByte)
- File maximum ukuran nya bisa 16TB
- Timestamp hingga nanosecond
- Panjang filename hingga 256 bytes
So bila anda masih menggunakan ext3 , maka waktunya updgrade ke ext4.
caranya :
cek dulu filestsem yang ada di harddisk :
# mount | grep "^/dev"
/dev/sda1 on / type ext3 (rw)
/dev/sdb1 on /home type ext3 (rw)
/dev/sdc1 on /u01 type ext3 (rw)
Sekarang aku mau convert /dev/sdb1 yang ext3 ke ext4
umount dulu /dev/sdb1
umount /dev/sdb1
Ingat sebaiknya anda melakukan ini dalam single user mode, sebelum anda melakukan ini
backup semua data anda.
ok lanjut, sekarang kita akan benar benar melakukan konversi :
tune2fs -O extents,uninit_bg,dir_index /dev/sdb1
harus di check dulu, filesystemnya ok atau tidak
fsck -pf /dev/sdb1
selesai, selamat memcoba. ingat backup dulu ya. jaga jaga bila konversi gagal karena lampu mati atau sebab lain
(donairl)
Hard disk Quota di Linux
Problem :
User selalu menaruh file – file besar di server membuat server penuh, oleh karena itu kita perlu membatasi berapa banyak space hard disk yang diberikan ke User yang bersangkutan.
Notes:
Disini aku menggunakan Debian Squeeze 6.0
Solution:
Gunakan package quota
Install quota Package.
apt-get install quota quotatool
Tambah kan usrquota,grpquota pada partisi yang mau di set quota nya, dibawah ini contoh saya pada partisi /dev/sda2 yang di mount /home
#
proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
UUID=928f5c9b-8e3f-4803-94b5-2480e38247a2 / ext3 errors=remount-ro 0 1
# /home was on /dev/sda2 during installation
UUID=884c65d5-2b16-471b-83ca-0cf55c032257 /home ext3 usrquota,grpquota 0 2
# swap was on /dev/sda3 during installation
UUID=01b883ad-56f6-43ee-9644-feca318fee07 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
Lalu remount /home
mount -o remount /home
Dan aktifkan quota dengan perintah dibawah ini
quotacheck -avugm
quotaon -avug
Selesai installasi nya…
lalu bagaimana mengeset nya ??
Ini perintahnya untuk mengeset user testing :
edquota -u testing
Akan tampil text editor seperti dibawah
Disk quotas for user testing1 (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 16 44100 44200 4 0 0
Edit lah soft and hard kolom, kedua ini dalam satuan blocks , 1 blocks = 1 kb
Penjelasan kolom :
dari kiri ke kanan
1 filesystem : mount dari hard disk
2. blocks adalah space yg sedang digunakan
3. soft adalah limit space bila user melebihi ini user akan di beri warning, tapi user masih bisa menulis di hd sampai hard limit
4. hard adalah limit final, user tak bisa menulisi lagi setelah mencapai ukuran ini.
5. inodes : jumlah file yang ada
6. soft : batas jumlah file ( masih peringatan)
7 hard : batas jumlah file (sudah tiada ampun lagi)
karena kita membatasi ukuran space hard disk bukan jumlah file maka
diatas kita set
kolom 3 : soft = 44100
kolom 4: hard =44200
untuk kolom 6,7 biarkan nilai nya 0
Ok sekarang sudah set untuk mengecek status dari quota , perintahnya adalah :
root@dxns2:/home/donairl# repquota -s /home
akan keluar tampilan seperti dibawah:
*** Report for user quotas on device /dev/sda2
Block grace time: 7days; Inode grace time: 7days
Space limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 153M 0K 0K 1916 0 0
daemon -- 20K 0K 0K 5 0 0
bin -- 4K 0K 0K 1 0 0
man -- 920K 0K 0K 102 0 0
libuuid -- 4K 0K 0K 1 0 0
Debian-exim -- 28K 0K 0K 7 0 0
statd -- 20K 0K 0K 5 0 0
donairl -- 44K 65000K 65100K 13 0 0
messagebus -- 4K 0K 0K 1 0 0
testing1 -- 16K 44100K 44200K 4 0 0
ntp -- 8K 0K 0K 2 0 0
mysql -- 21504K 0K 0K 80 0 0
postfix -- 60K 0K 0K 44 0 0
Dengan melihat kolom diatas, sudah jelas mana penggunaan oleh user testing1 dan quota nya.
Selesai
Terima kasih atas waktunya.
Donny Airlangga
[Linux] Mencari file terbaru
Problem:
Bagaimana mencari file yang baru di buat atau yang tulis ?
solusi:
ls -ct1 | head -1
Rsync dengan ssh custom port
Problem:
Ingin mengirim file dengan rsync melalui ssh dengan menggunakan port 6622 (bukan port standar)
solusi:
rsync - avz -e "ssh -p 6622" YOUR_USER@YOUR_SERVER:/path/to/files/from/server /path/to/local
aku posting ini karena agak sulit mencari nya
[Linux]: Mencari file terbaru di directory
Bagaimana mencari file yang terbaru di suatu directory linux ?
Masuk ke dalam directory yang mau dicari dan ketik perintah nya
ls -tr | tail -1
Ok, sekarang bila mau memindahkan file directory ke tmp misalnya
maka perintahnya
mv `ls -tr | tail -1` \tmp\newfile
Begitu, sekian terima kasih…
donairl
Program android yang #1
Sekarang aku lagi utak-atik android, tertarik bagaimana cara coding nya. Maka dengan perasaan semangat aku coba coba buat program sederhana.
Android menggunakan bahasa java, tidak menggunakan jvm nya punya sun. tapi dalvik vm. untuk detailnya bisa baca di android manual
Yang diperlukan :
- Android SDK :http://developer.android.com/sdk/index.html
- Eclipse : http://www.eclipse.org/downloads/.
- Otak
- Komputer yang ada java nya
Jangan lupa download pula dokumentasi nya. Dan baca dulu , kalo tidak anda akan ndak mudeng mbaca postingan saya ini.
Bila anda tak punya device android, tak payah beli. anda boleh gunakan emulator yang tersedia di SDK nya
Untuk membuat AVD:
1. Dalam Eclipse, pilih Window> Android SDK dan AVD Manager.
2. Pilih Virtual Devices di panel sebelah kiri.
3. Klik Baru.
Buat Baru AVD dialog muncul.
4. Ketik nama AVD, seperti “my_avd”.
5. Pilih target. Sasarannya adalah platform (yaitu, versi dari SDK Android, seperti 2.1) Anda ingin menjalankan di emulator.
Anda dapat mengabaikan kolom yang lain untuk saat ini.
6. Klik Buat AVD. ( Create AVD)
Di eclipse, setelah anda install SDK dan plugin android. Lakukan seperti ini :
New Android Project , beri nama applikasi SuperCobaan
package name org.donairl
nama class cobaan
seperti ini lah
- Project name: SuperCobaan
- Application name: SuperCobaan
- Package name : org.donairl
- Create Activity: cobaan
Pertama yang harus dilakukan adalah membuat layout.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/ajaib"
/>
<EditText android:id=”@+magic/editor”
android:layout_width=”match_parent” android:layout_height=”0dip”
android:autoText=”true”
android:capitalize=”sentences”
android:layout_weight=”1″
android:freezesText=”true” >
</EditText>
<Button android:id=”@+hapus/button”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Hapus” />
<Button android:id=”@+random/button”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Random” />
<Button android:id=”@+about/button”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”About” />
</LinearLayout>
simpan dengan nama main.xml di folder layout
Edit pula strings.xml di folder values
<resources>
<string name="hello">Hello World, Cobaan!</string>
<string name="app_name">SuperCoba</string>
<string name="ajaib">Kata Ajaib anda :</string>
<string name="hakcipta">(c) 2010 , Donny Airlangga</string>
</resources>
isi dari class cobaan.java seperti ini :
package org.donairl;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Cobaan extends Activity {
private EditText mEditor;
private int cnt=0;
private int cn=0;
/** Called when the activity is first created. */
OnClickListener mClearListener = new OnClickListener() {
public void onClick(View v) {
mEditor.setText(“”);
}
};
OnClickListener mAboutListener = new OnClickListener() {
public void onClick(View v) {
mEditor.setText(R.string.hakcipta);
}
};
OnClickListener mRandomListener = new OnClickListener() {
public void onClick(View v) {
cnt++;
String [] lapo = {“Kamu gila”,”Dapat uang semilyar”,
“Cinta anda ditolak”,
“Ketemu jodoh hari ini”,
“Menang undian”,
“Jaga kesehatan”,
“Kesehatan baik”,
“Karier menanjak”,
“Dapat Customer baru”};
mEditor.setText(” Kata magic anda #”+String.valueOf(cnt));
mEditor.append(“\n “+lapo[cn]);
cn++;
if (cn>8) cn=0;
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mEditor = (EditText) findViewById(R.magic.editor);
((Button) findViewById(R.hapus.button)).setOnClickListener(mClearListener);
((Button) findViewById(R.random.button)).setOnClickListener(mRandomListener);
((Button) findViewById(R.about.button)).setOnClickListener(mAboutListener);
}
}
Lalu coba run.
tampilan akan seperti ini
image…
Kalau gagal pasti ada yang salah. Oh ya pastikan menggunakan target platform yang sesuai. misalnya android 1.6 atau 2.2
target android 1.6 bisa jalan di 2.2 tapi tidak sebaliknya
js: Date function: count number of day and format days
First function :
Use for format Date in string type.
//donairl : this function for change format dd/mm/yyyy into yyyy/mm/dd
// the reason i do this : because new Date can accept 'yyyy/mm/dd' to convert into dates
// other format :
// * MM-dd-yyyy
// * yyyy/MM/dd
// * MM/dd/yyyy
// * MMMM dd, yyyy
// * MMM dd, yyyy
// TODO : Can put custom date separator
function FormatDateStr(inputdt){
var temp = new Array();
temp = inputdt.split('/');
return temp[2]+'/'+temp[1]+'/'+temp[0];
}
Secondly this one i take from other person code, i don’t know who.
Use for count days between 2 dates.
Input is in Date Object.
If you have format string like this ’20/11/2010′
to convert to Date() , then use above function, so become like this :
var startDate = new Date(FormatDateStr($F(‘txtTgl1′)));
var endDate = new Date(FormatDateStr($F(‘txtTgl2′)));
numofdays = CountdaysBetween( startDate, endDate );
function CountdaysBetween(date1, date2) {
var DSTAdjust = 0;
// constants used for our calculations below
oneMinute = 1000 * 60;
var oneDay = oneMinute * 60 * 24;
// equalize times in case date objects have them
date1.setHours(0);
date1.setMinutes(0);
date1.setSeconds(0);
date2.setHours(0);
date2.setMinutes(0);
date2.setSeconds(0);
// take care of spans across Daylight Saving Time changes
if (date2 > date1) {
DSTAdjust =
(date2.getTimezoneOffset() - date1.getTimezoneOffset()) * oneMinute;
} else {
DSTAdjust =
(date1.getTimezoneOffset() - date2.getTimezoneOffset()) * oneMinute;
}
var diff = Math.abs(date2.getTime() - date1.getTime()) - DSTAdjust;
return Math.ceil(diff/oneDay);
}
