QOTD(“每日报价”)是一种可以在服务器上默认通过端口 17 打开的协议。我在 Google 上搜索了好几次,但出于某种原因,几乎没有关于如何制作一个服务器的信息,当连接到端口 17 时,可以使用 QOTD 返回报价。
事实上,如果 QOTD 服务器可以处理大量文本并且不易受到“乒乓”攻击,那么它可以作为一种以 bash 可读形式显示和发送数据的实用方式。维基百科-QOTD
这种攻击包括 qotd 服务器向另一台计算机的请求发送回复,当请求过多时,服务器就会崩溃(简单的 DoS 攻击)
这是 QOTD 服务器的一个示例(在 Mac 或 Linux 机器上的终端中运行)
nc shairosenfeld.com 17
有没有办法制作一种 QOTD 类型的服务器,可以限制每分钟的请求数量,或者可以禁止回复垃圾邮件的人(就像 ssh 的拒绝主机一样)?有人有 Linux 示例吗,因为我找了很久都没有找到。
答案1
编写 QOTD 应用程序似乎非常简单。我不是 Python 程序员,但概念验证服务器应该是这样的:
/usr/bin/python 的 #! 从套接字导入* 我的主机 = '' 我的端口 = 17 s = socket(AF_INET, SOCK_STREAM) # 创建一个 TCP 套接字 s.bind((myHost,myPort)) s.listen (5) 而 1: 连接,地址 = s.accept() 连接.发送(“echo Hello World\n”) 连接.关闭()
(当然,需要以 root 身份运行 - 因为端口小于 1024)
然后,您可以使用 IPTABLES 进行一些限制以限制连接数 - 类似于:
/sbin/iptables -A INPUT -p tcp --syn --dport 17 -m connlimit --connlimit-above 3 -j REJECT
(看这里有关 iptables 连接限制的更多选项)
答案2
如果安装了 netcat 和 fortune,创建命令行 QOTD 服务器非常简单:
# nc -lk -p 17 -e fortune
某些版本的 netcat 可能没有启用 -e,在这种情况下请使用 busybox 版本,其功能如下:
# busybox nc -lk -p 17 -e fortune