为你的 Linux 服务器加把锁

无论你使用的哪种 Linux 发行版,你都需要使用基于 iptables 的防火墙来保护它。

啊哈!你已经设置好了你的第一台 Linux 服务器并且已经准备发车了!是么?嗯,慢着。

默认情况下,你的 Linux 系统对攻击者来说并非是足够安全的。当然,它比 Windows XP 要安全多了,但这说明不了什么。

想要使你的 Linux 系统真正稳固,你需要按照 Linode 的 服务器安全指南 来操作。

总的来说,首先你必须关闭那些你不需要的服务。当然要这样做的话,你先要知道你正在使用哪些网络服务。

你可以使用 shell 命令来找到是哪些服务:


  1. netstat -tulpn

netstat 将会告诉你正在运行哪些服务和这些服务正在使用的端口是什么。如果你不需要其中的某项服务或端口,你就应该关闭它。例如,除非你正在运行一个网站,否则你是不需要运行中的 Apache 或Nginx 服务器,也不需要开启 80 或 8080 端口。

总之一句话,不确定的话,就关了它先。

在一个最简单的,没有做过任何额外更改的 Linux 服务器上,你会看到 SSH、 RPC 和 NTPdate 运行在它们的公开端口上。不要添加像 telnet 这样陈旧而不安全的 shell 程序,否则老司机就会在你不经意间将你的 Linux 小跑车开走了。也许,在上世纪 80 年代的时候你喜欢把 telnet 当作你 SunOS 机器上的备份登录方式,但是那早已成为了过去。

就 SSH 来说,你应该使用 RSA 密钥 和 Fail2Ban 来加固。除非你需要 RPC,否则就卸载它——如果你不知道需要不需要它的话,那就是不需要。

关于如何关门已经说的够多了;让我们来聊聊利用 iptables 来锁定进来的流量吧。

当你启动 Linux 服务器的时候它是没有任何规则的。这就意味着所有的流量都是被允许的。这当然是不好的。因此,你需要及时的设置你的防火墙。

Iptables 是一种用来给 netfilter 设置网络策略规则的 shell 工具,netfilter 是Linux 系统下的默认防火墙,它利用一组规则来允许或禁止流量。当有人尝试连接上你的系统——有些人无时不刻地尝试这么干,而且从不气馁——iptables 就会检查这些请求是否与规则列表相匹配。如果没有匹配到任何的规则,它就会采取默认操作。

这个默认操作应该是将连接“Drop”掉,即禁掉这些意图闯入者。而且这不会让他们知道这些网络探测行为发生了什么。(你也可以将链接“Reject”掉,但是这会同时让他们知道你有一个正在运行的 Linux 防火墙。就目前而言,让陌生人能获取到我们系统的信息越少越好。至少,我是这么认为的。)

现在,你可以用 iptables 来设置你的防火墙了。我已经这么做了。就像以前,我骑着自行车去六英里外上班,并且两边都是上坡。而现在,我开车去。

这其实比喻的是我使用 Fedora 发行版的 FirewallD 和 Debian 系发行版的 UFW(Uncomplicated Firewall)。这些都是易用的 iptables 的 shell 前端。你可以在以下的 Linode 指南中找到适合的使用方式:FirewallD 和 UFW

从本质上来说设置这些规则就是在你的服务器上放置“非请勿入”的告示牌。用起来吧。

但是也别太兴奋地把所有的链接都关闭了。例如:


  1. sudo ufw default deny incoming

看起来是个好主意哦。别忘了,它禁止了所有链接,包括你自己哦!

很好,它就是这么干的。这意味着它也同样禁止了 SSH 的登录。也就是说你再也不能登录你那新服务器了。哇哦!

不过,如果你犯了错,错误的将更多的链接都禁止了。你看,老司机也同样被你挡在门外了。

或者,更准确得说,这不是你或你的服务器所遇到的个别现象。当然,你也不是每天受到 3 亿多次攻击尝试的美国国家安全局(NSA)。但是攻击脚本根本不在乎你是谁。它只是不断的检查寻找网络中存在已知漏洞的服务器。在平常的一天中我自己的小服务器就会受到数以百计的攻击。

都这样了,你还在等什么呢?去吧,加固你的网络服务吧。安装 FirewallD 或者 UFW 来加固你的服务器吧。你会愿意去做的。

原文发布时间为:2017-12-25

本文来自合作伙伴“Linux中国”

时间: 2024-09-03 07:43:56

为你的 Linux 服务器加把锁的相关文章

学起来,为你的 Linux 服务器加把锁

无论你使用的哪种 Linux 发行版,你都需要使用基于 iptables 的防火墙来保护它. 默认情况下,你的 Linux 系统对攻击者来说并非是足够安全的.当然,它比 Windows XP 要安全多了,但这说明不了什么. 想要使你的 Linux 系统真正稳固,你需要按照 Linode 的 服务器安全指南 来操作. 总的来说,首先你必须关闭那些你不需要的服务.当然要这样做的话,你先要知道你正在使用哪些网络服务. 你可以使用 shell 命令来找到是哪些服务: netstat -tulpn net

