标签: security

生产服务器安装 make 是否安全?

在设置我的虚拟服务器实例期间,我需要使用make. 安装后是否存在任何安全风险make?或者我应该在部署实例之前清理它?

我还在gcc服务器上安装了编译器,用于在部署前构建应用程序。

security make gcc

45
推荐指数
4
解决办法
9506
查看次数

为什么我可以在我的主目录中删除 root 拥有的文件而不是 root?

因此,我今天早些时候在我的服务器上进行了一些维护,并注意到我能够删除主目录中 root 拥有的文件。

我能够重现一个示例:

[cbennett@nova ~/temp]$ ls -al
total 8
drwxrwxr-x.  2 cbennett cbennett 4096 Oct  5 20:59 .
drwxr-xr-x. 22 cbennett cbennett 4096 Oct  5 20:58 ..
-rw-rw-r--.  1 cbennett cbennett    0 Oct  5 20:58 my-own-file
[cbennett@nova ~/temp]$ sudo touch file-owned-by-root
[cbennett@nova ~/temp]$ ls -al
total 8
drwxrwxr-x.  2 cbennett cbennett 4096 Oct  5 21:00 .
drwxr-xr-x. 22 cbennett cbennett 4096 Oct  5 20:58 ..
-rw-r--r--.  1 root     root        0 Oct  5 21:00 file-owned-by-root
-rw-rw-r--.  1 cbennett cbennett    0 …
Run Code Online (Sandbox Code Playgroud)

security linux permissions

45
推荐指数
2
解决办法
9008
查看次数

Amazon EC2 实例之间通信的最佳实践是什么?

我一直在为即将到来的项目设置 Amazon EC2 实例。它们都是微型实例,运行 64 位 Ubuntu Server。这是我到目前为止的设置:

  • 网络服务器——Apache
  • 数据库服务器——MySQL
  • 开发服务器——Apache & MySQL
  • 文件服务器-- SVN & Bacula(备份到 S3 存储桶)

目前,只有一台 Web 服务器,但最终将会有更多。

我的第一个问题是,Amazon EC2 实例之间最好、最安全的通信方式是什么?目前我正在使用 SSH,这是最好的方法吗?

据亚马逊称,实例之间使用弹性 IP 地址进行通信将被收取数据传输费用。但是,使用私有 IP 地址进行通信的实例可以免费进行。不幸的是,如果实例停止并重新启动,私有 IP 会发生变化。

所以这是我的第二个问题,如果 Amazon 实例的私有 IP 不是静态的,您如何利用它们?

我知道这些实例可能不会非常频繁地停止和启动,但是,如果 IP 地址在各种配置文件中,那么必须遍历它们并更改它会很痛苦。

我主要关心 Web 服务器,它们需要访问数据库服务器和文件服务器,它们在执行备份时需要访问所有实例。

注意: 我以前从未使用过 Bacula 并且我还没有设置它,但我假设它需要客户端的 IP 地址来备份它们。

networking security linux ssh amazon-ec2

43
推荐指数
2
解决办法
4万
查看次数

如何在不使用 OpenVPN 客户端的情况下检查 OpenVPN 服务器是否正在侦听远程端口?

我需要检查 OpenVPN (UDP) 服务器是否已启动并可在给定主机:端口上访问。

我只有一台普通的 Windows XP 计算机,没有 OpenVPN 客户端(也没有机会安装它),也不需要连接到服务器的密钥——我只需要常用的 WinXP 命令行工具、浏览器和 PuTTY。

如果我正在测试诸如 SMTP 或 POP3 服务器之类的东西,我会使用 telnet 并查看它是否响应,但是如何使用 OpenVPN (UDP) 执行此操作?

security openvpn testing telnet

43
推荐指数
5
解决办法
11万
查看次数

如何隐藏作为命令行参数传递的密码?

我正在运行一个软件守护程序,它需要某些操作来输入密码来解锁某些功能,例如:

$ darkcoind masternode start <mypassphrase>
Run Code Online (Sandbox Code Playgroud)

现在我在我的无头 debian 服务器上遇到了一些安全问题。

例如,每当我搜索我的 bash 历史记录时,Ctrl+R我都可以看到这个超强密码。现在我想我的服务器被入侵了,一些入侵者可以访问 shell,并且可以简单地Ctrl+R在历史记录中找到我的密码。

有没有办法输入密码而不显示在 bash 历史记录ps/proc或其他任何地方?


更新 1:不向守护程序传递密码会引发错误。这是没有办法的。


更新 2:不要告诉我删除软件或其他有用的提示,例如挂掉开发人员。我知道这不是最佳实践示例,但该软件基于比特币,并且所有基于比特币的客户端都是某种 json rpc 服务器,它侦听这些命令,并且它的已知安全问题仍在讨论中(abc) .


更新 3:守护进程已经启动并使用命令运行

$ darkcoind -daemon
Run Code Online (Sandbox Code Playgroud)

ps只显示启动命令。

$ ps aux | grep darkcoin
user     12337  0.0  0.0  10916  1084 pts/4    S+   09:19   0:00 grep darkcoin
user     21626  0.6  0.3 1849716 130292 ?      SLl  May02   6:48 darkcoind …
Run Code Online (Sandbox Code Playgroud)

security linux password command-line-interface

43
推荐指数
6
解决办法
5万
查看次数

Ansible 安全最佳实践

我将把 Ansible 引入我的数据中心,我正在寻找一些关于在何处定位控制机器以及如何管理 SSH 密钥的安全最佳实践。

问题一:控制机

我们当然需要一台控制机器。控制机器上保存了公共 SSH 密钥。如果攻击者可以访问控制机器,它就有可能访问整个数据中心(或 Ansible 管理的服务器)。那么数据中心有专用控制机好还是远程控制机好(比如我的笔记本电脑远程连接数据中心)?

如果最佳做法是使用我的笔记本电脑(当然,它可能会被盗,但我可以将我的公钥安全地在线保存在云中或离线保存在便携式加密设备上),如果我需要使用一些 Web 界面,该怎么办? Ansible,像 Ansible Tower、Semaphore、Rundeck 或 Foreman,需要安装在数据中心的中央机器上?如何保护它并避免它成为“单点攻击”?

问题 2:SSH 密钥

