|
1.1. tomcat部署1
参考文档:solr安全机制
1.1.1. 加上安全机制的必要性
在前面有提到, Solr 本身是不加安全机制的, 所有的查詢、admin、update 這些指令都可以經由 url 打進去 , 所以如果不加以控管直接讓Solr 上網, 相信搜尋引擎裡面的Index 很快就會被人路過刪除了.
所以如果你是為了將來要做Production用途的話, 除了 Solr Server架設外, 在外圍佈署安全架構是必要的,讓Solr 服務裸奔因而導致資料被全刪,那就慘了.
刪除指令如下:
http://localhost:8080/solr/update?stream.body=*:*
http://localhost:8080/solr/update?stream.body=
例如這樣,就一切結束了.

1.1.2. 分类
一般来说,简单的安全机制只要对URL过滤即可,例如以下的药禁用:
- 后台: /admin/*
- 更新: /update/*
正常的查询指令则要放行:
- 查询: /query/*
实现的方式有很多, 例如:
1. 在 web server 这一层动手 , 假如遇到上面两组URL 敏感一点的,就给他 HTTP authentication.
2. 也有硬體的解決方式, 以前看過同事用 Cisco CSS 這種 Switch 來做過濾.
3. 用動態語言 php , jsp 等等寫proxy , 這種方式可以做更深入的過濾 ,例如檢查參數合法性 (假如用戶大量的Query 前10000個結果,來做攻擊 )
1.1.3. Tomcat 的 HTTP authentication 設定
先上圖, 這是先前說的Solr 索引全刪的指令。我們只要針對 /update/* & /admin/* 做個簡單的http認證,就能達到保護的目的.
過濾 /update/* 指令

過濾後台 /admin/*

首先到tomcat安装目录下的\webapps\solr\WEB-INF\,找到web.xml并编辑它。
在 与 之间插入以下的code
BASIC
admin
Admin
/update/*
admin
Admin
/admin/*
admin
Admin
/admin.htm
admin
重新启动tomcat后即可。
至于这些“admin”角色的成员有哪些人?修改tomcat目录下的\config\tomcat-users.xml的...这一段:
意思是:加一个属于admin角色的使用者,账号密码为tomcat和tomcat1234.
1.1.4. 结语
目前學到了如何安裝Solr Server,以及用簡單的HTTP認證方式來過濾高危險的指令. 這種雖然有點難看,但起碼還算是可以勉強上線的程度.
1.1. tomcat部署2
SolrJ没有提供访问控制接口,也就是说只要知道solr服务器信息,任何人都可以连接solr服务器来进行索引增加、修改、删除操作;
根据Apache提供的文档说明,可以用一下三种方式进行控制;
1) 修改路径
webapp=/solr path=/select 将path改成其它
2) 限制客户端IP
通过限制client端的IP来进行控制,也是基于Tomcat控制
修改conf/server.xml 在节点中添加以下代码
allow运行访问的主机,多个IP时可以用 , 分开
3) 使用Http认证
|
|
|