前言

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

需求

  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. 第十九章 Python os模块,pathlib 判断文件是目录还是文件

    OS模块 os.path.abspath() :返回path规范化的绝对路径 import sys import os BASE_DIR = os.path.dirname(os.path.dirna ...

  2. f3d源码解读

    Fomo3D 源码解析, 部署指南 https://www.meiwen.com.cn/subject/efntbftx.html 原文链接 Fomo3D 合约源码分析 准备工作 环境准备 (用于调试 ...

  3. 腾讯云,搭建 FTP 文件服务

    腾讯云,搭建 FTP 文件服务 腾讯云,搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 yum 安装 vsftpd: yum insta ...

  4. 第一课:SVN代码管理

    SVN:是一个跨平台的开源的版本控制系统.svn版本管理工具管理着随时间改变的各种数据.这些数据放置在一个中央资料档案库中.svn会备份并记录每个文件每次的修改更新变动.svn的工作流程:1.在中央库 ...

  5. 牛客网/LeetCode/七月在线/HelloWorld114

    除了知乎,还有这些网站与offer/内推/秋招/春招相关. 其中HelloWorld114更是囊括许多IT知识. 当然,我们可以拓宽思考的维度,既然课堂上的老师讲不好,我们可以自己找资源啊= => ...

  6. PhpStorm 配置IDE

    IDE => Xdebug => Apache(XAMPP) => Firefox + easist Xdebug 1>XAMPP停止apache服务;2>在安装目录下找 ...

  7. 使用SetOperations(无序)操作redis

    方法 c参数 s说明 Long add(K key, V... values); K key:集合key V... values:key对应的值 向集合中添加一个或多一个元素 Long remove( ...

  8. homework for Java

    public class Dog { private String name; private String color; private int age; public Dog(String nam ...

  9. 微信小程序开发中怎么设置转发(分享)的信息

    如果什么都不设置,转发时默认名称是小程序的名称,转发的图片显示的是当前页面的截图,如图一 如何在自定义转发信息呢? 在进行转发的页面中: Page({ onShareAppMessage: funct ...

  10. How to Create a Perl Based Custom Monitor on NetScaler

    How to Create a Perl Based Custom Monitor on NetScaler https://support.citrix.com/article/CTX227727 ...