如何保证 Linux 服务器的安全
如何保证 Linux 服务器的安全
Jones。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。
【感谢 @localtest 的热心翻译。如果其他朋友也有不错的原创或译文,可以投递到伯乐在线。】
很少见有人马上为一台新安装的服务器做安全措施,然而我们生活所在的这个社会使得这件事情是必要的。不过为什么仍旧这么多人把它拖在最后?我也做过相同的事,这通常可以归结为我们想要马上去折腾那些有趣的东西。希望这篇文章将向大家展示,确保服务器安全没有你想得那样难。在攻击开始后,俯瞰你的“堡垒”,也相当享受。
这篇文章为 Ubuntu 12.04.2 LTS 而写,你也可以在任何其他 Linux 分发版上做相同的事情。
我从哪儿开始?
如果服务器已经有了一个公有IP,你会希望立即锁定 root 访问。事实上,你得锁定整个ssh访问,并确保只有你可以访问。增加一个新用户,把它加入admin组(在/etc/sudoers预配置以拥有sudo访问权限)。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
$sudoAdding'admin'Done.$sudoAddingAddingAdding' Creating/home/spenserj'Copying/etc/skel'EnterRetypepasswd:ChangingforEnterfor Full Room Work Home OtherIs/n]$sudo |
你也将希望在你电脑上创建一个私有key,并且在服务器上禁用讨厌的密码验证。
|
1
2
|
$mkdirssh$echo ssh/authorized_keys |
/etc/ssh/sshd_config
|
1
2
3
4
|
PermitRootLoginPermitEmptyPasswordsPasswordAuthenticationAllowUsers |
重新加载SSH,使用修改生效,之后尝试在一个新会话中登陆来确保所有事情正常工作。如果你不能登陆,你将仍然拥有你的原始会话来做修改。
|
1
2
3
|
$sudosshssh/waitingssh/running, |
更新服务器
既然你是访问服务器的唯一用户,你就不用担心黑客鬼鬼祟祟进入,再次正常呼吸。当有一些针对你服务器的更新时,正是修补的机会,所以动手吧,就现在。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
$...HitHitHitHitHitHitFetchedReading$ReadingBuildingReadingThe linux-headers-generic-lts-quantalThe accountsservice73NeedAfterDo...SettingSettingSettingSettingSettingSettingSettingSettingSetting... |
安装防火墙
安装现在正最流行的防火墙软件?好,行动吧。那就配置一个防火墙。之后你总是可以增加另一个异常,几分钟额外的工作并不会折腾死你。Iptables在Ubuntu里预装了,所以去设置一些规则吧。
|
1
|
$sudo |
/etc/iptables/rules
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
*filter:INPUT:FORWARD:OUTPUT#-I-I#-A-A##-A#-A#-A#-A#-A#-A-ACOMMIT |
通过 iptables-apply 命令为规则集生效。如果你丢失连接,修补你的规则,在继续之前再试一下
|
1
2
3
4
|
$sudo/etc/iptables/rulesApplyingdone.Can/N)...thendone.time. |
创建文件 /etc/network/if-pre-up.d/iptables,然后写入下面内容。当你启动服务器的时候,将自动载入你的iptables规则。
/etc/network/if-pre-up.d/iptables
|
1
2
|
#!/bin/shiptables-restore/etc/iptables/rules |
现在给它执行权限,执行文件,以确保它正常载入
|
1
2
|
$sudo /etc/network/if-pre-up.d/iptables$sudo.d/iptables |
用 Fail2ban 处理潜在黑客
当谈到安全的时,Fail2ban 是我最喜欢的工具之一,它将监控你的日志文件,并且可以临时禁止那些正在滥用你资源,或者正在强制肆虐你的SSH连接,或者正在dos攻击你web服务器的用户。
Install Fail2ban
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$sudoinstall[sudo]forReadingBuildingReadingThe gaminSuggested mailxThe fail2ban0NeedAfterDocontinue/n]?... |
虽然 Fail2ban 安装一个默认配置(/etc/fail2ban/jail.conf),但我们希望在 /etc/fail2ban/jail.local 写配置,所以把它拷贝到那儿。
|
1
|
sudo .{conf,local} |
配置
把 ignoreip 行修改为你的ip,并且可以设置禁止恶意用户的时间量(默认是10分钟)。你也将希望设置一个destemail,这里我通常输入我自已的email地址,再在后面加上 ,fail2ban@blocklist.de。BlockList.de 是一个跟踪并且自动报告黑客IP的系统。
/etc/fail2ban/jail.local
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[DEFAULT]#ignoreip/8bantime maxretry#### backend###destemail |
这有一些其他的你想检查的配置,尽管缺省配置已经相当不错了,所以,快速浏览这些,直到你读到Actions章节。
Actions
Actions 允许你对恶意行为作出反应,然而当我们想要它禁止和发邮件的时候,默认是禁用了 iptables。值得感谢的是,有一个预配置文件 action_wml,它恰恰是做这个的。
/etc/fail2ban/jail.local
|
1
2
3
4
|
###action |
Jails 监控
为了让Fail2ban工作,需要了解要监控哪些东西。这些已在Jails部分的配置文件,并且这有一些预载入而未启用的例子。既然到目前为止,你仅仅在服务器上启用了SSH访问,那我们就只启用SSH和SSH-DDos 监控,然而你还是会想给安装在这台服务器上的公共访问服务增加新的监控。
/etc/fail2ban/jail.local
|
1
2
3
4
5
6
7
8
9
10
11
12
|
[ssh]enabled port filter logpath maxretry[ssh-ddos]enabled port filter logpath maxretry |
让变化生效
既然我们已经配置了Fail2ban,你将希望重新载入它,并且确保向iptables增加了合适的规则。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$sudo * ...done.$sudoChaintarget source fail2ban-ssh-ddos sshfail2ban-ssh ssh...Chainsshtarget source RETURN Chainssh-ddostarget source RETURN |
在任何时间,你都可以使用sudo iptables -L 来列出你的规则,随后列出所有当前禁止的 IP。此时,Fail2ban正在处理两个恶意的用户。
Banned IPs
|
1
2
|
DROP DROP |
保持最新更新
你可能现在拥有一个已经锁定并且准备投入使用的服务器,然而这并不是你安全之旅的终点。保持最新更新(并且总是首先在非产品环境下测试),总是关闭你不需要的端口,定期检查你的日志,并且由内而外了解你的服务器。
HackerNews 上的讨论
我的这篇文章,在 HackerNews 上有一些很好的评论,如果你对不同观点和更好的安全性感兴趣的话,我建议你去看看。这篇文章目的是作为服务器安全的新手指南,在这篇文章结束的时候,并不意味着你的服务器是无懈可击的。用本文来快速锁定一个新服务器,在它之上为你特有的情况建立其他措施。你可能希望查询
IPV6 安全,改变你的SSH端口(通过隐藏达到安全目的),安全内核(SELinux和GRSecurity),跟踪系统改变,并且如果你的服务器曾经不安全或已经在线相当长时间了的话,全面检查一番。一台服务器有好几百个入口点,并且每一个你安装的应用都带来了额外的潜在漏洞,但是通过合适的工具,你可以免去困扰,直接去睡大觉了。




