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

aPugLife's questions

Martin Hope
aPugLife
Asked: 2020-10-02 09:20:03 +0800 CST

Nagios 用户运行 bash 脚本时出现权限错误,同样使用 sudo

  • 2

我想在出现电源故障时关闭我的 NAS 和 ESXI。这两个系统都在伊顿 UPS 上运行。我只运行 Linux 系统,因此我不能使用 Eaton Manager,仅限 Windows。

由于我将 Nagios 用于其他任务,因此我想创建一个插件,使用 ssh-public-key 可以连接到上述系统并关闭它们。

Nagios 用户的公钥已经安装在 ESXI 的 root 用户上(NAS 稍后会出现)。 当我将用户更改为 Nagios(在 Nagios 服务器上)并手动运行脚本时,它会连接到 ESXI 并且(目前)它会在 /tmp 上写入一个“testfile”。它有效。

当脚本由 Nagios 自己运行时,它不会. 此脚本作为处理程序运行:

define host {
    name                            home-monitoring
    use                             generic-host
    check_period                    24x7
    check_interval                  5
    contact_groups                  admins
    event_handler                   poweroff_host
    register                        0
}

cat /usr/lib64/nagios/plugins/poweroff_host.sh

#!/bin/bash
/usr/bin/ssh root@esxi -i /var/spool/nagios/.ssh/id_rsa "touch /tmp/testfile"

cat /etc/nagios/objects/commands.cfg

define command{
        command_name    poweroff_host
        command_line    sudo /usr/lib64/nagios/plugins/poweroff_host.sh
}

visudo

(at the bottom of the file)
nagios ALL = (root) NOPASSWD:/usr/lib64/nagios/plugins/poweroff_host.sh

我还将 nagios 用户添加到了 wheel 组(使用 usermod)

# grep wheel /etc/group
wheel:x:10:nagios

最后,在过去的 4 天里,我一直在这里打我的头,并且在日志中不断出现错误。最后一个错误是:

journalctl -xef

stderr line 01: /usr/lib64/nagios/plugins/poweroff_host.sh: line 2: /usr/bin/ssh: Permission denied

在 visudo 之前,错误是no ssh in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin),至少现在我设法改变了错误的类型。

我可以请一些帮助并解决问题吗?

更新 1:

[root@nagios ~]# audit2allow -i /var/log/audit/audit.log


#============= nagios_t ==============
allow nagios_t ldconfig_exec_t:file { execute getattr };
allow nagios_t nagios_spool_t:dir create;
allow nagios_t pam_var_run_t:dir write;
allow nagios_t ssh_exec_t:file { execute getattr };
allow nagios_t tmpfs_t:dir write;

快进到semodule命令,但 stderr line 01: /usr/lib64/nagios/plugins/poweroff_host.sh: line 2: /usr/bin/ssh: Permission denied仍然存在:/

我将尝试完全禁用 Selinux:/

centos centos7 selinux
  • 1 个回答
  • 711 Views
Martin Hope
aPugLife
Asked: 2018-10-24 04:27:09 +0800 CST

测试 Apache 的密码套件

  • 1

当我搜索相关问题时,我看到了这个: https ://superuser.com/questions/109213/how-do-i-list-the-ssl-tls-cipher-suites-a-particular-website-offers

我尝试研究提供的解决方案,但我还没有找到我的解决方案。

我有 2 台服务器,测试服务器和生产服务器。

它们都托管应用程序、测试和产品。此应用程序需要反向代理,因此我为此设置了 Apache。

我被要求改进用于 HTTPS 的密码套件。

PROD服务器在 apache中使用:

SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite DES-CBC-SHA:HIGH:!aNULL:!MD5:!EXP
SSLHonorCipherOrder on

我目前正在使用的TEST服务器已更新为使用此功能:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLHonorCipherOrder on
SSLCompression      off
SSLSessionTickets   off

现在是测试新配置是否有效的时候了(好吧,它已经应该,但你知道......)。

从我运行的第三台测试机:

curl https://test.servertest.com/test1
against the TEST server
and
curl https://prodserver.com/accept
to the PROD one.

从TEST和PROD服务器读取 APACHE 错误日志,我看不到差异。

TEST:
[Tue Oct 23 13:57:10.846249 2018] [ssl:trace3] [pid 13130] ssl_engine_kernel.c(1795): [remote 1.1.1.1:5555] OpenSSL: Handshake: done
[Tue Oct 23 13:57:10.846257 2018] [ssl:debug] [pid 13130] ssl_engine_kernel.c(1844): [remote 1.1.1.1:5555] AH02041: Protocol: TLSv1, Cipher: ECDHE-RSA-AES256-SHA (256/256 bits)

PROD:
[Tue Oct 23 13:58:04.192403 2018] [ssl:trace3] [pid 6856] ssl_engine_kernel.c(1795): [remote 2.2.2.2:6666] OpenSSL: Handshake: done
[Tue Oct 23 13:58:04.192409 2018] [ssl:debug] [pid 6856] ssl_engine_kernel.c(1844): [remote 2.2.2.2:6666] AH02041: Protocol: TLSv1, Cipher: ECDHE-RSA-AES256-SHA (256/256 bits)

可能 CURL 可能不是测试密码套件的最佳方法(?),但我的问题是: 我如何确定我应用的更改是正确的(除了在 Apache 手册中找到密码套件本身)?

security
  • 1 个回答
  • 5540 Views
Martin Hope
aPugLife
Asked: 2018-01-16 08:03:23 +0800 CST

正确启用 systemd 服务 - fail2ban

  • 1

老实说,我对使用 systemd 感到不舒服。我只是无法理解。

我使用的 fail2ban 版本在我的 Ubuntu 16.04 中表现异常。我删除了它:

apt remove fail2ban

并安装了最后一个:

wget https://github.com/fail2ban/fail2ban/archive/0.11.zip
unzip 0.11.zip
cd fail2ban-0.11
python setup.py install

在安装结束时,它说我必须启用它的服务。

我以为

systemctl enable fail2ban.service

已经足够了,但似乎服务被“掩盖​​”了。我使用此链接:https ://askubuntu.com/questions/710420/why-are-some-systemd-services-in-the-masked-state 来了解什么是 masked。

我试图揭开它的面纱: systemctl unmask fail2ban.service

并启用它:

systemctl enable fail2ban.service

现在经典命令:

service fail2ban status | start | stop

正在工作中。

问题是,我读到我也应该能够从 systemctl 获取服务信息:

systemctl fail2ban status
Unknown operation fail2ban.

所以我开始搜索结果......我找到了这个命令(我添加了 | sort 以获得更好的输出):

systemctl list-units | sort

这表明:

fail2ban.service  loaded active exited  LSB: Start/stop fail2ban

我不知道“退出”是什么意思,所以我搜索了: https ://unix.stackexchange.com/questions/241970/what-does-status-active-exited-mean-for-a-custom-service

状态激活(退出)意味着 systemd 已成功运行命令,但它不知道有一个守护进程要监视。

我的要求:

我想做的就是能够启动和停止并控制它是否正在工作,fail2ban 服务。我(几乎)不知道 systemd 的任何内容,因为我总是跳过它(为什么我在熟悉 CentOS 5 和以前的版本多年后才搬到 Ubuntu 14),但现在看来我是被迫的。

有人可以告诉我应该如何以正确的方式将 fail2ban 服务“添加”到 systemctl 吗?

systemd
  • 1 个回答
  • 6792 Views
Martin Hope
aPugLife
Asked: 2016-08-04 00:43:06 +0800 CST

Ubuntu 服务器随机杀死 Apache2 - 我想我知道为什么

  • 0

几周,甚至几个月,在 logrotate 之后,我的 Apache2 服务器突然停止并且无法重新启动,主要是因为证书上的密码。但我不想删除它。

一开始我以为是因为Logrotate。但是后来,我对其进行了更好的监控并进行了一些测试,但这不是原因。

我到处搜索日志,直到今天早上,当它再次崩溃时,我发现了这个:

错误日志

[Wed Aug 03 06:34:41.322231 2016] [mpm_prefork:notice] [pid 2726] AH00169: caught SIGTERM, shutting down
[Wed Aug 03 06:34:42.301179 2016] [ssl:info] [pid 18371] AH02200: Loading certificate & private key of SSL-aware server 'aa.bb.cc:443'

系统日志

Aug  3 06:34:40 myserver php5-common: php5_invoke pdo: already enabled for apache2 SAPI
Aug  3 06:34:40 myserver php5-common: php5_invoke pdo: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-common: php5_invoke opcache: already enabled for apache2 SAPI
Aug  3 06:34:40 myserver php5-common: php5_invoke opcache: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke opcache: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke pdo_pgsql: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke json: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke pdo: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke pgsql: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke readline: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-readline: php5_invoke readline: already enabled for apache2 SAPI
Aug  3 06:34:40 myserver php5-readline: php5_invoke readline: already enabled for cli SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke opcache: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke pdo_pgsql: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke json: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke pdo: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke pgsql: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke readline: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: apache2_invoke php5: already enabled
Aug  3 06:34:42 myserver apache2: No way to ask user for passphrase

替代品.log.1

update-alternatives 2016-08-03 06:34:40: run with --install /usr/bin/php php /usr/bin/php5 50 --slave /usr/share/man/man1/php.1.gz php.1.gz /usr/share/man/man1/php5.1.gz

我想我终于找到了为什么我的服务器突然停止工作了。但我不知道update-alternatives是做什么用的,我从未听说过它,需要关于如何移动的建议,以解决我的问题。它可以是更新 php 或停止该程序在上午 6.34 运行,或完全停止。

任何意见是极大的赞赏!

编辑: 最佳答案(并且只有一个)标记为已接受,因为我发现我的系统正在安装更新,其中包括 php.ini 文件。由于证书的原因,这让系统既有更新版本的 php 又有不当关闭 apache 服务。我想要证书上的密码,所以禁用更新

dpkg-reconfigure -plow unattended-upgrades

似乎解决了我的问题。但我不能确定.. 必须等待下一个 SIGTERM,如果有的话。

kill apache2
  • 1 个回答
  • 148 Views
Martin Hope
aPugLife
Asked: 2016-04-05 04:03:42 +0800 CST

使用 postfix 限制发件人和收件人

  • 0

对不起,关于这个话题的问题加倍了,但是有很多,有些非常令人困惑,有些仍然是“旧”格式,有些与我的情况不匹配。

smtpd_restriction_classes = allowed
allowed = permit

smtpd_sender_restrictions =
        check_sender_access hash:/etc/postfix/restricted_senders,
        reject

smtpd_recipient_restrictions = 
        permit_mynetworks,
        reject_unauth_destination,
        permit_sasl_authenticated,
        check_recipient_access hash:/etc/postfix/recipient_domains,
        reject_rbl_client zen.spamhaus.org,
        reject_rhsbl_helo dbl.spamhaus.org,
        reject_rhsbl_sender dbl.spamhaus.org

我有这个代码工作,但我仍然可以发送邮件到 [email protected](一些随机用户)

Apr  4 13:40:46 mail-server postfix/local[22937]: 0C1C5160030: to=<[email protected]>, relay=local, delay=0.23, delays=0.23/0/0/0, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail)

还有“[email protected]”

Apr  4 13:41:42 mail-server postfix/smtpd[22931]: NOQUEUE: reject: RCPT from mail-vk0-f52.google.com[209.85.213.52]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-vk0-f52.google.com>
Apr  4 13:41:42 mail-server postfix/smtpd[22931]: disconnect from mail-vk0-f52.google.com[209.85.213.52]

我想要实现的是该电子邮件服务器([email protected])的只有 1 个用户能够发送和接收电子邮件,任何其他用户几乎必须立即被拒绝。而这个用户只能接收来自少数用户和“recipient_domains”的邮件

受限发件人:

[email protected] allowed

收件人域:

[email protected] allowed
[email protected] allowed
thisserveronly.net allowed

如果我的配置有错误或者我错过了什么,请任何人提供建议?

postfix
  • 1 个回答
  • 9145 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