我用tcpdump扫描攻击我手机服务器的用户代理。
我得到了有趣的结果。我把它们添加到保护我很多服务器的列表中。
这个很好用。问题是我得到的是空白或空的用户代理。我该怎么阻止呢?
这是我的tcpdump扫描和空白用户代理的结果。
tcpdump -i eth0 port sip -l -A | egrep -i 'User-Agent'
Fri May 18 09:37:50 EDT 2018
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
User-Agent: friendly-scanner
User-Agent: UK Dialer
User-Agent: UK Dialer
User-Agent: friendly-scanner
User-Agent: friendly-scanner
User-Agent: friendly-scanner
User-Agent: friendly-scanner
User-Agent: friendly-scanner
User-Agent: friendly-scanner
User-Agent: Asterisk PBX 1.6.5
User-Agent: friendly-scanner
User-Agent: friendly-scanner
User-Agent: friendly-scanner
User-Agent:
User-Agent:
User-Agent:
User-Agent:
User-Agent: friendly-scanner
User-Agent: friendly-scanner这里是我用来阻止
iptables INPUT -p udp -m udp --dport 5060 -m string --string "friendly-scanner" --algo bm --to 65535 -j DROP发布于 2018-05-18 23:32:29
您可以使用更长的匹配,包括记录分隔符,以及对不可打印的使用十六进制。这样,你的规则就可以变成:
iptables -A INPUT -p udp -m udp --dport 5060 -m string --icase --hex-string '|a|User-Agent: |0d0a|' --algo bm --to 65535 -j DROP它将返回(使用iptables-save)作为:
iptables -A INPUT -p udp -m udp --dport 5060 -m string --icase --hex-string '|0a557365722d4167656e743a200d0a|' --algo bm --to 65535 -j DROP现在您应该知道SIP报头字段格式中的空格语法了。由于没有regex匹配,所以几乎有无限的可能性(即使只有一种是被鼓励的),所以您应该定期使用Wireshark而不是tcpdump检查您的“垃圾邮件”,以获得确切的内容。这是来自Wireshark的样本捕获的示例SIP调用捕获。
标头也是不区分大小写的,但是对于经过测试的,--icase确实可以处理--hex-string的内容,因此它也会匹配USER-AGENT:。
https://serverfault.com/questions/912824
复制相似问题