QOTD 서버 또는 유사하게 만드는 방법


1

QOTD ( "Quote of the Day")는 기본적으로 포트 17에서 서버로 열 수있는 프로토콜입니다. 저는 인터넷 검색을하고 인터넷 검색을하고 있는데, 어떤 이유로 서버를 만드는 방법에 대한 정보가 거의 없습니다. 포트 17에서 QOTD를 사용하여 견적을 반환 할 수 있습니다.

사실, QOTD 서버는 대용량의 텍스트를 처리 할 수 ​​있고 "탁구"공격을 받기 쉽지 않은 경우 배쉬가 읽을 수있는 형식으로 데이터를 표시하고 보내는 실질적인 방법으로 사용될 수 있습니다. 위키 백과 - QOTD

이 공격은 다른 컴퓨터의 요청에 대한 응답을 보내는 qotd 서버로 구성되며 요청이 너무 많으면 서버가 중단됩니다 (간단한 DoS 공격)

다음은 QOTD 서버의 예입니다 (Mac 또는 Linux 컴퓨터의 터미널에서 실행)

  nc shairosenfeld.com 17

요청이 분당량으로 제한 될 수있는 일종의 QOTD 유형 서버를 만들 수있는 방법이 있습니까? 아니면 답장을위한 스패머가 (예 : denyhosts for ssh) 금지 될 수 있습니까? 아무도 리눅스 예제가 없기 때문에 운이없는 것으로 보았습니다.

답변:


5

QOTD 응용 프로그램을 작성하는 것은 매우 사소한 것으로 보입니다. 저는 파이썬 프로그래머가 아니지만 개념 증명 (proof-of-concept) 서버는 다음과 같습니다 :

#!/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() 

(포트가 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.