如何避免python对外提供的服务被扫描
网络情况先说一下:
路由器上接电信网络,下面连着我们部门的5台机器,和另外一个服务器。
路由器通过端口转发将80端口转发到服务器,将8080端口转发到我自己的机器。
然后我自己的机器通过python对外提供了一个服务(其实只是希望内部人员测试访问的),可是最近发现好像被人扫描了,这是python服务的日志截图:
除了绿色矩形框内这个请求是我自己的,其他都不是我发送的,感觉就是有某种扫描器之类的东西在不断尝试想把这个机器当作代理。
这是个什么情况? 怎么避免?
另外有个疑问,我看到这些扫描日志里面大部分状态码是400,但是有一部分是200,我就自己用一个python脚本试了试:
import httplib
conn = httplib.HTTPConnection("192.168.8.12:8080")
conn.request('get', 'http://www.baidu.com')
print conn.getresponse().read()
conn.close()
这个时候日志显示状态码400,但是改成下面的语句:
conn.request('get', 'http://www.baidu.com/')
状态码就是200.
这是什么情况?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不用 8080 端口就可以了。这些请求都是 HTTP 代理扫描器留下的。8080 是一个著名的 HTTP 代理端口号。
后边那个,取决于你使用的 Web 框架。比如我用的 Tornado,遇到这样的扫描就会返回 404。
让服务只监听
127.0.0.1
,然后需要测试的通过ssh
代理访问即可。我就这么维护我的服务器的,tomcat只监听127.0.0.1的ip,外部应用通过apache反向代理,manager就通过ssh代理上去访问
只希望内部访问的话何必在路由器上开端口呢,直接固定自己机器的IP,然后内网IP访问就行了。路由器稍微高级点的话还可以搞个内部用的域名