V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
stneng
V2EX  ›  云计算

一个关于服务器安全的问题

  •  
  •   stneng · 2016-10-11 16:01:17 +08:00 · 3515 次点击
    这是一个创建于 2999 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的一个服务器上本来只有我的一个网站。

    后来帮朋友挂了一个网站。

    问:如何保证我的网站的安全,防止他来更改我的页面什么的。

    备注: 不是不信任朋友,而是怕他的站被黑了。

    使用的软件: Apache php mysql

    第 1 条附言  ·  2016-10-11 17:14:19 +08:00
    再问一个问题
    我设置了 open_basedir 但好像仍然可以通过 system 语句只需命令。。。
    查看我网站的文件。
    @helloccav @pmpio
    30 条回复    2016-10-12 18:39:13 +08:00
    dennyzhang
        1
    dennyzhang  
       2016-10-11 16:09:57 +08:00   ❤️ 1
    给他开个 container?
    stneng
        2
    stneng  
    OP
       2016-10-11 16:11:04 +08:00
    @dennyzhang 他不用 ssh 权限什么的,我也懒的开。。。
    crab
        3
    crab  
       2016-10-11 16:11:12 +08:00   ❤️ 1
    创建个账号,权限只给你朋友的网站目录。
    dennyzhang
        4
    dennyzhang  
       2016-10-11 16:11:56 +08:00   ❤️ 1
    LAMP 还是比较成熟,稳定的。软件本身不太可能被黑。

    你一定需要给他 OS 的 root 权限吗?如果只是更新代码的话,可以让他开个 bitbucket 的 private repo 。然后,你定义一个 crontab 每隔十分钟去 git pull
    helloccav
        5
    helloccav  
       2016-10-11 16:13:05 +08:00   ❤️ 1
    最简单的方法用 open_basedir (不知有没有拼错)分隔网站就比较安全了
    stneng
        6
    stneng  
    OP
       2016-10-11 16:13:17 +08:00
    @crab 是开一个类似于 www-data 的账号吗?
    apache 可以开吗?
    q397064399
        7
    q397064399  
       2016-10-11 16:16:03 +08:00 via Android   ❤️ 1
    最好是容器 然后隔离数据 权限
    pmpio
        8
    pmpio  
       2016-10-11 16:17:05 +08:00   ❤️ 1
    系统层面,给他开个专用的 vsftpd ,限定到他的网站目录内;
    web 层面,在虚拟主机内配置 php 限定访问目录。
    stneng
        9
    stneng  
    OP
       2016-10-11 16:19:33 +08:00
    @helloccav
    @pmpio
    问一下 php 的限定访问目录是在 apache 中配吗?
    网上的教程有点乱,问一下,谢谢!
    pmpio
        10
    pmpio  
       2016-10-11 16:23:17 +08:00   ❤️ 1
    那要看你的 php 是用 apache mod 还是 fastcgi 了,前者应该是在 apache 虚拟主机标记下配置。
    stneng
        11
    stneng  
    OP
       2016-10-11 16:26:27 +08:00
    @pmpio 用的是 apache mod
    是在 VirtualHost 中还是 Directory 中,那个更彻底一点??
    stneng
        12
    stneng  
    OP
       2016-10-11 16:30:26 +08:00
    @pmpio
    顺便问一下,如何测试是否成功设置限制?
    gamexg
        13
    gamexg  
       2016-10-11 20:32:32 +08:00   ❤️ 1
    还是直接 docker 吧,虽然听说 docker 也能突破。
    open_basedir 之类的 php 级别的限制需要封各种函数,到时候对方出问题你还的给他改。
    单独的用户运行 php 也有权限查看很多文件。

    直接 docker 省事,直接给对方一个独立的环境, php 版本之类的都能让对方随意选择。
    jasontse
        14
    jasontse  
       2016-10-11 20:40:02 +08:00 via iPad   ❤️ 1
    以前用 Apache 的时候是 suPHP ,现在换了 nginx 直接在 php-fpm 里多启几个 pool 分属不同用户和端口。
    guyskk
        15
    guyskk  
       2016-10-11 23:12:49 +08:00 via Android   ❤️ 1
    docker+1
    Thoxvi
        16
    Thoxvi  
       2016-10-11 23:50:01 +08:00 via Android   ❤️ 1
    docker 大法好?
    billion
        17
    billion  
       2016-10-11 23:57:22 +08:00 via iPad   ❤️ 1
    @dennyzhang bitbucket 支持 Git ?
    billion
        18
    billion  
       2016-10-11 23:59:26 +08:00 via iPad   ❤️ 1
    @dennyzhang 抱歉之前没有用过 bitbucket,原来真的支持 Git
    pubby
        19
    pubby  
       2016-10-12 00:35:35 +08:00 via Android   ❤️ 1
    docker
    其他都是折腾了还会出问题
    msg7086
        20
    msg7086  
       2016-10-12 00:55:05 +08:00   ❤️ 1
    fpm 可以设置成运行在某一个账号权限下。
    就算被黑了也就是只能用这个账号的权限而已。
    msg7086
        21
    msg7086  
       2016-10-12 00:56:22 +08:00   ❤️ 1
    @pubby
    「其他都是折腾了还会出问题」

    亲你这是从根本上否定了 Linux 的安全性啊……
    另外你以为 docker 就不会被人抓漏洞破容器了么→_→
    pubby
        22
    pubby  
       2016-10-12 01:11:35 +08:00 via Android   ❤️ 1
    @msg7086 如果不上虚拟化,最大限度隔离还是用容器啊,其他不是折腾是什么?
    DuckJK
        23
    DuckJK  
       2016-10-12 08:56:07 +08:00   ❤️ 1
    装个 docker 往里面一丢就不用管了,直接下一个 lnmp ,多方便。
    annielong
        24
    annielong  
       2016-10-12 09:15:41 +08:00   ❤️ 1
    高端点用 docker ,想省事直接给个 ftp 账户,只更新 web ,
    ayiis
        25
    ayiis  
       2016-10-12 09:36:50 +08:00   ❤️ 1
    @msg7086 憋说了,在我的 linux 内核全版本通杀远程溢出 0day 下除了拔网线你别无选择
    ryd994
        26
    ryd994  
       2016-10-12 10:52:27 +08:00 via Android   ❤️ 1
    怕容器被爆就上 kvm 呗,其实性能损失也没多大
    tylerdurden
        27
    tylerdurden  
       2016-10-12 13:42:29 +08:00   ❤️ 1
    用 chroot 即可。
    stneng
        28
    stneng  
    OP
       2016-10-12 16:19:38 +08:00
    @tylerdurden chroot 好像不能让 apache 下的两个网站使用不同的 chroot 吧。

    @gamexg 问问要禁用哪些函数,他不会用别的函数的(他只要用 wp 而已)。
    tylerdurden
        29
    tylerdurden  
       2016-10-12 18:30:27 +08:00   ❤️ 1
    @stneng 全局的,可以结合 base_dir 来控制。
    stneng
        30
    stneng  
    OP
       2016-10-12 18:39:13 +08:00
    @tylerdurden 不是很懂,可以详细说说怎么配置吗?或者给个教程什么的。谢谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2836 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.