NAP6官方旗舰店
搜索
发新帖
午饭无线 推广广告R7800 完胜 华硕路由器NETGEAR Vs ASUS T-Mobile定制版NETGEAR团购
开启左侧

MikroTik RouterOS RouterOS SOCKS代理服务器介绍

[复制链接]
1670 0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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连接列表

  1. [admin@MikroTik] ip socks connections> print

  2. # SRC-ADDRESS                DST-ADDRESS                TX         RX

  3. 0 192.168.0.2:3242           159.148.147.196:80         4847       2880
  4. 1 192.168.0.2:3243           159.148.147.196:80         3408       2127
  5. 2 192.168.0.2:3246           159.148.95.16:80           10172      25207
  6. 3 192.168.0.2:3248           194.8.18.26:80             474        1629
  7. 4 192.168.0.2:3249           159.148.95.16:80           6477       18695
  8. 5 192.168.0.2:3250           159.148.95.16:80           4137       27568
  9. 6 192.168.0.2:3251           159.148.95.16:80           1712       14296
  10. 7 192.168.0.2:3258           80.91.34.241:80            314        208
  11. 8 192.168.0.2:3259           80.91.34.241:80            934        524
  12. 9 192.168.0.2:3260           80.91.34.241:80            930        524
  13. 10 192.168.0.2:3261           80.91.34.241:80            312        158
  14. 11 192.168.0.2:3262           80.91.34.241:80            312        158

  15. [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伪装规则已经配置

  1. [admin@MikroTik] ip firewall nat> print
  2. Flags: X - disabled, I - invalid, D - dynamic

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

  4. [admin@MikroTik] ip firewall nat>
复制代码


然后确认访问公网的FTP服务已经被防火墙拒绝,即访问FTP服务是不能直接通过正常应用协议访问:

  1. [admin@MikroTik] ip firewall filter> print
  2. Flags: X - disabled, I - invalid, D - dynamic

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

  4. [admin@MikroTik] ip firewall filter>
复制代码


这里就需要使用SOCKS代理服务器去访问,首先启用SOCKS服务器:

  1. [admin@MikroTik] ip socks> set enabled=yes
  2. [admin@MikroTik] ip socks> print

  3.                     enabled: yes
  4.                        port: 1080
  5.     connection-idle-timeout: 2m
  6.             max-connections: 200

  7. [admin@MikroTik] ip socks>
复制代码


接下来配置访问列表,添加客户端IP地址192.168.0.2/32到SOCKS访问列表中,允许数据传输从FTP服务器到客户端(且允许目标端口从1024到65535的所有IP地址),然后拒绝所有:

  1. [admin@MikroTik] ip socks access> add src-address=192.168.0.2 dst-port=21 \
  2. \... action=allow

  3. [admin@MikroTik] ip socks access> add dst-port=1024-65535 action=allow
  4. [admin@MikroTik] ip socks access> add action=deny
  5. [admin@MikroTik] ip socks access> print
  6. Flags: X - disabled

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

  8. 1   dst-port=1024-65535 action=allow

  9. 2   action=deny

  10. [admin@MikroTik] ip socks access>
复制代码


这样,SOCKS服务器已经配置完成,查看Connctions中断数据传输和连接情况:

  1. [admin@MikroTik] ip socks connections> print
  2. # SRC-ADDRESS                DST-ADDRESS         TX         RX

  3. 0 192.168.0.2:1238           10.5.8.8:21                1163       4625
  4. 1 192.168.0.2:1258           10.5.8.8:3423              0          3231744

  5. [admin@MikroTik] ip socks connections>
复制代码


注意:为了让客户端正确连接SOCKS代理服务器,你必须在客户端应用配置上指定IP地址和端口到你的FTP客户端,在这个实例中IP地址设置为192.168.0.1,TCP端口为1080。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表