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服务了