ubuntu16.04搭建个人简易DLP
前言
最近一朋友让我帮忙搭建一台服务器,用做公司的服务器,但是该服务器需要满足一些安全要求,于是乎就有了下面的解决过程_
需求
- 期望普通用户和管理员都能ssh登陆服务器,但禁止scp或者其他方式下载文件,允许管理员上传文件;
- 本地操作时,普通用户usb口无效,但管理员有效
- 期望用ubuntu搭建(偏向ubuntu server)
方案1
因为我也没接触过这些,所以只好尝试着解决。首先想到的是这样的需求应该是非常普遍的,因此市场上肯定有现成的解决方案,自己从0造轮子不是我的风格,因为任何轮子需要考虑的太多,经过市场检验的,绝对比我刚造出的好_。经过搜索,我发现行业里关于这个的专业术语叫 DLP (Data Loss Prevention),国内做的比较好的有 中软、北信源、鼎普、亿赛通、明朝万达。开源免费的也有,不知道使用麻不麻烦 比如,OpenDLP MyDLP,这些都是ubuntu支持的。最终我建议他直接选一家国内的方案,虽然花点钱,但毕竟是公司使用啊,安全性(真的吗?我自己不太信,哈哈)和容易程度都应该是较为出色的。但建议被拒绝了,理由是公司很小,不想花这钱,而且他的需求很简单,不用DLP那么复杂。哎,我只好接着找解决方案
方案2
还是自己造轮子吧!哈哈。但我造之前是有考虑他的需求的,因为他的需求确实比较简单,需求1就是期望所有人能够正常访问服务器的资料,但是不希望访问的人能够拷走资料,针对这个的解决方法我打算用远程桌面和通过防火墙禁掉除远程桌面外的其他端口。首先,图形化操作对于用户来说更加简单,入门门槛低;其次,远程桌面就满足了防止用户拷贝,ssh登陆还能在终端里拷贝显示的内容呢,远程桌面的话,除非用户截屏;最后,禁掉端口也就防止了用户通过其他程序下载数据_ 需求2就是禁掉usb,但允许管理员通过usb更新服务器数据,这个的话,管理员默认创建的用户就不是sudoer,所以本身就不允许操作usb,因此也解决了。下面就开始搭建、验证(搭建过程还是遇到一些坎的)
搭建步骤
- 下载ubuntu16.04,用startup disk creator制作启动盘;
- 将u盘插入要搭建的服务器上,从u盘启动;
- 安装的时候选择lvm+加密方式(这是我额外赠送的安全防护,即使硬盘被偷了,别人也无法打开数据,当然,这样的弊端就是服务器每次启动都需要先输入磁盘解密密码);
- 安装远程桌面,在这步我花了不少时间,以前ubuntu14和15的时候用过远程桌面,原以为很快就搞定,结果发现装完后,客户端登陆就是个灰色界面,没有任何可操作的地方。后来在网上找到了解决方法(默认的unity支持不够好,之前我就是在server上装的unity),步骤如下:
#安装远程桌面服务端
sudo apt-get install xrdp
#更新源
sudo apt-get update
#安装mate桌面
sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon
#将远程桌面的默认桌面设置为mate
sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n mate-session \n' /etc/xrdp/startwm.sh
这样之后,客户端就可以登陆了。windows下直接在运行(win+r调出)中输入mstsc,然后输入服务器ip就可以了;
5. 屏蔽其他端口,之前也没怎么用户防火墙操作,网上查看了下iptables的基本使用及结合网上的解决方案,最后还真实现了,将下面的内容放入rc.local,这样系统起来就会执行,执行后,网络除了远程端口外,就全封掉了,不管进入还是出去
iptables -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 3389 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 3389 -m state --state NEW -j ACCEPT
经过以上步骤及测试,满足需求
完!
2016年8月
ubuntu16.04搭建个人简易DLP的更多相关文章
- Ubuntu16.04搭建OpenVPN
Ubuntu16.04搭建OpenVPN 2018年12月27日 15:50:59 VinQin 阅读数:21042 简介 如果在一个非信任网络下比如旅社或者咖啡店的WiFi网络下,想要通过你的智 ...
- Ubuntu16.04搭建LAMP开发环境
Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...
- Harbor 企业级私有仓库 Ubuntu16.04 搭建及使用
一.Harbor简介 1.1.什么是Harbor 几个VMware中国的人搞了一个容器镜像仓库.Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 1.2.Harbor架 ...
- ubuntu16.04搭建ftp服务器
因为习惯了vs进行开发,所以对于Linux的代码编辑开发都在vs里面进行,通常我们都是ssh远程登录到Linux,使用ftp或者sftp共享Linux目录里面的文件方便对文件的共享,这里介绍一下在ub ...
- 【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境
查看linux内核版本 uname -a 打印结果 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed ...
- TestLink+Jenkins在Ubuntu16.04搭建集成测试环境
序章 序1:TestLink和TestLink-API-Python-client 目前TestLink的最新版本是1.9.19 TestLink-API-Python-client支持的TestLi ...
- ubuntu16.04搭建vulhub环境
简介 Vulhub官方中文教程https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md 环境:ubuntu16.04.5 python3 ...
- Ubuntu16.04搭建各种开发环境的IDE: QT5 , CodeBlocks ,eclipse-cdt, PyCharm
搭建Ubuntu下C/C++以及Python的集成开发环境,采用双系统(Win7+Ubuntu)的Ubuntu16.04-LTS系统, 关于双系统的搭建可以参考下面博客(图文十分详细):https:/ ...
- ubuntu16.04搭建jdk1.8运行环境
搭建环境:Ubuntu 16.04 ×64 JDK :jdk-8u171-linux-x64.tar.gz 首先下载linux对应的安装包下载地址:http://www.oracle.com/tech ...
随机推荐
- Python 3基础教程23-多维列表
这里简单举例一个多维列表,多维看起来都很晕. # 多维列表 x = [ [5,6],[6,7],[7,2] ,[2,5] ,[4,9]] print(x) # 根据索引引用列表元素,例如打印[6,7] ...
- iOS-技术细节整理
遇到未使用类,可以看看xcode->help->developer documentation 下面做一下简单的技术细节整理 Auto Layout使用Auto Layout来灵活改变UI ...
- Liz问题账户分析系统
1.理解liz工作情况,了解liz的问题,具有同理心.设想软件应该达成的目标,解决哪些业务. 第一步:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的 ...
- 软工实践 - 第二十三次作业 Beta 冲刺(1/7)
队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10093337.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过 ...
- 阿里云服务器 linux下载 jdk
直接从本地下载包上传比较慢.直接在服务器上下载安装包: 1.进入orcle官网; 2.选择需要下载的版本,下载需要同意orcle协议, 3.点击下载,获取到下载请求的cookie, 复制所有cooki ...
- Spring MVC前台POST/GET方式传参数的方法
假设前台通过submit传值,代码如下: <form action="testPost.do" method="post"> 页码:<inpu ...
- el-checkbox根据是否被选中执行不同的操作
直接给el-checkbox绑定点击事件是没有效果的,因为它会被解析成其他形式的html,el-checkbox只是一个类名,因此,使用ts和jquery动态绑定事件: mounted() { $(& ...
- javascript string对象方法replace
最简单的replace用法是: var str = 'aaaaa9876b0000'; str.replace(/a/g,'A'); 有时候我们希望只是在匹配的位置添加特定的字符: var str = ...
- 【python】python获取当前日期前后N天或N月的日期
# -*- coding: utf- -*- '''获取当前日期前后N天或N月的日期''' from time import strftime, localtime from datetime imp ...
- BZOJ4476 JSOI2015送礼物(分数规划+单调队列)
看到这个式子当然先二分答案.得max-min-(j-i+k)ans>=0. 显然max-min相同的情况下所选区间长度越短越好,所以max和min都应该取在边界.那么实际上我们根本不用管端点是否 ...