ローカルネットワークに制限されるようにSSHを設定するにはどうすればよいですか?


33

11.10を実行している新しいラップトップを、SSHを使用してルーターを介して8.04を実行している古いラップトップにリンクしようとしています。

この質問は、ここのubuntuforumsで質問され回答されます:

http://ubuntuforums.org/showthread.php?t=1648965

ここでより明確な答えを得ることが役立つと思いました。

注:firestarterを使用してファイアウォールのSSHポートを接続し、開くことを試みていたラップトップに、openssh-serverを最初にインストールする必要がありました。


そのスレッドに関するslooowの答えについて「決定的」ではないものを教えてください。そうでなければ、あなたの質問はあいまいに思えます。
d_inevitable

@d_inevitable 1つについては、それが唯一の答えではなく、それ以外の場合は正しいものとして示されていません。これは私が選択したものですが、このため、この質問を移行することが有用だと考えました。また、2つのローカルマシン間でSSHを構成する際の一般的な指示や役立つリンクを含めると役立つ場合があります。
クレンウェル

回答:


46

sshサーバーへのアクセスをさまざまな方法で制限できます。

IMOで最も重要なのは、sshキーを使用してパスワード認証を無効にすることです。

詳細については、次のWikiページを参照してください

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication

いくつかの方法で特定のサブネットへのアクセスを制限できます。私はあなたのsshサーバーがサブネット192.168.0.0/16にあり、IPアドレスが192.168.0.10であると仮定し、それに応じて調整します;)

ルーター

防衛線の1つは、ルーターを使用することです。必ずUPnPを無効にし、ポート転送を許可しないでください。

SSH構成

でいくつかのオプションを設定できます/etc/ssh/sshd_config。1つはリスンアドレスです。サブネットにリスンアドレスを設定した場合。プライベートIPアドレスはインターネット上でルーティングできません。

http://compnetworking.about.com/od/workingwithipaddresses/f/privateipaddr.htm

ListenAddress 192.168.0.10

AllowUsersを使用することもできます

AllowUsers you@192.168.0.0/16

多少関連がありますが、ポートを変更することもできます

Port 1234

http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.htmlを参照してください

TCPラッパー

フォーラムの投稿で概説されているように、TCP Wrapperを使用できます。TCPラッパーは2つのファイルを使用し/etc/hosts.allow/etc/hosts.deny

/etc/hosts.allowサブネットを編集して追加する

sshd : 192.168.0.

編集/etc/hosts.deny、すべて拒否

ALL : ALL

http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/も参照してください

ファイアウォール

最後に、サーバーをファイアウォールで保護できます。iptables、ufw、またはgufwを使用できます。

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

iptablesでDROPを使用しないでください。http: //www.chiark.greenend.org.uk/~peterb/network/drop-vs-rejectを参照してください

UFW

sudo ufw allow from 192.168.0.0/16 to any port 22

gufwにはグラフィカルインターフェイスがあります

GUFW

https://help.ubuntu.com/community/UFWを参照して ください

https://help.ubuntu.com/community/IptablesHowTo


一部のネットワークは、IPアドレスとして10.0.0.0を使用します。その場合、10.0.0.0 / 8の代わりに192.168.0.0/24を使用して、範囲10.0.0.0-10.255.255.255を許可します。単一のIPのみを許可する場合は、192.168.1.2 / 32などを使用します。非常に冗長な説明が[上で見つけることができserverfault.com/q/49765/51929](Howサブネット動作します)?
Lekensteyn

1
iptablesの中にDROPを使用しないでください-を参照してくださいchiark.greenend.org.uk/~peterb/network/drop-vs-reject
パンサー

そのページでは、DROP over REJECTを使用する可能性のある理由として、スプーフィングされたIPについては言及していません。Sec.SEのこの回答は、それが実際には関係ない理由を説明しています(ソースパケットは返されたパケットよりも大きい)。
Lekensteyn

@Lekensteyn-そのリンクにはなりすましIPに関する議論はありませんでした。あなたが提案するように、DDoSとスプーフィングされたIPはこの議論を超えており、DROPが何よりもREJECTより優れているとは確信していません。DDosは複雑であり、DDosの原因に関する情報がなければ防御することは不可能です。たとえば、WPがDDoSとして使用され、問題を解決するのはWPの適切な構成であり、iptablesとはほとんどまたはまったく関係ありません。
パンサー

ListenAddress最もシンプルでエレガントなソリューションのように
思えます-code_monk

1

ssh(セキュアシェル)は、データに安全にアクセスして転送するために使用されます(RSA_KEYSペアを使用)。2つの方法でsshを使用してデータにアクセスできます1.コマンドライン2.ファイルブラウザーを使用して

コマンドライン:このため、何もインストールする必要はありません。最初のタスクは、他のコンピューターにログインすることです。

ssh other_computer_username@other_computer_ip

このコマンドは、他のコンピューターのパスワードであるパスワードを要求します(特定のユーザー名の場合)。他のコンピューターのシェルにログインしました。この端末は、コンピュータのシェル端末のようなものだと思います。自分のコンピューターでできる他のコンピューターへのシェルを使用してすべてを行うことができます

ファイルブラウザ:openssh-serverをインストールする必要があります

sudo apt-get install openssh-server

ログインするには、file-> connectToServerに移動します

ここに画像の説明を入力してください


コマンドラインの指示は、私が最初に試したものです。LAN IPで他のコンピューターをpingできました。しかし、SSHを使おうとするとハングします。したがって、最初にSSHアクセスを許可するように他のコンピューターを構成する必要があると思います。
クレンウェル

ルーターが22ポートまたはsshをブロックしないことを確認してください
shantanu

ありがとう。経験からあなたが言及したことはすべて知っていましたが、他の人からシンプルで構造化された話を聞くのはとても簡単でした。
lakesare
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.