redis容許局域網訪問其實很簡單。網上一堆都不怎麼靠譜。
特此記錄一下。
可參考此篇html
假設A B 兩臺機器
在B(ip:192.168.1.99)機器上修改redis配置文件redis
bind 192.168.1.99
關閉防火牆的狀況下 局域網內的機器都能訪問到該redis了。能夠再設置一個密碼。mongodb
requirepass youpassword
再也不累述。數據庫
====================================安全
本身的博客中用到了MongoDB做爲數據存儲,服務器用的是阿里雲的,今天阿里雲忽然給我發信息說個人MongoDB數據庫沒有設置用戶名密碼。。我在本身的電腦上試着登錄了一下mongo client,直接連上了。。。。好吧,趕忙設置一下去。。bash
首先查看了一下MongoDB的文檔,發現mongodb在啓動服務後,在默認狀況下,是容許全部IP訪問的,並且沒有密碼。也就是說在任何電腦上,經過如下命令都是能夠直接鏈接個人MongoDB的:服務器
mongo 115.28.143.213
好吧,這個真的好危險,幸好DB中沒有什麼隱私的數據。。因而我趕忙在網上搜索了一下MongoDB限制訪問的方法,總結來講大概有如下三種方法:tcp
1、限制訪問IP和端口
MongoDB能夠限制只容許某一特定IP來訪問,只要在啓動時加一個參數bind_ip便可,或者在/etc/mongodb.conf中添加bind_ip配置,以下:ui
# 方法一
mongod --bind_ip 127.0.0.1,10.0.133.14阿里雲
# 方法二
在/etc/mongodb.conf文件中添加如下內容:
bind_ip = 127.0.0.1,10.0.133.14
這樣以後,MongoDB服務端只有127.0.0.1和10.0.133.14這兩個 IP 能夠訪問了。
MongoDB默認的監聽端口是27017,爲了安全起見,你能夠修改這個監聽端口,避免惡意的鏈接嘗試。修改方法一樣有兩種,以下:
MongoDB在默認的狀況下啓動時是沒有用戶名和密碼的驗證的,若是你須要使用密碼驗證功能,能夠經過下面兩種方式打開:
,而admin.system.users中保存了admin用戶的信息。
MongoDB中的用戶分爲 超級用戶(super user) 和普通的 數據庫用戶(database user) :超級用戶存放在admin數據庫中(在MongoDB的初始狀況下,admin數據庫默認是空的),這種用戶擁有最大權限,能夠對全部數據庫進行任意操做;數據庫用戶則是存放在另外的數據庫中,這種用戶只能訪問本身的數據庫。全部的用戶信息都存放在本身數據庫的 system.users 表中。在MongoDB中建立用戶很是簡單,以下:
以上的建立方式是 基於MongoDB 2.4.x版本 ,最新版的2.6.x中建立用戶的方法會有所不一樣,具體的方法見MongoDB官方文檔: add mongodb user
在MongoDB中,用戶和權限有如下特性:
1. 數據庫是由超級用戶來建立的,一個數據庫能夠包含多個用戶,一個用戶只能在一個數據庫下,不一樣數據庫中的用戶能夠同名;
2. 若是在 admin 數據庫中不存在用戶,即便 mongod 啓動時添加了 --auth參數,此時不進行任何認證仍是能夠作任何操做;
3. 在 admin 數據庫建立的用戶具備超級權限,能夠對 MongoDB 系統內的任何數據庫的數據對象進行操做;
4. 特定數據庫好比 test1 下的用戶 test_user1,不可以訪問其餘數據庫 test2,可是能夠訪問本數據庫下其餘用戶建立的數據;
5. 不一樣數據庫中同名的用戶不可以登陸其餘數據庫。好比數據庫 test1 和 test2 都有用戶 test_user,以 test_user 登陸 test1 後,不可以登陸到 test2 進行數據庫操做
這種方法和MongoDB自己沒有關係,而是借用Linux的iptables功能,限制容許訪問MongoDB端口的IP地址,具體的作法以下:
OK,這樣就只容許經過本地訪問MongoDB服務了