title

Jumat, 29 Juli 2011

Install Ubuntu Server 10.10 dan Squid (Proxy) + Mikrotik



Install Ubuntu:
Spek:
- Proc Pentium IV atau Pentium D
- RAM 1 GB.
- HDD 250 GB
- Lan Card.


Install Squid:


Kalau sudah selesai Instalnya mari kita mulai buat instal paket-paket yang dibutuhkan buat proxynya.

Setelah selesai instal Hubungkan Kabel CROSS Dari Pc Ubuntu ke Mikrotik.
setelah itu Buka winbox untuk remote mikrotik, coba Ping IP Ubuntu dari new terminal yang ada di winbox.
lihat dan perhatikan apakah sudah reply atau belum. kalau belum coba diteliti lagi mungkin ada yang belum bener. kalau sudah reply kita lanjutkan.
langkah Berikutnya kita akan menginstal paket yang dibutuhkan, sebelumnya anda download Putty dan Winscp untuk remote ubuntu servernya disini http://www.mediafire.com/?qi7v7r1792d0dc1

kalau sudah anda remote ubuntu lewat Putty dengan mengetikan IP address Pc Ubuntunya (192.168.3.2 ). kalau muncul pesan warning pilih aja Yes.
setelah muncul jendela terminal di Putty login seperti anda login di Ubuntu sebagai #root.

kemudian anda instal paket yang di butuhkan dengan mengetik perintah di bawah ini :
root@proxyku:~# sudo apt-get update
root@proxyku:~# sudo apt-get install squid squidclient squid-cgi
root@proxyku:~# sudo apt-get install gcc
root@proxyku:~# sudo apt-get install build-essential
root@proxyku:~# sudo apt-get install sharutils
root@proxyku:~# sudo apt-get install ccze
root@proxyku:~# sudo apt-get install libzip-dev
root@proxyku:~# sudo apt-get install automake1.9

kalau sudah selesai anda download squid 2.7STABLE9 dengan mengetikan perintah di terminal ubuntu melalui putty :

root@proxyku:~# wget h**p://tempat-sampah.googlecode.com/files/squid-2.7.STABLE9%2Bpatch.tar.gz (**=Ganti tt )

kalau sudah selesai kita extrak filenya dengan perintah :

root@proxyku:~# tar xvf squid-2.7.STABLE9+patch.tar.gz
root@proxyku:~# cd squid-2.7.STABLE9

setelah itu anda lanjutkan dengan kompil file tersebut dengan perintah di bawah ini :

Spoiler for Kompillernyaspoiler:

./configure --prefix=/usr --exec_prefix=/usr --bindir=/usr/sbin --sbindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid \
--localstatedir=/var/spool/squid --datadir=/usr/share/squid --enable-async-io=24 --with-aufs-threads=24 --with-pthreads --enable-storeio=aufs \
--enable-linux-netfilter --enable-arp-acl --enable-epoll --enable-removal-policies=heap --with-aio --with-dl --enable-snmp \
--enable-delay-pools --enable-htcp --enable-cache-digests --disable-unlinkd --enable-large-cache-files --with-large-files \
--enable-err-languages=English --enable-default-err-language=English --with-maxfd=65536



Kalau anda bingung anda copas aja tiap barisnya terus anda paste di Puttynya dengan klik kanan aja terus anda ENTER.
setelah itu anda lanjutkan dengan perintah :
root@proxyku:~#make
root@proxyku:~#sudo make install

setelah selesai anda STOP squidnya. tapi sebelum anda stop squidnya anda ganti dulu isi yang ada di /etc/init.d/squid dengan perintah :
root@proxyku:~#sudo nano /etc/init.d/squid
kemudian anda hapus semua isinya dan anda ganti dengan ini:

Spoiler for isi /etc/init.d/squid spoiler:

#! /bin/sh
#
# squid Startup script for the SQUID HTTP proxy-cache.
#
# Version: @(#)squid.rc 2.20 01-Oct-2001 miquels@cistron.nl
#
### BEGIN INIT INFO
# Provides: squid
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Should-Start: $named
# Should-Stop: $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Squid HTTP Proxy
### END INIT INFO

NAME=squid
DAEMON=/usr/sbin/squid
LIB=/usr/lib/squid
PIDFILE=/var/run/$NAME.pid
SQUID_ARGS="-D -YC"

[ ! -f /etc/default/squid ] || . /etc/default/squid

. /lib/lsb/init-functions

PATH=/bin:/usr/bin:/sbin:/usr/sbin

[ -x $DAEMON ] || exit 0

grepconf () {
w=" " # space tab
sq=/etc/squid/squid.conf
# sed is cool.
res=`sed -ne '
s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $sq`
[ -n "$res" ] || res=$2
echo "$res"
}

grepconf2 () {
w=" " # space tab
sq=/etc/squid/$NAME.conf
# sed is cool.
res=`sed -ne '
s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $sq`
[ -n "$res" ] || res=$2
echo "$res"
}

#
# Try to increase the # of filedescriptors we can open.
#
maxfds () {
[ -n "$SQUID_MAXFD" ] || return
[ -f /proc/sys/fs/file-max ] || return 0
global_file_max=`cat /proc/sys/fs/file-max`
minimal_file_max=$(($SQUID_MAXFD + 4096))
if [ "$global_file_max" -lt $minimal_file_max ]
then
echo $minimal_file_max > /proc/sys/fs/file-max
fi
ulimit -n $SQUID_MAXFD
}

