小编Smu*_*dge的帖子

我们的安全审计员是个白痴。我如何给他他想要的信息?

我们服务器的安全审核员在两周内提出了以下要求:

  • 所有服务器上所有用户帐户的当前用户名和纯文本密码列表
  • 过去六个月所有密码更改的列表,再次以纯文本形式显示
  • 过去六个月“从远程设备添加到服务器的每个文件”的列表
  • 任何 SSH 密钥的公钥和私钥
  • 每次用户更改密码时发送给他的电子邮件,其中包含纯文本密码

我们正在运行带有 LDAP 身份验证的 Red Hat Linux 5/6 和 CentOS 5 机器。

据我所知,该列表中的所有内容要么不可能获得,要么难以获得,但如果我不提供这些信息,我们将面临无法访问我们的支付平台并在过渡期间失去收入的情况,因为我们转向新服务。关于如何解决或伪造这些信息的任何建议?

我能想到的获得所有纯文本密码的唯一方法是让每个人重置他们的密码并记下他们设置的内容。这并不能解决过去六个月更改密码的问题,因为我无法追溯记录此类内容,记录所有远程文件也是如此。

获取所有公共和私人 SSH 密钥是可能的(尽管很烦人),因为我们只有少数用户和计算机。除非我错过了一个更简单的方法来做到这一点?

我已经多次向他解释过,他所要求的东西是不可能的。针对我的担忧,他回复了以下电子邮件:

我在安全审计方面有超过 10 年的经验,并且对 redhat 安全方法有充分的了解,所以我建议你检查你的事实,了解什么是可能的,什么是不可能的。你说没有公司可能拥有这些信息,但我已经进行了数百次审计,这些信息很容易获得。所有 [通用信用卡处理提供商] 客户都必须遵守我们的新安全政策,此审核旨在确保这些政策已正确实施*。

*“新安全策略”是在我们审核前两周引入的,并且在策略更改之前不需要六个月的历史记录。

简而言之,我需要;

  • 一种“伪造”六个月的密码更改并使其看起来有效的方法
  • 一种“伪造”六个月的入站文件传输的方法
  • 一种收集所有正在使用的 SSH 公钥和私钥的简单方法

如果我们未能通过安全审核,我们将无法访问我们的卡处理平台(我们系统的关键部分),并且需要两周时间才能转移到其他地方。我有多烂?

更新 1(周六 23 日)

感谢您的所有回复,知道这不是标准做法让我感到非常欣慰。

我目前正在计划我给他的电子邮件回复,解释情况。正如你们中的许多人指出的那样,我们必须遵守 PCI,其中明确规定我们不应该以任何方式访问纯文本密码。我写完后会发邮件。不幸的是,我不认为他只是在考验我们;这些东西现在在公司的官方安全政策中。然而,我已经让轮子运动起来,暂时离开它们并转移到贝宝上。

更新 2(周六 23 日)

这是我起草的电子邮件,对添加/删除/更改内容有什么建议吗?

嗨[姓名],

不幸的是,我们无法向您提供某些要求的信息,主要是纯文本密码、密码历史、SSH 密钥和远程文件日志。这些事情不仅在技术上是不可能的,而且能够提供这些信息既违反 PCI 标准,也违反了数据保护法。
引用 PCI 要求,

8.4 使用强密码术在所有系统组件上传输和存储期间使所有密码不可读。

我可以为您提供我们系统上使用的用户名和散列密码的列​​表、SSH 公钥和授权主机文件的副本(这将为您提供足够的信息来确定可以连接到我们服务器的唯一用户数量以及加密使用的方法)、有关我们的密码安全要求和我们的 LDAP 服务器的信息,但这些信息不得带离现场。我强烈建议您查看您的审核要求,因为我们目前无法在遵守 PCI 和数据保护法案的同时通过此审核。

问候,
[我]

我将抄送公司的 CTO 和我们的客户经理,我希望 CTO 可以确认此信息不可用。我还将联系 PCI 安全标准委员会,解释他对我们的要求。

更新 3(26 日) …

security pci-dss

2426
推荐指数
29
解决办法
51万
查看次数

GIT 作为备份工具

在服务器上,安装 git

cd /
git init
git add .
git commit -a -m "Yes, this is server"
Run Code Online (Sandbox Code Playgroud)

然后/.git/指向网络驱动器(SAN、NFS、Samba 等)或其他磁盘。每小时/每天等使用 cron 作业来更新更改。.git 目录将包含所有服务器文件的版本副本(不包括无用/复杂的文件,如 /proc、/dev 等)

对于不重要的开发服务器,我不希望在适当的备份系统上设置它的麻烦/成本,并且备份只是为了方便(即我们不需要备份该服务器,但它会节省如果出现问题,有一段时间),这可能是一个有效的备份解决方案,还是会倒在一大堆便便中?

backup git

115
推荐指数
6
解决办法
7万
查看次数

硬件防火墙对比 软件防火墙(IP 表、RHEL)

我的托管公司说 IPTables 没用,不提供任何保护。这是谎言吗?

TL;DR
我有两台位于同一地点的服务器。昨天我的 DC 公司联系我告诉我,因为我使用的是软件防火墙,我的服务器“容易受到多种关键安全威胁”,而我当前的解决方案提供“无法抵御任何形式的攻击”。

他们说我需要防火墙获得一个专用的思科($ 1000安装则$ 200 /每月),以保护我的服务器。我一直认为,虽然硬件防火墙更安全,但 RedHat 上的 IPTables 之类的东西为您的普通服务器提供了足够的保护。

两台服务器都只是网络服务器,对它们没有任何重要意义,但我使用 IPTables 将 SSH 锁定到我的静态 IP 地址并阻止除基本端口(HTTP(S)、FTP 和其他一些标准服务)之外的所有内容)。

我不打算安装防火墙,如果服务器的以太被黑客入侵,那将是一个不便,但它们运行的​​只是一些 WordPress 和 Joomla 站点,所以我绝对认为不值得花钱。

networking firewall redhat iptables

37
推荐指数
2
解决办法
1万
查看次数

Crond 偏移五分钟时间表

是否可以抵消设置为每 5 分钟运行一次的 cron 脚本?

我有两个脚本,脚本 1 从一个数据库中收集一些数据并将其插入到另一个数据库中,脚本 2 提取这些数据和许多其他数据并从中创建一些漂亮的报告。这两个脚本都需要每 5 分钟运行一次。我想将脚本 2 偏移一分钟,以便它可以根据新数据创建报告。EG 我希望脚本一运行,:00, :05, :10, :15 [...]脚本二:01, :06, :11, :16 [...]每小时运行一次。脚本不相互依赖,无论脚本 1 是否成功,脚本 2 都必须运行。但是,如果报告可以包含最新数据,那将会很有用。这可以用 cron 实现吗?

邮政;
我曾想过在 shell 脚本中使用这两个命令,以便它们立即相互运行,但这不起作用,有时脚本 1 可能会因等待外部 API 等而挂断,因此可能需要长达 15 分钟才能运行,但是脚本 2 必须每 5 分钟运行一次,因此这样做会停止/延迟脚本 2 的执行。如果我可以在 Cron 中设置它,则意味着无论脚本 1 在做什么,脚本 2 都会运行

cron

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

即使权限正确,“权限被拒绝”也将 CD 放入目录

这太奇怪了。以用户“g”的身份登录到 Linux (RHEL) 机器,执行一个ls -lah显示

drwxrwxrwx 6 g    g    4.0K Jun 23 13:27 .
drwxrw-r-x 6 root root 4.0K Jun 23 13:15 ..
-rwxrw---- 1 g    g     678 Jun 23 13:26 .bash_history
-rwxrw---- 1 g    g      33 Jun 23 13:15 .bash_logout
-rwxrw---- 1 g    g     176 Jun 23 13:15 .bash_profile
-rwxrw---- 1 g    g     124 Jun 23 13:15 .bashrc
drw-r----- 2 g    g    4.0K Jun 23 13:25 .ssh
Run Code Online (Sandbox Code Playgroud)

因此,组“g”中的用户“g”/应该能够读取和写入 .ssh 目录,但如果我这样做,ls -lah .ssh/我会得到ls: .ssh/: Permission …

linux permissions

20
推荐指数
2
解决办法
7万
查看次数

两台服务器之间的直接以太网链接

假设我有两台需要超低延迟的服务器(数据库、文件等)。是否可以用 10GbE 直接连接两台服务器,所以每台服务器有 1 个(在现实世界中它会有 2 个)连接到“主”网络,但是 1 个网卡带有以太网电缆直接连接到第二个服务器,没有交换机或路由器,只是直接连接

                         Internet/Datacenter
                                 |
                                 |
                                 |
                                 |
                                 |
                                 |
                                 |
                        --------------------
                        |                  |
            ------------|      Switch      |-----------
            |           |                  |          |
            |           --------------------          |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
            |                                         |
  Network Card 1 (eth0)                     Network Card 1 (eth0)
            |                                         |
  --------------------                      --------------------
  |                  |                      |                  |
  |     Server 1     |                      |     Server 2     |
  |                  |                      |                  |
  --------------------                      --------------------
            |                                         |
  Network Card 2 (eth1) …
Run Code Online (Sandbox Code Playgroud)

networking fiber ethernet

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

Postfix SMTP 横幅显示多个主机名

我们有一个 Postfix SMTP 服务器,它绑定到两个 IP 地址并为两个不同的域提供邮件服务。我们不能将域更改为使用相同的单一 IP。两个 IP 地址都有反向 DNS

  • 1.1.1.1 反向到 mail.domain1.com
  • 2.2.2.2 反向到mail.domain2.com

在我们的 Postfix 配置中,我有

myhostname = mail.domain1.com
myhostname = mail.domain2.com

inet_interfaces = 1.1.1.1, 2.2.2.2

smtpd_banner = $myhostname Mail Server
Run Code Online (Sandbox Code Playgroud)

(还有其他一些我认为无关紧要的东西)

使用MXToolbox,在 mail.domain2.com 上运行 smtp 测试命令返回一切正常,但是在 mail.domain1.com 上运行它返回错误,因为 Postfix 在 SMTP 横幅中将自己标识为“mail.domain2.com”,如何我如何让它根据使用的外部 IP 地址返回正确的横幅?

postfix

12
推荐指数
1
解决办法
1万
查看次数

我怎样才能让 wget 只下载页面而不是 css 图像等?

我想使用 wget 下载整个网站,但我不希望 wget 下载图像、视频等。

我试过

wget -bqre robots=off -A.html example.com –user-agent=”Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6?
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,它不会下载 .php 文件,而是下载静态的 .html 文件。

wget有解决这个问题的方法吗?

linux wget

11
推荐指数
2
解决办法
8619
查看次数

“云”文件存储对比。自我管理的服务器(云有什么大不了的?)

所以我要直接进入数学;我的网络主机提供了一个带有 5x2TB 驱动器的服务器,不计量的 1GB/s 连接,可以在 5 个不同的数据中心配置服务器,每月约 200 美元。

如果我有 3 个这样的服务器并在它们上面安装 OpenStack Swift,我有大约 10TB(我知道它会比这少,但为了保持数学简单,我只说 10TB)的存储具有与 Rackspace Cloud 相同的功能但 0.058 美元/GB(与 Rackspace 的 0.15 美元/GB 相比)。加上免费的无限带宽。可以在 3 个不同的 DC 中配置服务器以实现冗余和扩展新服务器在一个小时内处于活动状态,因此我们可以在需要时合理快速地扩展我们的存储。我们还将使用 CDN 来交付内容,所以是的,会产生带宽费用,但它们是外部的,因此与问题无关。

显然,只有在处理大量存储时才会更有效(例如,2GB 的效率要低得多),但我们在 RSC 文件帐户上有 7.5TB 的备份,因此我们每 GB 的有效价格为 0.078 美元(但这会降低)相比之下,我们目前的 Rackspace 系统每月超过 1000 美元。

所以我的问题是,除了必须管理我们自己的服务器并在扩展上付出更多努力之外,自我管理的存储系统和 Rackspace 云之类的东西有什么区别,它是否值得 $/GB 差异+带宽费用?

rackspace cloud-storage

10
推荐指数
1
解决办法
707
查看次数

NGINX 将 HEAD 转换为 GET 请求

由于一些糟糕的设计决策,我们的应用程序无法响应 HTTP HEAD 请求(返回“不允许的方法”)。修改软件以正确返回 HEAD 请求将是棘手的,并非不可能,而是额外的工作。该应用程序位于 NGINX 代理后面,我想知道是否有办法让 NGINX 将它从客户端收到的 HEAD 请求转换为到后端的 GET 请求,然后丢弃除标头之外的响应并将其发送回客户端就好像我们的应用程序服务器能够响应 HEAD 请求一样。

当前配置(相当标准)

upstream ourupstream{
    server unix:/var/apps/sockets/ourapp.socket.thread1
    server unix:/var/apps/sockets/ourapp.socket.thread2
    server unix:/var/apps/sockets/ourapp.socket.thread3
    [like 20 of these]
}

server {
    listen       1.2.3.4:80;
    server_name  ourapp;

    access_log  /var/apps/logs/ourapp.nginx.plog    proxy;
    error_log   /var/apps/logs/ourapp.nginx.elog    info;

    gzip on;

    gzip_types  text/plain text/html;

    proxy_intercept_errors on;
    proxy_connect_timeout 10;
    proxy_send_timeout 10;
    proxy_read_timeout 10;
    proxy_next_upstream error timeout;
    client_max_body_size 2m;

    error_page 404 /static/404.html;
    error_page 500 501 502 503 504 =500 /static/500.html;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; …
Run Code Online (Sandbox Code Playgroud)

nginx

10
推荐指数
1
解决办法
8153
查看次数