web-dev-qa-db-ja.com

インターネットから(安全に)利用できるようにubuntuサーバーを設定する方法は?

(事前におpoび申し上げます、私は新しくubuntuに変換されたプロウィンドウです...私の質問が明らかな場合は教えてください)。

インターネットに継続的に接続されたubuntuサーバーを構築したい。私はIPアドレスのみを所有しています。サーバーの主な目的は、ソースコードコントローラーとして機能することです(おそらくgitまたはsvn ...まだ選択していません)が、他のいくつかの用途(家族や顧客とのファイル共有、個人バックアップ、Webアプリケーションのホスト)また、httpやhttpsのみを許可する顧客のプロキシの背後であっても、いつでもコンピューターにアクセスして管理できるようにしたいと考えています。

それを達成するための標準的な手順は何ですか?

  • 私の最初のことは、opensshサーバーをセットアップすることです。標準ポート(つまり、顧客のファイアウォール/プロキシ互換)でインターネットに開くことは可能ですか?.
  • Webページプラグイン(サーバーによってホストされている)から実行されるVPNサーバーをセットアップすることはできますか?
  • iPアドレスが1つしかないため(実際にはIP V4とIPV 6ですが、IP V6アドレスに顧客のネットワークからアクセスできるようになるとは思わない)、Apacheと他のサーバーソフトウェアを同じ標準ポ​​ートで共存させることはできますか?

前もって感謝します ;)

7
Steve B

適切に設定されていれば、OpenSSHは標準ポートでも安全です。標準ポートから移動すると、不正なログイン試行によってログファイルがいっぱいになるのを防ぐことができます。最後の詳細。

サーバーに接続するコンピューターを制御できない場合、サーバーにアクセスするのは非常に危険です(これがブラウザープラグインを使用する必要がある理由だと思います)

OpenVPNは、_-TCPポートをHTTP/HTTPSサーバーと共有するように、 手動ページ からセットアップできます。

--port-shareホストポート
TCPサーバーモードで実行する場合、OpenVPNポートをHTTPSサーバーなどの別のアプリケーションと共有します。 OpenVPNが非OpenVPNプロトコルを使用しているポートへの接続を検知すると、Host:portのサーバーへの接続をプロキシします。現在はHTTP/HTTPSでのみ動作するように設計されていますが、sshなどの他のプロトコルに拡張することは理論的には可能です。

オーバーヘッド(TCP 3ウェイハンドシェイク)のため、TCP接続でOpenVPNを使用することは推奨されません。選択肢がない場合は、試してみてください。

OpenVPNを使用すると、ポートに課せられた制限を回避し、接続を保護できます。 OpenVPNのセットアップに関するガイドについては、 OpenVPNをセットアップして、セキュリティで保護されていないホットスポットからインターネットを安全に使用できるようにする方法 を参照してください。

アプリケーションが(OpenVPNのように)サポートしていない限り、ポートを共有することはできません。そのため、残念です。

SSHサーバー

接続試行を制限しないパスワードベースの認証は、トラブルを求めています。そのため、キーベースの認証を使用し、パスワードベースの認証を完全に無効にすることをお勧めします。

  1. インストール openssh-serverInstall openssh-serverSudo apt-get install openssh-serverを実行して
  2. 構成ファイル/etc/ssh/sshd_configを編集して、パスワードベースの認証を無効にします。編集を開始するには、Sudo nano /etc/ssh/sshd_configを実行します。行#PasswordAuthentication yesを見つけて、PasswordAuthentication noに変更します。デフォルトでは、SSHはポート22でリッスンします。変更する場合は、セキュリティ上の理由から1024未満のポートを使用してください。 (Port 22で行を変更します)
  3. セキュリティを強化するために、ログインを許可するユーザーのリストを構成できます。次の行を追加します。

    AllowUsers someuser
    

    someuserを、ログインが許可されているアカウントのユーザー名に置き換えます。複数のユーザー名はスペースで区切る必要があります。

  4. キーを生成しますコンピューター上コマンドssh-keygen -t rsaを使用します。必要な値を入力し、安全なパスフレーズを選択します。
  5. ~/.ssh/id_rsa.pubファイルの内容をサーバーの/home/someuser/.ssh/authorized_keysファイルにコピーします。 someuserは、ログインを許可する必要があるユーザーです。 (コピーする必要があるのは1行です。never-----BEGIN RSA PRIVATE KEYで始まるファイルの内容をコピーします
  6. SSHサーバーの構成を再読み込みします。

    Sudo reload ssh
    
  7. SSH経由でサーバーにリモートでアクセスしている場合は、新しいSSH接続を確立してロックアウトを回避できることを確認してください。
10
Lekensteyn