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-32757

Richard T's questions

Martin Hope
Richard T
Asked: 2023-05-21 10:08:48 +0800 CST

Fedora Server 38 作为防火墙/网关的网络问题

  • 5

这个环境几乎所有东西都是双胞胎,包括两个网络服务器/防火墙/网关系统,而且它们的版本已经很老了,所以我决定从其中一个升级Fedora Server 30 to 38。当然,这个想法是将两者都“带入现代时代”,但一次一个。

我的时机很奇怪,因为就在我开始升级的同时,甚至没有接触(物理或电子)另一台服务器,它就决定失败了!所以,现在我有一个“服务器停机”的场景。-呃- 不幸的是,这也意味着我没有可供查看的工作示例。

我没有接触的那个显然有硬件问题,我现在无法解决它们,所以我专注于我已经开始的那个,它现在已经从 Fedora Server 38 的升级/更新中出现了。 . 除了它有一个问题,它不是一个真正的网关!确认!

需要明确的是,从它你可以很好地访问互联网和内部网络。但它并没有通过它传递位。

当然,它都是通用的 Fedora Server(Fedora Core 38,服务器版本进行了任何调整)并且 30 和 38 之间的任何差异都可能是巨大的,尽管这里最重要的是网络。

它有两个 NIC,我按原样配置它们(即 IP 地址、掩码等),实际上安装过程似乎有助于识别哪个 NIC 是内部的,哪个是外部的。我使用了我过去的经验,并且非常确定我做对了。

事实上,一旦启动,我就可以立即通过内部网络通过 ssh 访问该框。而且,好吧,在这样的系统上有很多事情要做,但很快我就了解了这一切的防火墙方面。(那时我没有意识到另一个系统没有响应。)

我做的第一件事是将接口移动到内部和外部区域,然后打开外部区域的伪装。我使用 forward-port 命令等转发邮件等等,最终得到的外部看起来像这样:

# firewall-cmd --zone=external --list-all
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources:
  services: http https ssh
  ports:
  protocols:
  forward: yes
  masquerade: yes
  forward-ports:
        port=25:proto=tcp:toport=25:toaddr=192.168.1.1
  source-ports:
  icmp-blocks:
  rich rules:

另一个,内部:

# firewall-cmd --zone=internal --list-all
internal (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp2s0
  sources:
  services: dhcpv6-client mdns samba-client ssh
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

顺便说一句,我没有向内部区域添加任何服务——我猜它们显然只是默认设置。

我花了很多时间在路由上,因为从一开始我就觉得它很麻烦。然而,现在是这样的:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         router           0.0.0.0         UG    100    0        0 enp1s0
router           0.0.0.0         255.255.255.255 UH    100    0        0 enp1s0
192.168.1.1     0.0.0.0         255.255.255.0   U     101    0        0 enp2s0
192.168.1.1     0.0.0.0         255.255.255.0   U     101    0        0 enp2s0

仅供参考,这个版本的 Fedora 不使用 IP 表,而是使用网络管理器——我从一开始就讨厌的工具集,但现在看起来更成熟了。无论如何,在网上可以找到的大多数资料都谈到了这种较旧的策略,但没有任何帮助。但是,此页面为人们指明了正确的总体方向。

更新 1

我得到了显然备份失败的旧硬件。这并不难做到,但它增加了我们的胜算。...我说“我们的”,因为一位同事加入了我的行列;他专注于旧盒子,而我专注于新盒子。

NEITHER 没有将位作为网关/防火墙传递,这让我感到困惑。然而,我的同事提醒说,一个系统已经不能正常工作,可能是由于尝试让特定的 OpenVPN 安装运行失败。既然他做了那项工作,那么,他将继续在那里。

这必须很简单;什么基本原则被忽视了?!

gateway
  • 1 个回答
  • 121 Views
Martin Hope
Richard T
Asked: 2023-01-26 11:43:13 +0800 CST

长期安装的 postfix 已成为开放中继;我怎样才能弄清楚如何阻止它?

  • 7

这个服务器系统从那时起(我认为大约是 1997 年)就开始提供电子邮件服务Red Hat v 1.1,现在在 Fedora Core 37 上;通过沿途的许多硬件和操作系统更新,它一直保持最新状态。而且,我们很早就选择了postfix并且dovecot仍在使用它们。而我一直都是系统破坏者。

一周前的明天,/var由于备份脚本中的错误,我们的树被消灭了 - doah!并且它需要“从头开始”将操作系统完全重建为相同版本。Fedora Server 37所有未包含在发行版中的软件都是通过dnf install. 而且,我们从良好的备份中获得了完整的配置。

两天前的星期一,我注意到系统明显迟缓,但没有时间查看。我还注意到我们与互联网的链接似乎存在性能问题。那是一个线索...

然后,我决定spamassassin重新开始工作——像这样配置一个成熟的环境需要时间!并且SA在丢失之前已被禁用/var,因此它不会重新启动。无论如何,当我去检查/etc/var/log/maillog它是否正常工作时,我发现所有这些邮件都是中继消息?!威士忌探戈狐步舞?!

然后我检查了邮件队列——仅 Gmail 就有数十万!哇!

现在,我已经关闭了所有出站电子邮件:

default_transport = error: Sorry spammers, we're not sending your email! So sue us!

并开始试图找出问题所在。

我确实发现有些人声称自己是127.0.0.1,所以我关闭了它。我有条不紊地检查了所有各种(和丰富的)postfix配置选项,但找不到任何错误......

因此,我使用了其中一个脚本测试开放中继测试网站,这些网站尝试了十几种不同的黑客攻击,垃圾邮件发送者使用这些黑客攻击来说服配置良好的服务器中继他们的邮件,但我找不到任何 -上次我看的时候,有六个这样的网站!(他们怎么了?!如果你知道,请告诉我!)

所以我用了nmap。它没有做全面的工作,或者如果可以,我不熟悉如何做。但我转身重新发送并进行了测试。在测试中,它说:

Host is up (0.00027s latency).
rDNS record for <ip-addr>: <reverse-lookup-map>

PORT    STATE    SERVICE
25/tcp  open     smtp
|_smtp-open-relay: Server doesn't seem to be an open relay, all tests failed
465/tcp filtered smtps
587/tcp open     submission
|_smtp-open-relay: Server isn't an open relay, authentication needed
MAC Address: [its mac address] (controller's mfg name)

Nmap done: 1 IP address (1 host up) scanned in 22.03 seconds

我能找到的仅有的两个网站查看它并报告没有响应 - 一个加载但没有响应然后当我尝试重新加载页面时,它不会重新加载,第二个一直说它很忙,稍后再试。

所以......回到“手工”弄清楚。

好的,那么现在我们该怎么办?

所有对设置信息的请求都会很高兴地得到满足,但是配置文件首先是巨大的,其次它包含了很多我们不想要的私人信息。

更多信息- 应 anx 的要求,输出postconf -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
compatibility_level = 3.6
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 10
debug_peer_list = <past-not-current-external-ip>
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
default_transport = error: <our-middle-finger-to-spammers>
disable_vrfy_command = yes
html_directory = no
inet_interfaces = all
inet_protocols = all
local_recipient_maps = unix:passwd.byname $alias_maps
mail_owner = postfix
mailbox_size_limit = 1073741824
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 536870912
meta_directory = /etc/postfix
milter_default_action = accept
mydestination = $myhostname, localhost.$mydomain, localhost, <list-of-60ish-domain-names>
mydomain = <primary-domain>
myhostname = mail.<primary-domain>
mynetworks = <list-of-5-internal-ips>
mynetworks_style = subnet
newaliases_path = /usr/bin/newaliases.postfix
proxy_interfaces = <a-non-extant-external-ip-we-used-to-have>
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix/README_FILES
relay_domains = $mydestination, <list-of-11-internal-ips-most-don't-exist-now>
sample_directory = /usr/share/doc/postfix/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
shlib_directory = /usr/lib64/postfix
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_tls_CApath = /etc/pki/tls/certs
smtp_tls_security_level = may
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, check_helo_access hash:/etc/postfix/helo_access, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_sender_access hash:/etc/postfix/sender_access, check_client_access hash:/etc/postfix/pop-before-smtp, permit_mynetworks
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = /var/spool/postfix/private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access hash:/etc/postfix/pop-before-smtp, reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_tls_cert_file = /etc/letsencrypt/live/<primary-domain-name>/fullchain.pem
smtpd_tls_dh1024_param_file = $config_directory/dh2048.pem
smtpd_tls_dh512_param_file = $config_directory/dh512.pem
smtpd_tls_key_file = /etc/letsencrypt/live/<primary-domain-name>/privkey.pem
smtpd_tls_security_level = may
soft_bounce = no
strict_mailbox_ownership = no
unknown_local_recipient_reject_code = 550

更多信息- 大多数也是应 anx 的要求:

  • Postfix使用端口 25 ( smtp) 和 587 (submission或msa)。

  • Dovecot使用端口 993 ( imaps) 和 995 ( pop3s),同时侦听被(多个)防火墙阻止的143 和 110 ( imap/ )。pop

    postconf -M

    smtp inet n - n - - smtpd

    提交 inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes

    拾取 unix n - n 60 1 拾取

    清理 unix n - n - 0 清理

    qmgr unix n - n 300 1 qmgr

    tlsmgr unix - - n 1000?1 tsmgr

    重写 unix - - n - - trivial-rewrite

    反弹 unix - - n - 0 反弹

    延迟 unix - - n - 0 反弹

    跟踪 unix - - n - 0 反弹

    验证 unix - - n - 1 验证

    刷新 unix n - n 1000?0同花顺

    proxymap unix - - n - - proxymap

    proxywrite unix - - n - 1 proxymap

    smtp unix - - 名词 - - smtp

    中继 unix - - n - - smtp -o syslog_name=postfix/$service_name

    showq unix n - n - - showq

    错误 unix - - n - - 错误

    重试 unix - - n - - 错误

    丢弃 unix - - n - - 丢弃

    本地 unix - nn - - 本地

    虚拟 unix - nn - - 虚拟

    lmtp unix - - 名词 - - lmtp

    铁砧 unix - - n - 1 铁砧

    scache unix - - n - 1 scache

    postlog unix-dgram n - n - 1 postlogd

尚未获取的信息:

  • “本地添加的接收标头”中有什么。
  • 分析给定队列 ID 的后缀日志“堆栈”。

保留程序!

只是想发送一些重要的电子邮件,但不想让垃圾邮件发送者单独使用我们的系统,我决定尝试关闭......dovecot我发现关闭dovecot并恢复default_transport设置允许出站正常工作并且Postfix没有不要成为开放中继!耶!

当然,它不适用于我们的非本地用户(数量 > 1 且 < 100),但是,嘿,“你必须做你必须做的……”

我认为这大大转移了注意力;dovecot是问题。

postfix
  • 1 个回答
  • 83 Views
Martin Hope
Richard T
Asked: 2022-10-06 14:38:40 +0800 CST

在其他内部系统上完美运行的防火墙系统上安装 NFS 安装点时遇到问题:如何找到原因?

  • 0

这是在 Fedora Core 35 上:这个环境已经成熟,并且有一些称为防火墙或网关的系统,我们第一次希望对其中一个系统进行 NFS 共享。

在客户端上的挂载出现问题后,我通过使用 /etc/fstab 条目的复制粘贴在不同的内部系统上进行相同的挂载来证明服务器的配置很好。我认为这一定是防火墙问题,所以我将接口更改为“受信任”区域。但我仍然得到:

mount.nfs: access denied by server while mounting 192.168.1.1:/fu

所以,我做了一些研究并想出办法:

rpcdebug -m nfsd -s all

但是我没有得到任何与所讨论的坐骑相关的信息——事实上,什么都没有进入/var/log/messages……这不是我应该看的地方吗?!(其他与 nfs 相关的项目都在那里,但不是这个挂载。)

所以,我尝试了我们的备份服务器并得到了相同的(空)结果。而且我还尝试从使用主机名和使用客户端上的 IP 地址进行更改 - 无论哪种方式,结果都相同,除了我报告的内容。)

nfs
  • 2 个回答
  • 38 Views
Martin Hope
Richard T
Asked: 2020-08-17 14:32:43 +0800 CST

在 Fexora Server 32 上,新的 cron 作业没有使用 systemctl list-timers --all 显示

  • 0

我刚刚上线了一台新服务器,并按照旧服务器关于 cron 的方式对其进行了配置,但作业没有运行。因此,我仔细检查了配置,并检查了当前的 cron 是否与旧的 cron 一样。是的,看起来是这样!

因为它是一个“systemd”类型的系统,所以我运行了适当的命令来查看它认为的计划,这就是我得到的:

# systemctl list-timers --all
NEXT                        LEFT          LAST                        PASSED     UNIT                         ACTIVATES
Sun 2020-08-16 15:15:55 PDT 5min left     Sun 2020-08-16 14:15:54 PDT 54min ago  dnf-makecache.timer          dnf-makecache.service
Sun 2020-08-16 20:57:26 PDT 5h 47min left Sat 2020-08-15 20:57:26 PDT 18h ago    systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2020-08-17 00:00:00 PDT 8h left       Mon 2020-08-10 00:00:00 PDT 6 days ago fstrim.timer                 fstrim.service
Mon 2020-08-17 00:00:00 PDT 8h left       Sun 2020-08-16 00:00:01 PDT 15h ago    mlocate-updatedb.timer       mlocate-updatedb.service
Mon 2020-08-17 00:00:00 PDT 8h left       Sun 2020-08-16 00:00:01 PDT 15h ago    unbound-anchor.timer         unbound-anchor.service

5 timers listed.

这一切都很好,但它没有显示我的具体补充——其中任何一个。所以,我做了我认为正确的事情,我跑了systemctl reload crond.service,得到了相同的输出。所以我重新启动并仍然得到相同的输出!

我的补充是:

  1. cron.d: local - 一组不在通常日程安排上的本地事务
  2. cron.daily:backup.daily logrotate mailbox_check
  3. cron.monthly; backup.monthly,和;
  4. cron.weekly; 每周备份

我已经完全准备好相信我在配置中做错了什么,或者也许还有其他问题说明为什么我不认为他们跑了但他们跑了。但是我没有看到systemctl list-timers 输出中的其他条目,这些条目是在我开始使用我自己的添加之前就已经安装的软件包放在那里的。

也许问题是我对列表计时器输出不熟悉?难道不应该也显示这些其他工作吗?

cron fedora systemctl
  • 1 个回答
  • 69 Views
Martin Hope
Richard T
Asked: 2020-08-15 19:56:13 +0800 CST

在现代 Linux 上,将操作系统的所有活动写入移动到其他磁盘是安全的还是一个坏主意?

  • 0

我已经使用 SSD 足够长的时间来考虑保护它们免受由于过度写入而导致的过早故障。所以,我已经成功地将 /var 移动到其他磁盘(无论是其他 SSD 还是 HDD)并且它工作正常,但我对移动 /run 或任何其他写入区域有点犹豫。也许我的担心是没有根据的。

我不一定熟悉系统盘的所有写入区域。当然,最常用的是 /var,我认为 /run 是下一个,但这个问题实际上是在询问所有这些。如果您知道除 /var 和 /run 之外的其他内容,那么首先我想知道它们,其次我想知道它们是否可以安全移动。

我只是对现代 Linux 中的引导环境知之甚少(我目前主要在 Fedora Server 32 上)。如果这些替代写入位置所在的磁盘在需要时尚未安装,那么这显然是行不通的。在查看系统日志时,很难判断所述转换何时发生。

收到的评论似乎没有完全理解要点:

难道只有读取的 SSD 寿命会更长吗?

如果是真的,从它们是写受限的定义来看,这似乎已成定局是真的,那么,将尽可能多的写活动移出系统磁盘以保持其生命是不是一个有价值的练习?

我想有些人就是不在乎这个。我猜说人们资金充足,可以轻松负担工时和其他任何费用。但是在这些艰难时期,尤其是在这种大流行期间,当小型组织承受着压力时,这个问题非常中肯。... 这不是驱动器的成本,而是更换它的劳动力。自己不资助此类事情的人可能不会欣赏所提出的挑战。

ssd fedora-32
  • 1 个回答
  • 152 Views
Martin Hope
Richard T
Asked: 2020-08-12 10:14:57 +0800 CST

如何阻止 mailx 触发 Postfix 的邮件投递报告?

  • 1

我有一个脚本需要发送电子邮件来通知系统事件和状态——我认为这是一个非常常见的用例——我选择mailx在我的 Fedora 服务器系统上使用它(为什么我不再记得了)。

一切都很好而且很花哨,直到最近的一次升级之后,我开始每发送一封电子邮件就收到一封额外的电子邮件。第一行标识邮件系统主机。第二行内容如下:

Enclosed is the mail delivery report that you requested.

除了我没有故意或自愿要求电子邮件发送报告!他们刚刚开始出现在升级后。(或者我的客户端垃圾邮件过滤器 - 雷鸟)正在为我杀死他们,我想?!很奇怪,有时候做得很好,然后突然什么都没抓到?!-耸耸肩-)

我想我可以在我的邮件阅读器的“过滤器”中使用一个明确的指令来摆脱这些,但我宁愿它们不是首先生成的——发送的电子邮件是有价值的,我只是不需要或想要这些“交付报告”。

我从mailx 的手册页开始。那里没有什么用处,或者,至少,我不认识这种类型的东西的任何设置。mailx我强烈怀疑这是由and的交互产生的Postfix,尽管这只是一种预感。每次调用 时,我都会得到一份邮件状态报告,但是当我通过相同的安装通过或从同一帐户mailx发送邮件时,却没有。alpineThunderbirdPostfix

这是代码使用的模式:

/bin/mailx -n -s "subject" -s from=from_address to_address < content

该-n方法不读取任何本地配置。表示设置一个“-S变量”,在这种情况下指定一个发件人地址。

我取了 Postfix 队列 ID 并使用 grep 在以下位置找到它/var/log/maillog:

Aug 11 12:14:32 fs1 postfix/pickup[233386]: C834918E658F: uid=nnnn from=<SystemUsername>
Aug 11 12:14:32 fs1 postfix/cleanup[237953]: C834918E658F: message-id=<5f32ee18.AXOWyPor64xZtCVH%From@EmailAddress>
Aug 11 12:14:32 fs1 postfix/qmgr[4780]: C834918E658F: from=<SystemUsername@PostfixsPrimaryFQDN>, size=1511, nrcpt=1 (queue active)
Aug 11 12:14:32 fs1 postfix/local[237956]: C834918E658F: to=<Recipient@EamilAddress>, relay=local, delay=0.14, delays=0.05/0/0/0.08, dsn=2.0.0, status=sent (delivered to mailbox)
Aug 11 12:14:32 fs1 postfix/bounce[238851]: C834918E658F: sender delivery status notification: E2BC718E6D06
Aug 11 12:14:32 fs1 postfix/qmgr[4780]: C834918E658F: removed

我注意到有时送货地址会扩大,有时则不会。因此,我认为,这将排除已知的怪癖,即Postfix当被要求进行扩展验证时发送状态电子邮件,“这是否存在”检查。

在这种情况下,所有交付都是本地的,但它们可能是远程的——我只是现在没有现场发生这种情况——这是一个生产中的服务器。

我一直在努力寻找在哪里可以找到它们,但大多数我的网络搜索都指向我讨论退回状态消息的材料。不对,错了!

系统:

Fedora Server 32 (booted into 31 presently)
mailx 12.5 7/5/10
postfix-3.5.4-2.fc32.x86_64
postfix fedora-32 mailx
  • 1 个回答
  • 1313 Views
Martin Hope
Richard T
Asked: 2020-08-03 22:37:09 +0800 CST

升级 Fedora,现在 Samba 麻烦:如何在 Fedora Server 32 上正确配置 Samba?

  • 0

我用一个全新的服务器替换了我的老化服务器(所以也许“替换”会比“升级”更准确)但当然我收获了所有旧的配置文件等,以及我唯一重要的功能不去是桑巴舞。

我已经为此工作了很多天,甚至今天升级Fedora Server 5.7.11-200.fc32.x86_64以确保现在没有修复一些错误。绝对没有安装错误或更新错误。而且,值得一提的是,有十几个 samba 包:

samba-dc-provision-4.12.5-0.fc32.noarch
samba-test-libs-4.12.5-0.fc32.x86_64
samba-winbind-clients-4.12.5-0.fc32.x86_64
samba-libs-4.12.5-0.fc32.x86_64
samba-winbind-4.12.5-0.fc32.x86_64
samba-dc-bind-dlz-4.12.5-0.fc32.x86_64
samba-winbind-krb5-locator-4.12.5-0.fc32.x86_64
samba-common-tools-4.12.5-0.fc32.x86_64
samba-devel-4.12.5-0.fc32.x86_64
python3-samba-dc-4.12.5-0.fc32.x86_64
samba-dc-libs-4.12.5-0.fc32.x86_64
samba-vfs-cephfs-4.12.5-0.fc32.x86_64
python3-samba-4.12.5-0.fc32.x86_64
samba-krb5-printing-4.12.5-0.fc32.x86_64
samba-vfs-glusterfs-4.12.5-0.fc32.x86_64
samba-winbind-modules-4.12.5-0.fc32.x86_64
samba-client-libs-4.12.5-0.fc32.x86_64
samba-4.12.5-0.fc32.x86_64
samba-pidl-4.12.5-0.fc32.noarch
samba-client-4.12.5-0.fc32.x86_64
samba-common-libs-4.12.5-0.fc32.x86_64
samba-common-4.12.5-0.fc32.noarch
samba-dc-4.12.5-0.fc32.x86_64
samba-test-4.12.5-0.fc32.x86_64

我试着做我的功课,但我找不到任何对搜索引擎有帮助的例子。我尝试过的配置文件内容比我记得的还要多——当然有几十个,或者一百多个,这取决于你的计数方式。我发布各种配置文件的时间可能并不丰富,但是对于我希望应该可以工作并且适用于 Fedora 32 的示例配置,请参阅下面的链接。但是,旧的配置数据在下面找到。

无论配置文件说什么,错误消息都是相同的 - 至少到目前为止:

At this time the 'samba' binary should only be used for either:
  'server role = active directory domain controller' or to access the ntvfs file server with 'server services = +smb' or the rpc proxy with 'dcerpc endpoint servers = remote'
  You should start smbd/nmbd/winbindd instead for domain member and standalone file server tasks
[2020/08/02 15:48:33.190413,  0] ../../lib/util/become_daemon.c:121(exit_daemon)
  exit_daemon: daemon failed to start: Samba detected misconfigured 'server role' and exited. Check logs for details, error code 22

当然,这首先来自 journalctl 程序,然后同样来自 /var/log/samba/ 中的一个日志,并且在阅读了每个日志以确保之后,没有进一步的信息可以从那里找到,与消息中的自鸣得意的建议相反。

我做的第一件事是试图弄清楚这是想说什么:

您应该为域成员和独立文件服务器任务启动 smbd/nmbd/winbindd

我已经尽我所能跟进了 smbd、nmbd 和 winbindd,但不,这些不能简单地启动,如前所述,显然需要一个博士学位来弄清楚如何在 Fedora 上处理它们——或者我只是不明白我在读什么,虽然我不是新手。有趣的是,在任何启动之后,都有两个 winbind 进程:

/usr/sbin/winbindd --foreground --no-process-group

但是我的客户根本无法连接。而且,我能想到的最好的情况是,这是一个我们无论如何都不想要的域控制器,并且nmdb似乎是一个NetBios工具,我不知道它如何帮助将 Linux 文件提供给 Windows。至于smbd,是的!这听起来就像我们这些年来一直在使用的一样!但是......我还没有找到任何关于它的信息 - 我什至要求 dnf 安装它!不,抱歉,不幸的是,它是短暂的。

为了明确这一点,我认为肯定smbd是需要的,但不,这些都不起作用:

