如何建立僅 SOCKS 群組?

如何建立僅 SOCKS 群組?

我目前正在嘗試設定一個用戶群組,該群組可以透過 SSH 連接到伺服器,但只能透過它進行代理。他們看不到任何文件或運行任何命令。該群組中的使用者還可以使用密碼身份驗證而不是金鑰。 SSH 伺服器是 OpenSSH。

這是另一個解決類似問題的問題有一個很好的答案。我無法完全理解他的意思,它特別指出不允許用戶使用伺服器作為代理,因此我不能盲目地遵循說明。與群組相比,它也是為單一使用者編寫的。為了嘗試解決這個問題,我對其配置進行了以下更改sshd_config

Match Group limited-users
AllowTcpForwarding yes
#X11Forwarding no
#PermitTunnel no
#GatewayPorts no
AllowAgentForwarding no
PermitOpen localhost:1080
ForceCommand echo 'This account can only be used for [reason]'

我懷疑我可能需要建立特定類型的系統群組,但我不確定。

有沒有一種首選方法可以創建這樣的鎖定帳戶,而我只是想念它?

編輯:我有在 StackOverflow 上發現了第二個問題,也與這個問題非常相似但他們再次使用密鑰,因為我想使用密碼而不是密鑰。

編輯2:事實證明這是一個非常受歡迎的事情。這個幫助最大。看來我需要簡單地將用戶的外殼設置為簡單地按任意鍵註銷,他們將無法執行任何操作。

編輯3:密切注意時本文由其他問題之一提供,我提出了以下內容,這幾乎是相同的事情,但沒有兩個單獨的群組:

如果正確的話我會更新。

/usr/bin/tunnel_shell我透過建立文件並將其放入其中,創建了一個似乎完全無用的外殼

#!/bin/bash
trap '' 2 20 24
clear
echo -e "rn33[32mSSH tunnel started, shell disabled by the system administrator"
while [ true ] ; do
sleep 1000
done
exit 0

我使用建立了一個名為tunnel_group的群組

groupadd tunnel_group

我使用它新增了一個名為tunnel_user的使用者。 -M 不給他主目錄。 -Gtunnel_group 將他加入tunnel_group(我之前建立的群組)。 -s 將他的 shell 設定為我之前建立的tunnel_shell 檔案。

useradd -M -G tunnel_group -s /usr/bin/tunnel_shell tunnel_user

然後我使用設定用戶密碼

passwd tunnel_user

/etc/ssh/sshd_config/已將其添加到文件末尾。

  Match Group tunnel_group
   AllowTcpForwarding yes
   #X11Forwarding no
   PermitTunnel yes
   GatewayPorts yes
   AllowAgentForwarding yes
   PermitOpen localhost: 1080
   ForceCommand echo 'This account can only be used for SOCKS and has be restricted accordingly.'

相關內容