SOCKS5 の FreeBSD 設定メモ

このページの内容は無保証です。
  1. 履歴

  2. SOCKS5 とは?

    SOCKES はファイアウォールの内部から、 外部に向かって telnet や ftp をできる用にする為のツールです。 ただし、クライアントは SOCKS に対応したものが必要になります。 SOCKS5 はそのバージョン 5 です。

    バージョン 5 では、

    などの特徴があります。

    関連ページ
    ----------------------------------------------------------------------
    				,-----------.
    	  インターネット   -----+foo.bar.com|
    				`-----------'
    		|
    		|
    	,-------+-----.
    	|socks5 サーバ|     (firewall.xxx.co.jp)
    	`-------+-----'
    		|192.168.1.1
    		|
    	o-------+-------+----------------+-------o  192.168.1/24
    			|                | ...
    		,-------+-----------.
    		|socks5 クライアント| (client.xxx.co.jp)
    		`-------------------'
    ----------------------------------------------------------------------	
    
    この様な構成で client.xxx.co.jp から
    	# rping foo.bar.com
    	# rtraceroute foo.bar.com
    	# rtelnet foo.bar.com
    	# rftp foo.bar.com
    
    などの操作ができます。 ここで、`foo.bar.com' は DNS で解決出来なくても構いません。
  3. インストール

    socks5-v1.0r9 をインストールする場合、 FreeBSD 3.2R では clients/telnet/Makefile を修正しなければなりません。
    --- clients/telnet/Makefile.orig	Fri Sep  3 15:17:56 1999
    +++ clients/telnet/Makefile	Fri Sep  3 16:38:52 1999
    @@ -44,7 +44,7 @@
     CC		= cc
     SOCKSFLAGS 	= -DSOCKS -DINCLUDE_PROTOTYPES
     EXTRA_CFLAGS	= 
    -LIBS            = -L../../lib -lsocks5   -lcrypt   -lncurses
    +LIBS            = -L../../lib -lsocks5   -lcrypt   -lncurses -lcurses
     CDEBUG_FLAGS    = 
     CFLAGS		= -I$(srcdir) -I../../include -I$(srcdir)/../../include -O2 -pipe -D__USE_FIXED_PROTOTYPES__  -DHAVE_SETUPTERM $(CDEBUG_FLAGS) $(SOCKSFLAGS) -DKLUDGELINEMODE $(EXTRA_CFLAGS)
    
  4. 設定(サーバ側)

    ファイアウォールマシンでは、/usr/local/etc/socks5.conf を作ります。
    #
    # ポート番号
    #
    set SOCKS5_BINDPORT 1080
    #
    # ルーティング
    #	  	ip     				port	interface -ip
    interface 	192.168.1.0/255.255.255.0	-	192.168.1.1
    #
    # アクセス制御
    # 内側のネットワーク向けの接続は拒否する。
    #rule	auth	cmd	src-ip	dst-ip				src-p	dst-p
    deny	-	-	-	192.168.1.0/255.255.255.0	-	-
    # 内側のネットワークからの接続を許可する。
    #rule	auth	cmd	src-ip	dst-ip				src-p	dst-p
    permit	-	-	192.168.1.0/255.255.255.0	-	-	-
    
  5. 設定(クライアント側)

    /usr/local/etc/libsocks5.conf を作ります。
    #
    # proxy protocol dest-addr dest-port [userlist [proxy-addr [proxy-port]]]
    #
    # プライベートアドレスには、SOCKS を使わない。
    noproxy	-	192.168.	-	-	-	-
    # それ以外は、SOCKS を使う。
    socks5	-	-		-	-	192.168.1.1	1080
    
  6. 使い方

    サーバ側でデーモンを起動します。
    	# /usr/local/bin/socks5
    
    クライアント側でアプリケーションを起動します。
    	$ /usr/local/bin/rping foo.bar.com
    	$ /usr/local/bin/rtraceroute foo.bar.com
    	$ /usr/local/bin/rftp foo.bar.com
    	$ /usr/local/bin/rtelnet foo.bar.com
    

[UP]