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。
總結
以上是生活随笔為你收集整理的RouterOS SOCKS代理服务器(官方文档翻译)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单mongo的副本集搭建
- 下一篇: 使用独立主机时需要关注的问题