V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lovebirdegg
V2EX  ›  程序员

服务器安全应该考虑那些问题

  •  
  •   lovebirdegg ·
    lovebirdegg · 2012-08-30 16:28:44 +08:00 · 4746 次点击
    这是一个创建于 4258 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前给客户做了一个系统,web服务器是tomcat,数据库是oracle。
    系统是在内网使用的,所以没有考虑安全方面的问题。
    现在客户想把系统放到公网上,安全方面需要考虑那些内容?
    12 条回复    1970-01-01 08:00:00 +08:00
    kidult
        1
    kidult  
       2012-08-30 16:44:01 +08:00
    1. 操作系统升好级
    2. 只暴露需要暴露的端口,其它都封了(远程都封了)
    3. 能用liunx就不用windows
    4. 勤做备份
    cloudzhou
        2
    cloudzhou  
       2012-08-30 17:17:31 +08:00
    iptables 和 用户权限隔离
    infinte
        3
    infinte  
       2012-08-30 23:37:25 +08:00
    0. 用户权限
    1. 关掉没用的服务,只留必要的
    2. 软件及时更新
    3. 备份
    ihacku
        4
    ihacku  
       2012-08-31 01:28:27 +08:00
    之前写过一篇Tomcat安全加固的文章 http://wzit.net/?p=15
    lovebirdegg
        5
    lovebirdegg  
    OP
       2012-08-31 08:50:53 +08:00
    @kidult
    @cloudzhou
    @infinte
    @ihacku

    谢谢,回答。
    1.http→https
    2.在sever上建立一个vpn服务,只有登录vpn的用户才能访问

    这两种方式属于服务器安全范畴吗?
    Livid
        6
    Livid  
    MOD
       2012-08-31 13:28:03 +08:00
    @lovebirdegg 用 VPN 保护内部服务是很多大公司的常见做法。

    如果用这种方法的话,你甚至可以把服务器上除了 SSH / VPN 之外的端口都关了。让用户连上 VPN 之后再输入内网地址访问。
    enj0y
        7
    enj0y  
       2012-08-31 13:30:02 +08:00
    在防护好服务器的安全过后就要考虑XSS之类的变态攻击了。
    cloudzhou
        8
    cloudzhou  
       2012-08-31 14:21:30 +08:00
    @lovebirdegg 这个肯定是更好,ssh登陆使用证书登陆
    HowardMei
        9
    HowardMei  
       2012-08-31 15:15:41 +08:00   ❤️ 1
    做物理隔离最简单,VPN次之,上公网后安全没有一劳永逸,有的搞。
    以linux中debian/ubuntu为例,最基础的:

    1. 系统内核参数,改/etc/sysctl.conf 跳转参数。
    2. 端口只开放 ssh/http/https, 改ssh 端口到其它数字,并fail2ban,
    条件许可时ssh用ip白名单、纯证书访问。
    3. 服务器内各进程权限独立,特别是私有程序编译时,除了守护进程用root,其它全部降权。
    4. 用户权限与文件夹权限:关闭root登陆,管理员另起sudo用户名,web文件夹755 文件644
    各种配置文件640加服务器Deny Access Protection,多用户隔离。
    5. 如果允许用户上传文件,取消一切执行权限,最好放在另一台media服务器。
    6. Hot Links/Reverse Proxy偷流量好防,DDOS被盯上就要出血,穷人解法用varnish/load balancer稍微挡一下,总之得烧钱。

    网站程序自身还要具备各种Validation, SSL加密敏感交互,特殊字符escape,防SQL注入和XSS机制。
    Tomcat 和 Oracle具体防护又是另外话题了,感觉运维里面很大一部分成本被安全占了。
    HowardMei
        10
    HowardMei  
       2012-08-31 15:25:31 +08:00
    @lovebirdegg
    https以性能为代价,如果网站需要用户流量,大部分资源最好http;
    vpn只能保护合理区隔后的内部资源供员工访问,对要提供给其他用户的资源无能为力;
    纯内网资源最好和公网区分开,用不同的服务器,即便跨地区用VPN,也别图方便和Web服务器混在一块。
    lovebirdegg
        11
    lovebirdegg  
    OP
       2012-08-31 17:36:50 +08:00
    @Livid

    还有一个需求就是给系统开发个手机端,在iphone上能用l2tp/pptp/ipsec。
    如果是用vpn,那访问人数是不是受到ip数的限制。


    @HowardMei 到没有用户流量的需求,不过经你这么一说要做的工作还真不是一星半点,是个很大的坑...
    barrywey
        12
    barrywey  
       2012-09-01 11:48:59 +08:00   ❤️ 1
    1、修改iptable只开放80端口(或需要使用的其他端口)
    2、新建一个用户(eg:tweb),分配某块区间(eg:/usr/www/myweb)的读写权限,并禁止其登陆。tomcat就交给这个用户管理。这样,及时网站被破解了拿到了用户密码,也只能操作这个区间内的东西,不会影响你其他的分区和资源。
    3、不要拿tomcat做http服务器,装nginx或apache做这个事情。把图片、css、js等静态资源交给nginx处理,动态请求交给tomcat处理。
    4、用类似Fail2Ban这样的东西限制登录次数,保证不被穷举破解。
    5、其实,Linux的安全核心应该是:用户+iptable。二者配合,足够啦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   876 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:38 · PVG 05:38 · LAX 14:38 · JFK 17:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.