image_pdfimage_print

nginx – Block Exploits, SQL Injections, File Injections, Spam, User Agents, Dll

server {
[...]

    ## Block SQL injections
    set $block_sql_injections 0;
    if ($query_string ~ "union.*select.*\(") {
        set $block_sql_injections 1;
    }
    if ($query_string ~ "union.*all.*select.*") {
        set $block_sql_injections 1;
    }
    if ($query_string ~ "concat.*\(") {
        set $block_sql_injections 1;
    }
    if ($block_sql_injections = 1) {
        return 403;
    }

    ## Block file injections
    set $block_file_injections 0;
    if ($query_string ~ "[a-zA-Z0-9_]=http://") {
        set $block_file_injections 1;
    }
    if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") {
        set $block_file_injections 1;
    }
    if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") {
        set $block_file_injections 1;
    }
    if ($block_file_injections = 1) {
        return 403;
    }

    ## Block common exploits
    set $block_common_exploits 0;
    if ($query_string ~ "(<|%3C).*script.*(>|%3E)") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "proc/self/environ") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") {
        set $block_common_exploits 1;
    }
    if ($query_string ~ "base64_(en|de)code\(.*\)") {
        set $block_common_exploits 1;
    }
    if ($block_common_exploits = 1) {
        return 403;
    }

    ## Block spam
    set $block_spam 0;
    if ($query_string ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b") {
        set $block_spam 1;
    }
    if ($query_string ~ "\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b") {
        set $block_spam 1;
    }
    if ($query_string ~ "\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b") {
        set $block_spam 1;
    }
    if ($query_string ~ "\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b") {
        set $block_spam 1;
    }
    if ($block_spam = 1) {
        return 403;
    }

    ## Block user agents
    set $block_user_agents 0;

    # Don't disable wget if you need it to run cron jobs!
    #if ($http_user_agent ~ "Wget") {
    #    set $block_user_agents 1;
    #}

    # Disable Akeeba Remote Control 2.5 and earlier
    if ($http_user_agent ~ "Indy Library") {
        set $block_user_agents 1;
    }

    # Common bandwidth hoggers and hacking tools.
    if ($http_user_agent ~ "libwww-perl") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "GetRight") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "GetWeb!") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "Go!Zilla") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "Download Demon") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "Go-Ahead-Got-It") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "TurnitinBot") {
        set $block_user_agents 1;
    }
    if ($http_user_agent ~ "GrabNet") {
        set $block_user_agents 1;
    }

    if ($block_user_agents = 1) {
        return 403;
    }
[...]
}

ODBC Mssql connection for php in linux

ODBC MSSQL IN Linux

Hallo pengunjung ribhy yang mungkin punya masalah yang sama dengan saya, pecinta linux dikasih project untuk membuat aplikasi mengunakan php framework tapi database MSSQL dari pecinta jendela. Oke langsung aja deeh, pertama adalah download freetds bisa mengunakan wget, proz, links, lynx 


[root@localhost]# lynx http://downloads.sourceforge.net/project/freetds/OldFiles/freetds-0.61.tar.gz

Next, uncompress, configure and make the FreeTDS driver.

[root@localhost]# tar -xvfz freetds-0.61.tgz -C /usr/local/src
[root@localhost]# cd freetds-0.61
[root@localhost]# ./configure --with-tdsver=7.0 --with-unixodbc

Gunakan sudo -s jika blm menjadi super user ( root )

[root@localhost]# make
[root@localhost]# make install
[root@localhost]# make clean

Jika udah saat testing untuk koneksi ke server

[root@localhost]# /usr/local/bin/tsql -S <mssql.servername.com> -U
<ValidUser>
Password: <password>

Jika berhasil maka akan muncul seperti dibawah ini

1>

Untuk keluar mengunakan ctrl + C

Jika belum berhasil, coba dengan telnet port 1433 sebelumnya gunakan nmap untuk memastikan mssql open port.

[root@localhost]# telnet <mssql.servername.com> 1433

dan jika bisa ditelnet

[root@localhost]# cd /usr/local/etc

From /usr/local/etc/, edit freetds.conf. At the end of this file, add an entry something like this:

