AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-118549

umläute's questions

Martin Hope
umläute
Asked: 2017-09-07 02:13:01 +0800 CST

基于 iSCSI 的 RAID6 上的 ZFS

  • 2

我们计划在我们的 Debian 系统上部署约 100TB 的存储。

该存储由一个带有 24 个 6TB 磁盘的外部机箱 ( EonStore D1000: ESDS1024) 组成,通过 iSCSI 在 10GBit 光纤上连接到单个主机。

因为存储已经非常大,我们可能希望将来扩展它,所以我们想使用 ZFS 作为文件系统。

现在EonStore D1000, 预配置为 RAID6 系统,还支持硬件加密 (SED)。它也可以配置为 JBOD。

我读到 ZFS 永远不应该用于硬件 RAID,而是更喜欢直接访问硬盘。

但是,我不确定这是否也适用于 iSCSI 设备(例如,iSCSI 是否向 ZFS 报告了足够的信息以使其故障纠正与内置 RAID6 相关?)

另外,我们很想使用 SED,我想它根本不会与 ZFS 的故障纠正一起使用。

所以我的问题是:我应该(仍然)在 RAIDZ 中不惜一切代价避免 RAID6 吗?加密怎么样?

zfs
  • 1 个回答
  • 529 Views
Martin Hope
umläute
Asked: 2017-04-21 04:13:48 +0800 CST

spamassassin 误报来自拨号地址的电子邮件

  • 0

我主要是 spamassassin (3.4.0-6) + exim4 (4.84.2) 的快乐管理员,在 Debian/jessie 系统上设置服务器端垃圾邮件过滤。

最近有用户报告了一些误报。仔细检查后发现,合法的电子邮件是

  1. 从某个拨号 IP 地址发送(在多个黑名单中列出)
  2. 传递到发件人的 ISP 的邮件服务器(使用他们现有的任何身份验证),这
  3. 然后将电子邮件发送到我的邮件服务器
  4. 将邮件标记为垃圾邮件,因为“已接收”标头中的 IP 之一被列入黑名单

spamassassin 匹配了一些黑名单规则(RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_SBL_CSS, RCVD_IN_SORBS_SPAM, RCVD_IN_SORBS_WEB)。请注意,由于 IP 被列入黑名单,电子邮件仅获得了正面分数。

触发垃圾邮件标记的电子邮件中的相关标题是:

Received: from [10.126.95.175] (unknown [109.126.64.1])
    by smtpfilter1.public.one.com (Halon) with ESMTPSA
    id ee1f1e82-251c-11e7-8f0e-b8ca3afa9d73;
    Wed, 19 Apr 2017 16:26:25 +0000 (UTC)

现在鉴于:

  • 发件人的 ISP 的邮件服务器都是干净的(似乎没有在任何黑名单中列出)

  • 我显然不知道发件人如何向他们的 ISP 证明他们的电子邮件是合法的,但我认为确实发生了某种形式的身份验证

...我认为 spamassassin 不应该将该电子邮件标记为垃圾邮件。

准确地说:我的直觉告诉我 spamassassin 应该为直接从黑名单 IP 地址接收的邮件添加垃圾邮件分数。但是,如果邮件通过“干净”的 MTA(ISP 的邮件服务器),sa 应该假定“他们”(ISP)已采取适当的措施来确保电子邮件的合法性。

由于我运行我的设置已经有一段时间了,直到现在还没有很多误报,我想知道:

  • 是上述预期的行为吗?

  • 如果不是,是我这边的问题吗(例如,我错误地配置了我的垃圾邮件分析以将接收链的一部分考虑在内,它不应该考虑。如果是这样,我应该在哪里寻找修复?)

  • 如果不是,是 ISP 方面的问题吗?(例如,他们应该更好地隐藏他们接受授权电子邮件的损坏IP地址。如果是这样,我应该直接向他们投诉吗?)

debian
  • 2 个回答
  • 5929 Views
Martin Hope
umläute
Asked: 2017-04-13 06:28:11 +0800 CST

在 supermicro 板上启用虚拟化

  • 3

我正在尝试使用 qemu/kvm(在 Debian/jessie 上运行,带有3.16.0-4-amd64内核)在旧的 Supermicro 板上设置虚拟化服务器(主要用于进行一些实验)

该板配备了Intel XeonCPU,据我了解,它们应该支持虚拟化:

$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl vmx est cid cx16 xtpr pdcm lahf_lm tpr_shadow
$

无论vmx标志是否存在,KVM 都拒绝初始化:

$ dmesg | grep kvm
[    8.721594] kvm: disabled by bios
$

kvm-intel模块无法加载,qemu 退回到仿真模式(真的很慢…… )

所以我重新启动了主机,进入了 BIOS 并在高级 CPU 设置中打开了虚拟化(它确实被关闭了)。

不幸的是,这并没有改变 ι,而且 KVM 仍然抱怨在 BIOS 中被禁用。

以下是有关我的硬件(CPU/主板)的一些详细信息:

root:~# dmidecode -t2
# dmidecode 2.12
SMBIOS 2.4 present.

Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
    Manufacturer: Supermicro
    Product Name: X7DB8
    Version: PCB Version
    Serial Number: 0123456789

root:~# lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            15
Model:                 6
Model name:            Intel(R) Xeon(TM) CPU 3.00GHz
Stepping:              4
CPU MHz:               3000.146
BogoMIPS:              6000.62
Virtualization:        VT-x
L1d cache:             16K
L2 cache:              2048K
NUMA node0 CPU(s):     0-7
root:~# cpuid -1
CPU:
   vendor_id = "GenuineIntel"
   version information (1/eax):
      processor type  = primary processor (0)
      family          = Intel Pentium 4/Pentium D/Pentium Extreme Edition/Celeron/Xeon/Xeon MP/Itanium2, AMD Athlon 64/Athlon XP-M/Opteron/Sempron/Turion (15)
      model           = 0x6 (6)
      stepping id     = 0x4 (4)
      extended family = 0x0 (0)
      extended model  = 0x0 (0)
      (simple synth)  = Intel Pentium 4 Processor 6x1 (Cedar Mill C1) / Pentium Extreme Edition Processor 955 (Presler C1) / Pentium D Processor 9xx (Presler C1) / Xeon Processor 5000 (Dempsey C1) / Celeron D Processor 3xx (Cedar Mill C1), 65nm
   miscellaneous (1/ebx):
      process local APIC physical ID = 0x1 (1)
      cpu count                      = 0x4 (4)
      CLFLUSH line size              = 0x8 (8)
      brand index                    = 0x0 (0)
   brand id = 0x00 (0): unknown
   feature information (1/edx):
      x87 FPU on chip                        = true
      virtual-8086 mode enhancement          = true
      debugging extensions                   = true
      page size extensions                   = true
      time stamp counter                     = true
      RDMSR and WRMSR support                = true
      physical address extensions            = true
      machine check exception                = true
      CMPXCHG8B inst.                        = true
      APIC on chip                           = true
      SYSENTER and SYSEXIT                   = true
      memory type range registers            = true
      PTE global bit                         = true
      machine check architecture             = true
      conditional move/compare instruction   = true
      page attribute table                   = true
      page size extension                    = true
      processor serial number                = false
      CLFLUSH instruction                    = true
      debug store                            = true
      thermal monitor and clock ctrl         = true
      MMX Technology                         = true
      FXSAVE/FXRSTOR                         = true
      SSE extensions                         = true
      SSE2 extensions                        = true
      self snoop                             = true
      hyper-threading / multi-core supported = true
      therm. monitor                         = true
      IA64                                   = false
      pending break event                    = true
   feature information (1/ecx):
      PNI/SSE3: Prescott New Instructions     = true
      PCLMULDQ instruction                    = false
      64-bit debug store                      = true
      MONITOR/MWAIT                           = true
      CPL-qualified debug store               = true
      VMX: virtual machine extensions         = true
      SMX: safer mode extensions              = false
      Enhanced Intel SpeedStep Technology     = true
      thermal monitor 2                       = false
      SSSE3 extensions                        = false
      context ID: adaptive or shared L1 data  = true
      FMA instruction                         = false
      CMPXCHG16B instruction                  = true
      xTPR disable                            = true
      perfmon and debug                       = true
      process context identifiers             = false
      direct cache access                     = false
      SSE4.1 extensions                       = false
      SSE4.2 extensions                       = false
      extended xAPIC support                  = false
      MOVBE instruction                       = false
      POPCNT instruction                      = false
      time stamp counter deadline             = false
      AES instruction                         = false
      XSAVE/XSTOR states                      = false
      OS-enabled XSAVE/XSTOR                  = false
      AVX: advanced vector extensions         = false
      F16C half-precision convert instruction = false
      RDRAND instruction                      = false
      hypervisor guest status                 = false
[...]
#

所以我的问题是:有人知道如何在那个 CPU/主板上启用虚拟化,还是我只是运气不好?

debian
  • 1 个回答
  • 1527 Views
Martin Hope
umläute
Asked: 2016-12-14 09:02:13 +0800 CST

动态更新区域子域

  • 1

我正在运行bind9(9.9.5)DNS 服务器(在 Debian/jessie 上)。我已将一个区域配置为允许动态更新,并希望TXT为该区域内的特定主机添加记录。

这是一个示例设置(named.conf)

zone "example.com" {
    type master;
    notify yes;
    allow-update { key secret-key; };
    file "/etc/bind/db.example.com";
};

以及随附的 db.example.com 文件:

$ORIGIN .
$TTL 604800 ; 1 week
example.com     IN SOA  dns.example.com root.example.com. (
                1          ; serial
                10800      ; refresh (3 hours)
                3600       ; retry (1 hour)
                604800     ; expire (1 week)
                86400      ; minimum (1 day)
                )
            NS  dns.example.org.
            NS  dns1.example.org.
            NS  dns2.example.org.
$ORIGIN example.com.
*           MX  10 mail.example.com.
mail        A   127.0.0.1
http        A   127.0.1.1

使用我的secret-key,我可以直接在该区域中动态添加新记录(例如创建TXT记录_acme-challenge.example.com)。

但是,我真正想做的是为区域内的主机添加子域记录。例如,在区域example.com中,有一条A记录mail.example.com,我想为其动态添加一条TXT记录_acme-challenge.mail.example.com。

不幸的是,我的域名服务器不喜欢这样并且拒绝使用

密钥:更新区域“example.com/IN”:更新失败:对更新区域没有权威(NOTAUTH)

我可以将该记录手动添加到 db 文件中,它工作正常。

 _acme-challenge.mail TXT "secretstring"

但是,我想自动执行此操作(鉴于这是通过DNS-01质询部署letsencrypt证书的一部分),因此手动设置记录不是一种选择。

任何想法出了什么问题以及如何自动更新我的 TXT 记录?

更新:脚本

实际的更新是用 python-dnspython 实现的,看起来像:

update = dns.update.Update("mail.example.com", ...)
update.add("_acme-challenge", 500, "TXT", token)
response = dns.query.udp(update, name_server_ip)
subdomain bind ddns lets-encrypt
  • 2 个回答
  • 1426 Views
Martin Hope
umläute
Asked: 2016-01-21 01:24:02 +0800 CST

具有固定默认属性的 ldap-overlay

  • 0

我有一个较大的用户群(>>1000),应该能够共同使用一些共享服务。

用户群在缓慢但不断地变化。

尤其是 我们对权限分离不感兴趣(所有用户都是平等的),因此他们可以从权限 pov 共享一个帐户。但是,出于安全原因,我们不能使用共享凭据。幸运的是,所有用户都可以通过 LDAP 获得自己的用户名/密码。

所以我们实现了一个登录服务器(Debian 上的 ssh),人们通过 PAM 和 OpenLDAP 进行身份验证。

现在 LDAP 服务器没有提供太多信息,只提供用户名和身份验证功能。esp,它缺少 aobjectClass: posixAccount和伴随的属性

  • uidNumber
  • gidNumber
  • loginShell
  • homeDirectory

我对 LDAP 服务器的访问非常有限(尤其是,我不能要求添加这些或任何其他属性),基本上它只允许我对用户进行身份验证。

现在好消息是,如果所有用户对这些属性具有相同的值,我并不十分在意。

所以我最终实现了一个使用translucent覆盖来添加缺失属性的代理 ldap 服务器。覆盖数据是通过一个脚本生成的,该脚本从上游 LDAP 数据创建一个精简的 LDIF 文件,然后用于填充半透明数据库。

这工作正常,但我不喜欢它的可维护性 POV:因为用户群正在改变,我需要手动定期更新数据库(它很少改变 - 每隔几个月 - 所以它不是很多工作,但它也容易忘记)。

因为覆盖数据是如此微不足道(所有对象的属性/值都相同),我认为必须有更好的方法。理想情况下,我希望有一个叠加层,它将这些属性添加到所有对象(匹配给定的搜索项)。

为了使事情复杂一点,我们还针对另一个提供posixAccount-data 的 LDAP 服务器对另一个用户群进行身份验证;这个组的用户当然不应该受到其他组所需的所有叠加魔法的影响;我认为这排除了在 PAM 方面所做的任何魔术。

debian
  • 1 个回答
  • 495 Views
Martin Hope
umläute
Asked: 2015-10-23 02:04:09 +0800 CST

nginx 代理:将 ${host} 添加到代理 url

  • 0

我需要nginx-1.6.2在多名称虚拟主机中用作反向代理,其中实际的host-name(由客户端报告)成为代理 URL 的一部分。

基本上我想做一个映射

  • http://example.com/test/foo/bar->http://backend.local:8000/example.com/portal/foo/bar
  • http://test.example.com/test/ping/pong->http://backend.local:8000/test.example.com/portal/ping/pong

我尝试在指令中使用${http_host}and :${host}proxy_pass

server {
    server_name example.com *.example.com;
    listen 80;
    location /test {
        proxy_pass http://backend.local:8000/${host}/portal/
    }
}

502: Bad Gateway但是,当我访问例如时,要么给我一个错误。http://example.com/test/fnurz

如果我替换${host}为固定字符串(例如example.com),它会按预期工作,但显然代理母鸡为http://example.com/test/fnurz和获取相同的 URL http://x.example.com/test/fnurz,这是我试图避免的。

nginx
  • 1 个回答
  • 200 Views
Martin Hope
umläute
Asked: 2015-08-13 07:28:26 +0800 CST

snmp:获取短接口名称而不是长 ifDescr(再次)

  • 2

我正在使用cricket对基于 Debian 的服务器进行一些简单的监控(包括网络设备)。

接口由名称标识(例如eth0,eth1...),并且 cricket 通过在以下位置查找它们将这些名称映射到正确的 OID IF-MIB::ifDescr:

$ snmpwalk -Os -c public -v 1 wheezy 1.3.6.1.2.1.2.2.1.2
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "eth0"
iso.3.6.1.2.1.2.2.1.2.3 = STRING: "eth1"

在我今天将我的机器升级到 Debian/jessie 之前,一切都很顺利。现在报告的接口名称是对品牌的长描述:

$ snmpwalk -Os -c public -v 1 jessie 1.3.6.1.2.1.2.2.1.2
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "Intel Corporation 82576 Gigabit Network Connection"
iso.3.6.1.2.1.2.2.1.2.3 = STRING: "Intel Corporation 82576 Gigabit Network Connection"

虽然我觉得长名字很烦人,但它变得毫无用处,因为它不再是唯一的:因为有问题的机器内置了两个相同的网卡,我只得到了两次相同的名字。

有没有办法snmpd报告短接口名称?

debian
  • 1 个回答
  • 6904 Views
Martin Hope
umläute
Asked: 2015-04-01 02:54:54 +0800 CST

迁移到新的 root-dn

  • 1

我使用(主要)用作用户身份验证(pam,samba,web,...)的后端的 LDAP。

现在我正在尝试将 LDAP 数据库迁移到新的 root-dn。

  • 旧根 dn:dc=local

  • 新的根 dn:dc=example,dc=com

这个过程很简单,例如

  • 转储到 ldif

  • 更改 ldif 文件中的 root-dn(例如使用 sed)

  • 删除旧数据库

  • 导入 ldif

现在,我想确保众多客户端不会经历过多的停机时间(由于更改了 root-dn),因为(afaict)所有客户端都在配置中硬编码了 root-DN。

我很担心,因为当我切换 root-dn 时,我必须手动更新每个客户端,所以最后更新的客户端将有较长的停机时间(嗯,不是停机时间,但用户将无法进行身份验证......)

所以我正在考虑在新旧 root-dn 下暴露我的树,直到所有客户端上的配置都被迁移,最终使用proxy.

我的方法是否正确(例如最佳实践)?有(更好的)替代品吗?

ldap
  • 2 个回答
  • 95 Views
Martin Hope
umläute
Asked: 2013-11-08 04:57:16 +0800 CST

使 logrotate 仅在服务启动时旋转

  • 3

每当我启动服务时,我都想进行日志文件轮换,但从不“自动”。

我正在运行一个基于 python 的服务,该服务记录到特定的日志文件。该服务(当前)不支持重新打开其日志文件的通知(例如USR1陷阱)。此外,不能为日志文件轮换重新启动该服务(它会产生连续的音频流,不应中断)。

我正在运行的系统没有硬件时钟,因此每次系统启动时都会重置时钟,这使得源自同一文件中不同重启的日志条目很乏味(我多次获得相同的日期)。

我还想保留各种靴子的历史。

所以这个想法是在每次启动时(仅)使用日志轮换。

在启动服务之前运行之类的东西/usr/sbin/logrotate --force /etc/logrotate.d/myservice应该可以解决问题。

现在我的问题是,是否可以通过/etc/logrotate.d/myservice这种方式配置 log-rotationg,使其永远不会自动运行?

一个简单的解决方案是不将我的 logrotate-config 文件存储在 中/etc/logrotate.d/,而是“在其他地方”。

但是,我想让我的用户能够在一个众所周知的地方找到 logrotate-config(这样他们就可以随意修改配置)。

linux
  • 2 个回答
  • 2863 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve