当前位置:Linux教程 - Linux综合 - 在Linux上配置和实现SOCKSv5

在Linux上配置和实现SOCKSv5

  一、 SOCKS概述 SOCKS其实是一种网络代理协议。该协议所描述的是一种内部主机(使用私有ip地址) 通过SOCKS服务器获得完全的Internet访问的方法。具体说来是这样一个环境:用一台运行S OCKS的服务器(双宿主主机)连接内部网和Internet,内部网主机使用的都是私有的ip地址 ,内部网主机请求访问Internet时,首先和SOCKS服务器建立一个SOCKS通道,然后再将请求 通过这个通道发送给SOCKS服务器,SOCKS服务器在收到客户请求后,向客户请求的Internet 主机发出请求,得到相应后,SOCKS服务器再通过原先建立的SOCKS通道将数据返回给客户。 当然在建立SOCKS通道的过程中可能有一个用户认证的过程。 SOCKS和一般的应用层代理服务器是完全不同的。一般的应用层代理服务器工作在应 用层,并且针对不用的网络应用提供不同的处理方法,比如HTTP、FTP、SMTP等,这样,一旦 有新的网络应用出现时,应用层代理服务器就不能提供对该应用的代理,因此应用层代理服务器的可扩展性并不好;与应用层代理服务器不同的是,SOCKS代理服务器旨在提供一种广义 的代理服务,它与具体的应用无关,不管再出现什么新的应用都能提供代理服务,因为SOCK S代理工作再线路层(即应用层和传输层之间),这和单纯工作在网络层或传输层的ip欺骗( 或者叫做网络地址转换NAT)又有所不同,因为SOCKS不能提供网络层网关服务,比如ICMP包 转发等。这三种技术的比较如下表所示 类别 ip欺骗(NAT) SOCKS v5 应用层代理 工作区域 网络层或传输层 线路层 应用层 用户认证 无 有 有 应用可扩展性 好 好 无 网络服务 有 无 无 目前的SOCKS版本是第五版,第五版同第四版的区别主要在于第五版提供多种不同的用户 认证方法和UDP代理。 二、 SOCKS v5的安装 1. 软件的获取 对于非商业使用SOCKS是免费的,你可以从www.socks.nec.com/cgi-bin/download.pl 下载SOCKS v5的最新版,当前的最新版本是socks5-v1.0r11.tar.gz,使用RedHat的朋友也可 以到RedHat的官方站点下载相应的SOCKS v5的rpm包。下面我们以SOCKS v5 的最新版socks5 -v1.0r11.tar.gz为例讲述SOCKS v5的安装过程。 2. 将下载来的socks5-v1.0r11.tar.gz拷贝到/tmp目录下 #cp socks5-v1.0r11.tar.gz /tmp 3. 解开压缩包 #tar xvzf socks5-v1.0r11.tar.gz 4. 进入socks5-v1.0r11开始编译 #cd socks5-v1.0r11 #./configure #make #make install 如果要更改缺省的安装选项,请仔细阅读README和INSTALL文档的相关说明。如 果编译过程出现了问题,也可以到以下站点下载我编译的binary包: http://www.yxtc.edu.cn/soft/Linux/socks/socks5.tar.gz
[1] [2] [3] 下一页 

