RouterOS SOCKS代理服務器(官方文檔翻譯)


SOCKS 是基於TCP應用層協議穿透防火牆的代理服務器,即使防火牆阻止了一些應用端口,也能通過SOCKS代理穿透。SOCKS協議是獨立於應用層的,因此可以用於WWW、FTP、Telnet等等。

    來至百度解釋:Socks不要求應用程序遵循特定的操作系統平台,Socks 代理與應用層代理、 HTTP 層代理不同,Socks代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求)。所以,Socks代理比其他應用層代理要快得多。它通常綁定在代理服務器的1080端口上。如果您在企業網或校園網上,需要透過防火牆或通過代理服務器訪問Internet就可能需要使用SOCKS。

    首先,一個應用層客戶端連接到SOCKS代理服務器,這時代理服務器會查看訪問列表(access list)是否允許客戶端訪問遠端的應用資源。如果允許,代理服務器將數據包傳遞給應用服務器,並創建一個應用服務器與客戶端的連接。

注意:配置你的應用客戶端必須使用SOCKS v4版本

    安全的SOCKS代理應該是通過訪問列表和防火牆控制訪問外部應用,例如防火牆禁止FTP的TCP/21端口,通過SOCKS代理允許指定客戶端IP訪問。如果不安全的代理服務器引入網絡,可能為垃圾郵件發送者通過路由器發送垃圾郵件提供條件。

屬性描述

§  connection-idle-timeout (時間; 默認: 2m) – 連接空閑超時時間,即連接空閑后多長時間關閉

§  enabled (yes | no; 默認: no) – 是否啟用SOCKS代理

§  max-connections (整型: 1..500; 默認: 200) – 同時建立最大連接數

§  port (整型: 1..65535; 默認: 1080) – SOCKS服務器監聽連接的TCP端口

訪問列表(Access List

操作路徑: /ip socks access

在SOCKS訪問列表中,你能添加訪問策略控制訪問SOCKS服務器。SOCKS訪問列表類似於防火牆列表策略。

屬性描述

§  action (allow | deny; 默認: allow) – 選擇此規則的執行方式。

     allow – 匹配這個規則將允許數據包轉發,並進一步處理

     deny -  匹配這個規則將拒絕數據訪問

§  dst-address (IP address/netmask) – 目標IP地址(對端服務器)

§  dst-port (port) – 目標TCP端口

§  src-address (IP address/netmask) – 源IP地址(客戶端)

§  src-port (port) – 源TCP端口

活動連接(Active Connections

操作路徑: /ip socks connections

活動連接列表顯示了所有已經建立TCP連接,用於SOCKS代理服務器連接維護

屬性描述

§  dst-address (只讀: IP地址) – 目標IP地址

§  rx (只讀: 整型) – 接收字節

§  src-address (只讀: IP地址) – 源IP地址

§  tx (只讀: 整型) – 發送字節

§  type (只讀: in | out | unknown) – 連接類型

in – 向內連接

out – 向外連接

unknown – 連接正被發起

事例

查看當前TCP連接列表

[admin@MikroTik] ip socks connections> print

 # SRC-ADDRESS                DST-ADDRESS             TX         RX

 0 192.168.0.2:3242           159.148.147.196:80         4847       2880

 1 192.168.0.2:3243           159.148.147.196:80         3408       2127

 2 192.168.0.2:3246           159.148.95.16:80           10172      25207

 3 192.168.0.2:3248           194.8.18.26:80             474        1629

 4 192.168.0.2:3249           159.148.95.16:80           6477       18695

 5 192.168.0.2:3250           159.148.95.16:80           4137       27568

 6 192.168.0.2:3251           159.148.95.16:80           1712       14296

 7 192.168.0.2:3258           80.91.34.241:80            314        208

 8 192.168.0.2:3259           80.91.34.241:80            934        524

 9 192.168.0.2:3260           80.91.34.241:80            930        524

10 192.168.0.2:3261           80.91.34.241:80            312        158

11 192.168.0.2:3262           80.91.34.241:80            312        158

[admin@MikroTik] ip socks connections>

應用實例

FTP服務通過SOCKS代理服務器

假設一個內網192.168.0.0/24,並做了nat偽裝(masqueraded),RouterOS網絡接口配置一個公網IP 10.1.0.104/24 和內網網關192.168.0.1/24,互聯網中有一台FTP服務器IP地址是10.5.8.8。我們希望讓內網客戶端IP地址192.168.0.2訪問這個FTP服務器

首先,確認nat偽裝規則已經配置

[admin@MikroTik] ip firewall nat> print

Flags: X - disabled, I - invalid, D - dynamic

 0   chain=srcnat action=masquerade src-address=192.168.0.0/24

[admin@MikroTik] ip firewall nat>

然后確認訪問公網的FTP服務已經被防火牆拒絕,即訪問FTP服務是不能直接通過正常應用協議訪問:

[admin@MikroTik] ip firewall filter> print

Flags: X - disabled, I - invalid, D - dynamic

 0   chain=forward action=drop src-address=192.168.0.0/24 dst-port=21 protocol=tcp

[admin@MikroTik] ip firewall filter>

這里就需要使用SOCKS代理服務器去訪問,首先啟用SOCKS服務器:

[admin@MikroTik] ip socks> set enabled=yes

[admin@MikroTik] ip socks> print

                    enabled: yes

                       port: 1080

    connection-idle-timeout: 2m

            max-connections: 200

[admin@MikroTik] ip socks>

接下來配置訪問列表,添加客戶端IP地址192.168.0.2/32到SOCKS訪問列表中,允許數據傳輸從FTP服務器到客戶端(且允許目標端口從1024到65535的所有IP地址),然后拒絕所有:

[admin@MikroTik] ip socks access> add src-address=192.168.0.2 dst-port=21 \

\... action=allow

[admin@MikroTik] ip socks access> add dst-port=1024-65535 action=allow

[admin@MikroTik] ip socks access> add action=deny

[admin@MikroTik] ip socks access> print

Flags: X - disabled

 0   src-address=192.168.0.2 dst-port=21 action=allow

 1   dst-port=1024-65535 action=allow

 2   action=deny

[admin@MikroTik] ip socks access>

這樣,SOCKS服務器已經配置完成,查看Connctions中斷數據傳輸和連接情況:

[admin@MikroTik] ip socks connections> print

 # SRC-ADDRESS                DST-ADDRESS         TX         RX

 0 192.168.0.2:1238           10.5.8.8:21                1163       4625

 1 192.168.0.2:1258           10.5.8.8:3423              0          3231744

[admin@MikroTik] ip socks connections>

注意:為了讓客戶端正確連接SOCKS代理服務器,你必須在客戶端應用配置上指定IP地址和端口到你的FTP客戶端,在這個實例中IP地址設置為192.168.0.1,TCP端口為1080。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM