web-dev-qa-db-ja.com

SambaファイルサーバーにSSHで接続するにはどうすればよいですか?

そこで、Debian(3.2)マシン上に専用のSambaファイルサーバーを作成しました。私はWindowsとUnixの両方からアクセスすることに大きな成功を収めました。ローカルネットワーク上でSSHで接続できます。

パブリックIPアドレスを介してSSHで接続しようとすると、接続が拒否されたと表示されます。

Samba共有に直接接続して、リモートでSSH接続できるようにしたいと思います。どうすればこれを行うことができますか?ポートフォワードが必要になる可能性があると聞きましたか? smb.confファイルの何かを変更する必要がありますか?

これが私のsshd_configファイルです:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_Host_rsa_key
HostKey /etc/ssh/ssh_Host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need Host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
2
Scriptonaut

Scriptonaut、おそらくあなたの問題はSambaとは何の関係もありませんが、ポートフォワーディング/ NATと関係があります。ルーターの背後にあるLANネットワーク内のDebianコンピューターにサービスを提供するSAMBAがある場合は、そのポートの一部からSAMBA実行中のマシンに要求を転送するように構成する必要があります。

enter image description here

まず、発信接続がルーターとどのように連携するかを説明します。 2台のマシンがTCP/IPを介して通信する場合、各マシン(送信元マシンと宛先マシン)はIP /ポート番号のペアでアドレス指定されるため、接続は送信元IP /ポート番号と宛先IP /ポート番号の2つのペアによって決定されます。

Mozillaでタブを開き、192.168.1.2マシンでGoogleにアクセスすると、IPパケットの一部がルーターに転送されます。ルーターの送信元アドレスはIP = 192.168.1.2で、割り当てられた任意の発信TCPポート番号です。ブラウザのそのタブ(43694など)は、ルーターにそのパケットをそのマシンの80ポートの特定のIPでGoogleマシンに転送するように要求します。これは、80が着信http接続の標準ポートであるためです(標準のTCP Linuxの/etc/servicesファイルの_ポート)。ルーターは、独自のポートをランダムに割り当て(eg12345)、そのパケットの送信元IP /ポートペアを独自のWAN IP(74.25.14.86)とポート12345に置き換え、応答があった場合にそれを記憶します。 Googleのポート12345では、その応答を192.168.1.2のポート43694に自動的に転送する必要があります。

では、外部マシンがサーバーにアクセスしようとするとどうなりますか?

外部マシンからSAMBAサーバーにアクセスしようとすると、IPパケットがWAN IP = 74.25.14.86、ポート22に送信されます(22は標準のTCPであるため) SSH接続をリッスンするためのポート。Linuxの/etc/servicesファイルに標準のTCPポートのリストが表示されます。ルーターはそのパケットを受信します。デフォルトでは、ルーターのファイアウォールは、そのポートにバインドされた発信接続がない場合、任意のポートへのすべての着信接続をブロックするように構成されています(したがって、以前のケースでGoogleにアクセスしていたとき、ルーターはGoogleからポートへの応答をブロックしませんでしたそれ自体の12345、それはあなたの192.168.1.2がグーグルへの接続を開始し、グーグルからの応答がポート12345に来るはずであることを思い出したからです。ただし、外界からそのポート22への接続を開始する試みはブロックされます。これは、LANから着信する接続に対してポート22がマップされていないためです。

したがって、必要なことは、外部から192.168.1.2のポート22にポート22へのすべての接続を転送するようにルーターを構成することです。これは、ハードウェアルーターのWebインターフェイスで実行できます。通常、必要なメニューオプションは、「ポート転送」または「NAT-ネットワークアドレス変換」と呼ばれます。

6
Boris Burkov