質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

2回答

6838閲覧

踏み台サーバを使ってSSH多段階接続したい

studio_graph

総合スコア43

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

5クリップ

投稿2015/10/20 06:55

鯖管初心者です。現在とある会社の鯖管をしています。
主に受託開発をメインにしているため,サービスごとにVPSサーバがいくつかある,という状況です。
しかしそれだとセキュリティ上で問題があるため,1つ踏み台サーバを用意して,そこから多段階接続?をして,セキュリティを高めてくれ,と要求されました。

しかしながらまだまだ鯖管初心者であるため,なにが必要なのか,なにをインストールすればいいかわかりません。
もし参考にするべきサイト,書籍などあれば教えていただきたく思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

VPSサーバは触ったことがないので一般的なOSレイヤの回答になります。

VPSコントロールパネルからの制御等は除きます。

なお、参考サイトについてはここで記載すると問題になりそうなので、
検索サイトでの検索ワードのみ提示とさせてください。

まず、接続先のサーバ(踏み台から接続されるサーバ)は、踏み台サーバからしか接続できない設定をします。
加えて踏み台サーバへの接続も制限したほうが良いでしょう。
ただし、設定を間違えると、接続することが出来なくなる可能性がありますので、要注意です。
検証環境で手順を確立してから、本番環境に導入することをお勧めします。

もし、VPSコントロールパネルとかからコンソールを見る方法があるのであれば問題ありませんが。

接続先のサーバの設定です。
踏み台サーバを「192.168.1.1」と仮定して説明します。

1)iptables
検索ワード:「iptables SSH」

/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

上記はssh接続のデフォルト設定ですが、sshはすべてのクライアントから許可となっています。
これを以下に変更。
-A INPUT -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT

これで、ssh接続は踏み台サーバからのみ許可となります。
コンフィグ変更後はiptablesを再起動です。

2)sshd
検索ワード:「SSH 設定」
/etc/ssh/sshd_config

まず、基本としてrootユーザのログインを禁止します。
PermitRootLogin no

接続するユーザを限定するとよりセキュアです。
ただし予めユーザはOSに用意しておく必要があります。
AllowUsers "接続許可するユーザ名"

複数ユーザの場合はグループで制御すると便利です。
予めグループ作成の上、許可するユーザは該当グループに所属している必要があります。
AllowGroups "接続許可するグループ名"

コンフィグ変更後はsshdを再起動します。

次に踏み台サーバへの接続ですが、接続先サーバと同様にiptables、sshdで任意の制御をします。
/etc/sysconfig/iptables
-A INPUT -s "接続元のネットワーク or IPアドレス" -p tcp --dport 22 -j ACCEPT

/etc/ssh/sshd_config
PermitRootLogin no

加えて公開鍵認証方式にするとよりセキュアです。
検索サイトで「SSH 公開鍵」とかで検索すると参考サイトに出会えます。
手順は少し長いので、参考サイトを参照してください。

投稿2015/10/20 08:29

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

サーバーの構成がどのようになっているのかわからないため、もっとも単純な方法を記載いたします。
OSもLinuxであるという前提で説明いたします

通常、Linuxサーバーであれば、すでにSSHは設定されているはずなので、踏み台となるサーバーからログインするサーバーの/etc/hosts.denyと/etc/hosts.allowで接続可能IPを指定してあげればいいだけです。
/etc/hosts.denyに「sshd : all」として全SSH接続を拒否して、/etc/hosts.allowに「sshd: IPアドレス」です。
たとえば、踏み台となるサーバーのIPアドレスが、「192.168.2.1」ならば、/etc/hosts.allowは「sshd : 192.168.2.1」になります

投稿2015/10/20 08:28

hide0527

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問