歡迎您光臨本站 註冊首頁

socks5 daemon 的配置文件

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  Socks5.conf ? socks5 daemon 的配置文件

SYNOPSIS
Socks5 daemon通常從/etc/socks5.conf讀配置文件。但如果你編譯socks5時用了 ?with-srvconffile=filename參數,你可以改變文件目錄。如果系統是FreeBSD,配置文件預設是/usr/local/etc/socks5.conf。

DESCRIPTION
Socks5 daemon 啟動時或收到一個HUP信號時,都讀此配置文件。配置文件保存以下信息:
- 連接地址的介面。
- 什麼情況下伺服器直接連接到一個地址。
- 什麼情況下伺服器使用另一個代理伺服器。
- 請求一個代理連接的必要要求。
配置文件分成六部分:
- ban host
- authentication
- interfaces
- variables and flags
- proxies
- access control

在每部分中,socks5 daemon 順序的讀每一行,直到遇到了匹配行。各部分的順序和各部分中行的順序是非常重要的。一行中的每個條目都必須匹配。

BAN HOST ENTRIES
Ban host entries 使用如下語法識別socks5 daemon 不允許連接的主機:
ban source-host source-port
ban 不允許授權。
source-host 必須是一個有效的hostpattern。
source-port 必須是一個有效的portpattern。
socks5 daemon 拒絕從source-host 的source-port發起的連接。

AUTHENTICATION ENTRIES
Authentication entries 確定socks5 daemon的身份驗證方式。使用如下語法:
auth source-host source-port auth-methods
auth 指出此條目是一條身份驗證條目。
source-host 必須是一個有效的hostpattern。
source-port 必須是一個有效的portpattern。
auth-methods 必須是一種有效的authpattern。
socks5 daemon 使用auth-methods 驗證source-host 的 source-port 的連接請求。

配置文件沒有auth項時,任何身份認證都可以工作。忽略auth項等效於指定認 證方式為auth ? (任意認證方式)。如果使用auth項,不匹配的客戶將被拒絕。
Socks5 daemon 不要求身份認證時,它收不到用戶信息,除非socks5配置為要求ident 響應。使用SOCKS5_DEMAND_IDENT環境變數要求ident響應。請參考socks5(1)得到完全的socks5環境變數的列表。
如果socks5 daemon 要使用Username/Password身份認證,並且有socks4客戶要使用此伺服器,設置授權順序為n,u。對於socks5的客戶端,socks5 daemon 先使用 Username/Password 身份認證。
Socks5 daemon 以逆序檢查auth-methods子段。從最後一個auth-method開始。

INTERFACE ENTRIES
如果一台機器有多個介面,多個IP地址,多數情況下,管理員使socks5使用特定的介面和特定的地址。通過指定內部主機使用向內的介面,外部主機使用向外的介面,可以防止外部主機冒充內部主機。同時要求socks5決定當接受一個bind或發送一個sendto時,使用哪一個介面去bind。當socks5在配置文件中沒有發現匹配項時,它使用INADDR_ANY 去bind,這意味著在任意介面接受連接。Single-homed(單宿)主機不要求interface項。只有多介面主機才要求有interface項。interface 項使用如下格式:

interface hostpattern portpattern interface-address
I
interface 標誌一個interface項
hostpattern 指定可以連接的源或目標主機
portpattern 指定可以連接的源或目標埠
interface-address 標誌IP地址或介面名,例如:eth0

interface項代替以前版本的route項。當前版本兩者等價。在將來的版本,route項將不被支持。

VARIABLE ENTRIES

variables 和 flags 控制系統紀錄文件的數量和類型。語法如下:
set variable value
set 指定內部使用的初始環境變數。請參考socks5(1) ENVIRONMENT部分。


PROXY ENTRIES
Proxy 項指定daemon通過socks server 連接到特定主機。配置文件沒有此項的話,daemon將直接連接到特定主機。語法如下:
proxy-type dest-host dest-port proxy-list

proxy-type 指定proxy server類型。有效值如下:
socks5 SOCKSv5
socks4 SOCKS version 4
noproxy 直接連接

dest-host 必須是有效的hostpattern
dest-port 必須是有效的portpattern
proxy-list 必須是有效的proxypattern

daemon使用proxy-list中的server連接到dest-host的dest-port。Proxy-list中的server必須符合proxy-type.。