# systemctl start smbd
Failed to start smbd.service: Unit smbd.service not found.
# dnf install smbd
Last metadata expiration check: 1:27:03 ago on Mon 03 Aug 2020 08:08:24 AM PDT.
No match for argument: smbd
Error: Unable to find a match: smbd

我很乐意尝试这些方面的其他东西 - 欢迎提出建议!(值得注意的是,我试图安装“samba *”,以为可能缺少一个包,samba-winexe-2:4.12.5-0.fc32.x86_64,所以我当然安装了它。systemctl start smbd仍然没有做任何事情,但是winexe添加了一个图像,但它没有手册页,systemctl也没有也可以用它做任何事情。但是:

# winexe -h
winexe version 4.12
This program may be freely redistributed under the terms of the GNU GPLv3
Usage: winexe [OPTION]... //HOST[:PORT] COMMAND
Options:
  -h, --help                                  Display help message
  -V, --version                               Display version number
  -U, --user=[DOMAIN/]USERNAME[%PASSWORD]     Set the network username
  -A, --authentication-file=FILE              Get the credentials from a file
  -N, --no-pass                               Do not ask for a password
  -k, --kerberos=[yes|no]                     Use Kerberos
  -d, --debuglevel=DEBUGLEVEL                 Set debug level
      --uninstall                             Uninstall winexe service after
                                              remote execution
      --reinstall                             Reinstall winexe service before
                                              remote execution
      --runas=[DOMAIN\]USERNAME%PASSWORD      Run as the given user (BEWARE:
                                              this password is sent in
                                              cleartext over the network!)
      --runas-file=FILE                       Run as user options defined in a
                                              file
      --interactive=0|1                       Desktop interaction: 0 -
                                              disallow, 1 - allow. If allow,
                                              also use the --system switch
                                              (Windows requirement). Vista
                                              does not support this option.
      --ostype=0|1|2                          OS type: 0 - 32-bit, 1 - 64-bit,
                                              2 - winexe will decide.
                                              Determines which version (32-bit
                                              or 64-bit) of service will be
                                              installed.

这很有趣,但我不知道该怎么处理它,它的用途。所以,我继续前进。

然后,我专注于人们可能认为可能适用于“服务器角色”的明显变化,检查了文档并花费了无数小时在线寻找“服务器角色”问题的解决方案。我已经尝试了很多变体——不仅仅是“服务器角色”,而是整个配置文件——我什至都记不起它们了。而且,文档大多看起来很旧,但我确实认为这是最新的,但它没有产生有用的结果。我很努力,但我忽略了什么吗?也许我在 Windows 世界中不够专业,不知道他们在说什么?例如,域控制器可以只为我熟悉的目录提供服务吗?我认为这正是我不想要的。

在广泛的网络搜索中,唯一接近的东西可以在这里找到。它适用于 Fedora 32,但他们的示例对我不起作用 - 服务器无法启动或提供有用的错误消息。

桑巴舞需要什么:

在 Samba 安装在这里的 20 多年中,它提供了完美的服务,就像 NFS 一样,使用 Workgroup 范式为本地网络上的 Windows 机器提供 Linux 目录。尽管打印机支持很有用,但域没有帮助,也根本不需要。系统必须具有读写权限、简单但有效的用户名/密码方案,以及相当好的权限。大概有 24 年了——我已经迷失了方向——Samba 在这家店里一直担任这个角色。是的,这些系统都比较旧,比如 Windows 7,而且我们根本不关心域控制器——发现它相当专制和独裁,没有我们想要的。(还是我们?)

值得补充的是,这是在仅限内部的网络上,SE linux 不是问题——服务器甚至不会启动!

那么,简单的系统升级是否会结束我们与 Samba 的关系 - 并迫使我们重新考虑 windows?!(这很令人抓狂。)

旧配置:

评论者 Michael Hampton 想要查看旧配置,尽管我看不到相关性,因为我将使用任何允许服务器启动的配置文件运行,并以现代方式重新进行配置。但是,对于像 Michale 这样的人,给你 - 首先,系统:

Server: 3.19.3-200.fc21.x86_64
Packages:
samba-winbind-4.1.17-1.fc21.x86_64
samba-client-4.1.17-1.fc21.x86_64
samba-libs-4.1.17-1.fc21.x86_64
system-config-samba-1.2.100-3.fc21.noarch
samba-common-4.1.17-1.fc21.x86_64
samba-winbind-modules-4.1.17-1.fc21.x86_64
samba-4.1.17-1.fc21.x86_64

配置文件数据 - 来自 testparm,这就是你当年的做法:

Server role: ROLE_STANDALONE
[global]
        workgroup = OurWorkgroup
        server string = Samba Server Version %v
        log file = /var/log/samba/log.%m
        max log size = 50
        idmap config * : backend = tdb
        cups options = raw

[printers]
        comment = All Printers
        path = /var/spool/samba
        guest ok = Yes
        printable = Yes
        print ok = Yes
        browseable = No

[Share1]
        path = /opt/samba/Share1
        username = fred clara 
        write list = fred, clara
        read only = No

你不能/不能从 testparm 得到的一点点:

security = user
bassdb backend = tdbsam

好的,就是这样——没有别的了。我的意思是配置文件中没有其他内容。配置文件中有很多东西被注释掉了,但是,好吧,它被注释掉了!

windows samba fedora-32
  • 2 个回答
  • 1327 Views
Martin Hope
Richard T
Asked: 2016-12-10 08:29:03 +0800 CST

Apache 上的 JavaScript“AH01215:(8)Exec 格式错误”“头文件前的脚本输出结束”

  • 0

终于到了将 JavaScript 应用到特定网站的时候了,所以我在测试子目录中编写了一些可以正常工作的代码,但是当我将其部署到网站时,我遇到了问题。当我尝试使用不在目录或调用它的页面所在的子目录中的脚本文件时,问题似乎是唯一的。这将是一个阻碍,因为站点范围内需要新功能,并且目录结构会根据我们不需要进入的其他机制动态更改;调用顶级脚本的能力至关重要。

因此,我将其全部剥离为两行非常简单的 JavaScript 来帮助阐明问题;当它包含在调用 html 所在目录中的文件中时,它可以工作,或者从那里的子目录,或者如果我通过指向另一个位置的链接在同一目录中引用它,那也很好。但是,如果我尝试以任何其他方式引用脚本文件,则会失败:

[Thu Dec 08 12:08:26.643037 2016] [cgi:error] [pid 27403] [client xx.xx.xx.xx:46247] AH01215: (8)Exec 格式错误:'/usr/www/http 的 exec /js/test.js' 失败,引用者:http ://example.com/test/jstest.html [Thu Dec 08 12:08:26.643548 2016] [cgi:error] [pid 27403] [client xx.xx. xx.xx:46247] 标头之前的脚本输出结束:test.js,引用:http ://example.com/test/jstest.html

当然,这里 xx.xx.xx.xx 是服务器的 IP,“example.com”是有问题的域,路径 '/usr/www/http' 是 Apache 服务于该域的顶级目录网站来自。

我已经阅读了很多关于这方面的材料,我知道 Apache 配置文件很重要......我尝试设置 ScriptAlias 并且有一些关于它的问题,我似乎无法弄清楚:

  1. 究竟如何在 HTML 代码中引用“ScriptAlias”目录中的脚本 - 以斜杠开头?是否有一些特殊字符可以说“站点顶部”?和;
  2. 整个站点是否只允许一个唯一的 ScriptAlias 目录,或者一个可以有多个要搜索的目录 - 如果是这样,您如何指定它们、ScriptAlias 的多个定义、逗号分隔列表等?和;
  3. 我们可以为每个 VirtualHost 设置一个吗?我们是否通过在虚拟主机定义中放置一个 ScriptAlias 来做到这一点?

为了使测试更容易一些,我在不同目录中的同名文件中创建了多个几乎相同代码的实例,并稍微更改了内容,以便我可以很容易地确定哪个位置对什么样的调用生效,一直查看 Apache 日志。以下是其中一个文件的示例:

var myHeading = document.querySelector('h2');
myHeading.textContent = 'website top level js dir';

textContent此代码采用第一个标记并将内容替换为第二行中提供的任何内容。显然,我正在更改textContent以匹配位置。

在 HTML 中,只要调用页面与 test.js 位于同一目录或父目录中,或者如果存在指向 test.js 的链接位于同一目录或一个子目录:

<script src="test.js"></script>
<script src="js/test.js"></script>
<script src="http://example.com/test/js/test.js"></script>

在 HTML 中,只要调用的 html 不在同一目录或父目录中,无论我尝试什么,像这样的任何引用都会失败:

<script src="/js/test.js"></script>
<script src="/usr/WWW/http/js/test.js></script>
<script src="http://example.com/test/js/test.js"></script>

涉及的目录和文件都归我个人的UID和GID所有(一直都是),权限都是755。

有一个全局 ScriptAlias 定义为(也尝试过对此的变体):

ScriptAlias /js/ "/usr/www/js/"

虚拟主机定义中还有另一个 ScriptAlias 条目 - 不知道它是否有任何作用!据我所知,没有任何效果。...而且,在我尝试的所有目录的主配置文件中都有这样的目录条目:

<Directory /usr/www/http/js/>
   AllowOverride None
   Options ExecCGI
   Require all granted
</Directory>

更新 弗雷迪想要一棵树。美好的:

树从虚拟主机的文档根目录开始——谁在乎呢?从那里:

├── index.html
├── js
│   └── test.js
└── test
    ├── js
    │   └── test.js
    └── testjs.html

3 directories, 4 files
javascript apache-2.4
  • 2 个回答
  • 2170 Views
Martin Hope
Richard T
Asked: 2015-08-01 23:50:39 +0800 CST

fedora dhcpd 名称服务器配置

  • 0

我很难配置更现代的 Fedora DHCP 服务版本来替换旧版本,问题是客户端没有获得适当的 DNS 服务器信息。

我在较早的 Fedora 版本中使用 dhcpd 非常成功地为内部网络提供服务并为客户端提供以下功能:

1)未知客户端仅收到 IP 地址,但未提供外部路由或 DNS 服务器信息。

2)通过 MAC 地址知道的客户端被映射到特定的 IP,给定正确的出站路由和外部 DNS 服务器。

但是,该系统遇到了硬件故障,我一直在尝试转换到具有更年轻操作系统的备用服务器 - FC 21。(旧配置的版本未知,但不是很旧。)我似乎无法得到已知或未知客户端正确的 DNS 服务器信息来解析主机名;他们可以路由,但不能解析名称。

新软件dhcp-4.3.1-12.fc21,它没有相同的配置细节。相反,它能够更新友好的 DNS 服务器——这里不需要这个功能。我对如何正确配置它的所有搜索都揭示了有关使用服务主机知识更新友好 DNS 服务器的详细信息——当然,这与我正在尝试做的事情无关。

这些方向仅涉及称为域名服务器的东西,因此示例如下:

# option domain-name-servers ns1.example.org, ns2.example.org;

目前我自己的条目是针对所有客户端的,并且使用 IP 地址而不是域名,就像这样

option domain-name-servers 67.100.88.26, 64.105.172.26;

如果有人可以确认它domain-name-servers旨在用于指向该 DHCP 服务器应该连接的合作 DNS 服务器以更新有关该 DHCP 服务器的客户端的信息,那将是非常好的。

我很难找到与 dhcpd 服务器和合作 dns 服务器之间的身份验证无关的任何其他与名称服务器相关的配置设置。

值得注意的是,对我来说,为某个位置的条目提供名称而不是 IP 地址似乎相对疯狂,该位置将告诉客户端如何从名称中查找 IP 地址,但该策略可能仅取决于主机自己的 /etc/resolv .conf。

难道新系统只是将系统的resolv.conf数据交给所有客户端?!太可怕了!这意味着一个人不能对未知客户隐藏这些数据!但是,这不可能是因为我的客户没有收到任何 DNS 服务器数据!

fedora
  • 1 个回答
  • 223 Views
Martin Hope
Richard T
Asked: 2015-04-19 12:18:12 +0800 CST

Fedora 21:Firewalld (firewall-cmd) 不会永久分配接口给区域?

  • 4

我在这台机器上安装了 Fedora,它是一个网关/防火墙系统。

安装后,我运行' yum upgrade',所以它应该是最新的Fedora 21 - 我故意落后了一点(不是Fedora 22),所以希望解决任何问题(现在意识到也许我应该有Fedora 20 不见了?!)...

启动后,我为盒子中的两个 NIC 配置了各自的 IP 地址,重新启动,确认它们没问题,然后开始“防火墙”设置。首先,我跑了:

# firewall-cmd --list-all-zones

我确认 firewalld 正在使用的接口名称与其他工具一致(不像过去的 Fedora 版本,例如 19 - 请参阅请求的 FC19 FirewallD 调试帮助:端口未转发)

要将接口放入正确的区域,然后我运行:

firewall-cmd --permanent --zone=external --change-interface=enp2s0
firewall-cmd --permanent --zone=internal --change-interface=enp5s4

..并继续尝试设置端口转发等。有几个步骤,例如打开端口,然后转发它。然而,这些都没有奏效。经过一番挖掘,我发现这篇文章仅在几天前发布,所以我认为它是最新的 - http://www.certdepot.net/rhel7-get-started-firewalld/ - 并按照它的建议进行编辑/etc/sysctl.conf和添加一行阅读net.ipv4.ip_forward=1并激活它# sysctl -p,然而,不幸的是,事情实际上“倒退”了......

以前,与转发端口的连接尝试挂起,但现在它们正在返回:

ssh: connect to host 167.101.97.2 port 6543: No route to host

所以,我试图通过取消端口转发和对 sysctl.conf 的编辑来恢复正常,但事情并没有回到“原始!”

令人难以置信的是,我重新启动,一切都设置为默认设置,我可以安装的条件 - 除了那些区域更改;他们能有什么害处?!但是当系统恢复正常时,接口已经回到了默认区域!

然后我又试了一遍。没有!无论我做什么,重启后接口都停留在“FedoraServer”区域中。我已经在命令行的几个不同位置尝试了 --permanent 。每次响应都是“成功”,然而,每次结果都是它无法在重新启动后幸存下来,即使这是重新启动之间系统上唯一要做的事情。

...足以动摇一个人对他们(否则)最喜欢的 Linux 发行版的忠诚度!...不要让我告诉你我的真实想法!

好的,这肯定是经过测试的;这是怎么做的?(是的,我想了解端口转发,但在这里我只询问在重新启动后幸存的接口的区域更改。)

附加数据:

所以,我有这样的想法,可能是 NetworkManager 妨碍了它,就像它过去经常做的那样。然而,我在那里的任何努力都没有结果。第一个努力是在接口文件中简单地设置 NM_CONTROLLED="no" ,/etc/sysconfig/network-scripts但这会使系统没有接口!

然后我不得不回到我的过去来记住它是以前存在的“network.service”,谢天谢地它已经安装了。所以,我跑了:

systemctl disable NetworkManager.service
systemctl enable network.service

然后接口就可用了。但是,重新启动后 - 并确保执行了必要的firewall-cmd命令(见上文) - 不幸的是,它再次不起作用。

然后我尝试将 NM_CONTROLLED 值更改为“否”,但这也不起作用。

fedora
  • 2 个回答
  • 4429 Views
Martin Hope
Richard T
Asked: 2015-04-16 15:24:41 +0800 CST

使用 Postfix 在 Fedora 21 上配置 spamassassin

  • 0

在现代 Fedora 系统上安装 spamassassin 时,我无法在任何地方找到任何帮助。那里的所有建议都是旧的并且不适用 - 反正我发现。官方文档与 Fedora 无关——它过于笼统并且缺少重要的 Fedora 实现细节。

而且,它是如何完成的还不够直截了当,我知道该怎么做!最重要的缺失环节似乎是我告诉Postfix如何调用spamassassin. 但是,在哪里定义配置选项也完全不清楚。

接下来还有很多,但也许这一切都归结为没有人愿意提供有关 Postfixsmtpd_milter条目应该是什么的适当信息。而且,我尝试过的条目是基于在“/usr/share/doc/spamass-milter-postfix”中找到的数据,这个文件说正确的值是 unix:/run/spamass-milter/postfix/sock 但是目录存在,套接字条目不存在,并返回下面引用的错误消息。

...好吧,更长的故事:

我已经安装了这些版本:

spamass-milter-0.4.0-1.fc21.x86_64
spamass-milter-postfix-0.4.0-1.fc21.noarch
spamassassin-3.4.0-13.fc21.x86_64

同样,这是 Fedora 21。安装的 Postfix 是:

postfix-2.11.3-1.fc21.x86_64

当我运行“man spamassassin”时,它指向我/var/lib/spammassassin/3.004000,其中包含“updates_spamassassin_org.cf”和一个同名的子目录(减去 .cf),该子目录又包含大量 (65) 个 .cf 文件。手册页还指向我,/usr/share/spamassassin其中又包含大量 (63) 类似名称的 .cf 文件,这些文件并不完全相同。

我当然希望我不必为了让 spamassassin 工作而学习所有这些知识!值得庆幸的是——但还不够——手册页还指向我,/etc/mail/spamassassin其中包含一个名为local.cf. 在那里,我找到了一个关于如何安装 spamassassin 并将其与后缀集成的页面的链接 - 此处 (),但该建议还不够,而且似乎不是那么有头绪。例如,它建议的第一件事是创建一个名为“ spamfilter”的组和用户帐户,当然,股票yum安装已经创建了帐户sa-milt,其条目似乎是正确的:

sa-milt:x:982:477:SpamAssassin Milter:/var/lib/spamass-milter:/sbin/nologin 

我想需要在 Postfix 的 main.cf 中创建一个条目来创建或添加一个名为的条目smtpd_milters,以包含告诉 Postfix 如何调用 spamassassin 所需的任何链接。目前我有一个条目openDKIM:

# This is for openDKIM - missing are clamav and spamassassin:
smtpd_milters = inet:localhost:8891

因此,在我看来,创建这些用户帐户是错误的。此外,如果需要这些帐户,为什么安装脚本没有创建用户和组?此外,它还谈到了使用“ service”来启动 spamassassin,但是,正如任何称职的 Fedora 21 系统管理员所知道的那样,您不使用“服务”,而是使用systemctl!

……无视……

该服务确实开始 - 并保持 - 使用:

systemctl start spamassassin

但是,它不起作用。

特别是,在我看来,显然需要在 postfix 中添加一个钩子,但也很明显,非 Fedora 21 的策略失败了。我们被指示更新 Postfix 的 main.cf smtpd_milters 条目 - 这是他们的建议:

# First entry is for openDKIM 
smtpd_milters = inet:localhost:8891, unix:/run/spamass-milter/postfix/sock

但问题是,这行不通。我们在日志文件中得到这个:

postfix/smtpd[18151]: warning: connect to Milter service unix:/run/spamass-milter/postfix/sock: No such file or directory

但是,我似乎找不到smtpd_milters此版本组合的正确条目!

很明显,某处应该有安装说明,但我发现的所有内容都与这些版本无关。请告诉我应该如何做,或者指出我在哪里可以找到适用的合格文章!特别是,什么是合适的smtpd_milters条目或者,我如何创建一个有效的配置组合(smtpd_milters / spamassassin 配置)?

postfix
  • 4 个回答
  • 2785 Views
Martin Hope
Richard T
Asked: 2015-04-13 16:20:58 +0800 CST

Mailman 版本 2.1.18-1 中的错误

  • 0

为了打击垃圾邮件,AOL.com 和 Yahoo.com - 可能还有其他一些大玩家 - 改变了他们的电子邮件接收政策,这有效地切断了他们的客户从以非常合理的方式配置的邮件列表接收电子邮件的能力 -实际上摧毁了全世界数以千计的电子邮件列表。

像我这样的人迫切希望我们的电子邮件列表恢复正常,因此为了解决这个问题,邮递员显然推出了一个新版本——非常值得称赞。但是,根据我的网络搜索,很多人都遇到了这个版本的一个或多个错误,就像我一样。

当您遇到此问题时,它是通过 Web 界面,这是用户看到的:

Mailman 版本 2.1.18-1 中的错误

很抱歉,我们遇到了错误!

请将此问题通知本网站的网站管理员。已明确禁止打印回溯和其他系统信息,但网站管理员可以在 Mailman 错误日志中找到此信息。

除了 Yahoo.com 和 AOL.com 的行为非常糟糕之外,我们现在也遇到了这个错误,我们需要弄清楚如何处理它。显然有一个新的错误修复版本专门用于修复这个问题,但它还没有为我的平台做好准备,我现在不一定要从源代码构建它。多么痛苦!如果您进行网络搜索,您会发现很多人发布了他们遇到此问题的信息,而且到目前为止,我还没有找到任何人发布解决方案。

...我不是 Python 专家,但我很勇敢并开始尝试诊断错误。我很快就怀疑是文件权限问题。而且,大胆地,我尝试了一个解决方案并且它奏效了......我将在下面回答我自己的问题 - 只是为可能遇到同样问题的其他人留下面包屑。

httpd
  • 1 个回答
  • 746 Views
Martin Hope
Richard T
Asked: 2015-04-13 12:39:53 +0800 CST

Fedora Core 21 上的 postgrey 配置非常不同,并且没有记录

  • 1

在从 Fedora Core 16 升级到 Fedora Core 21 的过程中,挑战之一是让 postfix 与 postgrey 一起工作。经过长时间专注于它之后,我仍然没有让它工作。

在旧策略中,官方指示指示您编写自己的脚本以放入/etc/init.d. 而且,事实上,早在 FC16 上,我就做到了!但是今天,我们有systemctl. 您可以postgrey使用 yum 安装,存储库知道它。它安装得很好。然后,您使用 启用systemctl enable postgrey.service,这也很顺利。

到目前为止,一切都很好。只剩下几件事要做...

接下来,移动您的白名单文件 - 似乎是相同的格式。

在旧方案中,您的后缀 main.cf 文件中有这样一行:

...
smtpd_recipient_restrictions = permit_mynetworks,
                               permit_sasl_authenticated,
                               reject_unauth_pipelining,
                               reject_non_fqdn_recipient,
                               reject_unknown_recipient_domain,
                               reject_unauth_destination,
                               check_policy_service inet:127.0.0.1:10023,
                               permit_mynetworks
...

在我的 /etc/init.d 中,我编写了一个脚本,其中以下摘录显示了有趣的部分,并且运行良好:

...
exec="/usr/sbin/postgrey"
prog="postgrey"
options="--unix=/var/spool/postfix/postgrey/socket --inet=10023"

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile=/var/lock/subsys/$prog

start() {
    [ -x $exec ] || exit 5
    echo -n $"Starting $prog: "
    daemon $exec -d $options
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
...

请注意端口是如何指定的,--inet=并且它与 中的内容相匹配main.cf。

但是,当我尝试使用它时,后缀服务器会抱怨并且它不会收到电子邮件。它明确声明它无法连接到 postgrey:

...
Apr 12 13:27:50 ms1 postfix/smtpd[14273]: warning: connect to 127.0.0.1:10023: Connection refused
Apr 12 13:27:50 ms1 postfix/smtpd[14273]: warning: problem talking to server 127.0.0.1:10023: Connection refused
...

我看了又看,找不到新方案的任何配置信息。询问 postgrey 是否启动并且快乐得到以下信息:

# systemctl status postgrey.service -l
● postgrey.service - Postfix Greylisting Service
   Loaded: loaded (/usr/lib/systemd/system/postgrey.service; enabled)
   Active: active (running) since Sun 2015-04-12 12:13:19 PDT; 1h 19min ago
     Docs: man:postgrey(8)
  Process: 13280 ExecStart=/usr/sbin/postgrey --unix=/var/spool/postfix/postgrey/socket --pidfile=/var/run/postgrey.pid --group=postgrey --user=postgrey --greylist-text=Greylisted for %%s seconds --daemonize $POSTGREY_OPTS (code=exited, status=0/SUCCESS)
  Process: 13277 ExecStartPre=/bin/rm -f /var/run/postgrey.pid (code=exited, status=0/SUCCESS)
 Main PID: 13281 (/usr/sbin/postg)
   CGroup: /system.slice/postgrey.service
           └─13281 /usr/sbin/postgrey --unix=/var/spool/postfix/postgrey/socket --pidfile=/var/run/postgrey.pid --group=postgrey --user=postgrey --greylist-text=Greylisted for %s seconds --daemonize --delay=6

Apr 12 12:13:19 ms1 postgrey[13281]: Process Backgrounded
Apr 12 12:13:19 ms1 postgrey[13281]: 2015/04/12-12:13:19 postgrey (type Net::Server::Multiplex) starting! pid(13281)
Apr 12 12:13:19 ms1 postgrey[13281]: Binding to UNIX socket file "/var/spool/postfix/postgrey/socket"
Apr 12 12:13:19 ms1 postgrey[13281]: Setting gid to "479 479"
Apr 12 12:13:19 ms1 postgrey[13281]: Setting uid to "984"

奇怪的是,它没有清楚地表示套接字 ID - 也许它不需要?但我还是检查了 netstat :

# netstat -l | grep postgrey
unix  2      [ ACC ]     STREAM     LISTENING     126293   /var/spool/postfix/postgrey/socket

...我不是专家netstat,但我认为这意味着程序/postfix/postgrey/socket正在侦听端口 126293。

那么,我是否应该更改 main.cf 中的行以匹配此端口号?如果是这样,那是行不通的-或者,到目前为止还没有!而且,我似乎找不到放置备用端口/套接字配置的地方,所以看起来你被他们给我们的任何东西困住了。

任何帮助/建议表示赞赏。...我在想下一步唯一的行动是弄清楚systemctl工具集是如何工作的,即使我现在不想花时间——今天是星期天!

postfix
  • 1 个回答
  • 689 Views
Martin Hope
Richard T
Asked: 2015-04-13 12:14:10 +0800 CST

Dovecot 说:“请求 CRAM-MD5 方案,但我们只有 CRYPT”但 CRAM-MD5 可用

  • 4

将 Fedora Core 16 升级到 Fedora Core 21 后,新的 Dovecot 安装无法正确验证,原因也不清楚。

我们有 50 多个电子邮件帐户由该服务器提供服务,所以我希望让以前的方案继续为人们服务。

多年来,我们一直非常成功地使用 CRAM-MD5。我转移了配置,根据新版本(2.2.15-3)的需要进行了更新,并尝试连接。日志说:

Requested CRAM-MD5 scheme, but we have only CRYPT

然而,当我按照 Dovecot 网站上的测试指南(可在此处找到http://wiki2.dovecot.org/TestInstallation)时,测试命令显示 CRAM-MD5 确实可用:

# telnet localhost 143
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
 IDLE STARTTLS AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN]
 Dovecot ready.

可以看出,CRAM-MD5 是列出的第一个支持的授权类型。

此外,dovecot 参数测试程序也没有显示任何问题:

# dovecot -n
# 2.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 3.17.4-301.fc21.x86_64 x86_64 Fedora release 21 (Twenty One)
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = cram-md5 digest-md5 plain login
auth_verbose = yes
listen = *
login_trusted_networks = 192.168.1.4 192.168.1.5 192.168.1.6
192.168.1.12 192.168.1.14 192.168.1.10 127.0.0.1
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
mbox_write_locks = fcntl
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  driver = passwd
}
quota_full_tempfail = yes
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    user = postfix
  }
}
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}
verbose_proctitle = yes

我检查了 cram-md5 文件的权限是否与旧系统上的权限相同,等等。

非常感谢任何和所有帮助。

fedora
  • 1 个回答
  • 2849 Views
Martin Hope
Richard T
Asked: 2013-10-14 16:00:19 +0800 CST

升级 Fedora Core 后二进制可执行文件上的 SETUID / SETGID 停止工作

  • 1

我有一个 C 程序需要访问一个受保护的充满东西的目录。strong text这个想法是只有程序或管理员才能访问。

过去在 Linux 平台上,我相当成功地使用了文件系统的 SETUID 和 SETGID 位。该程序运行得很好,因为文件系统所说的任何 UID 和 GID 都是可执行文件的所有者,无论谁运行它。

或者,更确切地说,它曾经成功运行。

我不知道这个变化是什么时候发生的,因为我只倾向于在出现硬件故障时更新操作系统,所以我会同时获得两个更新......所以,鉴于很多版本都被跳过了,我,只有正确的现在,Fedora Core 17 上的开发系统不再支持这些位。由于 FC 19 是当前版本,我想最新版本只会变得更糟,而不是更好。

这是“ls -l”输出:

-rwsrwsr-x 1 cu cu 26403 Aug 28  2012 comp

在调查解决方案时,我发现 chmod 的手册页是这样说的:

其他限制可能会导致 MODE 或 RFILE 的 set-user-ID 和 set-group-ID 位被忽略。此行为取决于底层 chmod 系统调用的策略和功能。如有疑问,请检查底层系统行为。

好的,但我不知道如何按照建议检查该政策和功能!他们没有提供任何帮助,只能使用 info 命令 - 但我发现那里没有任何帮助,只有有关用于创建新文件的默认用户和组所有权的数据。

SELINUX 已关闭。

问题:

  1. 在现代做这种事情的“正确”方法是什么?

  2. 我如何检查政策 - 并更改它们?

感谢您的任何意见。

更多数据:

C 程序只有这一行分支以输出错误 - 摘录:

  line=malloc(large);
  if (!line) printf("virtual memory exhausted\n");
  if (line && FileExists(filename))
  {
     if (access(filename,R_OK)==0)
     {
        cfile=fopen(filename, "r");
setuid
  • 1 个回答
  • 629 Views
Martin Hope
Richard T
Asked: 2013-09-26 09:04:21 +0800 CST

Postfix 邮件服务器在环境更新后被垃圾邮件发送者接管

  • 0

内部系统上长期配置、稳定的 Postfix 邮件服务器,具有灰名单、一长串限制和实时黑名单,可通过转发端口通过网关/防火墙访问,在防火墙/网关系统升级后,入站和出站工作良好,并且我继续讨论其他升级问题。大约 5 小时后,我发现 /var/log/maillog 变得异常活跃——垃圾邮件发送者已经接管了。

使用 Fedora Core 19 升级了环境(不经意间),并且出现了很多网络问题,这就是其中之一。我彻底研究了它。我看到的所有文章都忽略了发生在我身上的原因......

我已经想通了,它有一个不太明显的原因。我正在花时间为他人“留下面包屑”。问题是:当一个人完全有理由相信邮件服务器的配置是正确的时,什么会导致这种情况?!

postfix
  • 1 个回答
  • 50 Views
Martin Hope
Richard T
Asked: 2013-09-26 08:46:57 +0800 CST

后缀邮件日志:警告:主机 nb-mx-vip1.prodigy.net[207 .115.36.20]:25 用我自己的主机名向我打招呼

  • 0

内部系统上的邮件服务器,可通过转发端口通过网关/防火墙访问返回此错误。

我用 Fedora Core 19 升级了我的环境(不经意间)并且遇到了很多网络问题,这就是其中之一。我彻底研究了它。我看过的所有文章(12+)都是针对目标域实际上应该由记录错误的系统提供服务的情况。这不是那种情况;任何出站电子邮件都会返回此错误(并向发件人发送拒绝回复,在这种情况下,发件人始终是本地的)。

我已经想通了,它有一个非常不明显的原因。我正在花时间为他人“留下面包屑”。问题是:当一个人有充分的理由相信配置是正确的时,什么会导致这种情况?!

9 月 25 日 07:53:54 server1 postfix/smtp[9531]: warning: host nb-mx-vip1.prodigy.net[207 .115.36.20]:25 用我自己的主机名 mail.example.com 向我打招呼

postfix
  • 1 个回答
  • 179 Views
Martin Hope
Richard T
Asked: 2013-09-18 19:47:58 +0800 CST

firewalld:转发端口 25 时遇到问题,而其他端口转发正常,“丰富规则”日志显示没有条目

  • 2

所以,我第一次安装了Fedora Core 19来替代一个磁盘最终死掉的旧系统。该系统用作网络服务器和网关/防火墙,保护内部系统。因为它有很多网络配置,我得到了一个介绍——并且发现我真的很喜欢——新的防火墙守护进程 firewalld。

当我突然发现内部邮件服务器的邮件日志文件变得疯狂时,我以为一切都进行得很顺利(那总是在发生故障时)- 只是幸运的是,在一切正常运行后大约 6 小时我仍然在看它。

调查显示问题在于我的内部邮件系统(受防火墙保护)以某种方式认为所有出站邮件都来自网关系统,因此它是一个“内部”系统,垃圾邮件发送者发现它是一个开放中继。我还注意到,内部和外部区域都被标记为“伪装”,实际上邮件日志文件中感知的 IP 地址是网关的 IP。通过转发的 ssh 端口登录也确认内部使用了错误的 IP。

没问题!”我错误地想。是的,关闭内部区域的伪装确实修复了通过网关时传递给内部系统的错误 IP。但是,它并没有解决问题,因为,莫名其妙地(到目前为止!)似乎端口 25 不再被转发!

正在转发其他端口,至少我所说的易于测试的 ssh 端口是。所以,我想,我会打开那个花哨的日志功能!这是命令:

firewall-cmd --zone=external --add-rich-rule='rule family="ipv4" forward-port port="25" protocol="tcp" to-port="25" to-addr="192.168.1.1" log prefix="smtp-to-inside" level="info"'

我尝试了使用永久选项,而不是等等。NOTHING 出现在 /var/log/messages或我能想到的任何其他日志文件中。就好像内核只是忽略了那个端口。我想也许内部邮件系统可能会用它的防火墙阻止外部流量,但是网关应该记录连接尝试,但我什么也没得到。

任何和所有的帮助表示赞赏。

port-forwarding
  • 1 个回答
  • 1166 Views
Martin Hope
Richard T
Asked: 2013-01-31 14:36:39 +0800 CST

混淆 Post FedoraCore Upgrade: NAT / port forwarding trouble, POSTROUTING MASQUERADE 对转发端口有意想不到的影响

  • 0

在网关/防火墙系统的硬件故障之后,在新硬件上安装了较新版本的 Fedora Core (17),并使用了 /etc/sysconfig 中的旧“iptables”和 system-config-firewall 文件(仅此而已)。旧版本的 FC 未知,但可能是 14 或 15,旧磁盘不再可读。(我把以前的 iptables 文件内容放在下面。)

该系统的工作专门用于:

  1. 接受来自任何网络源的端口 22 (ssh) 以进行本地传送 (sshd)。
  2. 将端口 222 转发到内部系统上的端口 22 (ssh),保留原始 IP 地址。
  3. 将端口 25(电子邮件)转发到内部系统,保留原始 IP 地址。
  4. 将所有(非端口 22)入站流量从内部网络转发到外部网络,沿途应用 NAT/Masquerading,并允许相关的外部生成的返回数据包酌情通过。

上面列出的步骤是这个盒子的唯一工作,它以前工作正常。

我从哪里开始:

当恢复服务时,到端口 22 (sshd) 的所有连接都工作正常,到所有其他端口的外部连接转发或适当丢弃,但内部系统看到的 IP 地址是网关的 IP 地址,而不是保留其源 IP地址。

当我将系统连接到网络时,关于电子邮件的所有问题都发生了变化;网关后面的邮件服务器系统正在拒绝基于 IP 地址/系统名称不匹配的邮件,取消检查会使垃圾邮件过滤系统变得疯狂。

MASQUERADING 是错误的界面但是......

眼尖的 serverfault 参与者 DavidSchwartz 注意到内部接口的伪装已打开(通过 -A POSTROUTING -o eth0 -j MASQUERADE),解释了看到网关 IP 地址的内部系统,但是当更改以反映外部接口时(例如: - POSTROUTING -o eth1 -j MASQUERADE),然后所有转发停止!是的,我的意思是端口转发,从外部到内部(内部系统上的端口 222 到端口 22)。

我真的不明白。

为清楚起见,似乎为 INTERNAL 接口打开伪装,虽然不是预期的,但确实具有允许端口转发实际发生从外部到内部的积极属性。切换为伪装(正确的)外部接口以某种方式禁用端口转发,因为没有其他更改。

SNAT 与伪装

由于有两个面向外部的“服务器系统”,它们也具有已配置为备用出站路径的内部接口,我查看了它们,发现它们具有非常不同的伪装技术;没有像上面引用的两段那样的行,而是这样:

-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source <external.v4.ip.addr>  

太好了-我明白了,有道理,我试试看!我注释掉了 MASQUERADE 行并包含(在同一位置)一条 SNAT 行,如此处所述,YAY!它做了两件事:

  1. 我根据需要获得出站网络地址转换,并且;
  2. 它现在将入站连接请求从外部端口转发到端口 222 到内部系统上的端口 22,并根据需要保留原始 IP 地址。

遗留问题

不起作用的是其他相同的转发端口 25(在内部系统上保留端口 25)。

目前这是我必须解决的问题!(而且越快越好!)为什么一个端口转发而不是另一个?它不是“tcp”类型的端口吗?如果不是,应该用什么来代替它?(没想到是UDP……)

不太重要; 很高兴知道为什么旧配置可以工作,但现在不行了!Fedora Core 的差异?更新 IP 表?我依赖错误吗?-微笑-

这是 iptables 中的两条端口转发线:

-A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.64:25
-A PREROUTING -i eth0 -p tcp --dport 222 -j DNAT --to-destination 192.168.0.64:22

我试过在上面有和没有尾随的“:25”。同样,外部端口 222 转发到内部系统端口 22 就好了,端口 25 根本不转发。

请注意,从可以直接看到邮件服务器系统(不通过网关/防火墙)的系统对端口 25 的 telnet 访问完美无缺。此外,我尝试将端口 24 转发到端口 25 作为测试并得到相同的结果(无响应)。

这是 iptables 文件:

# eth0 is internal
# eth1 is external

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# NO packets get through without this next line:
-A POSTROUTING -o eth0 -j MASQUERADE
# the above line was commented out and replaced with:
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source <external.v4.ip.addr>

-A PREROUTING -i eth1 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.64:25

-A PREROUTING -i eth1 -p tcp --dport 222 -j DNAT --to-destination 192.168.0.64:2
2

COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 222 -j ACCEPT

-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -i eth1 -m state --state NEW -m tcp -p tcp -d 192.168.0.64 --dport 25
 -j ACCEPT
-A FORWARD -i eth1 -m state --state NEW -m tcp -p tcp -d 192.168.0.64 --dport 22
 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptables
  • 2 个回答
  • 1006 Views
Martin Hope
Richard T
Asked: 2010-02-12 17:34:23 +0800 CST

Fedora Core 上的 JSP / Tomcat / Apache 设置概述

  • 2

对于拥有如此多 Java 经验的人,我是不是感觉一无所知 - 在此先感谢您在我探索当前(2010 年 2 月)JSP 环境方面的帮助。

以下是我希望学习的内容:

  • 我是否正确理解大多数人使用 Apache 来“前端”他们的 Tomcat 服务器,以便 Apache 直接与 Web 客户端和“代理”Tomcat 服务器“对话”?
  • 我是否正确理解 Apache 不能直接为 JSP 提供服务,但需要服务器(如 Tomcat)?
  • Fedora Core 是否有一个 RPM 包,所以我不必自己构建一个?或者,Fedora Core 的软件包安装程序是否从源代码中做得很好?(有些会,有些不会!)

当我在这里提问时;Tomcat 是否提供了一个可以开始破解的工作示例,作为一种快速入门的方式?如果没有,有好的建议吗?

谢谢各位,RT

tomcat apache-2.2 fedora jsp
  • 2 个回答
  • 2268 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