如何为你的Linux服务器加把锁

无论你使用的哪种 Linux 发行版,你都需要使用基于 iptables 的防火墙来保护它. 啊哈!你已经设置好了你的第一台 Linux 服务器并且已经准备发车了!是么?嗯,慢着. 默认情况下,你的 Linux 系统对攻击者来说并非是足够安全的.当然,它比 Windows XP 要安全多了,但这说明不了什么. 想要使你的 Linux 系统真正稳固,你需要按照 Linode 的 服务器安全指南 来操作. 总的来说,首先你必须关闭那些你不需要的服务.当然要这样做的话,你先要知道你正在使用哪些网络服务

java服务放在Linux服务器上定时执行,执行规律一天一次,每天都加一个线程

问题描述 java服务放在Linux服务器上定时执行,执行规律一天一次,每天都加一个线程 java服务放在Linux服务器上定时执行,执行规律一天一次,每天都加一个线程,请问为什么会引起这个问题 解决方案 搞成服务,定时重启服务试试 解决方案二: spring的定时任务设置就行

linux服务器-Linux动态加载动态库无法进去gdb调试

问题描述 Linux动态加载动态库无法进去gdb调试 动态加载动态库无法单步调试,断点可以设置成功,也能进入断点,就是不能单步调试

介绍25个Linux 服务器安全小技巧

大家都认为Linux 默认是安全的,我大体是认可的(这是个有争议的话题).Linux默认确实有内置的安全模型.你需要打开它并且对其进行定制,这样才能得到更安全的系统.Linux更难管理,不过相应也更灵活,有更多的配置选项. 对于系统管理员而言,让产品的系统更安全,免于骇客和黑客的攻击,一直是一项挑战.本文将介绍25个有用的技巧和窍门 ,帮助你让Linux系统更加安全.希望下面的这些技巧和窍门可以帮助你加强你的系统的安全. 1. 物理系统的安全性 配置BIOS,禁用从CD/DVD.外部设备.软驱启

25个Linux服务器安全小技巧

  大家都认为Linux 默认是安全的,我大体是认可的(这是个有争议的话题).Linux默认确实有内置的安全模型.你需要打开它并且对其进行定制,这样才能得到更安全的系统.Linux更难管理,不过相应也更灵活,有更多的配置选项. 对于系统管理员而言,让产品的系统更安全,免于骇客和黑客的攻击,一直是一项挑战.本文将介绍25个有用的技巧和窍门 ,帮助你让Linux系统更加安全.希望下面的这些技巧和窍门可以帮助你加强你的系统的安全. 1. 物理系统的安全性 配置BIOS,禁用从CD/DVD.外部设备.软

《构建高可用Linux服务器 第3版》—— 1.2 全面了解Linux服务器

1.3 Linux服务器的网络配置 Linux服务器的系统安装好后,就要在机房或公司内网环境中配置它的IP了,这是最重要的一个环节,下面我就以CentOS 5.8 x86_64服务器为例来说明如何通过命令或图形来配置Linux服务器的IP.网关.DNS,以及如何用命令查看Linux的进程或网络连接等. 1.3.1 配置Linux服务器的网络 1.手动修改配置网卡文件 手动配置网卡是最直接的方式,熟练的系统管理员在平时维护系统的时候更喜欢使用这种方式,因为手工配置有很多优点: 熟悉命令之后,手工配

Linux服务器安全配置实例(二)用户账户权限配置

没有绝对的安全 在上一篇文章<linux服务器安全配置实例(一)>中介绍了我对ssh服务的一些常用的安全配置和性能优化. 其实ssh服务是我们进入服务器的一扇大门,这扇大门是提供正常人使用钥匙打开后进屋的.而对于一些恶意的小伙伴,他们会使用一些非法的方式,比如走窗户.暴力开锁等去不经过我们的同意就进屋大肆破坏. 走窗户:通过一些系统的0day漏洞或者第三方服务以及软件的漏洞溢出或者注入,在服务器中运行恶意的代码来得到登陆权限. 暴力开锁:通过一些暴力破解软件,暴力破解我们的ssh服务.网站管理

解决-从linux服务器中读取文件数据

问题描述 从linux服务器中读取文件数据 现有一个需求: 在一台服务器上写日志文件,每当日志文件写到一定大小时,比如是1G,会将这个日志文件改名成另一个名字,并新建一个与原文件名相同的日志文件,再往这个新建的日志文件里写数据:要求写一个程序能实时地读取日志文件中的内容,并且不能写日志操作.重命名操作.不能修改日志文件的任何数据,保持日志文件的完整性. 首先,这个问题在windows下几乎无解,因为一个程序打开了一个文件,再要对文件重命名是不可能的:而在Linux下,可以得到完美解决.因为Lin