下载后将该socks5.tar.gz binary包拷贝到根目录/,运行tar xvzf socks5.tar.gz即可。相 关的文件路径如下: #tar xvzf socks5.tar.gz usr/bin/socks5 usr/bin/stopsocks usr/bin/runsocks usr/lib/libsocks5.a usr/lib/libsocks5_sh.so usr/man/man1/stopsocks.1 usr/man/man1/socks5.1 usr/man/man1/socks5.1.gz usr/man/man1/socks5_clients.1 usr/man/man1/runsocks.1 usr/man/man5/socks5.conf.5 usr/man/man5/socks5.conf.5.gz usr/man/man5/socks5.passwd.5 usr/man/man5/socks5.passwd.5.gz usr/man/man5/libsocks5.conf.5 etc/socks5/libsocks5.conf etc/socks5/passwd etc/socks5/socks5.conf etc/rc.d/init.d/socks5 三、 SOCKS v5的配置 我们主要通过socks5.conf文件来配置SOCKS v5服务器。该配置文件的路径可以在编 译SOCKS v5时自行指定,缺省路径为:/etc/socks5.conf。SOCKS v5服务器在每次启动或收 到HUP信号时读入该配置文件的内容。该配置文件通常由以下几个方面的内容构成: -ban host:定义拒绝服务的客户列表 -authentication:定义SOCKS v5服务器使用的用户认证方法 -interface:定义SOCKS v5服务器绊定的ip地址和服务端口 —variables and flags:定义SOCKS v5服务器运行的环境 -proxies:定义客户可以通过SOCKS v5服务器访问的地址列表以及SOCKS v5服务 器访问这些地址的方法 -Access control:定义SOCKS v5服务器接受或拒绝客户连接的规则 下面我们分别来讲述这些条目对应的语法: 1. ban host: 语法:ban source-host source-port 说明:SOCKS v5服务器将拒绝接受来自source-host:source-port的客户连接。 2. authentication: 语法:auth source-host source-port auth-methods 说明:对于来自source-host:source-port的客户连接,SOCKS v5服务器将使用auth-method s所定义的用户认证方法。对于没有定义认证方法的客户将使用任何可以使用的认证方法。 3. interface: 语法:interface hostpatern portpattern interface-address 说明:来自source-host:source-port的客户连接由interface-address处理;目的地址为so urce-host:source-port的客户连接由SOCKS v5 代理服务器从 interface-address发出连接 请求。 4. variables: 语法:set variable value 说明:定义SOCKS v5运行参数,SOCKS v5有以下一些常用的运行参数: SOCKS_BINDINTFC host:port:指定SOCKS v5绑定的ip地址和监听的端口。如果 不指定绑定的ip地址,SOCKS v5将使用0.0.0.0。 5. proxies: 语法:proxy-type dest-host dest-port proxy-list 说明:当客户请求的目的为dest-host:dest-port时,SOCKS v5将使用proxy-list中的代理服 务器请求数据。
上一页 [1] [2] [3] 下一页 

6. access control: 语法:permit auth cmd src-host dest-host src-port dest-port [user-list] deny auth cmd src-host dest-host src-port dest-port [user-list] 说明:通过这两条语句所定义的规则来进行客户访问控制。 我们再对以上语法作进一步的解释: 1. host的表示方法: -:表示任意主机 n1.:表示n1.0.0.0/255.0.0.0 n1.n2.:表示n1.n2.0.0/255.255.0.0 n1.n2.n3.:表示n1.n2.n3.0/255.255.255.0 .domain.name:表示主机名以.domain.name结尾的主机 some.domain.name:表示主机名为some.domain.name的主机 2. port的表示方法: -:表示任意端口 service name:用/etc/service中定义的服务名来表示,如telnet port number:直接指定数字端口,如80 [port_start,port_end]:指定一个端口范围,如[1024,6000]表示从端口1024到6000, (1024,6000)表示从端口1025到5999 3. auth的值: n:无用户认证 u:使用username/passWord用户认证方法 k:使用Kerberos用户认证方法 -:使用任何可用的用户认证方法 4. cmd的值: -:任何命令 c:connect b:bind u:UDP p:ping t:traceroute 5. user的值: -:任何用户 6. proxy的值: socks5: SOCKS v5 socks4: SOCKS 版本4 noproxy:不使用代理而直接连接 7. server的值: host: 指定服务器的hostname,使用缺省服务端口 host:port:指定服务器的hostname和该服务的监听端口 下面是一些例子: auth ― - u 说明:对所有的客户连接都使用username/password用户认证方法 permit u - 192.

(出处:http://www.sheup.com)


上一页 [1] [2] [3] 

noproxy:不使用代理而直接连接 7. server的值: host: 指定服务器的hostname,使用缺省服务端口 host:port:指定服务器的hostname和该服务的监听端口 下面是一些例子: auth ― - u 说明:对所有的客户连接都使用username/password用户认证方法 permit u - 192.

(出处:http://www.sheup.com)


上一页 [1] [2] [3] [4]