Tutorial ini menunjukkan kepada Anda cara mengatur proxy web Anda sendiri di Ubuntu 16.04. Proxy web adalah situs web tempat pengguna memasukkan URL tertentu untuk membuka blokir situs web. Ada banyak skrip proxy web yang dapat digunakan untuk mengatur proxy web Anda sendiri. Glype dan Proxy-PHP akan digunakan dalam tutorial ini. Glype adalah skrip proxy web yang sangat populer dan PHP-Proxy merupakan alternatif yang baik. Anda dapat memilih salah satunya. Dalam pengujian saya, PHP-Proxy lebih cepat dan bekerja lebih baik dengan situs web populer seperti Facebook, Twitter, dan YouTube, karena sedang diperbarui secara aktif. Kita akan melihat cara mengaturnya dengan Apache/Nginx dan mengaktifkan HTTPS dengan Let's Encrypt.
Biasanya saya menggunakan proxy Shadowsocks dan OpenConnect VPN untuk melewati sensor Internet, tetapi ada kemungkinan kedua alat ini akan diblokir di negara saya. Proksi web adalah metode pencadangan yang baik karena tidak memiliki karakteristik proksi SOCKS dan VPN. Di mata firewall Internet, itu hanya lalu lintas HTTPS biasa. Ada puluhan ribu proxy web gratis online. Kelemahannya adalah begitu proxy web publik tersebut menjadi terkenal, mereka dapat dengan mudah diblokir. Menyiapkan proxy web pribadi Anda memiliki keuntungan karena hanya Anda yang tahu keberadaannya.
Prasyarat
Untuk mengikuti tutorial ini, Anda memerlukan:
- VPS (Virtual Private Server) yang dapat mengakses situs web yang diblokir secara bebas (Di luar negara Anda atau sistem penyaringan Internet) dan nama domain. Untuk VPS, saya merekomendasikan Vultr. Mereka menawarkan memori 512M KVM VPS kinerja tinggi hanya dengan $2,5 per bulan, yang sempurna untuk server proxy pribadi Anda.
- Instal server web dan PHP
Anda juga memerlukan nama domain, sehingga Anda dapat menambahkan enkripsi HTTPS untuk melindungi lalu lintas web Anda. Saya merekomendasikan membeli nama domain dari NameCheap karena harganya rendah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.
Langkah 1:Instal Server Web dan PHP
SSH ke Ubuntu 16.04 VPS Anda. Jika Anda ingin menggunakan Nginx sebagai server web, maka instal Nginx dan PHP7 dengan menjalankan perintah berikut.
sudo apt install nginx php7.0-fpm php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Jika Anda ingin menggunakan Apache sebagai server web, jalankan
sudo apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip
Langkah 2:Unduh Glype atau PHP-Proxy
Glype
Unduh Glype dengan menjalankan perintah berikut.
wget https://www.php-proxy.com/download/glype-1.4.15.zip
Ekstrak ke /var/www/proxy/
direktori.
sudo apt install unzipsudo mkdir -p /var/www/proxy/sudo unzip glype-1.4.15.zip -d /var/www/proxy/
Setel www-data
(pengguna server web) sebagai pemilik.
sudo chown www-data:www-data /var/www/proxy/ -R
Proksi PHP
Kita dapat menggunakan Composer untuk mengunduh PHP-Proxy. Instal Komposer dari repositori Ubuntu 16.04.
sudo apt install composer
Kemudian unduh PHP-Proxy ke /var/www/proxy/
direktori.
sudo mkdir -p /var/www/proxy/Sudo composer create-project athlon1600/php-proxy-app:dev-master /var/www/proxy/
Setel www-data
(pengguna server web) sebagai pemilik.
sudo chown www-data:www-data /var/www/proxy/ -R
Langkah 3:Konfigurasi Server Web
Pada langkah ini, kita perlu membuat blok server Nginx atau host virtual Apache untuk proxy web kita.
Buat Blok Server Nginx
Buat blok server di bawah /etc/nginx/conf.d/
direktori.
sudo nano /etc/nginx/conf.d/web-proxy.conf
Salin dan tempel baris berikut ke dalam file. Ganti proxy.example.com
dengan nama domain asli Anda. Jangan lupa untuk menetapkan rekor A di pengelola DNS Anda.
server { dengarkan 80; nama_server proxy.contoh.com; root /var/www/proxy/; indeks indeks.php; lokasi / { try_files $uri $uri/ /index.php; } lokasi ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; termasuk fastcgi_params; sertakan snippets/fastcgi-php.conf; }}
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
sudo nginx -t
Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Buat Host Virtual Apache
Buat virtual host Apache di /etc/apache2/sites-avaialable/
direktori.
sudo nano /etc/apache2/sites-available/web-proxy.conf
Salin dan tempel baris berikut ke dalam file. Ganti proxy.example.com
dengan nama domain asli Anda. Jangan lupa untuk menetapkan rekor A di pengelola DNS Anda.
ServerName proxy.example.com DocumentRoot /var/www/proxy ErrorLog ${APACHE_LOG_DIR}/proxy.error.log CustomLog ${APACHE_LOG_DIR}/proxy.access.log digabungkan Simpan dan tutup file. Kemudian aktifkan host virtual ini.
sudo a2ensite web-proxy.confMuat ulang Apache agar perubahan diterapkan.
sudo systemctl reload apache2Antarmuka Web
Sekarang kunjungi
proxy.example.com
di peramban web Anda. Jika Anda menggunakan Glype, maka Anda akan diarahkan ke panel kontrol admin (proxy.example.com/admin.php
).
Jika Anda menggunakan PHP-Proxy, Anda dapat melihat proxy web yang berfungsi menunggu Anda untuk memasukkan URL.
Sekarang mari aktifkan HTTPS dengan Let's Encrypt.
Langkah 4:Aktifkan HTTPS dengan Let's Encrypt for Your Web Proxy
Kita dapat menginstal klien Let's Encrypt (certbot) dari PPA resmi dengan menjalankan perintah berikut.
sudo apt install software-properties-commonsudo add-apt-repository ppa:certbot/certbotsudo apt updatesudo apt install certbotNginx pengguna juga perlu menginstal plugin Certbot Nginx.
sudo apt install python-certbot-nginxAktifkan HTTPS dengan plugin Nginx.
sudo certbot --nginx --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-addressApache pengguna perlu menginstal plugin Certbot Apache.
sudo apt install python-certbot-apacheAktifkan HTTPS dengan plugin Apache.
sudo certbot --apache --agree-tos --redirect --staple-ocsp -d proxy.example.com --email your-email-addressJika Anda mendapatkan pesan kesalahan berikut.
Klien dengan autentikator yang dipilih saat ini tidak mendukung kombinasi tantangan apa pun yang akan memenuhi CA.Silakan lihat posting ini di forum Let's Encrypt untuk memperbaikinya.
Setelah sertifikat berhasil dipasang, segarkan proxy Anda di browser web untuk menggunakan HTTPS.
(Opsional) Menempatkan Proxy Web Anda Di Belakang CDN
Setidaknya ada tiga cara sensor Internet dapat memblokir situs web:
- Blokir alamat IP situs web.
- Bajak respons DNS untuk memberikan alamat IP yang salah kepada pengguna akhir.
- Blokir koneksi TLS dengan melihat Indikasi Nama Server (SNI)
Jika Anda khawatir proxy web Anda diblokir oleh sensor Internet, Anda dapat meletakkan proxy web Anda di belakang CDN (Content Delivery Network) seperti Cloudflare. Dengan cara ini, alamat IP server Anda disembunyikan dan jika sensor Internet memutuskan untuk memblokir alamat IP Cloudflare, akan ada kerusakan tambahan karena ada banyak situs web lain yang juga menggunakan alamat IP yang sama. Ini akan membuat sensor Internet berpikir dua kali sebelum melakukannya.
Untuk mencegah racun DNS, pengguna akhir harus menggunakan DNS melalui TLS atau DNS melalui HTTPS. Untuk mencegah kebocoran informasi SNI, situs web harus menggunakan SNI terenkripsi.
Kesimpulan
Itu dia! Saya harap tutorial ini membantu Anda membuat proxy web Anda sendiri di Ubuntu 16.04. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik.