socat TCP-LISTEN:22,fork TCP:192.168.0.15:5900
socat
ポート22はリモートIPアドレス8.8.8.8によってのみ信頼されており、他のIPアドレスからの接続を許可してはいけないことをどうやって知ることができますか?これはLinuxサーバーにあります。
答え1
range
socat受信アドレスにオプションを追加できます。
socat TCP-LISTEN:22,fork,range=8.8.8.8/32 TCP:192.168.0.15:5900
あるいは、tcpwrap=vnc_forward
オプションを追加し、そのためのグローバルルールを定義することもできます。vnc_forward
次のサービスホストアクセス(5)。
socat
これにより、接続が到着するのを防ぎませんが、socat
8.8.8.8で接続されていない場合は、その接続を無視して警告を表示します。
答え2
socatがlocalhostでのみ受け取るようにするのと同じことが私にとって効果的でした。
socat TCP-LISTEN:22,fork,bind=127.0.0.1 TCP:192.168.0.15:5900
だからこれを試してみることができます。
socat TCP-LISTEN:22,fork,bind=8.8.8.8 TCP:192.168.0.15:5900
答え3
ほとんどの人はこれにファイアウォールを使用しています。ポート22のトラフィック制限を確認してくださいiptables
。
iptables -I INPUT -p tcp '!' -s 8.8.8.8 --dport 22 -j REJECT
または、ファイアウォールがすでに制限されている場合は、1つのアドレスのみを許可します。
iptables -A INPUT -p tcp -s 8.8.8.8 --dport 22 -j ACCEPT
これはiptablesファイアウォールの完全な構成ではないため、上記の構成を使用する前に、まず正しい構成を設定する必要があります。
答え4
主な目標がセキュリティであり、クライアントシステムを制御する場合は、SSLトンネルを介してsocatサーバーに接続する方が安全なオプションなので、サーバーが接続を受け入れる前にクライアント証明書を確認できます。
私は最近、共同クライアント/サーバー設定を保護するためにこれを行いました。
このチュートリアルでは、設定を明確に説明します。
http://www.dest-unreach.org/socat/doc/socat-openssltunnel.html
ガイドラインとは異なる点の1つは、クライアントSSLライブラリがログジャムパッチのためにデフォルトでサーバーキーを拒否する必要があることです。
すべてが機能するようにするには、サーバーをPEMに追加します。
openssl dhparam 2048 >> "$FILENAME".pem
このキーベースの交換メカニズムは、IPベースの認証を介してホストを認証するときにより権威があります。