ACCESS CONTROL ENTRIES
access control 部分決定daemon允許或拒絕連接請求。如果是access control項不匹配的連接請求,即使是已授權主機也不能建立連接。語法如下:
permit auth cmd src-host dest-host src-port dest-port [usr-list]
deny auth cmd src-host dest-host src-port dest-port [user-list]

auth 必須是有效的authpattern並且指定授權方式列表。
cmd 必須是有效的authpattern,指定src-host上的客戶可以在dest-host上執行的命令。
src-port 必須是有效的portpattern
dest-port 必須是有效的portpattern
user-list 必須是有效的userpattern


PATTERNS

hostpattern
socks5使用ip地址和掩碼的方式,格式如下:
hostip/mask 標準ip加掩碼方式
- 匹配所有主機
n1. 等價於n1.0.0.0/255.0.0.0
ni.n2. 等價於ni.n2.0.0/255.255.0.0
n1.n2.n3. 等價於ni.n2.n3.0/255.255.255.0
.domain.name 主機名必須以.domain.name結尾
a.host.name 主機名必須為a.host.name
如果使用域名,SOCKS5_REVERSEMAP必須被設置。因為hostnames和domains依賴於DNS,所以推薦使用ip地址加掩碼的方式。有很多種情況會導致逆向DNS查詢工作不正常。
socks5.conf也支持老的hostpattern語法,我們推薦使用新的語法,新的語法可讀性強。


portpattern
用服務名,數字或範圍指定埠。中括弧包括邊界,圓括弧不包括邊界。指定範圍用兩個數字或服務名,中間用逗號隔開,沒有空格。語法如下:
tftp tftp的服務埠,通常是69
80 埠80
- 所有埠
[100,1000] 埠100到1000
(100,1000) 埠101到999
(100,1000) 埠101到1000


authpattern
指定認證類型,socks5 daemon用逆序檢查授權方式。語法如下:
n 沒有認證
u Username/Password
k Kerberos 5(GSS-API)
- 任何認證方式
後面的認證方式優先順序比前面的高,如果你輸入:
n,u,k
server 先請求Kerberos認證,如果socks5 client沒有安裝使用Kerberos,server使用Username/Password 認證。因為SOCKS4 client 不能使用Kerberos 或Username/Password 認證方式。Serverz對SOCKS4 client不要求認證。

如果輸入:n,k,u
server先請求Username/Password認證。

commandpattern
指定命令,可用逗號分開,中間沒有空格。Socks5.conf識別如下命令:
c connect
b bind
u UDP
p ping
t traceroute
- 所有命令

userpattern
可用逗號隔開指定多個用戶,用戶類型必須匹配認證方式。例如,如果你使用Username/Password認證,socks5 daemon認為你是socks5用戶,如果你使用Kerberos 認證,socks5 daemon 認為你是Kerberos 用戶。一個短橫線,「-」,匹配所有用戶。


proxypattern
順序指定伺服器,用逗號分開。只有當前面的server無效時,客戶才使用後面的server。

EXAMPLES
請參考examples目錄獲得更多的信息。
auth - - k
permit k ? 111.111.111. - - -
只有Kerberos認證的C網111.111.111.0用戶能使用這個server。

socks5 - - s5srv1,s5srv2
permit - - .mydomain.com - - -
所有的socks5連接請求都通過s5srv1。如果s5srv1不可用,所有的socks5連接請求通過s5srv2。只有.mydomain.com的客戶可使用此伺服器。
auth otherserver ? k
noproxy .internal.net.com ?
socks5 - - otherserver
permit - - .internal.net.com - - -
permit k ? otherserver - - -
.internal.net.com的客戶可使用server,不要求Kerberos認證。Socks5 server可以直接連接到 .internal.net.com。並且為其它主機通過otherserver代理。otherserver也是socks5 server,要使用此代理,必須使用Kerberos認證。


POOR CONFIGURATIONS
如同其它軟體的情況一樣,處於安全的理由,適當的配置是必須的。如下行:
permit - - - - - -
是不應該使用的。如果使用這樣的設置,懷有惡意的用戶可以使用這個socks5 server作為他們的跳板去攻擊別的系統。


SEE ALSO
Socks5(1),libsocks5.conf(5),sockd4_to_5.pl(1)

AUTHORS
NWSL SOCKS5 Development Team

Send comments to socks5-comments@socks.nec.com


[火星人 ] socks5 daemon 的配置文件已經有477次圍觀

http://coctec.com/docs/linux/show-post-69921.html