Hướng dẫn cài đặt Socks Server Dante cho Red Hat CentOS 5/6/7

Hướng dẫn cài đặt Socks Server Dante cho Red Hat CentOS 5/6/7: Đối với việc Fake IP cho client bạn có thể dùng VPN, Proxy HTTP(S) hoặc một cách phổ biến là SOCKS Proxy. Hôm nay mình sẽ hướng dẫn các bạn cài đặt một máy chủ để Fake IP qua SOCKS trên nền tảng Red Hat CentOS bằng phần mềm có tên Dante rất tiện dụng.

Bạn có thể tham khảo bài trước, cách bật Socks Nhanh không cần phải cài đặt thêm gì.

Trước khi cài đặt Dante Socks Server lên CentOS 5/6/7 xin bạn nhớ kỹ chuẩn bị sẳn một môi trường như sau trên hệ điều hành CentOS này:

1. Đặt hostname cụ thể đây là server gì (xem hướng dẫn) ví dụ đây mình dùng hostname socks.your-domain.gq
2. Set Date ngày giờ hệ điều hành cho đúng (xem hướng dẫn)
3. Disable SElinux để trong quá trình thực hành không bị phát sinh nhiều lỗi lạ (xem hướng dẫn)
4. Update System hệ thống cập nhật ở trạng thái mới nhất (xem hướng dẫn)
5. Firewall đã allow port 54321/tcp,udp để công khai dịch vụ Dante Socks Server (xem hướng dẫn)
Nếu bạn muốn làm nhanh chỉ để test thì có thể tạm Disable Firewall trên CentOS 5/6/7:

systemctl stop firewalld >/dev/null 2>&1
service iptables stop >/dev/null 2>&1

Chuẩn bị các gói cần thiết:

Cài đặt các gói sau là cần thiết cho việc cài đặt và sử dụng Dante Socks Server:

yum -y install gcc make bison flex rpm-build openldap-devel pam-devel openssl-devel libgssapi-devel nano
yum -y install tcp_wrappers-devel

Cài đặt Dante Socks Server:

Bạn có thể tải mã nguồn Dante Socks Server từ trang chủ về và tiến hành biên dịch:

curl -O https://www.inet.no/dante/files/dante-1.4.2.tar.gz
tar xvfz dante-1.4.2.tar.gz
cd dante-1.4.2
./configure
make
make install

Bạn chú ý file /etc/sysconfig/network phải có dòng NETWORKING=yes để Dante Socks Server hoạt động được:

nano /etc/sysconfig/network
 
NETWORKING=yes

Cấu hình Dante Socks Server:

Việc cấu hình như thế nào thông thường bị quyết định bởi ý định mong muốn sử dụng Socks Server ra sao. Trước tiên bạn kiểm tra trong câu lệnh ifconfig để biết có bao nhiêu card mạng và bao nhiêu IP Public mà bạn đang có trong máy chủ của bạn trước đã:

[root@socks ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:D8:D6:C2
          inet addr:1.1.1.10  Bcast:1.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed8:d6c2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:237334 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9515 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18943109 (18.0 MiB)  TX bytes:1141524 (1.0 MiB)
 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:D8:D6:CC
          inet addr:1.1.1.11  Bcast:1.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed8:d6cc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1166 (1.1 KiB)  TX bytes:1112 (1.0 KiB)

Giả sử mình có 2 card mạng và 2 IP Public là eth0 và eth1 như trên (trong một số trường hợp sẽ là card sub interface ví dụ eth0:1 eth0:2 eth1:1 hoặc CentOS 7 là eno16777736). Trên 2 card mạng tương ứng mình có là 2 IP public 1.1.1.10 với 1.1.1.11 và mình mong muốn Socks Server cho 2 IP đó trên máy chủ:
Client dùng Socks 1.1.1.10:54321 thì kiểm tra IP sẽ thấy IP gốc là 1.1.1.10
Client dùng Socks 1.1.1.11:54321 thì kiểm tra IP sẽ thấy IP gốc là 1.1.1.11

Thì mình có thể tạo file cấu hình cho card mạng thứ 1 eth0.conf như sau:

nano /eth0.conf
 
internal: eth0   port = 54321
external: eth0
 
user.privileged:   root
user.unprivileged: nobody
socksmethod:       none
errorlog: /var/log/sockd.errlog
logoutput: /var/log/sockd.log
 
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect # disconnect
}
 
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    command: connect
    log: error connect # disconnect
}

