Setelah berhasil memanfaatkan komputer tua di rumah sebagai access point berkat tulisan yang sebelumnya -> Membuat WAP, *sekarang semua orang rumah bisa internetan menggunakan Blackberry, Android, leptop dan lain-lain, tapi sangat sayang kalau komputer tua itu hanya dijadikan access point, hardisknya percuma, cpu-nya kurang berguna, ram mubazir, sayang sekali kalau semua itu tidak dimanfaatkan lagi.
setelah berfikir panjang kenapa tidak sekalian membuat proxy server di komputer tua tadi, lumayan bisa banyak berguna dari pada hanya dijadikan access point, bisa untuk cache website supaya browsing lebih lancar, bisa untuk filter situs-situs yang beranonim xxx untuk perbaikan moral, bisa untuk membatasi kecepatan download supaya tidak ada insiden rebutan bandwidth di rumah, semoga niat baik ini terkabul.
Bahas tentang proxy server pikiran langsung tertuju ke aplikasi dengan logo cumi-cumi yang punya nama Squid, kebetulan komputer tua tadi sudah terpasang linux untuk keperluan membuat access point yang kemarin dibahas, jadi hanya tinggal melakukan proses instalasi Squid-nya. Beruntung proses instalasi Squid itu tidak terlalu sulit, bagian terberatnya adalah untuk melakukan konfigurasinya. Kebetulan pernah menulis tentang Squid juga disini, tapi tulisan sebelumnya hanya mencangkup dasarnya saja atau bisa di bilang perkenalan.Nah, untuk kali ini kita akan mencoba membuat proxy server aktif dan semoga bisa berguna untuk semua.
Langkah pertama sudah pasti tahap instalasi, silakan ikuti langkah-langkah dibawah ini untuk melakukan proses instalasi.
# untuk ubuntu
1
| sudo apt-get install squid3 |
#untuk arch
1
| sudo pacman -S squid |
Kita lanjut ke tahapan konfigurasi Squid nya supaya sesuai dengan kebutuhan yang kita perlukan, untuk cara merubah konfigurasi Squid nya cukup mudah karena hanya perlu merubah satu file saja. Editingnya juga hanya menggunakan teks editor apa saja, file yang harus diedit berada pada alamat /etc/squid/squid.conf untuk alamat file konfigrasi squid nya mungkin akan sedikit berbeda di setiap distro linux, tapi kalau sekarang alamatnya seperti tadi, jadi cara mengeditnya tinggal memasukkan perintah berikut:
1
| sudo nano /etc/squid/squid .conf |
atau
1
| sudo gedit /etc/squid/squid .conf |
atau
1
| sudo kate /etc/squid/squid .conf |
Disini saya akan sharing file konfigurasi yang saya gunakan pada komputer yang jadi bahan uji coba di rumah. Konfigurasi Squid ini hanya menggunakan sebagai kecil dari fungsi Squid itu sendiri, karena dia memiliki lebih bnyak lagi fitur-fitur lainnya.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
| ################ #ACCESS CONTROL# ################ ### mendifinisikan rule-rule yang akan digunakan, penulisannya : ### acl nama_rule src ip_address ### acl nama_rule port no_port ### diaktifkan dengan cara : ### http_access allow nama_rule atau http_access deny nama_rule acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl localnet src 10.0.0.0/8 acl localnet src 172.16.0.0/12 acl localnet src 192.168.0.0/16 acl localnet src fc00::/7 acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT acl purge method PURGE acl connect method CONNECT ########## #BLOCKING# ########## acl BLACKLIST url_regex "/etc/squid/BLACKLIST" #acl SEX dstdomain "/etc/squid/SEX" http_access deny BLACKLIST #http_access deny SEX ### filter url yang akan diblokir ### hilangkan '#' untuk mengaktifkan #acl badurl dstdomain "/etc/squid3/socnet" #deny_info http://google.co.id badurl ### setting waktu akses acl pagi time SMTWHFA 10:00-23:00 #acl malam time SMTWHA 23:00-9:00 ### setting tolak akses sesuai settingan waktu untuk domain yang ada di file #/etc/squid/social.network #http_access deny pagi badurl #http_access deny sore badurl # Only allow cachemgr access from localhost http_access allow manager localhost http_access deny manager # Only allow purge cache access from localhost http_access allow purge localhost http_access deny purge # Deny requests to certain unsafe ports http_access deny !Safe_ports # Deny CONNECT to other than secure SSL ports http_access deny CONNECT !SSL_ports ###allow access### http_access allow localnet http_access allow localhost # And finally deny all other access to this proxy http_access deny all #======================# # DELAY POOL PARAMETERS #======================# ################ # Filter Download # ################ acl DOWNLOAD url_regex -i .exe .flv .mp3 .rar .wmv .avi .mpeg .mpe .mpg .rm .iso .mkv .wmf .wma .3gp .7z .asf .m4a .m4v .mov .mp4 .mpa .mpe .msi .zip delay_pools 1 delay_class 1 1 delay_parameters 1 10480/10480 delay_access 1 allow pagi DOWNLOAD delay_access 1 deny ALL # Squid normally listens to port 3128 http_port 3128 transparent # Uncomment and adjust the following to add a disk cache directory. # recommend -> gunakan maksimal 60% dari partisi fisik cache_dir # recommend -> jumlah dir cache_dir/500 cache_dir ufs /home/squid/squid 24576 49 256 # memory yang dipakai untuk cache cache_mem 6 MB # Leave coredumps in the first cache dir coredump_dir /var/cache/squid ###LOG-LOG### access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log logfile_rotate 5 log_ip_on_direct off log_icp_queries off buffered_logs off emulate_httpd_log on # Add any of your own refresh_pattern entries above these. # improve HIT refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i \.(gif|png|jp?g|ico|bmp|tiff?)$ 10080 95% 43200 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private refresh_pattern -i \.(rpm|cab|deb|exe|msi|msu|zip|tar|gz|tgz|rar|bin|7z|doc?|xls?|ppt?|pdf|nth|psd|sis)$ 10080 90% 43200 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private refresh_pattern -i \.(avi|iso|wav|mid|mp?|mpeg|mov|3gp|wm?|swf|flv|x-flv|axd)$ 43200 95% 432000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private refresh_pattern -i \.(html|htm|css|js)$ 1440 75% 40320 refresh_pattern -i \.index.(html|htm)$ 0 75% 10080 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 1440 90% 10080 ########## #own rule# ########## # list type yang tidak di cache acl QUERY urlpath_regex -i cgi-bin \? \.php$ \.asp$ \.shtml$ \.cfm$ \.cfml$ \.phtml$ \.php3$ localhost no_cache deny QUERY # besaran max objek yang akan disimpan maximum_object_size 128000 KB # besaran min objek yang akan disimpan minimum_object_size 0 KB ################### #memory management# ################### maximum_object_size_in_memory 32 KB memory_replacement_policy heap GDSF cache_replacement_policy heap LFUDA cache_swap_low 98 cache_swap_high 99 ######### #TIMEOUT# ######### forward_timeout 240 second connect_timeout 30 second peer_connect_timeout 5 second read_timeout 600 second request_timeout 60 second shutdown_lifetime 10 second ########################### #ADMINISTRATIVE PARAMETERS# ########################### cache_mgr kuro.kid@gmail.com cache_effective_user proxy cache_effective_group proxy httpd_suppress_version_string on visible_hostname kuro.kid@admin ############# #DNS OPTIONS# ############# dns_timeout 10 seconds # memakai dns di computer server hosts_file /etc/hosts # contoh konfigurasi lain #dns_nameservers 203.130.193.74 202.134.0.155 8.8.8.8 61.247.0.8 |
Konfigurasi yang digunakan diatas meliputi beberapa fitur yang ada pada Squid, diantaranya sebagai berikut:
- limit kecepatan download jika mendownload file-file dengan ekstensi tertentu.
- limit speed hanya berlaku pada jam-jam tertentu.
- Melakukan blocking beberapa situs.
- Caching website
- Access control
Untuk bahan pembelajaran konfigurasi diatas sudah ditambahkan argumen-argumen yang menjelaskan fungsi dari setiap bagian, jadi silakan dipelajari dan digunakan sebaik mungkin, jangan di lihat dari jumlah barisnya kalau di pelajari satu persatu pasti paham.
Disini saya bukannya pelit dan tidak ingin menjelaskan baris per barisnya, tapi akan sangat panjang dan melelahkan kalau file konfigurasi tadi dijelaskan satu per satu, mungkin di lain waktu saya akan menulis lagi tentang Squid ini supaya kita semua bisa menjadi lebih paham.
Disini saya ingin menggunakan Squid sebagai transparent proxy, jadi pada file konfigurasi tadi harus ditambahkan kata-kata "transparent", lebih tepatnya pada baris yang menjelaskan port berapa yang akan digunakan oleh si squid ini.
1
| http_port 3128 transparent |
Kalau proses konfigurasi sudah selsesai semua, tinggal mengikuti perintah-perintah dibawah ini supaya squid bisa berjalan.
1
2
3
4
| # membuat tempat swap nya, alamat nya sesuai dengan konfgurasi tadi sudo squid -z # untuk menjalankan squid sudo /etc/rc .d /squid start |
Selesai semua konfigurasinya squid sudah berhasil dijalankan, tapi tugas belum selesai sampai disini, karena kita harus mengatur client-client yang menggunakan access point yang kita buat sebelumnya supaya lewat ke proxy yang kita buat dulu sebelum mereka bisa mengkases internet, kalau tidak jirih payah kita melakukan konfigurasi akan percuma saja.
Nah, untuk proses redirection yang kita butuhin tadi, kita akan membutuhkan sebuah firewall untuk melakukan tugas tadi, berhubung di proses membuat WAP sebelumnya memerlukan firewall juga, jadi kita tidak perlu lagi melakukan instalasi karena firewall sudah terpasang yaitu IPTABLES, tinggal kita buat rule yang bener maka dia akan menangani tugas selanjutnya.
Rule yang kita akan kasih itu seperti berikut:
1
| iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128 |
Ip yang dipakai diatas itu ip komputer tua yang saya gunakan, jadi kalau ingin praktek sendiri sesuaikan ip yang digunakan, untuk wlan0-nya itu adalah interface yang dijadikan access point.Jadi intinya request yang datang dari port 80 yang berasal dari interface wlan0 akan di forwarding ke ip 192.168.0.1 dan melalui port 3128 yang adalah port Squid yang kita gunakan tadi.
Manual pengguna ArchLinux -> squid
Forum tetangga yang membahas proxy
0 comments:
Post a Comment