QOTDサーバーなどの作り方


1

QOTD( "Quote of the Day")はポート17でデフォルトでサーバー上で開くことができるプロトコルです。ポート17では、QOTDを使用して見積もりを返すことができます。

実際、QOTDサーバーは大量のテキストを処理でき、「ピンポン」攻撃を受けにくいのであれば、データをbashで読み取り可能な形式で表示および送信する実用的な方法として使用できます。 ウィキペディア - QOTD

この攻撃は、qotdサーバーが別のコンピュータからの要求に応答を送信することで構成され、要求が多すぎるとサーバーがクラッシュします(単純なDoS攻撃)

これはQOTDサーバの例です(MacまたはLinuxマシンの端末でこれを実行します)

  nc shairosenfeld.com 17

1分あたりのリクエスト数を制限できるQOTDタイプのサーバーを作成する方法はありますか、または返信用のスパマーを禁止できる場合は(sshのdenyhostsのように)ありますか?私は運が悪いと思っていたので、誰もがLinuxの例を持っていますか。

回答:


5

QOTDアプリケーションを書くのは非常に簡単なようです。私はPythonプログラマーではありませんが、概念実証サーバーは次のようになります。

#!/usr/bin/python

from socket import *
myHost = ''
myPort = 17

s = socket(AF_INET, SOCK_STREAM)    # create a TCP socket
s.bind ( (myHost, myPort) )
s.listen (5)

while 1:
  connection, address = s.accept() 
  connection.send("echo Hello World\n")
  connection.close() 

(もちろん、これはrootとして実行する必要があります - ポートは1024より小さいので)

接続数を制限するためにIPTABLESを使用して制限を加えることができます 何かのようなもの:

/sbin/iptables  -A INPUT -p tcp --syn --dport 17 -m connlimit --connlimit-above 3 -j REJECT

(見る ここに iptablesの接続制限に関するその他のオプションについては


3

netcatとfortuneがインストールされていれば、コマンドラインQOTDサーバーを作成するのは簡単です。

# nc -lk -p 17 -e fortune

netcatのいくつかのバージョンでは-eが有効になっていないかもしれません。その場合はbusyboxバージョンを使います。

# busybox nc -lk -p 17 -e fortune
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.