最近、私のLinuxコンピュータでいくつかの問題が発生し始めました。したがって、VNCサーバーがインストールされているLinux VPSシステムがあり、VNCビューアを使用して接続するだけです。
vnc too many security failures
最近、VNCサーバー/ビューアでなどのエラーが発生し始めました
Authentication failed
。
Linuxシステムでログを使用しssh
て確認したところ、次のログが表示されます。
Thu Jun 9 22:35:43 2016
Connections: accepted: 0.0.0.0::59748
SConnection: Client needs protocol version 3.3
Thu Jun 9 22:35:44 2016
SConnection: AuthFailureException: Authentication failure
Connections: closed: 0.0.0.0::59748 (Authentication failure)
Thu Jun 9 22:41:31 2016
Connections: accepted: 0.0.0.0::57806
SConnection: Client needs protocol version 3.3
SConnection: AuthFailureException: Authentication failure
Connections: closed: 0.0.0.0::57806 (Authentication failure)
その結果、VNCサーバーはこれらの接続をブラックリストに登録し、驚くべきことにこれによりコンピュータにアクセスできなくなりました。 (なぜブラックリストに上がったのか、なぜこれ以上ログインできないのかわかりません)
VNCサーバーを再起動し、VNCを使用して再度ログインできました。
これは攻撃になることができますか?これを防ぐ方法についてのアイデアはありますか?
答え1
VNCサーバーには問題はありません。
なぜこれが起こるのですか?
インターネットの反対側へようこそ! NAT とファイアウォールの背後にない側です。
vnc too many security failures
これは、誰かがあなたのVNCサーバーに何度もログインしようとしましたが失敗したことを意味します。 VNC サーバーには、複数の接続が認証に失敗した場合、一定期間接続をブロックするセキュリティ機能があります。 VNCサーバーを再起動すると(必要に応じて)タイムアウトがリセットされます。
Black Hat は IP とその IP のポートを継続的に検索しています。その後、開いているポートに接続し、プログラムバナーを確認し、コンピュータ認証を試みます。小規模なWebサイトを運営するサーバーは1日に何千ものランダム接続を取得でき、DNSを介して表示されるものは何も実行しませんが、パブリックIPを使用するサーバーはまだ数百の接続を取得できます。
そのため、誰か(IP範囲でランダムなスクリプト撮影を意味する誰か)が、サーバーのパブリックIPに開いているポートがあり、ログインしようとしていることがわかりました。
あなたは何をすべきですか
VNCパスワードは非常に脆弱です。インターネットを介して直接VNCサーバーを実行しないでください。ブラックリストのタイムアウト(数回の失敗後にログインを無効にする機能)は、パスワードに対するいくつかの無差別代入攻撃を防ぐことができますが、十分な措置ではありません。
代わりに、コマンドラインに127.0.0.1
以下を追加して-localhost
VNCサーバーを実行する必要があります。
vncserver -localhost ...
その後、ssh
トンネルを使用してコンピュータのポートをサーバーのポートに接続します。たとえば(VNCサーバーがデフォルトポートで実行されているとします)
ssh -L 5900:localhost:5900 me@<my_server>
その後、接続が有効になっている間にVNCクライアントを自分のコンピュータポートに接続できますssh
。5900
(これは* nixシステムで動作します。Microsoftシステムを使用している場合は引き続き使用できますputty
。ssh tunneling
)
絶対にしてはいけないこと
VNCサーバーはブラックリスト機能を無効にすることはできませんが、ブラックリストのパラメータを変更できます。たとえば、
vncserver -set BlacklistTimeout=0 -set BlacklistThreshold=10000 ...
vncconfig
(一部のディストリビューション、特にCentOSではこのコマンドになってはいけないと思いますvncserver
)