前言

  最近一朋友让我帮忙搭建一台服务器,用做公司的服务器,但是该服务器需要满足一些安全要求,于是乎就有了下面的解决过程_

需求

  1. 期望普通用户和管理员都能ssh登陆服务器,但禁止scp或者其他方式下载文件,允许管理员上传文件;
  2. 本地操作时,普通用户usb口无效,但管理员有效
  3. 期望用ubuntu搭建(偏向ubuntu server)

方案1

  因为我也没接触过这些,所以只好尝试着解决。首先想到的是这样的需求应该是非常普遍的,因此市场上肯定有现成的解决方案,自己从0造轮子不是我的风格,因为任何轮子需要考虑的太多,经过市场检验的,绝对比我刚造出的好_。经过搜索,我发现行业里关于这个的专业术语叫 DLP (Data Loss Prevention),国内做的比较好的有 中软、北信源、鼎普、亿赛通、明朝万达。开源免费的也有,不知道使用麻不麻烦 比如,OpenDLP MyDLP,这些都是ubuntu支持的。最终我建议他直接选一家国内的方案,虽然花点钱,但毕竟是公司使用啊,安全性(真的吗?我自己不太信,哈哈)和容易程度都应该是较为出色的。但建议被拒绝了,理由是公司很小,不想花这钱,而且他的需求很简单,不用DLP那么复杂。哎,我只好接着找解决方案

方案2

  还是自己造轮子吧!哈哈。但我造之前是有考虑他的需求的,因为他的需求确实比较简单,需求1就是期望所有人能够正常访问服务器的资料,但是不希望访问的人能够拷走资料,针对这个的解决方法我打算用远程桌面和通过防火墙禁掉除远程桌面外的其他端口。首先,图形化操作对于用户来说更加简单,入门门槛低;其次,远程桌面就满足了防止用户拷贝,ssh登陆还能在终端里拷贝显示的内容呢,远程桌面的话,除非用户截屏;最后,禁掉端口也就防止了用户通过其他程序下载数据_ 需求2就是禁掉usb,但允许管理员通过usb更新服务器数据,这个的话,管理员默认创建的用户就不是sudoer,所以本身就不允许操作usb,因此也解决了。下面就开始搭建、验证(搭建过程还是遇到一些坎的)

搭建步骤

  1. 下载ubuntu16.04,用startup disk creator制作启动盘;
  2. 将u盘插入要搭建的服务器上,从u盘启动;
  3. 安装的时候选择lvm+加密方式(这是我额外赠送的安全防护,即使硬盘被偷了,别人也无法打开数据,当然,这样的弊端就是服务器每次启动都需要先输入磁盘解密密码);
  4. 安装远程桌面,在这步我花了不少时间,以前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的更多相关文章

  1. Ubuntu16.04搭建OpenVPN

    Ubuntu16.04搭建OpenVPN 2018年12月27日 15:50:59 VinQin 阅读数:21042   简介 如果在一个非信任网络下比如旅社或者咖啡店的WiFi网络下,想要通过你的智 ...

  2. Ubuntu16.04搭建LAMP开发环境

    Ubuntu16.04搭建LAMP开发环境 虚拟机上安装好Ubuntu16.04后,是一台空白的Ubuntu.我的目的是搭建LAMP环境,顺便搭一个Python Django环境. 基本设置 1.配置 ...

  3. Harbor 企业级私有仓库 Ubuntu16.04 搭建及使用

    一.Harbor简介 1.1.什么是Harbor 几个VMware中国的人搞了一个容器镜像仓库.Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 1.2.Harbor架 ...

  4. ubuntu16.04搭建ftp服务器

    因为习惯了vs进行开发,所以对于Linux的代码编辑开发都在vs里面进行,通常我们都是ssh远程登录到Linux,使用ftp或者sftp共享Linux目录里面的文件方便对文件的共享,这里介绍一下在ub ...

  5. 【.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 ...

  6. TestLink+Jenkins在Ubuntu16.04搭建集成测试环境

    序章 序1:TestLink和TestLink-API-Python-client 目前TestLink的最新版本是1.9.19 TestLink-API-Python-client支持的TestLi ...

  7. ubuntu16.04搭建vulhub环境

    简介 Vulhub官方中文教程https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md 环境:ubuntu16.04.5 python3 ...

  8. Ubuntu16.04搭建各种开发环境的IDE: QT5 , CodeBlocks ,eclipse-cdt, PyCharm

    搭建Ubuntu下C/C++以及Python的集成开发环境,采用双系统(Win7+Ubuntu)的Ubuntu16.04-LTS系统, 关于双系统的搭建可以参考下面博客(图文十分详细):https:/ ...

  9. ubuntu16.04搭建jdk1.8运行环境

    搭建环境:Ubuntu 16.04 ×64 JDK :jdk-8u171-linux-x64.tar.gz 首先下载linux对应的安装包下载地址:http://www.oracle.com/tech ...

随机推荐

  1. tp5 常见问题 模板文件 路由

    W:视图 Q:是MVC中的V,也就是在模块下面的view目录下的html文件,就是写的页面. W:模板 Q:视图在控制器的叫法,在fetch,display等方法中传入的模板参数   最后传到视图. ...

  2. 寻找完全数(C++)

    [问题描述] 输入一个大于 1 的正整数 n,请你将大于 1 和小于或等于 n 的所有完全数输出.所谓完全数就是因子(不算其本身)之和等于它本身的数.例如 1+2+4+7+14=28,所以 28 是完 ...

  3. [Node] Agenda 中文文档 定时任务调度系统[基础篇]

    Agenda简介 使用步骤概述 步骤详述 初始化 定义任务 参数说明: 配置任务 参数说明 设置监听 注意事项 Agenda简介 Agenda是一个定时任务管理模块,它将node中的定时任务存储在数据 ...

  4. MATLAB中矢量场图的绘制 (quiver/quiver3/dfield/pplane) Plot the vector field with MATLAB

    1.quiver函数 一般用于绘制二维矢量场图,函数调用方法如下: quiver(x,y,u,v) 该函数展示了点(x,y)对应的的矢量(u,v).其中,x的长度要求等于u.v的列数,y的长度要求等于 ...

  5. 简明Python3教程 1.介绍

    Python是少有的几种既强大又简单的编程语言.你将惊喜地发现通过使用Python即可轻松专注于解决问题而非和你所用的语言格式与结构. 下面是Python的官方介绍: Python is an eas ...

  6. java第七笔记

  7. Pandoc中的Markdown语法

    概述 Pandoc中支持扩展修订版本的Markdown语法 使用pandoc中支持的Markdown语法用 -f markdown 使用标准Markdown语法用 -f markdown_strict ...

  8. NET 的 ELK 监控方案

    NET 的 ELK 监控方案 https://www.jianshu.com/p/3c26695cfc38 背景就不多说了,谁家没有个几个十系统在跑啊.如何监控这几十个系统的运行状况,对于非运营人员来 ...

  9. Sublime Text 2创建可复用的代码片段

    对于前端工程师来讲,写一个html页面的基本结构是体力活,每次去拷贝一个也麻烦,sublime text 2 提供了一个很好的复用代码片段.下面介绍一下创建一个html5的代码片段的过程.在菜单上点击 ...

  10. CFS/FQ/PQ调度与WRR负载均衡

    动机 五一临近,四月也接近尾声,五一节乃小长假的最后一天.今天是最后一天工作日,竟然感冒了,半夜里翻来覆去无法安睡,加上窗外大飞机屋里小飞机(也就是蚊子)的骚扰,实在是必须起来做点有意义的事了!    ...