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。


solr的访问权限管理及ubuntu下iptables的设置的更多相关文章

  1. 基于角色访问控制RBAC权限模型的动态资源访问权限管理实现

    RBAC权限模型(Role-Based Access Control) 前面主要介绍了元数据管理和业务数据的处理,通常一个系统都会有多个用户,不同用户具有不同的权限,本文主要介绍基于RBAC动态权限管 ...

  2. ODOO权限管理,在两个方面设置权限

    转载参考https://zhuanlan.zhihu.com/p/29130388 在odoo中新建两个用户user1,user2 新建用户 建完了用户,记得编辑用户,设置密码. 然后以user1用户 ...

  3. RedHat Linux下iptables防火墙设置

    一般情况下iptables已经包含在Linux发行版中.运行 # iptables --version 来查看系统是否安装iptables 启动iptables:# service iptables ...

  4. linux下iptables防火墙设置

    各位linux的爱好者或者工作跟linux相关的程序员,我们在工作中经常遇到应用服务器端口已经启动, 在网络正常的情况下,访问不到应用程序,这个跟防火墙设置有关 操作步骤 1.检查有没有启动防火墙 s ...

  5. Ubuntu下Iptables的简单运用,开放/关闭端口,禁止/允许IP或IP段访问...

    首先添加规则有两个参数:-A和-I,其中-A是添加到规则的末尾:-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部,由于匹配规则是从上往下,依次查找的,可能出现配置的规则冲突导致后续的规则不 ...

  6. vue-router的访问权限管理

    路由守卫(路由钩子.拦截器) vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的. 可以不登录直接进入系统 ...

  7. 【转】ubuntu下安装及设置FTP服务器!!

    原文网址:http://hujizhou.blog.51cto.com/514907/1290915 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律 ...

  8. ubuntu下网络IP设置相关命令

    一.使用命令设置ubuntu的ip地址 1.修改配置文件blacklist.conf禁用IPV6: sudo vi /etc/modprobe.d/blacklist.conf 2.在文档最后添加 b ...

  9. centos和ubuntu下使用cron设置定时任务

    1.启动cron工具[ps:使用root权限] centos启动cron两种方式 a) /etc/init.d/crond start b) service crond start ubuntu启动c ...

随机推荐

  1. 剑指offer-把数组排成最小的数-数组-python

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路1:使用 ...

  2. tomcat部署项目时 报错Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules

    Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules 解决方法: 找到文件 .set ...

  3. String转int,int转String

    String转int 1) int i = Integer.parseInt([String]);  int i = Integer.parseInt([String],[int radix]); 2 ...

  4. vue - helloVue

    开始学习vue了 1.数据绑定:{{data}} 2.el属性(挂载对象): el:标签任意(例如:#app,.app,app) 3.data:{} :存放数据. <!DOCTYPE html& ...

  5. 提取数据xpath,re,css

    XPATH (1)/ 逐层提取 (2)text() 提取标签下面的文本 (3)//标签名 提取所有的标签 (4)//标签名[num>=1] 提取相同标签名的兄弟节点. <tr class= ...

  6. 如何在 Visual C# 中执行基本的文件 I/O

    演示文件 I/O 操作 本文中的示例讲述基本的文件 I/O 操作.“分步示例”部分说明如何创建一个演示下列六种文件 I/O 操作的示例程序: 注意:如果要直接使用下列示例代码,请注意下列事项: 必须包 ...

  7. IO模型对比:同步、异步、阻塞、非阻塞

    最近工作接触到了网络服务同步和异步,所以学习了下<UNIX网络编程>,在此作下总结. 一.I/O模型 输入/输出(I/O)是在主存和外部设备(如磁盘驱动器.终端和网络)之间拷贝数据的过程. ...

  8. 清北学堂提高组突破营游记day4

    今天主攻图论. 对于这道题,30分做法是暴力搜索全部来判断是否有异样. 对于满分做法,利用带权并查集.? 又带我们串了一边LCA 安利个人LCA博客. spfa代码.原理:循环队列. 然后是floyd ...

  9. mybatis javabean字段与数据库字段的映射

    结论:未作映射的字段没有值,但是数据库中实际是有值的,说明如果带下划线的字段未作映射,返回值是不会有值的,只有映射了的字段以及不带下划线的字段(默认映射)才有返回值 1.bean属性 public c ...

  10. flask+gevent的异步框架

    一:flask本身的框架时什么? 基于Wsgi的Web应用框架 二:为什么要实现异步架构? 增加并发处理能力 三:实现异步架构 from gevent import monkey from geven ...