Tạo file cấu hình cho card mạng thứ 2 eth1.conf cũng tương tự chỉ thay tên card mạng vào:

nano /eth1.conf
 
internal: eth1   port = 54321
external: eth1
 
user.privileged:   root
user.unprivileged: nobody
socksmethod:       none
errorlog: /var/log/sockd.errlog
logoutput: /var/log/sockd.log
 
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect # disconnect
}
 
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    command: connect
    log: error connect # disconnect
}

Chú ý: Port 54321 phục vụ chỉ là một port mà mình muốn chọn, bạn có thể thay thế bằng port khác trong khoảng 1-65535 port nhưng tốt hơn là port này nên lớn và ngẫu nhiên để tránh bị scan thấy.

Khởi chạy Process Dante Socks Server dưới 2 file cấu hình trên:

sockd -D -f /eth0.conf
sockd -D -f /eth1.conf

Kiểm tra lại với netstat xem Dante Socks Server đã chạy chưa:

[root@socks ~]# netstat -lntup |grep sockd
tcp        0      0 1.1.1.11:54321              0.0.0.0:*                   LISTEN      2293/sockd
tcp        0      0 1.1.1.10:54321              0.0.0.0:*                   LISTEN      2272/sockd

Mỗi lần reboot Dante Socks Server sẽ ngừng chạy tiến trình trên nên cần chạy lại. Hoặc thay vào đó nếu muốn tự động chạy mỗi khi khởi động bạn có thể thêm vào auto run:

echo "sockd -D -f /eth0.conf" >> /etc/rc.d/rc.local
echo "sockd -D -f /eth1.conf" >> /etc/rc.d/rc.local

Sử dụng Socks Server:

Sau đây là cách cấu hình sử dụng Socks này trong Firefox và Chrome:

Trình duyệt Firefox:
about:preferences#advanced > Setting

Trình duyệt Chrome:
chrome://settings/ > Network > Change Proxy Setting.. > LAN Setting > Socks

Client dùng Socks 1.1.1.10:54321 thì kiểm tra IP sẽ thấy IP gốc là 1.1.1.10
Client dùng Socks 1.1.1.11:54321 thì kiểm tra IP sẽ thấy IP gốc là 1.1.1.11

File ip.php là file dùng để kiểm tra IP của Client trên Web Server truy vấn bất kỳ. File này bạn có thể tải về tại đây ip.php. Ngoài ra còn một số trang khác để kiểm tra IP của bạn mà không cần dùng file này để kiểm ví dụ: ping.euaruljohn.comip2location.com

So với VPN sử dụng Socks Server có 1 điểm yếu là chỉ dùng được với những phần mềm có hỗ trợ chạy thông qua Socks. Một số ít phần mềm hỗ trợ Socks ví dụ như IE, Chrome, Firefox, Skype... nhưng ngoài ra còn rất nhiều các phần mềm khác mà bạn muốn Fake IP lại không có tùy chọn Over Socks, để khắc phục điểm yếu này của Socks thì với những phần mềm nào không hổ trợ Socks bạn có thể ép phần mềm đó chạy trong Socks với phần mềm Proxifier xem hướng dẫn ở đây.

Bạn có thể tìm hiểu thêm hướng dẫn cài đặt VPN Server tại đây.

Cám ơn bạn đã đọc hết bài viết, hãy bấm chia sẻ lên mạng xã hội để nhớ rằng bạn đã từng nắm được kiến thức do bài viết này cung cấp rồi:
Share

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *