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

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

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

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

如果用这种方法的话,你甚至可以把服务器上除了 SSH / VPN 之外的端口都关了。让用户连上 VPN 之后再输入内网地址访问。
enj0y
2012-08-31 13:30:02 +08:00
在防护好服务器的安全过后就要考虑XSS之类的变态攻击了。
cloudzhou
2012-08-31 14:21:30 +08:00
@lovebirdegg 这个肯定是更好,ssh登陆使用证书登陆
HowardMei
2012-08-31 15:15:41 +08:00
做物理隔离最简单,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
2012-08-31 15:25:31 +08:00
@lovebirdegg
https以性能为代价,如果网站需要用户流量,大部分资源最好http;
vpn只能保护合理区隔后的内部资源供员工访问,对要提供给其他用户的资源无能为力;
纯内网资源最好和公网区分开,用不同的服务器,即便跨地区用VPN,也别图方便和Web服务器混在一块。
lovebirdegg
2012-08-31 17:36:50 +08:00
@Livid

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


@HowardMei 到没有用户流量的需求,不过经你这么一说要做的工作还真不是一星半点,是个很大的坑...
barrywey
2012-09-01 11:48:59 +08:00
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。二者配合,足够啦。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/46512

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX