驱动管家:安全、高效、精准的专业驱动下载站!

保护linux系统安全要准守哪些规则?首先要精简安装软件

2018-03-05 08:58:04责编:llp   来源:驱动管家     人气:

牢记以下这七点会让你的Linux服务器变得更安全

保护linux系统安全要准守哪些规则?首先要精简安装软件

图1:运行中的服务。

安装所需的服务

如果你打算运行一台服务器,可能会想“我有来自Linode的40GB固态硬盘(SSD)存储系统,于是我可以安装想要安装的任何服务。”没错,你的地盘你作主:可以在服务器上安装任意软件。不过,别犯想当然的毛病。连最固若金汤的服务器也会因有人钻了在该服务器上运行的任何未打补丁或易受攻击的软件组件的空子而被劫持。

所以,头一条规则就是让你的服务器尽量精简。只安装你确实需要的那些程序包。要是有不需要的程序包,那就清除。程序包数量越少,代码没打上补丁的可能性就越小。在安装任何软件和依赖程序包(比如ownCloud)之前,你应该读一下ownCloud的说明文档,只安装它需要的那些程序包。

运行所需的服务

第二条规则就是只运行需要的那些服务。许多发行版或程序包可能会开启某些服务,在不同的端口上运行。这可能会带来安全风险。于是,打开终端,运行下列命令:netstat -npl

输出结果会显示哪些服务在哪些端口上运行。如果你发现任何不应该运行的服务,停止它。你还应该密切关注已被启用、系统启动时运行的服务。只要在运行systemd的系统上运行下列命令,就可以来检查这方面:systemctl list-unit-files --type=service | grep enabled

视系统而定,你会获得如上图1中所示的输出结果。要是你发现任何不需要的服务,可以使用强大的systemct1命令来禁用它:systemctl disable service_name

限制对服务器的访问

就好比你不会把自家钥匙随随便便交给认识的人,也不会将访问服务器的权限交随随便便授予认识的人。一旦明确了这个规则,就可以限制对服务器的访问。要牢记这点:这一切打消不了决意要破坏你服务器的坏人的念头。不过,其作用在于为你的服务器增添了多一层的安全,防范只是捡漏的不法分子。

千万不要以根用户的身份登录

以超级用户的身份通过ssh进入到服务器不是一个好做法。我们后面会禁止以根用户身份通过ssh进入到服务器,不过在这么做之前,不妨创建一个拥有sudo权限的用户,那样你就能通过ssh进入到服务器,执行管理员任务了。一旦你登录进入到服务器,总是可以将用户切换成根用户,如果需要的话。如果你已经在系统上有了用户,就跳过几步;不然,跟着我走。

不同的发行版使用不同的方法来添加新用户;Red Hat/CentOS使用useradd,Ubuntu/Debian使用user adduser。

在Fedora/CentOS上创建新用户:useradd swapnil

然后,为该用户创建密码:passwd swapnil

它会要求你为它提供用户的新密码。现在,你需要为该用户授予sudo权限。运行下列命令:EDITOR=nano visudo

寻找下面这一行(见图2):# %wheel ALL=(ALL) ALL

如何使Linux服务器变得更安全

图2:为用户授予sudo权限。

