Artikel ini membantu Anda dalam melakukan setting dan mengkonfigurasi private SOCKS proxy menggunakan Dante di server Linux yang berbasis pada distribusi Debian.
Dante adalah SOCKS proxy yang sudah sangat “mature” stabil yang didevelop oleh Inferno Nettverk A/S proxy. Di artikel ini adalah proses saya menginstall private SOCKS proxy menggunakan Dante dengan sistem authentikasi username dan password (pam
).
Mempersiapkan Sistem
Sebelum memulai, ada beberapa prasyarat yang harus dipenuhi untuk mengikuti artikel ini:
- Nyaman menggunakan Linux terminal.
- Sebuah Linux server dengan Distro berbasis Debian.
Karena yang akan kita buat adalah private proxy yang memerlukan authentikasi username dan password dari akun user di sistem Linux, kita perlu membuat Linux user terlebih dahulu di server yang nantinya akan digunakan untuk proses authentikasi.
1# membuat user baru
2sudo useradd -r -s /bin/false myproxyuser
3# mengubah password user baru tersebut
4sudo passwd myproxyuser
Catatan: Ubah
myproxyuser
diatas dengan user yang ingin Anda gunakan untuk autentikasi.
Instalasi Dante Server
Karena Dante adalah SOCKS proxy yang sudah sangat “mature” dan populer, Anda bisa dengan mudah menginstall Dante server dengan package manager bawaan Debian atau Ubuntu:
1sudo apt install dante-server
2systemctl status danted.service
Setelah proses installasi selesai, system akan secara otomatis mencoba menjalankan danted.service, namun service tersebut tidak akan berjalan alias failed karena belum ada metode authentikasi yang wajib dikonfigurasi.
Konfigurasi Dante Server
File konfigurasi Dante berada di /etc/danted.conf
. Didalamnya sudah ada contoh konfigurasi beserta keterangan yang sangat lengkap untuk apa parameter atau variabel konfigurasi tersebut digunakan.
Lakukan backup file konfigurasi bawaan tersebut dengan perintah sudo cp /etc/danted.conf /etc/danted.conf.bak
kemudian ubah konfigurasi pada /etc/danted.conf
dengan konfigurasi berikut (contoh):
1# konfigurasi log
2logoutput: stderr
3
4# danted service berjalan pada port 1080 di semua interface
5internal: 0.0.0.0 port=1080
6
7# interface mana yang akan digunakan untuk semua komunikasi keluar
8external: eth0
9
10clientmethod: none
11socksmethod: username
12user.privileged: root
13user.unprivileged: nobody
14user.libwrap: nobody
15
16client pass {
17 from: 0.0.0.0/0 to: 0.0.0.0/0
18}
19
20socks pass {
21 from: 0.0.0.0/0 to: 0.0.0.0/0
22}
Dari contoh konfigurasi diatas, Dante akan listen di port 1080
dan semua traffic keluar akan dilewatkan melalui interface eth0
.
Anda bisa mengubah port dan wajib menyesuaikan interface sesuai dengan interface yang ada di server Anda.
Setelah konfigurasi Dante selesai disesuaikan dengan kebutuhan, restart servicenya menggunakan perintah sudo systemctl restart danted.service
.
Kemudian, lakukan pengecekan apakah danted.service
sudah berjalan dengan baik dengan perintah sudo systemctl status danted.service
:
1● danted.service - SOCKS (v4 and v5) proxy daemon (danted)
2 Loaded: loaded (/lib/systemd/system/danted.service; enabled; preset: enabled)
3 Active: active (running) since Thu 2023-11-09 16:51:01 WIB; 1 day 1h ago
4 Docs: man:danted(8)
5 man:danted.conf(5)
6 Process: 885 ExecStartPre=/bin/sh -c uid=`sed -n -e "s/[[:space:]]//g" -e "s/#.*//" -e "/^user\.privileged/{s/[^:]*://p;q;}" /etc/danted.conf`; >
7 Main PID: 935 (danted)
8 Tasks: 21 (limit: 9304)
9 Memory: 18.5M
10 CPU: 2.701s
11 CGroup: /system.slice/danted.service
12 ├─ 935 /usr/sbin/danted
13 ├─ 955 "danted: monitor"
14 ├─1494108 "danted: io-chil"
15 ├─1494116 "danted: io-chil"
16 ├─1494127 "danted: request"
17 ├─1495807 "danted: request"
18 ├─1496272 "danted: negotia"
19 ├─1496273 "danted: request"
20 .... snip
21
22Nov 09 16:51:01 aws-ec2 systemd[1]: Starting danted.service - SOCKS (v4 and v5) proxy daemon (danted)...
23Nov 09 16:51:01 aws-ec2 systemd[1]: Started danted.service - SOCKS (v4 and v5) proxy daemon (danted).
24Nov 09 16:51:02 aws-ec2 danted[935]: Nov 9 16:51:02 (1699523462.105152) danted[935]: info: Dante/server[1/1] v1.4.2 running
Melakukan Testing
Setelah semua proses diatas selesai, saatnya mencoba menggunakan proxy server Anda. Salah satu contoh paling mudah untuk melakukan pengecekan adalah menggunakan curl
melalui komputer Anda:
1curl -x socks5://myproxyuser:myproxy_password@server_ip:proxy_port http://ifconfig.me
Sesuaikan
myproxyuser
,myproxy_password
,server_ip
, danproxy_port
dengan authentikasi dan konfigurasi yang sudah Anda lakukan sebelumnya.
Dari perintah diatas, Anda seharusnya mendapatkan alamat IP server proxy Anda, bukan alamat IP dari ISP yang komputer Anda.
Troubleshooting
Jika Anda tidak bisa melakukan koneksi SOCKS5
ke proxy server Anda, pastikan port yang digunakan oleh Dante terbuka. jalankan perintah ufw
berikut (untuk sistem yang berbasis pada Debian) untuk membuka port dari firewall:
1ufw allow proto tcp to any port 1080
Catatan: Ubah port
1080
dan sesuaikan dengan konfigurasi proxy server Anda.