CentOS 7 VPNサーバー

CentOS 7 VPNサーバー

VPNによって完全にブロックされるようにCentOS 7を使用してリモートインターネットWebサーバーを設定する方法は? ユースケースは次のとおりです。

1.) This means that ALL requests for ANY interaction with the web server  
    would have to come through the VPN from a known user. Including  
    http/https requests.  
2.) Each server might have only 20 users who would connect to the server  
    over the internet to work with highly sensitive data that needs  
    tight security.  
3.) The users would not actually log into the OS.  
4.) Instead, the users would simply make http/https requests from pre-registered  
    devices that also contain a unique key identifying the user.  
5.) There would be one administrator who logs into the OS remotely,  
    but all other users would just have secure http/https access.  
6.) If any request came from a non-known device outside the vpn,  
    the request would be bounced off as if the server was not there.   
7.) But the server is connected to the internet and all VPN connections  
    come through the internet.  

OpenSSHこれがVPNの最新バージョンであることを読みました。 1024ビットの暗号化キーを使用できることは気に入りましたが、OpenSSHを使用してOSにリモートでログインするだけで、http / httpsリクエストを含むシステムへのすべてのパスをロックすることはできないという印象を受けました。 。OpenSSH上記のようにサーバー全体をロックできますか?

私はそれについて読み始めました。ライセンス料がOpenVPNあることがわかりました。OpenVPNライセンス料は問題ではありませんが、有料オプションを試す前に無料のオプションがあるかどうかを知りたいです。また、OpenVPN上記の内容を実行できることを確認したいと思います。

私が読んだpptpことによれば、pptp128ビット暗号化キーのみがサポートされており、上記のすべてのことを行うことは不可能かもしれません。

答え1

私が知っている限り、すべての機能を固定するカスタム/商業製品がなければ、あなたが望むすべての機能を達成することはできません。

必要な基準を満たす方法を詳しく説明するときに念頭に置くべきいくつかのアイデアは次のとおりです。

一般的なVPNソリューションにはルーティングが追加されます。パスを追加するには、ユーザーにクライアントコンピュータの管理権限が必要です。特に、雇用主が提供するハードウェアを使用する場合、必ずしもそうではありません。実装に応じて、既存のVPNソリューションにはこのトピックの回避策があります。私が知る限り、OpenVPNはクライアントがインストールされたときにWindowsサービスを登録し、ユーザーが実際に動作しているクライアントからの要求に基づいてパスを追加します。 Tunnelblick(OpenVPNのOS Xクライアント)もいくつかの魔法を使用してルーティングを実行し、一部のポイントでは管理権限が必要です。したがって、OpenVPNは、この問題を解決するためにクライアントを設定するために最小限の努力を払う必要があります。

少なくともOpenVPNは「接続されたら」パスを追加できるため、ユーザーは実際にパスを直接追加できます。 OpenVPNサーバーがOpenVPNを介して接続できる一部のホストにパスをプッシュするとします。これにより、クライアントはこれらのホストにパスを追加します。ユーザーが他のホストに多くのパスを追加することを禁止するメカニズムはありません。したがって、これらのパスが実際に有効な場合は、承認されていないバックエンドにアクセスできます。これを防ぐには、サーバーのファイアウォールを強化し、許可されたホストからのトラフィック以外に何も許可しないでください。

提供するインフラストラクチャをホテルからサーバーに頻繁にアクセスする従業員が利用できる必要がある場合、VPNはまったく機能しない可能性があります。 VPN接続に必要なトラフィックを転送しないホテルはかなりあります。場合によっては、ポート80と443のみが許可されます。

OpenVPNに関する私の考えから抜け出すために、「信頼できる」デバイスでのみ接続を許可する必要があるのは、私が知っている限り不可能です。これはファイアウォール(通常CentOSではiptables)を介して行われます。必要なルールは、DROP信頼できないデバイスからのパケットに関するものです。残念ながら、iptables はその情報がパケットの一部ではないため、デバイスを信頼できることを確認できるようになりました。同様の方法でフィルタリングするソリューションがありますが、少なくとも互換性のあるネットワークでは可能です(このトピックに興味がある場合は、General DynamicsのPitBull Foundationにお問い合わせください)。

今、いくつかの必須基準がない場合でも、実際にシナリオを実装する方法について考えてみましょう。

まず、OpenSSHはVPNソリューションではありません。 VPNに似たトンネルを構築できますが、私が知っている限り、他のVPNソリューションはパフォーマンスと機能の面でOpenSSHアプローチを上回ります。

ところで、ユーザーは通常http/httpsサービスのみを使用すると言われました。 VPNなどの機能なしでSSHトンネルを介して簡単にアクセスできます。設定方法について詳しくは説明しませんが、OpenSSHを使用する一般的なアプローチを指摘します。

最初に理解できるのは、ポート80または443を使用するようにSSHデーモンを設定することです。これにより、ユーザーはホテルを含むほぼどこでもサーバーに接続できます。

セキュリティに関してsshd構成を使用すると、ユーザー、ホストなどに一致するルールを追加できます。これは、実際にファイアウォールでフィルタリングすることなく、OpenSSHサーバーの背後にある特定のホストにユーザートラフィックを制限できることを意味します。これらのルールは次のとおりです。

Match User JohnDoe
    AllowTcpForwarding yes
    PermitOpen internal.resource:80 other.internal:443

セキュリティ認証は必須です。 OpenSSHはPAMモジュールを利用してユーザーを認証できます。 LDAP、Radiusなどの認証など、さまざまな可能性があります。 2段階認証プロセスを簡単な方法で使用するきちんとした解決策は、PAMモジュールを含むGoogle Authenticatorを使用することです。複数のリソースで Google Authenticator を使用するように OpenSSH を設定する方法を示します。

実際にこのソリューションを使用する際の最も困難な部分は、クライアント側で起こることです。クライアントにはトンネリングをサポートする SSH クライアントが必要です。最も重要なのは、クライアントがクライアントを使用する方法と、設定されたトンネルに接続する方法を知る必要があることです。シェルで手動でトンネルを開いたが、通常のユーザーはトレーニングなしでこれらのタスクを実行できない可能性があります。一見すると、このクライアントは役に立ちます。自動(自動)SSHトンネルマネージャ

私が提案したソリューションをあなたの要件のリストと一致させるには、次の手順を実行します。

  1. すべての要求はSSHトンネルを通過します。 SSHサーバーの1つのポートはインターネットからアクセスできる必要があります。確認してください。
  2. この20人のユーザーを作成して許可すると、他の誰も接続できません。確認してください。
  3. 正しく設定すると、ユーザーはシェルを取得できません。トンネルの確立にシェルは必要ありません。確認してください。
  4. 2段階認証を使用することをお勧めしますが、各デバイスに鍵を持つ公開鍵認証を実行することもできます。ただし、これらのキーは他のデバイスに送信できます。したがって、追加の調査なしに確認は必要ありませんが、トラフィックがhttp / httpsに制限される可能性があります。
  5. 接続時にシェルをインポートするようにrootまたは指定されたユーザーを設定できます。確認してください。
  6. 不可能。
  7. 私のソリューションでは「VPN」ではありませんが、はい、アクセスはそのように行われます。確認してください。

関連情報