Apache Solr 是一个开源的搜索服务器,该平台默认允许匿名访问,攻击者可读取平台中各类敏感信息。之前考虑过增加账号密码访问,但是没有搞定,所以采用了曲线救国的方式,设置solr服务器只允许部分IP访问。

ubuntu下iptables的设置参见: https://www.tuicool.com/articles/QvQNZbu

iptables -I INPUT -p tcp --dport  -j DROP
iptables -I INPUT -s 114.55.**.*** -p tcp --dport -j ACCEPT
iptables -I INPUT -s 210.12.***.**/ -p tcp --dport -j ACCEPT
iptables -I FORWARD -p tcp --dport -j DROP
iptables -I FORWARD -s 114.55.**.*** -p tcp --dport -j ACCEPT
iptables -I FORWARD -s 210.12.***.**/ -p tcp --dport -j ACCEPT

第一条命令是插入命令,禁止所有ip访问12580端口

第二条命令是插入命令,允许线上服务器 114.55.**.*** 访问solr服务器

第三条命令是插入命令,允许公司ip段访问solr服务器

设置完成后,测试发现,公司ip和线上服务均不能访问solr服务。想起因为为了部署方便,我们的程序一直是通过域名访问的。我们把host:12580端口映射到了solr.project.company.cn。当访问solr.project.company.cn时,dns服务会把请求转发到solr服务器host:80端口,solr服务器上的nginx服务把这个请求/solr 下的请求转发到12580端口。

# /etc/nginx/conf.d/solr.conf

server {
server_name localhost;
location /solr/ {
proxy_pass http://127.0.0.1:12580;
}
}

因此要允许本机访问12580端口

iptables -I INPUT -s 127.0.0.1 -p tcp --dport  -j ACCEPT

再次测试,线上服务器和公司ip都可以访问solr服务了。不过既然是通过nginx转发请求,那么仍然限制不住其他ip不加端口访问。用手机测试了一下,果然这样。

在确保没有其他服务在使用转发服务后。同样对80端口限制了ip访问,那么问题解决了。

为了是iptables的配置生效,需要保存配置,并且能够重启后自动生效。使用

# 保存
/etc/rc.d/init.d/iptables save
# 重启服务
service iptables restart

结果发现分别报:

# 保存
no such file or directory: /etc/rc.d/init.d/iptables
# 重启
iptables: unrecognized service

因为ubuntu下配置不同。

参考http://blog.phiy.me/debian-iptables-persistent/ 安装iptables-persistent

apt-get install iptables-persistent

安装过程中需要点击两次yes。这会在/etc/iptables/下生产rules.v4 和rules.v6两个文件,分别保存ipv4和ipv6下的规则。

以后再次修改的话,保存

iptables-save > /etc/iptables/rules.v4

OK。


最新文章

  1. js jQuery取消添加超链接的方法小结
  2. lucene大索引文件分布式存储方案
  3. JSBinding / Testing
  4. UITextField 的重写
  5. android 图片进度条
  6. Studio for ASP.NET Wijmo:使用 C1Pager 对 DataList 控件分页
  7. Javascript操纵Cookie--转
  8. sort排序中的坑
  9. protel99与win7兼容问题的解决方案
  10. Django --- 单表的增删改查
  11. centos7中mail实测(qq邮箱)
  12. Leetcode中sort排序遇到的一些问题
  13. spring boot 使用第三方jar的方法
  14. vue v-show绑定
  15. Hash Table (youtube)
  16. 第一次项目上Linux服务器(八:——搭建Nginx图片服务器)
  17. Java条形码插件
  18. 让UpdatePanel支持文件上传(2):服务器端组件 .
  19. 017.1 stringBuffer
  20. ios开发遇到的问题

热门文章

  1. RabbitMQ入门教程(十一):消息属性Properties
  2. Python 进阶篇
  3. AQS之Condition
  4. crm---本项目的权限控制模式
  5. kali下纯文本与窗口环境切换
  6. Python 安装cx_Oracle模块折腾笔记
  7. xss非法字段过滤
  8. 被弃用的php函数以及用来替代的函数
  9. 生成树计数及应用 Matrix-Tree
  10. win7抓带tag标记报文