Selasa, Februari 16, 2010

IP Masquerade

IP Masquerade adalah salah satu fasilitas di Linux yang memungkinkan komputer yang tidak memiliki nomor IP resmi dapat tersambung ke internet melewati komputer Linux. IP Masquerade dibutuhkan jika jaringan Anda mempunyai nomor IP resmi yang lebih sedikit daripada jumlah komputer yang ada. Selain menjembatani kekurangan nomor IP, IP Masquerading dengan digabungkan ipchains atau ipfwadm juga dapat menjadi filter paket-paket yang keluar masuk. Dapat diibaratkan, mesin Linux berfungsi sebagai gateway.

Cara kerja IP Masquerade dapat digambarkan sebagai berikut :

1. Mesin klien diseting dengan menempatkan mesin Linux sebagai gatewaynya.
2. Jika ada paket dari klien ke mesin Linux, IP Masquerade akan membuat nomor port baru, header IP baru berdasarkan IP mesin Linux, dan menyimpan paket aslinya. Paket tersebut kemudian diteruskan ke internet lewat koneksi PPP atau SLIP.
3. Jika ada paket baru dari Internet, IP Masquerade akan mencocokkan dengan nomor port. Jika sesuai dengan nomor port yang telah dibuat sebelumnya, maka paket tersebut dibungkus kembali dengan header yang telah disimpan sebelumnya, dan diteruskan kepada klien.
4. Baik klien maupun host di Internet yang mengirimkan paket tidak pernah merasakan perbedaannya.

Untuk menjalankan IP Masquerade pada mesin Linux dengan Kernel 2.2.x, Anda membutuhkan :

1. Kernel 2.2.x atau berikutnya
2. Modul kernel yang dapat dijalankan, minimal versi 2.1.121 atau berikutnya
3. Jaringan dengan menggunakan TCP/IP yang telah berjalan dengan baik.
4. Koneksi ke internet untuk mesin Linux
5. IP Chains versi 1.3.8 atau berikutnya

Sedangkan pada Kernel versi 2.0.x Anda membutuhkan :

1. Kernel 2.0.x atau berikutnya
2. Modul kernel yang dapat dijalankan, minimal versi 2.0.0 atau berikutnya
3. Jaringan dengan menggunakan TCP/IP yang telah berjalan dengan baik.
4. Koneksi ke internet untuk mesin Linux
5. Ipfwadm versi 2.3 atau berikutnya

Sebelum melakukan seting IP Masquerade, pastikan bahwa mesin Linux Anda tidak berisi data-data penting. Mesin Linux ini akan jadikan gateway, yang merupakan mesin terdepan yang terkena sasaran jika ada penyusupan atau serangan ke dalam jaringan Anda (Baca Bab VII tentang Keamanan Linux). Jika Anda berencanan menjadikan Linux sebagai file server, mail server, web server atau aplikasi server yang penting lainnya, dianjurkan untuk menginstal IP Masquerade pada mesin Linux lainnya. Anda dapat memanfaatkan mesin-mesin 486 lama yang mungkin sekarang tersimpan di gudang.

Squid

Squid adalah sebuah penampilan yang bagus bagi dari server cacking proxy untuk klient
web, pendukung FTP, gopher dan obyek data HTTP. Tak seperti software cacking
tradisional , squid menangani semua permintaan dalam bentuk singgle , non bloking ,
proses I/O driven. Squit menyimpan data meta dan khususnya obyek panas yang
tersembunyi dalam RAM, menyembunyikan DNS lookups, mendukung DNS lookups
yang tak memihak, dan cacking negatif dari permintaan yang digagalkan .
Squid mendukung SSL,kontrol akses yang extensif dan loging permintaan penuh.
Dengan menggunakan ukuran berat internet cache protokol, squid dapat disusun dalam
sebuah hirarki untuk pengamanan bandwidth extra squid terdiri dari sebuah squid
program main server, sebuah dnsserver program lookups Domain Name Systim, beberapa
program untuk menulis kembali permintaan-permintaan dan keoutentikan penampilan ,
dan beberapa menegemen dan alat-alat klient.
Berikut ini beberapa perintah squid
1. Mengatur port dimana squid binding (berjalan).

http_port 3128
atau utk lebih aman-nya, kita bisa juga definisikan ip address dan portnya sekaligus
http_port 10.2.1.55:3128

2. Mengatur letak dan ukuran direktori dimana squid menyimpan cache-nya.

cache_dir ufs 100 16 256
keterangan
100 : 100 MB yg dialokasikan utk cachenya squid
16 : direktori tingkat 1 yg digunakan utk penyimpanan cache
256 : direktori tingkat 2 yg digunakan utk penyimpanan cache

3. Access Control List (ACL) : digunakan untuk memberikan akses (allow/deny) pada squid.

acl lab-crew src 10.2.1.0/24
10.2.1.0/24 : source ip-address LAN yg diperbolehkan mengakses squid
lab-crew : nama dari ACL

4. Memperbolehkan akses dari lab-crew (10.2.1.0/24)

http_access allow lab-crew

5. Membuka Port-port yg diperlukan untuk chat (YM = 5050, mirc = 6660-6670) -> port ini sebetulnya tidak mengakses squid dengan cara yang normal sebagaimana yang terjadi apabila kita mengakses http (port 80), melainkan dengan metode CONNECT.

acl PortPenting port 5050 6660-6670
http_access allow CONNECT PortPenting

Senin, Februari 15, 2010

[ Dari A- Z ] Perintah dasar di Linux

Berikut ini megh post perintah-perintah Linux dari a sampai z. Semoga bermanfaat yak :) terutama buat teman-teman yang baru Ujian Praktek Nih.! sukses ! untuk saya juga haha..amin

a
addgroup Tambah grup ke sistem
alias Create an alias •
apropos Search Help halaman manual (man-k)
apt-get Mencari dan menginstal paket perangkat lunak (Debian)
aspell Spell Checker
awk Cari dan Ganti teks, database sort / validate / index


b
Strip basename direktori dan akhiran dari nama file
bash GNU Bourne-Again Shell
bc Arbitrary bahasa kalkulator presisi
bg Kirim ke latar belakang
break Keluar dari loop •
builtin menjalankan shell builtin
bzip2 Compress atau dekompresi file bernama (s)
c
cal Display a calendar
case Conditionally perform a command
cat Display the contents of a file
cd Change Directory
cfdisk Partition table manipulator for Linux
chgrp Change group ownership
chmod Change access permissions
chown Change file owner and group
chroot Run a command with a different root directory
chkconfig System services (runlevel)
cksum Print CRC checksum and byte counts
clear Clear terminal screen
cmp Compare two files
comm Compare two sorted files line by line
command Run a command - ignoring shell functions •
continue Resume the next iteration of a loop •
cp Copy one or more files to another location
cron Daemon to execute scheduled commands
crontab Schedule a command to run at a later time
csplit Split a file into context-determined pieces
cut Divide a file into several parts
d
date Display or change the date & time
dc Desk Calculator
dd Convert and copy a file, write disk headers, boot records
ddrescue Data recovery tool
declare Declare variables and give them attributes •
df Display free disk space
diff Display the differences between two files
diff3 Show differences among three files
dig DNS lookup
dir Briefly list directory contents
dircolors Colour setup for `ls'
dirname Convert a full pathname to just a path
dirs Display list of remembered directories
dmesg Print kernel & driver messages
du Estimate file space usage
e
echo Display message on screen •
egrep Search file(s) for lines that match an extended expression
eject Eject removable media
enable Enable and disable builtin shell commands •
env Environment variables
ethtool Ethernet card settings
eval Evaluate several commands/arguments
exec Execute a command
exit Exit the shell
expect Automate arbitrary applications accessed over a terminal
expand Convert tabs to spaces
export Set an environment variable
expr Evaluate expressions
f
false Do nothing, unsuccessfully
fdformat Low-level format a floppy disk
fdisk Partition table manipulator for Linux
fg Send job to foreground
fgrep Search file(s) for lines that match a fixed string
file Determine file type
find Search for files that meet a desired criteria
fmt Reformat paragraph text
fold Wrap text to fit a specified width.
for Expand words, and execute commands
format Format disks or tapes
free Display memory usage
fsck File system consistency check and repair
ftp File Transfer Protocol
function Define Function Macros
fuser Identify/kill the process that is accessing a file
g
gawk Find and Replace text within file(s)
getopts Parse positional parameters
grep Search file(s) for lines that match a given pattern
groups Print group names a user is in
gzip Compress or decompress named file(s)
h
hash Remember the full pathname of a name argument
head Output the first part of file(s)
help Display help for a built-in command •
history Command History
hostname Print or set system name
i
id Print user and group id's
if Conditionally perform a command
ifconfig Configure a network interface
ifdown Stop a network interface
ifup Start a network interface up
import Capture an X server screen and save the image to file
install Copy files and set attributes
j
join Join lines on a common field
k
kill Stop a process from running
killall Kill processes by name
l
less Display output one screen at a time
let Perform arithmetic on shell variables •
ln Make links between files
local Create variables •
locate Find files
logname Print current login name
logout Exit a login shell •
look Display lines beginning with a given string
lpc Line printer control program
lpr Off line print
lprint Print a file
lprintd Abort a print job
lprintq List the print queue
lprm Remove jobs from the print queue
ls List information about file(s)
lsof List open files
m
make Recompile a group of programs
man Help manual
mkdir Create new folder(s)
mkfifo Make FIFOs (named pipes)
mkisofs Create an hybrid ISO9660/JOLIET/HFS filesystem
mknod Make block or character special files
more Display output one screen at a time
mount Mount a file system
mtools Manipulate MS-DOS files
mv Move or rename files or directories
mmv Mass Move and rename (files)
n
netstat Networking information
nice Set the priority of a command or job
nl Number lines and write files
nohup Run a command immune to hangups
nslookup Query Internet name servers interactively
o
open Open a file in its default application
op Operator access
p
passwd Modify a user password
paste Merge lines of files
pathchk Check file name portability
ping Test a network connection
pkill Stop processes from running
popd Restore the previous value of the current directory
pr Prepare files for printing
printcap Printer capability database
printenv Print environment variables
printf Format and print data •
ps Process status
pushd Save and then change the current directory
pwd Print Working Directory
q
quota Display disk usage and limits
quotacheck Scan a file system for disk usage
quotactl Set disk quotas
r
ram ram disk device
rcp Copy files between two machines
read Read a line from standard input •
readarray Read from stdin into an array variable •
readonly Mark variables/functions as readonly
reboot Reboot the system
rename Rename files
renice Alter priority of running processes
remsync Synchronize remote files via email
return Exit a shell function
rev Reverse lines of a file
rm Remove files
rmdir Remove folder(s)
rsync Remote file copy (Synchronize file trees)
s
screen Multiplex terminal, run remote shells via ssh
scp Secure copy (remote file copy)
sdiff Merge two files interactively
sed Stream Editor
select Accept keyboard input
seq Print numeric sequences
set Manipulate shell variables and functions
sftp Secure File Transfer Program
shift Shift positional parameters
shopt Shell Options
shutdown Shutdown or restart linux
sleep Delay for a specified time
slocate Find files
sort Sort text files
source Run commands from a file `.'
split Split a file into fixed-size pieces
ssh Secure Shell client (remote login program)
strace Trace system calls and signals
su Substitute user identity
sudo Execute a command as another user
sum Print a checksum for a file
symlink Make a new name for a file
sync Synchronize data on disk with memory
t
tail Output the last part of files
tar Tape ARchiver
tee Redirect output to multiple files
test Evaluate a conditional expression
time Measure Program running time
times User and system times
touch Change file timestamps
top List processes running on the system
traceroute Trace Route to Host
trap Run a command when a signal is set(bourne)
tr Translate, squeeze, and/or delete characters
true Do nothing, successfully
tsort Topological sort
tty Print filename of terminal on stdin
type Describe a command •
u
ulimit Limit user resources •
umask Users file creation mask
umount Unmount a device
unalias Remove an alias •
uname Print system information
unexpand Convert spaces to tabs
uniq Uniquify files
units Convert units from one scale to another
unset Remove variable or function names
unshar Unpack shell archive scripts
until Execute commands (until error)
useradd Create new user account
usermod Modify user account
users List users currently logged in
uuencode Encode a binary file
uudecode Decode a file created by uuencode
v
v Verbosely list directory contents (`ls -l -b')
vdir Verbosely list directory contents (`ls -l -b')
vi Text Editor
vmstat Report virtual memory statistics
w
watch Execute/display a program periodically
wc Print byte, word, and line counts
whereis Search the user's $path, man pages and source files for a program
which Search the user's $path for a program file
while Execute commands
who Print all usernames currently logged in
whoami Print the current user id and name (`id -un')
Wget Retrieve web pages or files via HTTP, HTTPS or FTP
write Send a message to another user
x
xargs Execute utility, passing constructed argument list(s)
yes Print a string until interrupted

IPTABLES

iptables adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter (penyaringan) terhadap (trafic) lalulintas data. Secara sederhana digambarkan sebagai pengatur lalulintas data. Dengan iptables inilah kita akan mengatur semua lalulintas dalam komputer kita, baik yang masuk ke komputer, keluar dari komputer, ataupun traffic yang sekedar melewati komputer kita.

Perintahnya adalah iptables [–t tables] [option] [rule] [target]

Perlakuan yang dialami oleh data/paket data oleh iptables digambarkan melalui tabel. Macam tabelnya adalah:
1. Filter : tabel default yang ada dalam penggunaan iptables
2. NAT : tabel ini digunakan untuk fungsi NAT, redirect, redirect port
3. Mangle : tabel ini berfungsi sebagai penghalus proses pengaturan paket

Command dan rule yang dipasang pada iptables (firewall) memiliki ketentuan. Pada dasarnya iptables pada komputer dianggap sebagai TABEL IP sesuai dengan namanya. System hanya akan menjalan rule yang ada pada tabel. Sedangkan rule yang sudah ada pada iptables juga dapat di hapus atau di replace dengan rule lain. Berikut beberapa command untuk penambahan, penghapusan dan operasi sejenisnya yang akan diperlakukan terhadap rule.

Daftar Perintah berikut keterangan

-A atau –append Melakukan penambahan rule
-D atau –delete Melakukan penghapusan rule
-R atau –replace Melakukan replacing rule
-L atau –list Menampilkan ke display, daftar iptables
-F atau –flush Menghapus daftar iptables/pengosongan
-I atau –insert Melakukan penyisipan rule
-N atau –new-chain Melakukan penambahan chain baru
-X atau –delete-chain Melakukan penghapusan chain
-P atau –policy Memberikan rule standard
-E atau –rename Memberikan penggantian nama
-h atau –help Menampilkan fasilitas help

Parameter
Parameter iptables digunakan sebagai pelengkap yang diperlukan untuk tujuan spesifikasi rule tersebut

Parameter berikut Keterangan
-p, –protocol (proto) Parameter ini untuk menentukan perlakuan terhadap protokol
-s, –source (address) –-src Parameter untuk menentukan asal paket
-d, –destination (address) –-dst Parameter untuk menentukan tujuan paket
-j, –jump (target)
-g, –goto (chain)
-i, –in-interface Masuk melalui interface (eth0, eth1 dst)
-o, –out-interface
[!] -f, –fragment
-c, –set-counters

–sport
–source-port Menentukan port asal
–dport
–destination-port Menentukan port tujuan
–tcp-flags Menentukan perlakuan datagram
–syn

Selanjutnya apa itu yang disebut dengan chain?
Chain/rantai digambarkan sebagai jalur aliran data. Chains yang diperlukan untuk iptables ini antara lain:

Chain berikut Keterangan
FORWARD Route packet akan di FORWARD tanpa di proses lanjut di local
INPUT Route packet masuk ke dalam proses lokal sistem
OUTPUT Route packet keluar dari local sistem
PREROUTING Chain yang digunakan untuk keperluan perlakuan sebelum packet masuk route. Biasanya dipakai untuk proses NAT
POSTROUTING Chain yang digunakan untuk keperluan perlakuan sesudah packet masuk route. Biasanya dipakai untuk proses NAT
Chain PREROUTING dan POSTROUTING dimaksudkan sebagai jalur data sebelum dan sesudah data tersebut masuk ke dalam route.
PREROUTING: data sebelum masuk jalur route, akan di kenakan rule
POSTROUTING: data sebelum masuk akan dikenakan route

Apakah target itu?
Target adalah tujuan perlakuan terhadap rule. Pada target ini terletak keputusan, paket data mau diapakan, apakah mau di tolak, atau diteruskan atau diolah terlebih dahulu. Berikut daftar table target iptables

Target berikut Keterangan
ACCEPT Rantai paket tersebut diterima dalam rule
DROP Rantai paket tersebut “dijatuhkan”
REJECT Rantai paket tersebut ditolak seperti DROP
DNAT Rantai paket di “destination nat” kan ke address lain
SNAT Rantai paket di arahkan ke source nat tertentu
REDIRECT Rantai paket di redirect ke suatu addres dan port tertentu
MASQUERADE Bekerja seperti SNAT tapi tidak memerlukan source
REJECT Bekerja seperti DROP

Contoh beberapa kasus untuk iptables

Misalkan terdapat sebuah jaringan komputer menggunakan koneksi internet dengan IP ADDRESS publik
222.124.132.91 (eth0)
Server gateway memiliki 3 anak jaringan (jaringan lokal) dengan dibedakan subnet

192.168.0.0/24 (eth1)
192.168.1.0/24 (eth2)
192.168.10.0/24 (eth3)

Kondisi dalam jaringan, eth3 tidak diperbolehkan melakukan akses ke internet tetapi diperbolehkan masuk ke jaringan lokal lainnya melalui protokol http. Sedangkan eth1 dan eth2 diperbolehkan melakukan akses ke internet. Pada IP ADDRESS 192.168.1.10 terdapat webserver, dan pada IP Address 192.168.1.12 terdapat koleksi intranet yang akan dipublish ke internet. Disamping itu, koneksi internet 1 mega tersebut akan di share, untuk semua komputer di eth2 akan dibatasi pemakaiannya maksimal 10kbps. Berikut contoh sederhana routin firewallnya

#/bin/bash

#blok semua address (default), pada dasarnya semua akses di blok
iptables –P INPUT –j DROP
#bersihkan table
iptables –F
iptables –t nat –F
iptables –t mangle -F
#perkecualian dengan syarat tertentu
iptables -A INPUT -d 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j ACCEPT
iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j MASQUERADE
iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE
#forward webserver dan intranet
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.0.10:80
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 88 -j DNAT –to 192.168.0.12:80
#redirect ke squid
iptables –t nat –A PREROUTING –s 192.168.10.0/24 -p tcp –dport 80 -j REDIRECT –to-port 3128
iptables –t nat –A PREROUTING –s 192.168.10.1/24 -p tcp –dport 80 -j REDIRECT –to-port 3128

Senin, Februari 08, 2010

Berbagi ilmu ' berbagi rasa :)

Hari ini, tanggal 8 Februari 2010 mega dapet kesempatan yang bikin gimana gitu,ah gimana?gimana neng? :D tadi mega jadi guru, sebenernya bukan guru juga sih, cuma berbagi ilmu sama teman-teman sekelas.Grogi? pastinya, apalagi ditungguin pak Guru mega yang jelas seratus ribu sangat jago. Haduh kapan ya mega kamu gag grogian, emm yah walo sejauh ini sih, oke lah,walo salah-salah tapi masih terkendali. Jadi semangat pengen jadi guru.

Oh iya tadi juga mega jadi ngrasain gimana rasanya kalo ngajar nggak didengerin, ditinggal pulang , haha..awal yang ga bagus untuk calon guru, tapi gak papa, terus belajar n berjuang! pasti bisa deh.Mega jadi inget sama Pak Psikolog yang dulu mega sama temen pernah ngerjain dia habis-habisan(sebenernya nggak ngerjain juga sih, cuma nggak sengaja ) Pas itu ada acara bazar pendidikan disalah satu SMA terkenal di Jogja, nah mega sama ana (temen gila :D) maen kesana, eh ada tempat konsultasi psikolog gratis. Nah isengnya muncul dah, masuk deh ketemu sama psikolog cowo kurus cakep juga. Heheh sayang lupa namanya, awalnya bingung mau ngomong apa, trus akhirnya Pak Psikolog yang baek hati itu malah bercrita-cerita ke kita,dari perjuangan dia yang anak rantau menjadi seorang psikolog. Dia punya pengalaman sebelum sukses dulu, pas pertama kali mengadakan seminar, pesertanya pulang semua. Hehehe..kayak mega sekarang, yah semoga mega juga sukses sama kayak Pak Psikolog dulu itu. :) amin amin ! ! Yah sudah dulu cerita hari ini mau belajar lagi.


PESAN MORAL : Kalo ngomong didepan umum, jangan lupa persiapin diri, mandi dan pake parfum. Biar yang dengerin gag kabur ! hehe