start () {
cdr=`grepconf2 cache_dir /var/spool/$NAME`
ctp=`grepconf cache_dir ufs`

case "$cdr" in
[0-9]*)
log_failure_msg "squid: squid.conf contains 2.2.5 syntax - not starting!"
log_end_msg 1
exit 1
;;
esac

#
# Create spool dirs if they don't exist.
#
if [ -d "$cdr" -a ! -d "$cdr/00" ] || [ "$ctp" = "coss" -a ! -w "$cdr" ]
then
log_warning_msg "Creating squid cache structure"
$DAEMON $SQUID_ARGS -z
fi

if [ "$CHUID" = "" ]; then
CHUID=root
fi

#maxfds
ulimit -n 8192
umask 027
start-stop-daemon --quiet --start \
--pidfile $PIDFILE \
--chuid $CHUID \
--exec $DAEMON -- $SQUID_ARGS < /dev/null
return $?
}

stop () {
PID=`cat $PIDFILE 2>/dev/null`
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name squid
#
# Now we have to wait until squid has _really_ stopped.
#
sleep 2
if test -n "$PID" && kill -0 $PID 2>/dev/null
then
log_action_begin_msg " Waiting"
cnt=0
while kill -0 $PID 2>/dev/null
do
cnt=`expr $cnt + 1`
if [ $cnt -gt 24 ]
then
log_action_end_msg 1
return 1
fi
sleep 5
log_action_cont_msg ""
done
log_action_end_msg 0
return 0
else
return 0
fi
}

case "$1" in
start)
log_daemon_msg "Starting Squid HTTP proxy" "squid"
if start ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
stop)
log_daemon_msg "Stopping Squid HTTP proxy" "squid"
if stop ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
reload|force-reload)
log_action_msg "Reloading Squid configuration files"
$DAEMON -k reconfigure
log_action_end_msg 0
;;
restart)
log_daemon_msg "Restarting Squid HTTP proxy" "squid"
stop
if start ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
status)
status_of_proc -p "$PIDFILE" "$DAEMON" squid && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|status}"
exit 3
;;
esac

exit 0



kalau sudah anda tekan ctrl+x terus anda ketik y terus enter untuk menyimpan hasil perubahan isi di /etc/init.d/squid. terus anda ketik perintah lagi :
root@proxyku:~# sudo chmod +x /etc/init.d/squid

kalau sudah kita bisa stop squidnya dengan perintah:
root@proxyku:~# sudo /etc/init.d/squid stop
kalau sudah anda download dulu squid.conf di sini http://www.mediafire.com/?absca142b42qkdp
terus anda pastekan isinya ke ubuntu lewat WinSCP.
Bagi yang bingung remote dengan winscp, isi Hostname dengan IP addressnya ubuntu (192.168.3.2 ) Username : root password : proxyku .
terus anda tinggal drag and drop file yang ada di cpu anda ke cpu ubuntu.
kalua sudah anda lanjutkan dengan Memberikan permission pada folder cache dengan perintah :
root@proxyku:~#chown proxy : proxy /cache
root@proxyku:~#chmod 777 /cache
root@proxyku:~#chown proxy : proxy /etc/squid/storeurl.pl
root@proxyku:~#chmod 777 /etc/squid/storeurl.pl

kalau sudah selesai lanjuutkan dengan membuat folder-folder swap/cache di dalam folder cache yang telah ditentukan dengan perintah :
root@proxyku:~#squid -f /etc/squid/squid.conf -z

lalu anda restart squidnya dengan perintah :
root@proxyku:~#/etc/init.d/squid restart
kalau sudah selesai anda setting mikrotiknya seperti dibawah ini :


Setting Tambahan pada Mikrotik:

Masukkan ini di mangle :
IP FIREWALL ADDRESS-LIST :
0 ;;; LocalNet
LocalNet 192.168.2.0/24 — IP local sesuaikan dengan IP lokal anda
1 ;;; PROXY
ProxyNet 192.168.3.0/24 – IP network Proxy
2 DNS 202.134.1.10 -- sesuaikan DNS ISP anda
3 DNS 202.134.0.155 -- sesuaikan DNS ISP anda
4 GAMES 63.251.101.0/25
5 GAMES 74.114.8.0/21

IP FIREWALL NAT :
0;;;; Nat Proxy
chain=dstnat action=dst-nat to-addresses=192.168.3.2 to-ports=3128 protocol=tcp src-address=!192.168.3.2

src-address-list=LocalNet dst-address-list=!ProxyNet dst-port=80,8080,3128
connection-mark=http-conn

1 ;;; Added by webbox
chain=srcnat action=masquerade out-interface=ether1-gateway

2 ;;; Proxy Out
chain=srcnat action=src-nat to-addresses=IP INTERNET ANDA/IP PUBLIC misalnya 192.168.1.2
src-address=IP LOKAL ANDA misalnya 192.168.2.1
4 chain=dstnat action=dst-nat to-ports=53 protocol=udp dst-port=53
5 ;;; SSH
chain=dstnat action=dst-nat to-addresses=192.168.3.2 to-ports=22
protocol=tcp dst-address=IP INTERNET ANDA/IP PUBLIC dst-port=22,10000