[TDS]
        host = mssql.serverhost.com
        port = 1433
        tds version = 7.0
Selanjutnya adalah seting odbc connection

 

Untuk yang mengunakan redhat atau sejenisnya ada settingan odbc di system menu. Dan gunakan settingan berikut ini:

Name: TDS
Description: v0.61 with Protocol v7.0
Driver: /usr/local/lib/libtdsodbc.so
Setup: /usr/lib/libtdsS.so
FileUsage: 1

Rest dapat kosong, click checkmark kemudian klik OK

Name: MSSQLServer
Description: TDS MSSQL (description isn't important)
Servername: mssql.serverhost.com
UID: sa
PWD:
Port: 1433

Jika mengunakan ubuntu, install libmyodbc mengunakan apt-get

[root@localhost]# apt-get install libmyodbc

Kemudian edit odbc.ini

[root@localhost]# vi /etc/odbc.ini

[ODBC Data Sources]
odbcname     = MyODBC 3.51 Driver DSN

[odbcname]
Driver       = /usr/lib/odbc/libmyodbc.so
Description  = MyODBC 3.51 Driver DSN
SERVER       = my.database.server.com
PORT         =
USER         = USER
Password     = XXXXXX
Database     = DBNAME
OPTION       = 3
SOCKET       =

[Default]
Driver       = /usr/local/lib/libmyodbc3.so
Description  = MyODBC 3.51 Driver DSN
SERVER       = localhost
PORT         =
USER         = root
Password     =
Database     = test
OPTION       = 3
SOCKET       =

[TDS]
Driver       = /usr/local/lib/libtdsodbc.so 
Setup        = /usr/lib/libtdsS.so
Description  = freeTDS v0.61 with Protocol v7.0
SERVER       = localhost
PORT         = 1143
USER         = sa
Password     = password
Threading = 1
FileUsage = 1
CPTimeout =
CPReuse =


Untuk mengetest odbc bisa mengunakan

[root@localhost]# isql -v TDS sa password
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> use Northwind
0 rows affected
SQL> SELECT TOP 1 Name from Master
+-------------------------------+
| Name                          |
+-------------------------------+
| Ribhy Keren                   |
+-------------------------------+
1 rows affected
SQL> quit

Untuk PHP code saya mencoba dengan mengunakan code dibawah ini

--- begin odbc_connect.php---
<?
// Koneksi menginakan odbc_connetct
$connect = odbc_connect("TDS", "sa", "password") or die
  ("couldn't connect");
// use database
odbc_exec($connect, "use ribhy_com");
$result = odbc_exec($connect, "SELECT Name, Desc " .
        "FROM master");
while(odbc_fetch_row($result)){
  print(odbc_result($result, "Name") .
        ' ' . odbc_result($result, "Desc") . "<br>\n");
}
// get result & close koneksi
odbc_free_result($result);
odbc_close($connect);
?>
--- end odbc_connect.php --

Selamat mencoba..

Postgresql disable / enable trigger

DISABE / ENABLE PostgreSQL Session trigger

Untuk sementara mendisable PostgreSQL Session dengan query seperti berikut ini

Untuk mengaktifkannya kembali

DISABLE / ENABLE PostgreSQL TABLE
Untuk mengdisable postgresql table trigger tertentu:

Untuk mengaktifkan kembali:

Selamat mencoba.

Server Security : CSF ( Config Server Firewall ) on centos 6.6

Config Server Firewall (atau CSF) adalah firewall gratis dan canggih untuk sebagian besar distro Linux dan VPS berbasis Linux. Selain fungsi dasar firewall – paket penyaringan – CSF mencakup fitur keamanan lainnya, seperti login/intrusion/flood detection. CSF termasuk UI integrasi untuk cPanel, DirectAdmin dan Webmin, tapi tutorial ini hanya mencakup penggunaan baris perintah. CSF mampu mengenali banyak serangan, seperti port scan, SYN banjir, dan login serangan brute force pada banyak layanan. Hal ini dikonfigurasi untuk memblokir klien yang terdeteksi harus menyerang server cloud untuk sementara.

Daftar lengkap sistem operasi yang didukung dan fitur dapat ditemukan di situs web ConfigServer itu.
Config Server Firewall web

Installing ConfigServer Firewall
Step 1: Downloading
Config Server Firewall is not currently available in Debian or Ubuntu repositories, and has to be downloaded from the ConfigServer’s website.
wget http://www.configserver.com/free/csf.tgz
This will download CSF to your current working directory.
Step 2: Uncompressing
The downloaded file is a compressed from of tar package, and has to be uncompressed and extracted before it can be used.
tar -xzf csf.tgz
Step 3: Installing
If you are using another firewall configuration scripts, such as UFW, you should disable it before proceeding. Iptables rules are automatically removed.

UFW can be disabled by running the following command:
ufw disable

Now it is time to execute the CSF’s installer script.
cd csf
sh install.sh

The firewall is now installed, but you should check if the required iptables modules are available.
perl /usr/local/csf/bin/csftest.pl

The firewall will work if no fatal errors are reported.

Note: Your IP address was added to the whitelist if possible. In addition, the SSH port has been opened automatically, even if it uses custom port. The firewall was also configured to have testing mode enabled, which means that the iptables rules will be automatically removed five minutes after starting CSF. This should be disabled once you know that your configuration works, and you will not be locked out.
Basic Configuration
CSF can be configured by editing its configuration file csf.conf in /etc/csf:
nano /etc/csf/csf.conf
The changes can be applied with command:
csf -r
Step 1: Configuring ports
The less access there is to your VPS, the more secure your server is. However, not all ports can be closed as the clients must be able to use your services.

The ports opened by default are the following:
TCP_IN = “20,21,22,25,53,80,110,143,443,465,587,993,995”

TCP_OUT = “20,21,22,25,53,80,110,113,443”

UDP_IN = “20,21,53”

UDP_OUT = “20,21,53,113,123”
Services using the open ports:

Port 20: FTP data transfer
Port 21: FTP control
Port 22: Secure shell (SSH)
Port 25: Simple mail transfer protocol (SMTP)
Port 53: Domain name system (DNS)
Port 80: Hypertext transfer protocol (HTTP)
Port 110: Post office protocol v3 (POP3)
Port 113: Authentication service/identification protocol
Port 123: Network time protocol (NTP)
Port 143: Internet message access protocol (IMAP)
Port 443: Hypertext transfer protocol over SSL/TLS (HTTPS)
Port 465: URL Rendesvous Directory for SSM (Cisco)
Port 587: E-mail message submission (SMTP)
Port 993: Internet message access protocol over SSL (IMAPS)
Port 995: Post office protocol 3 over TLS/SSL (POP3S)
It is possible that you are not using all of these services, so you can close the ports that are not used. I would recommend closing all ports (removing port number form the list), and then adding the ports you need.

Below are port sets that should be opened if you are running the listed service:

On any server:
TCP_IN: 22,53
TCP_OUT: 22,53,80,113,443
UPD_IN: 53
UPD_OUT: 53,113,123
Apache:
TCP_IN: 80,443
FTP server:
TCP_IN: 20,21
TCP_OUT: 20,21
UPD_IN: 20,21
UPD_OUT:20,21
Mail server:
TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110
MySQL server (if remote access is required)
TCP_IN: 3306
TCP_OUT: 3306
Note: If you are using IPv6 for your services, you should also configure TCP6_IN, TCP6_OUT, UPD6_IN, and UPD6_OUT similarly to how IPv4 ports were configured earlier.

Macam-macam serangan sql injection

Serangan SQL Injection dapat dibagi menjadi tiga kelas berikut :

    Inband : Data diekstrak menggunakan saluran yang sama yang digunakan untuk menyuntikkan kode SQL . Ini adalah jenis yang paling sederhana serangan , di mana data yang diambil disajikan langsung di halaman web aplikasi .
    Out-of -band : data yang diambil dengan menggunakan saluran yang berbeda ( misalnya , email dengan hasil query yang dihasilkan dan dikirim ke tester ) .
    Inferential atau Blind : tidak ada transfer data aktual , tapi tester mampu merekonstruksi informasi dengan mengirimkan permintaan tertentu dan mengamati perilaku yang dihasilkan dari DB Server .

Untuk sukses atau tidaknya serangan SQL Injection pada website atau aplikasi berbasis web terletak dalam benar atau tidaknya sintak SQL Query. Jika aplikasi mengembalikan pesan kesalahan yang dihasilkan oleh query yang salah , maka mungkin lebih mudah bagi penyerang untuk merekonstruksi logika query asli dan, karena itu , memahami bagaimana melakukan injeksi dengan benar. Namun, jika aplikasi menyembunyikan rincian kesalahan, maka tester harus mampu untuk melakukan reverse engineering logika query.

Tentang teknik untuk mengeksploitasi kelemahan website dan aplikasi webbase dengan SQL injection memiliki lima teknik, dan juga teknik tersebut kadang-kadang dapat digunakan dengan cara digabungkan ( misalnya Union Operator dan out-of-band ) :

    Union Operator: dapat digunakan ketika cacat SQL injection terjadi dalam sebuah pernyataan SELECT , sehingga memungkinkan untuk menggabungkan dua query ke dalam hasil tunggal atau hasil ditetapkan .
    Boolean : gunakan kondisi Boolean ( s ) untuk memverifikasi apakah kondisi tertentu adalah benar atau salah .
    Kesalahan berdasarkan : teknik ini memaksa database untuk menghasilkan kesalahan , memberikan penyerang atau informasi tester yang di atasnya untuk memperbaiki injeksi mereka .
    Out-of -band : teknik yang digunakan untuk mengambil data dengan menggunakan saluran yang berbeda ( misalnya , membuat sambungan HTTP untuk mengirimkan hasilnya ke server web ) .
    Waktu tunda : menggunakan perintah database (misal tidur ) untuk menunda jawaban dalam pertanyaan kondisional . Ini berguna ketika penyerang tidak memiliki beberapa jenis jawaban ( hasil , output, atau kesalahan ) dari aplikasi .

apa itu macam serangan website ( sql injection )

Apa SQL Injection ?

SQL Injection adalah serangan berbasis web yang digunakan oleh hacker untuk mencuri informasi sensitif dari organisasi melalui aplikasi web . Ini adalah salah satu yang paling umum serangan lapisan aplikasi yang digunakan saat ini . Serangan ini mengambil keuntungan dari coding yang tidak tepat aplikasi web , yang memungkinkan hacker untuk mengeksploitasi kelemahan dengan menyuntikkan perintah SQL ke dalam aplikasi web sebelumnya.

Fakta yang mendasari yang memungkinkan untuk SQL Injection adalah bahwa bidang yang tersedia untuk input pengguna dalam aplikasi web memungkinkan pernyataan SQL melewati dan berinteraksi dengan atau query database secara langsung .

Sebagai contoh, mari kita perhatikan sebuah aplikasi web yang mengimplementasikan mekanisme login berbasis form untuk menyimpan kredensial pengguna dan melakukan query SQL sederhana untuk memvalidasi setiap upaya login. Berikut adalah contoh khas :

SELECT * FROM user WHERE username = ‘ admin ‘ dan password = ‘ admin123 ‘ ;

Jika penyerang mengetahui username administrator aplikasi admin , dia bisa login sebagai admin tanpa memberikan password apapun.

admin’ –

Permintaan di back-end seperti :

SELECT * FROM user WHERE username = ‘ admin’ – ‘ dan password = ‘ xxx ‘ ;

Perhatikan urutan komentar ( – ) menyebabkan query diikuti untuk diabaikan , sehingga permintaan dieksekusi setara dengan :

SELECT * FROM user WHERE username = ‘ admin ‘ ;

Jadi sandi atau perintah untuk pengecekan password akan dilewati. Berikut sedikit contoh bagaimana cara kerja sql injection pada pengecekan user dan password. Kita akan masuk ke dalam macam-macam sql injection pada bahasan selanjutnya..

Sekian..

fail2ban untuk mengamankan server dari serangan bot hacker | centos 6.3

Mengenal Fail2Ban


Server tidak dalam isolasi dan mereka dengan server konfigurasi SSH paling dasar bisa rentan terhadap serangan brute force. fail2ban menyediakan cara untuk secara otomatis melindungi server dari tanda-tanda berbahaya. Program ini bekerja dengan memindai melalui file log dan bereaksi terhadap tindakan menyinggung seperti berulang percobaan login yang gagal.

Step 1—Install Fail2Ban


Karena fail2ban tidak ada dalam standart package dan kita harus mengambil repo EPEL yang menyediakan package tbs:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm

Kemudian install fail2ban:

yum install fail2ban

 

Step 2—Copy the Configuration File


The fail2ban file konfigurasi default adalah lokasi di / etc/fail2ban/jail.conf. konfigurasi tidak harus dilakukan dalam file itu, bagaimanapun, dan kita harus membuat salinan lokal itu.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

 

Step 3—Configure defaults in Jail.Local


Buka konfigurasi yang anda salin tadi:

vi /etc/fail2ban/jail.local

Konfigurasi fail2ban default masih kurang begitu kejam, kita harus memodifikasinya agar menjadikannya lebih kejam.
Berikut konfigurasi standartnya.

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1

# "bantime" is the number of seconds that a host is banned.
bantime  = 3600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

Masukan ip anda ke dalam ignoreip agar anda tidak di block jika melakukan kesalahan dalam menginput password login. Pemisah ip yang anda masukan mengunakan standart yaitu spasi.
Langkah berikutnya adalah untuk memutuskan suatu bantime, jumlah detik yang host akan diblokir dari server jika mereka ditemukan melanggar salah satu aturan. Hal ini sangat berguna dalam kasus bots, yang pernah dilarang, hanya akan beralih ke target berikutnya. Standarnya diatur selama 10 menit-Anda dapat meningkatkan ini untuk satu jam (atau lebih tinggi) jika Anda suka.
Maxretry adalah jumlah usaha login yang salah bahwa host mungkin memiliki sebelum mereka mendapatkan dilarang untuk panjang waktu larangan.
Findtime mengacu pada jumlah waktu yang host harus login Pengaturan default adalah 10 menit, ini berarti bahwa jika upaya tuan rumah, dan gagal, untuk login lebih dari jumlah maxretry kali dalam 10 menit ditunjuk, mereka akan dilarang.

Step 4 (Optional)—Configure the ssh-iptables Section in Jail.Local


untuk SSH ,rincian bagian adalah hanya sedikit lebih bawah dalam konfigurasi, dan itu sudah diatur dan dihidupkan. Meskipun Anda tidak harus diminta untuk membuat untuk membuat perubahan dalam bagian ini, Anda dapat menemukan rincian tentang setiap baris di bawah ini.

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath  = /var/log/secure
maxretry = 5

Diaktifkan hanya mengacu pada fakta bahwa SSH perlindungan aktif. Anda dapat mematikannya dengan kata “palsu”.
Filter, diatur secara default untuk sshd, mengacu pada file konfigurasi yang berisi aturan-aturan yang fail2banuses untuk menemukan pertandingan. Nama adalah versi singkat dari ekstensi file. Misalnya, sshd mengacu pada etc/fail2ban/filter.d/sshd.conf /.
Aksi menggambarkan langkah-langkah yang akan mengambil fail2ban untuk melarang alamat IP yang cocok. Sama seperti masuknya filter, setiap tindakan mengacu ke file di dalam direktori action.d. Aksi larangan default, “iptables” dapat ditemukan di / etc/fail2ban/action.d/iptables.conf.
Dalam rincian “iptables”, Anda dapat menyesuaikan fail2ban lanjut. Misalnya, jika Anda menggunakan port non-standar, Anda dapat mengubah nomor port dalam kurung untuk mencocokkan, membuat garis terlihat lebih seperti ini:

 eg. iptables[name=SSH, port=30000, protocol=tcp]

Anda dapat mengubah protokol dari TCP dengan UDP di baris ini juga, tergantung pada mana yang Anda inginkan fail2ban untuk memantau.
Jika Anda memiliki mail server mengatur di server virtual pribadi Anda, fail2ban dapat email Anda ketika melarang alamat IP. Dalam kasus default, sendmail-whois mengacu pada tindakan yang terletak di / etc/fail2ban/action.d/sendmail-whois.conf.
path log mengacu pada lokasi log yang fail2ban akan melacak.
Maks coba garis dalam bagian SSH memiliki definisi yang sama sebagai pilihan default. Namun, jika Anda telah mengaktifkan beberapa layanan dan ingin memiliki nilai-nilai tertentu untuk masing-masing, Anda dapat mengatur max baru coba lagi jumlah untuk SSH sini.

Step 5—Restart Fail2Ban


ok selesaikan dan memulai aplikasi fail2ban:

sudo service fail2ban restart

semua yang terblock  dengan cara:

iptables -L

semoga bermanfaat

Melihat aktif query pada postgresql

Saya lagi iseng-iseng mau lihat query sekarang ini apa ya di postgresql trus saya coba beberapa sql query yang menselect pg_stat_activity. Tapi setelah query itu berjalan kog current query ga muncul ya? ternyata saya belum aktifkan di postgres.conf nya.

pertama set/uncomment postgres.conf

stats_command_string = true

kemudian reload database, setelah itu coba select kembali pg_stat_activity.

SELECT datname,procpid,current_query FROM pg_stat_activity

dan untuk postgresql 8.2

SELECT datname,usename,procpid,client_addr,waiting,query_start,current_query FROM pg_stat_activity ;

selamat mencoba…

Simple firewall with netfilter / iptables

Kita terkadang sering terkena attack / serangan dari pihak yang tidak bertanggung jawab, dan tidak hanya itu mungkin saja data atau informasi kita diambil oleh orang tersebut. Sebagai seorang yang mengurusi Network dan System enginer maka dibawah ini saya berikan sedikit filtering dan blocking jaringan dari attack dan juga serangan yang tidak2.  caranya cukup mudah, berikut saya berikan secara bertahap..

 

1   Buat file pada /etc/init.d/firewall ( bisa pakai vim, nano atau editor lainnya ) : vim /etc/init.d/firewall
Continue reading “Simple firewall with netfilter / iptables” »

install squid3 di ubuntu server 10.04

Ini adalah panduan singkat untuk mendirikan sebuah proxy cache transparan pada Ubuntu Server. Pada dasarnya, ada dua alasan mengapa Anda mungkin tertarik membuat proxy squid :

1. mempercepat akses web Anda

2. menghemat bandwidthAnda.

Mari berasumsi bahwa Anda sudah mengatur sebuah gateway Linux menggunakan iptables. Hal ini dimungkinkan untuk menjalankan squid juga pada Windows tapi sayangnya itu sangat sulit untuk menemukan perangkat keras di mana Windows mampu bertahan lebih dari satu minggu. Kata lain, windows keluar dari ruang lingkup artikel ini. Langkah pertama adalah menginstall squid 3

apt-get install squid3

Edit konfigurasi squid3 anda dengan mengunakan best editor yang anda sukai.

sudo vi /etc/squid3/squid.conf

Dan kemudian kita set transparant proxy dan ip host anda, atau anda bisa lihat konfigurasi saya disini

http_port 3128 transparent
acl our_networks src 192.168.1.0/24
acl localnet src 127.0.0.1/255.255.255.255
http_access allow our_networks
http_access allow localnet

Dimana 192.168.1.0/24 ip network anda. Selanjutnya masukan konfigurasi cache

cache_dir ufs /var/spool/squid3 7000 16 256

untuk angka pertama diatas ( 7000 ) itu adalah ukuran cache dalam satuan megabyte. setelah itu save konfigurasi yang anda edit dan restart squid anda

sudo /etc/init.d/squid3 restart

Untuk melihat informasi detail silahkan check pada url Squid wiki page. Yang perlu diingat dalam pengunaan memori dan processor di squid3 adalah fungsi dari ukuran swap. Kemudian anda harus menambahkan redirect dari HTTP-Trafic ke Proxy transparan anda.

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

disini eth0 adalah LAN dan eth1 adalah WAN, dan ip address 192.168.1.1 adalah ip LAN server.

Setelah semuanya selesai, buat simbolik link untuk membuat sarg, clamaris agar bisa digunakan karena aplikasi tersebut masih melihat path log pada squid 2.x..

ln -s /var/log/squid3 /var/log/squid

Selesai Selamat mencoba..