(1 个评分,平均: 5.00)原文链接: Spenser Jones 翻译: 伯乐在线- 贾朝藤
译文链接: http://blog.jobbole.com/48195/
[ 转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]
如何保证 Linux 服务器的安全的更多相关文章
- 《Linux服务器的监控》
本文地址:http://www.cnblogs.com/aiweixiao/p/7131532.html 原文地址(公众号):http://t.cn/RKwmqUs 点击关注 微信公众号 1. 监控概 ...
- linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。
首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要 ...
- CentOS Linux服务器安全设置
转自:http://www.osyunwei.com/archives/754.html 引言: 我们必须明白:最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关 ...
- windows下运行的linux服务器批量管理工具(带UI界面)
产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...
- 1.linux服务器的性能分析与优化
[教程主题]:1.linux服务器的性能分析与优化 [课程录制]: 创E [主要内容] [1]影响Linux服务器性能的因素 操作系统级 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处 ...
- linux服务器分析优化
转:http://jiekeyang.blog.51cto.com/11144634/1774473 一.系统性能分析 1.系统的性能是指操作系统完成任务的有效性.稳定性和响应速度.操作系统完成任务与 ...
- (转)linux服务器安全配置攻略
引言: 最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小话,这样才能保证服务器最大的安全.下面是CentOS服务器安全设置,供大家参考. ...
- Linux强化论:15步打造一个安全的Linux服务器
Linux强化论:15步打造一个安全的Linux服务器 Alpha_h4ck2016-11-30共28761人围观 ,发现 8 个不明物体专题系统安全 可能大多数人都觉得Linux是安全的吧?但我要告 ...
- 20个Linux服务器安全强化建议(一)
Linux服务器安全对于保护用户数据.知识产权非常重要,同时还能减少你面对黑客的时间.在工作中,通常由系统管理员对Linux的安全负责,在这篇文章中,介绍了20条对Linux系统进行强化的建议.本文所 ...
随机推荐
- 自动化测试之firebug、firepath、IDE的使用
1firebug安装-firefox添加组件-firebug 如图 firepath依赖于firebug 展示路径用,安装和firebug一样
- Linux系统下的 /etc/fstab 文件解读
1 [root@localhost ~]# cat /etc/fstab 2 3 # 4 # /etc/fstab 5 # Created by anaconda on Sat Nov 3 12:03 ...
- sudo详细介绍
目录参数所在/etc/sudoers 1.Host_Alias定义主机别名 例:Host_Alias FILESERVERS = fs1,fs2 #注意“=”号两边要有空格隔开 ***由于现今li ...
- JavaScript CSS 实现简单的 TAB 标签切换
使用CSS隐藏所有tab页,然后使用JavaScript给选中的元素对应ID的tab页设置class="active"类来显示该元素,以此实现tab切换. 如鼠标放置到shwww时 ...
- chrome安装插件,安装Postman
1.下载postman插件,可以自己到网上下载,也可以点击http://download.csdn.net/detail/u010246789/9528471 2.解压文件,在解压后的文件夹中找到.c ...
- [SharePoint2010开发入门经典]10、使用SPS2010构建面向服务的应用程序
本章概要: 1.使用SPS自带的web service 2.构建自定义web service 3.使用不同的客户端解决方案部署自定义站点
- 图像算法研究---Adaboost算法具体解释
本篇文章先介绍了提升放法和AdaBoost算法.已经了解的可以直接跳过.后面给出了AdaBoost算法的两个样例.附有详细计算过程. 1.提升方法(来源于统计学习方法) 提升方法是一种经常使用的统计学 ...
- HDU4763-Theme Section(KMP+二分)
Theme Section Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- 6 Javascript:函数
函数 函数是面向任务的. 当我们面临一个须要可问题的时候.往往无处下手.这时候.须要将问题分解为多个任务,从而逐一击破. 这里就须要函数的帮助. 语法 function Name() { Body() ...
- ACM-SG函数之Fibonacci again and again——hdu1848
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...