去掉该行的注释(#符号意味着该行被注释;只要去掉这个符号,即可去掉注释),那样它看起来就像这样:%wheel ALL=(ALL) ALL

现在,保存并关闭文件。如果用户不属于wheel组,你只要运行下面这个命令,就可以将它轻松添加到组:# usermod -aG wheel swapnil

在Ubuntu系统上,你可以添加新用户,为此运行下列命令:adduser swapnil

回答系统提出的一些问题,包括为该用户创建密码。一旦创建完毕,为用户授予sudo权限:gpasswd -a swapnil sudo

打开另一个终端窗口,试着以刚创建的用户的身份登录进入到服务器,试着以sudo权限执行一些管理员任务。要是一切正常,进入到下一步。

禁用根用户登录

我们现在要禁用根用户登录,这意味着没人能够以根用户的身份通过ssh或登录进入到服务器。为此,打开sshd配置文件:nano /etc/ssh/sshd_conf

下一步,寻找显示下列内容的这一注释行:#PermitRootLogin no

然后保存并关闭该文件,重启服务:service ssh restart或者systemctl restart sshd

重要提醒:这时切莫退出服务器。你要测试能不能使用刚创建的用户成功地通过ssh进入到服务器。打开终端的另一个实例,以之前创建的用户通过ssh进入到服务器。你不希望完全被锁在服务器外面。要是一切都正常,你可以以根用户身份安全地注销退出服务器。

变更端口

我们对sshd配置文件要进行的第二个变化就是更改默认端口。这主要是增添一层隐匿性,让你的服务器确保安全,而不是给服务器果真增添任何实际的安全机制。这就好比保安服务公司派一样的车辆来运送重要人物,那样攻击者就不知道该攻击哪些车了。

打开sshd_config文件(这回以sudo权限打开,因为你再也不能以根用户身份登录进入到服务器了):sudo nano /etc/ssh/sshd_conf

然后,找到这一注释行:#Port 22

去掉该行注释,选择一个端口号。在选择端口时,务必要确保它没有被你系统上的其他任何服务所使用,我为服务器选择了端口1977:Port 1977

下一步,保存并关闭文件,重启sshd服务。再一次,注销退出服务器之前,检查一下设置,为此可以打开另一个终端窗口,然后使用该模式登录进去:ssh -p{port_number}@server_IP

示例:

ssh -p1977

swapnil@10.14.190.118

如果你能成功登录进去,就搞定了。

无密码登录

你可以通过无密码登录更容易通过ssh进入到服务器,并且完全禁用密码验证,增添另一层安全。务必要牢记一点:你只能够从创建ssh密钥的那台机器登录进入到你的服务器。

不妨使用下列命令,在本地系统上创建ssh密钥(见图3):ssh-keygen - t rsa

保护linux系统安全要准守哪些规则?首先要精简安装软件

图3:创建ssh密钥。

它会提出一些问题;你不用更改密钥位置,保留其默认值,为它提供一个难以猜中的通行码。下一步,你需要将这些密钥拷贝到服务器上,那样两台机器就能使用密钥与对方进行联系了。

cat ~/.ssh/id_rsa.pub | ssh -p 1977 swapnil@remote-server ";mkdir -p ~/.ssh && cat >>~/.ssh/authorized_keys"

现在,试着从另一个终端通过ssh进入到服务器;要是一切正常,它不会要求你输入密码。

这一步主要是为了方便,而不是增添一些实实在在的安全。不过你也可以增添一点安全,只要禁用服务器的密码验证。只需打开sshd配置文件,寻找这注释的一行:#PasswordAuthentication yes

去掉该行注释,将它从yes改成no。保存并关闭文件。然后,重启sshd服务。再一次,切莫从当前窗口关闭服务器连接。打开另一个窗口,登录进入到服务器(确保它没有要求输入密码)。

这个设置的另一个方面在于,你现在只能从创建ssh密钥的那一台机器通过ssh进入到服务器。如果你经常从不同的机器登录进入到服务器,千万不要使用这一方法。

这些是试图自行运行服务器的新用户需要考虑的一些基本方面。牢记一点:黑客总是先行一步;他们不断寻找进而闯入你服务器的任何漏洞。因而,最佳实践就是对你的服务器做一套始终最新的备份。我建议你在对站点做任何变化前后都应该进行备份。那样一来,万一你的服务器中了招,总是能够从上一套备份恢复过来。

  • 电脑中毒的症状有哪些?电脑杀毒的方法是什么?

    电脑中毒的症状有哪些?电脑杀毒的方法是什么?

    病毒感染的一些表现我们怎样知道电脑中病毒了呢?其实电脑中毒跟人生病一样,总会有一些明显的症状表现出来。例如机器运行十分缓慢、上不了网、杀毒软件生不了级、word文档打不开,电脑不能正常启动、硬盘分区找不

    详情2018-01-21 12:35:37责编:llp   来源:驱动管家     
  • wordpress插件:wassup存在输入验证漏洞

    wordpress插件:wassup存在输入验证漏洞

    WordPress是一款免费的论坛Blog系统,使用 PHP 语言和 MySQL 数据库开发的开源、免费的 Blog(博客,网志)引擎,用户可以在支持 PHP 和 MySQL 数据库的服务器上建立自己的 Blog。WordPress 的原版是

    详情2018-01-22 12:08:41责编:llp   来源:驱动管家     
  • 为大家介绍几个增强linux网络安全工具

    为大家介绍几个增强linux网络安全工具

    常用的Linux网络安全工具简介 尽管各种版本的Linux distribution 附带了很多开放源代码的自由软件,但是仍然有大量的有用 的工具没有被默认包括在它们的安装光盘内,特别是有一些可以增强Linux网络安全的工具

    详情2018-01-19 10:20:01责编:llp   来源:驱动管家     
  • 怎么利用microsoft sql server 2000入侵服务器获得主机的命令?

    怎么利用microsoft sql server 2000入侵服务器获得主机的命令?

    怎么利用microsoft sql server 2000入侵服务器获得主机的命令?有以下的步骤。一、首先确保得到数据库超级管理员权限二、然后执行如下SQL命令:1、exec master dbo xp_cmdshell & 39;net user hacker hack

    详情2018-01-23 09:28:19责编:llp   来源:驱动管家     
  • 分析googl被黑,趋势科技页面插入js挂马等攻击报告

    分析googl被黑,趋势科技页面插入js挂马等攻击报告

    一 首先在网上找到了这次攻击的新闻报道http: www nsfocus net news 6697http: hi baidu com secway blog item e80d8efa4bf73ddab48f31a3 html通过GOOGLE搜索到了相关被黑的页面http: www google cn search?

    详情2018-02-14 14:42:24责编:llp   来源:驱动管家     
  • 什么是环境变量?path变量起什么作用?

    什么是环境变量?path变量起什么作用?

    首先,我们先了解下什么叫环境变量!环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等等。这点有点类似于DOS时期的默认路径,当你运行某些程时序除了在当

    详情2018-01-29 12:13:50责编:llp   来源:驱动管家     
  • 虚拟主机的危机 hzhost虚拟主机有什么致命漏洞?

    虚拟主机的危机 hzhost虚拟主机有什么致命漏洞?

    编者注:HZHOST虚拟主机管理系统,在国内的虚拟主机应用比较广泛,但是存了这样的一个漏洞让人觉得心惊,也让整个虚拟主机系统沦陷。千里之堤,毁于蚁穴!在此提醒各位网络管理员(站长),在做好系统的维护的同

    详情2018-01-13 08:49:38责编:llp   来源:驱动管家     
  • 如何破解还原精灵?还原精灵破解的七种方法

    如何破解还原精灵?还原精灵破解的七种方法

    有些时候你是不是有些烦还原精灵,刚对系统进行的配置,重启后又恢复原貌了,本文就给大家讲了还原精灵的七大破解方法……方法一:临时解决办法如果在忘记还原精灵密码后,你安装了一个新程序,该软件提示要求重启

    详情2018-01-21 13:37:18责编:llp   来源:驱动管家     
  • 验证码的生成原理及其破解方法

    验证码的生成原理及其破解方法

    所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息, 输入表单提交网站验证,验证成功后才能使用某项功能。不少网站为了防止用户

    详情2018-01-16 16:39:17责编:llp   来源:驱动管家     
  • 新的加用户方法:调用shell.users来加用户

    新的加用户方法:调用shell.users来加用户

    一天,研究了一下用户控制面板文件nusrmgr cpl,发现调用的是Shell Users来加用户,它还同时调用了 wscript shell、Shell Application、Shell LocalMachine这三个组件 不过加用户的话,这一个 Shell Users就足够

    详情2018-02-27 19:18:04责编:llp   来源:驱动管家