假设我需要使用 Ansible 来制作一些需要由 root 执行的任务(比如安装软件包或类似的东西)。我认为最好的做法是不要在受控服务器上使用 root 用户,而是为 Ansible 添加一个具有 sudo 权限的普通用户。但是,如果 Ansible 需要执行几乎所有任务,则它需要通过 sudo 访问每个命令。那么,最好的选择是什么:

  • 让 Ansible 使用 root 用户(其公钥保存在 ~/.ssh/authorized_keys
  • 创建一个专用于 Ansible 的非特权用户,并具有 sudo 访问权限
  • 让 Ansible 用户通过指定密码的 sudo 运行每个命令(每个使用 Ansible 控制服务器的系统管理员都需要知道这是唯一的)
  • 让 Ansible 用户在不指定任何密码的情况下通过 sudo 运行每个命令
  • 任何其他提示?

security best-practices ansible

43
推荐指数
3
解决办法
2万
查看次数

我更新了我的 CentOS 7 系统。为什么 Meltdown/Spectre 只能部分缓解?

像我们中的许多人一样,我昨天花了很多时间更新大量系统以减轻Meltdown 和 Spectre 攻击。据我了解,有必要安装两个包并重新启动:

kernel-3.10.0-693.11.6.el7.x86_64
microcode_ctl-2.1-22.2.el7.x86_64
Run Code Online (Sandbox Code Playgroud)

我有两个 CentOS 7 系统,我已经在这些系统上安装了这些软件包并重新启动。

根据 Red Hat 的说法,我可以通过检查这些 sysctl 并确保它们都为 1 来检查缓解的状态。 但是,在这些系统上,它们并非都是 1:

# cat /sys/kernel/debug/x86/pti_enabled
1
# cat /sys/kernel/debug/x86/ibpb_enabled
0
# cat /sys/kernel/debug/x86/ibrs_enabled
0
Run Code Online (Sandbox Code Playgroud)

我也不能将它们设置为 1:

# echo 1 > /sys/kernel/debug/x86/ibpb_enabled
-bash: echo: write error: No such device
# echo 1 > /sys/kernel/debug/x86/ibrs_enabled
-bash: echo: write error: No such device
Run Code Online (Sandbox Code Playgroud)

我确认英特尔微码似乎已在启动时加载:

# systemctl status microcode -l
? microcode.service - Load CPU microcode update
   Loaded: loaded (/usr/lib/systemd/system/microcode.service; enabled; vendor …
Run Code Online (Sandbox Code Playgroud)

security vulnerabilities rhel7 centos7

42
推荐指数
3
解决办法
2万
查看次数

禁用/启用 SELinux 的原因

在StackOverflow 上的这个问题和我们这里完全不同的人群中,我想知道:您禁用 SELinux 的原因是什么(假设大多数人仍然这样做)?您想保持启用状态吗?离开 SELinux 后,您遇到过哪些异常情况?除了 Oracle 之外,还有哪些供应商在支持启用 SELinux 的系统时遇到问题?

额外问题:有人设法让 Oracle 在 RHEL5 和 SELinux 上以强制目标模式运行吗?我的意思是,严格会很棒,但我认为这还遥不可及,所以让我们先保持有针对性的 ;-)

oracle security linux redhat selinux

41
推荐指数
4
解决办法
2万
查看次数

被黑了。想了解如何

有人第二次在我帮助运行的网站上添加了一大块 javascript。这个javascript劫持了谷歌的adsense,插入自己的账号,到处贴广告。

代码总是被附加,总是在一个特定的目录中(一个由第三方广告程序使用),影响这个广告目录(20个左右)内的许多目录中的许多文件,并在一夜之间以大致相同的方式插入时间。该 Adsense 帐户属于一个中国网站(位于离我下个月要去中国的地方不到一小时路程的一个小镇。也许我应该去爆头...开玩笑,有点),顺便说一句...这里的信息网站:http : //serversiders.com/fhr.com.cn

那么,他们如何将文本附加到这些文件中呢?是否与对文件设置的权限有关(范围从 755 到 644)?对于网络服务器用户(它在 MediaTemple 上,所以它应该是安全的,是吗?)?我的意思是,如果你有一个权限设置为 777 的文件,我仍然不能随意向它添加代码......他们怎么会这样做?

这是一个实际代码示例,供您观看(正如您所看到的......没什么。真正的技巧是他们如何获得它):

<script type="text/javascript"><!--
google_ad_client = "pub-5465156513898836";
/* 728x90_as */
google_ad_slot = "4840387765";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Run Code Online (Sandbox Code Playgroud)

由于很多人都提到过它,这里是我检查过的(检查我的意思是我环顾了文件被修改的时间是否有任何奇怪之处,并且我为 POST 语句和目录遍历查找了文件:

  • access_log(除了正常(即过多)的 msn bot 流量之外,什么都没有)
  • error_log(除了通常的文件不存在无害文件的错误)
  • ssl_log(只是通常的)
  • messages_log(这里没有 FTP 访问,除了我)

*更新:**好的,解决了。来自中国的黑客在我们的网站上放置了一个文件,允许他们执行各种管理操作(数据库访问、删除和创建文件和目录,您可以命名,他们有权访问)。我们很幸运,他们没有做更具破坏性的事情。正常的 apache 日志文件中没有任何内容,但我在 Web 服务器日志分析器中发现了一组不同的日志文件,并且证据就在那里。他们使用自己的管理员用户名和密码访问这个文件,然后在服务器上编辑他们需要的任何内容。他们的文件将“apache”设置为用户,而我们网站上的所有其他文件都有不同的用户名。现在我需要弄清楚他们是如何将这个文件物理地放到我们的系统上的。我怀疑这最终会归咎于我们的网络主机(Media Temple),

security php hacking

41
推荐指数
2
解决办法
2142
查看次数

SSL 和 TLS 之间的确切协议级别差异是什么?

这是在提出此概述问题后的技术深入探讨。

SSL 和 TLS 之间的协议区别是什么?
真的有足够的差异来保证更名吗?(相对于较新版本的 TLS,将其称为“SSLv4”或 SSLv5)

security ssl tunneling protocol tls

40
推荐指数
2
解决办法
4万
查看次数