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

ehammer's questions

Martin Hope
ehammer
Asked: 2023-07-04 10:20:56 +0800 CST

使用 awk/sed 更改 CSV 中的非标准日期时间戳格式

  • 7

我有一个包含几十万行的 csv,我正在尝试更改第二个字段中的日期格式。我还应该添加第二个字段有时根本没有填充。可悲的输入格式是DayofWeek MonthofYear DayofMonth Hour:Minute:Second Timezone Year

例子:

Mon Jul 03 14:48:54 EDT 2023

我想要的输出格式是YYYY-MM-DD HH:MM:SS 示例:

2023-07-03 14:48:54

我熟悉 sed,所以我得到了这个 sed 正则表达式替换行以使其格式几乎正确,但月份不是数字是一个问题。

sed -E "s/[A-Za-z]{3}\s([A-Za-z]{3})\s([0-9]{2})\s([0-9]{2}:[0-9]{2}:[0-9]{2})\s[A-Z]+\s([0-9]{4})/\4-\1-\2 \3/"

我认为不可能使用捕获组 1 在 sed 替换部分中运行 date 命令(但如果我错了,请纠正我)。

我不知道如何在 sed 命令完成后引用月份并使用 date 命令解析它,并且我认为最好在不将整个输出通过管道传输到另一个命令的情况下进行处理。该命令只是用于格式化其余数据的一长串管道命令中的一个。

看起来也许 awk 可以一次完成整个格式化,但我真的不知道如何很好地使用 awk。

将时间戳转换为正确格式的最有效方法是什么?

只是为了解决一些带有更多背景信息的评论:

此数据由将 csv 日志数据输出到文件的应用程序生成。这不是我的应用程序,并且没有对应用程序日志记录方式的配置控制。CSV 未引用(即使字段中的数据包含空格)并且空字段不包含任何内容。

我将 csv 数据直接加载到 mysql 数据库中。虽然时区通常是一个好主意,但该数据始终带有本地时间时间戳,并且在可视化数据(grafana)时,我不需要将其存储在 UTC 中,然后转换为 EDT 只是为了查看(为什么将时间转换为 UTC只是将其转换回 EDT)。另外,每个 csv 行都包含经度和纬度(因此,如果我想返回并将时间戳更改为 UTC,则不可能找出当地时间)。

我所做的额外格式化并不多,可能可以使用 awk 完成(同样,我不太熟悉那里的语法)。原始数据需要添加 ID 列,并且 qoutes 放置一些字段,并且有两种不同格式的两个日期时间字段,这并没有帮助。所以我的又长又可怕的管道通常看起来像这样:

cat file | add ID column | format timestamp in second csv field | format timestamp in third csv field | qoute any field with spaces | replace empty fields with \N > output file

我在 mysql 和空字段方面遇到了一些问题,所以我添加了显式的空字符。肯定有更好的方法来做到这一点,一旦我让整个过程正常工作,我将回顾并简化。

我非常感谢大家的回应。

awk
  • 4 个回答
  • 488 Views
Martin Hope
ehammer
Asked: 2023-07-01 00:43:02 +0800 CST

sudo 无法在 /proc 中 ls root 拥有的文件

  • 5

我使用的是 Debian 12,我正在尝试编写一个脚本来识别具有某些 inode 的进程(来自 /proc/net/raw 和 /proc/net/packet)。

我原来的 grep 命令是这样的(只获取 pid 本身):

inode=$(cat /proc/net/packet | sed -r 's/\s+/,/g' | cut -d"," -f9 | sed '1d')
sudo ls -l /proc/*/fd/* 2>/dev/null | grep -oP "(?<=proc\/)[0-9]+(?=\/fd.*\[$inode\])"

我使用了一个更简单的例子,如下所示

将运行该脚本的用户不是 root,但需要能够读取 /proc 中唯一的 root 可访问文件。为此,我选择在 sudoers 中使用 nopasswd 行,专门将 ls 命令放入特定的 /proc 目录(而不是对整个脚本使用 sudo)。

user ALL=(ALL) NOPASSWD: /usr/bin/ls -l /proc/*/fd/*

Sudo 允许命令按预期在没有密码的情况下运行,但丢失的文件甚至不会显示为访问错误。似乎 sudo 命令甚至不起作用,因为在没有 grep 的情况下进行原始列表仅显示以下拥有的文件user

来自用户的 Sudo

user@localhost:~/# sudo /usr/bin/ls -l /proc/*/fd/* | grep "946"
lr-x------ 1 user user 64 Jun 30 11:39 /proc/10251/fd/17 -> pipe:[89462]
l-wx------ 1 user user 64 Jun 30 11:39 /proc/10251/fd/18 -> pipe:[89462]
lr-x------ 1 user user 64 Jun 30 11:39 /proc/10251/fd/19 -> pipe:[89463]
l-wx------ 1 user user 64 Jun 30 11:39 /proc/10251/fd/20 -> pipe:[89463]
lr-x------ 1 user user 64 Jun 30 11:39 /proc/10251/fd/44 -> pipe:[89464]
l-wx------ 1 user user 64 Jun 30 11:39 /proc/10251/fd/45 -> pipe:[89464]
lrwx------ 1 user user 64 Jun 30 12:14 /proc/1424/fd/12 -> socket:[24946]
lr-x------ 1 user user 64 Jun 30 07:53 /proc/2958/fd/44 -> pipe:[32946]
l-wx------ 1 user user 64 Jun 30 07:53 /proc/2958/fd/45 -> pipe:[32946]

苏入根

root@localhost:~/# sudo /usr/bin/ls -l /proc/*/fd/* | grep "946"
lr-x------ 1 user     user     64 Jun 30 11:39 /proc/10251/fd/17 -> pipe:[89462]
l-wx------ 1 user     user     64 Jun 30 11:39 /proc/10251/fd/18 -> pipe:[89462]
lr-x------ 1 user     user     64 Jun 30 11:39 /proc/10251/fd/19 -> pipe:[89463]
l-wx------ 1 user     user     64 Jun 30 11:39 /proc/10251/fd/20 -> pipe:[89463]
lr-x------ 1 user     user     64 Jun 30 11:39 /proc/10251/fd/44 -> pipe:[89464]
l-wx------ 1 user     user     64 Jun 30 11:39 /proc/10251/fd/45 -> pipe:[89464]
lrwx------ 1 root     root     64 Jun 30 12:14 /proc/1191/fd/22 -> socket:[946]
lrwx------ 1 user     user     64 Jun 30 12:14 /proc/1424/fd/12 -> socket:[24946]
lr-x------ 1 user     user     64 Jun 30 07:53 /proc/2958/fd/44 -> pipe:[32946]
l-wx------ 1 user     user     64 Jun 30 07:53 /proc/2958/fd/45 -> pipe:[32946]

Sudo 无法看到 PID 1191 (NetworkManager) 的 root 拥有的 fd 目录。但如果我su到root,我就可以看到它。我什至尝试像这样制作 sudoers 行:

user ALL=(ALL) NOPASSWD: /usr/bin/ls*

虽然该命令无需输入密码即可运行,但返回数据是相同的 - 没有 root 拥有的文件。

为什么会发生这种情况?我以为sudo实际上是root?

如何向用户授予最少的权限,以便能够通过 /proc/ /fd/查找inode?

grep
  • 1 个回答
  • 41 Views
Martin Hope
ehammer
Asked: 2023-05-13 22:02:51 +0800 CST

官方Spotify App能够以非root用户身份获得root权限

  • 5
OS: Debian 11 5.10.0-22-amd64 #1 SMP Debian 5.10.178-3 (2023-04-22) x86_64 GNU/Linux
KDE Plasma 5.20.5
Spotify: spotify-client/stable,now 1:1.2.8.923.g4f94bf0d amd64 [installed]

我发现了 spotify 客户端发生的一件有趣的事情。为了修复客户端一直停留在全屏模式的问题,我正在编辑首选项文件,该文件位于~/.config/spotify/prefs 编辑窗口首选项的值并保存时,启动 spotify 客户端用之前的更改覆盖了这些更改。

为了尝试测试是否可以让窗口退出全屏模式,我将文件的所有权更改为 root,并将chmod 444. 但是在启动 spotify 客户端(作为我的非 root 用户)时,prefs 文件从 root 更改为我的用户。

root@localhost:/home/ehammer/.config/spotify# ls -l
total 12
-rw-r--r-- 1 ehammer ehammer 1265 May 13 09:39  prefs
drwx------ 4 ehammer ehammer 4096 Feb 12  2022 'User Data'
drwxrwxr-x 3 ehammer ehammer 4096 Feb 12  2022  Users
root@localhost:/home/ehammer/.config/spotify# ps -Helf | grep spotify
4 S root       39890   39357  0  80   0 -  1560 -      09:45 pts/1    00:00:00               grep spotify
root@localhost:/home/ehammer/.config/spotify# nano prefs 
root@localhost:/home/ehammer/.config/spotify# ls -lisa
total 20
19794776 4 drwx------  4 ehammer ehammer 4096 May 13 09:46  .
19791874 4 drwxr-xr-x 43 ehammer ehammer 4096 May 13 09:43  ..
19806299 4 -rw-r--r--  1 ehammer ehammer 1233 May 13 09:46  prefs
19794777 4 drwx------  4 ehammer ehammer 4096 Feb 12  2022 'User Data'
19795125 4 drwxrwxr-x  3 ehammer ehammer 4096 Feb 12  2022  Users
root@localhost:/home/ehammer/.config/spotify# chown root:root prefs
root@localhost:/home/ehammer/.config/spotify# chmod 444 prefs
root@localhost:/home/ehammer/.config/spotify# ls -lisa
total 20
19794776 4 drwx------  4 ehammer ehammer 4096 May 13 09:46  .
19791874 4 drwxr-xr-x 43 ehammer ehammer 4096 May 13 09:43  ..
19806299 4 -r--r--r--  1 root         root         1233 May 13 09:46  prefs
19794777 4 drwx------  4 ehammer ehammer 4096 Feb 12  2022 'User Data'
19795125 4 drwxrwxr-x  3 ehammer ehammer 4096 Feb 12  2022  Users
root@localhost:/home/ehammer/.config/spotify# ps -Helf | grep spotify
4 S root       40089   39357  0  80   0 -  1560 -      09:46 pts/1    00:00:00               grep spotify
0 S ehammer   39903    1580 21  80   0 - 889253 -     09:46 ?        00:00:01     /usr/share/spotify/spotify
0 S ehammer   39907   39903  0  80   0 - 99941 -      09:46 ?        00:00:00       /usr/share/spotify/spotify --type=zygote --no-zygote-sandbox --no-sandbox --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log
1 S ehammer   39929   39907  5  80   0 - 1054195 -    09:46 ?        00:00:00         /usr/share/spotify/spotify --type=gpu-process --no-sandbox --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --gpu-preferences=WAAAAAAAAAAgAAAIAAAAAAAAAAAAAAAAAABgAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAABAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAA== --log-file=/usr/share/spotify/debug.log --shared-files --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
0 S ehammer   39908   39903  0  80   0 - 99943 -      09:46 ?        00:00:00       /usr/share/spotify/spotify --type=zygote --no-sandbox --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log
1 S ehammer   39987   39908  0  80   0 - 155341 -     09:46 ?        00:00:00         /usr/share/spotify/spotify --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-US --service-sandbox-type=utility --no-sandbox --proxy-server=direct:// --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
1 S ehammer   40065   39908 44  80   0 - 13148967 -   09:46 ?        00:00:02         /usr/share/spotify/spotify --type=renderer --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --disable-spell-checking --user-data-dir=/home/ehammer/.config/spotify/User Data --first-renderer-process --no-sandbox --log-file=/usr/share/spotify/debug.log --lang=en-US --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=5 --time-ticks-at-unix-epoch=-1683982549076978 --launch-time-ticks=3057595647 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
0 S ehammer   39995   39903  3  80   0 - 260094 -     09:46 ?        00:00:00       /usr/share/spotify/spotify --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --proxy-server=direct:// --log-severity=disable --user-agent-product=Chrome/111.0.5563.65 Spotify/1.2.8.923 --lang=en --user-data-dir=/home/ehammer/.config/spotify/User Data --log-file=/usr/share/spotify/debug.log --shared-files=v8_context_snapshot_data:100 --field-trial-handle=0,i,10976918143839319429,9883613349491165854,131072 --disable-features=BackForwardCache
root@localhost:/home/ehammer/.config/spotify# ls -lisa
total 20
19794776 4 drwx------  4 ehammer ehammer 4096 May 13 09:46  .
19791874 4 drwxr-xr-x 43 ehammer ehammer 4096 May 13 09:43  ..
19812078 4 -rw-r--r--  1 ehammer ehammer 1233 May 13 09:46  prefs
19794777 4 drwx------  4 ehammer ehammer 4096 Feb 12  2022 'User Data'
19795125 4 drwxrwxr-x  3 ehammer ehammer 4096 Feb 12  2022  Users

ps 输出中的调试日志不存在,但有一些日志条目:

May 13 09:47:01 localhost systemd[1377]: app-spotify-4ebf47d306f04211acbf7b15afdef435.scope: Consumed 4.087s CPU time.
May 13 09:47:01 localhost systemd[1377]: app-spotify-4ebf47d306f04211acbf7b15afdef435.scope: Succeeded.
May 13 09:46:46 localhost dbus-daemon[1397]: [session uid=1000 pid=1397] Activating service name='org.kde.kwalletd5' requested by ':1.103' (uid=1000 pid=39903 comm="/usr/share/spotify/spotify ")
May 13 09:46:46 localhost dbus-daemon[1397]: [session uid=1000 pid=1397] Activating service name='org.kde.kwalletd5' requested by ':1.103' (uid=1000 pid=39903 comm="/usr/share/spotify/spotify ")
May 13 09:46:46 localhost systemd[1377]: Started Spotify - Music Player.

systemd 或 dbus 是否允许它执行超级用户操作?我的非 root 用户确实有 sudo 访问权限,但只有密码。kwallet 是否能够将这些 sudo 权限传递给请求它的进程?

我不知道非 root 用户进程如何以任何方式改变 root 拥有的只读文件?

permissions
  • 1 个回答
  • 19 Views
Martin Hope
ehammer
Asked: 2023-03-23 05:33:49 +0800 CST

Postfix 拒绝除 relay_domains 之外的所有中继域目标

  • 5

我正在运行带有 Postfix 3.5.17 的 Debian 11,但我无法限制客户端可以将邮件中继到的域(来自提交的邮件)。

我已将 relay_domains 配置为仅将邮件中继到的特定域,但如果我向 domain.com 发送测试邮件,日志会显示它与它的连接,尽管它不在 relay_domains 中。

似乎 relay_domains 现在实际上并没有拒绝任何东西,是否需要额外的配置选项或限制才能生效?

后配置-n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
anvil_rate_time_unit = 60s
append_dot_mydomain = no
biff = no
compatibility_level = 2
default_destination_rate_delay = 5s
disable_vrfy_command = yes
inet_interfaces = all
inet_protocols = all
invalid_hostname_reject_code = 550
mailbox_size_limit = 0
maximal_backoff_time = 3h
minimal_backoff_time = 180s
mydestination = localhost
mydomain = localmail.com
myhostname = localmail.com
mynetworks = 127.0.0.0/8 172.20.0.0/16 10.10.0.0/16 192.168.0.0/16
myorigin = $mydomain
non_fqdn_reject_code = 550
readme_directory = no
recipient_delimiter = +
relay_domains = protonmail.com, protonmail.ch, mail.protonmail.ch, mailsec.protonmail.ch
relayhost =
smtp_always_send_ehlo = yes
smtp_helo_timeout = 15s
smtp_rcpt_timeout = 15s
smtp_tls_security_level = encrypt
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_message_rate_limit = 10
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated,
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
smtpd_recipient_limit = 40
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_timeout = 30s
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/mailtls-selfsigned.crt
smtpd_tls_key_file = /etc/ssl/private/mailtls-selfsigned.key
smtpd_tls_security_level = encrypt
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
email
  • 1 个回答
  • 15 Views
Martin Hope
ehammer
Asked: 2022-12-03 17:50:42 +0800 CST

重击使用 || 命令错误检查的运算符 - 如何在错误检查中运行两个命令?

  • 5

我刚刚意识到使用||operator 作为检查以查看成功完成的命令是否不处理 . 之后的多个命令||。

这是我的脚本中的一个动作,我正在等待 ping 返回,如果它在一定时间内没有返回,那么它应该运行两个命令(在真实脚本中,有两个函数,一个用于清理, 和一个打印错误并退出。我不能将它们结合起来)。

/bin/bash
echo "start"
timeout 10s bash -c 'until ping -w1 -c1 1.1.1.1 >/dev/null 2>&1; do :; done' || echo "unsuc"; exit 1
echo "suc"
exit 0

我的问题是,如果 ping 成功,那么脚本只是exit 1. 我也尝试过这样做echo "unsuc" && exit 1,但这会导致相同的行为。

如果 ping 命令失败,如何运行两个命令?

bash
  • 1 个回答
  • 29 Views
Martin Hope
ehammer
Asked: 2022-07-02 06:10:26 +0800 CST

不使用基于源的路由的 SNAT/Masquerade 的 VPS 端口转发?

  • 0

我正在尝试使用 VPS 通过 VPN 隧道将 80,443 端口转发到本地 Web 服务器进行测试,同时保持原始源公共 IP 不变。这里的主要问题是路由,因为边缘路由设备将有效地看到 2 个带有公共 IP 的接口(真正的 WAN 和 VPN 接口)。

显然,简单的解决方案是仅通过 vpn 隧道的 SNAT 流量,但我想深入了解 Web 流量的真正来源,加上我做的 NAT 越多,我引入系统的开销就越大。此外,我避免在 VPS 上放置任何反向代理,因为我拒绝在遍历 VPS 时随时解密网络流量。

现在开始测试:使用的 IP:Web SRV:192.168.0.2,VPS Wireguard Addr:192.168.200.1,Router Wireguard Addr:192.168.200.2。

我设置了一个虚拟测试网络,其中包含几个 Debian 11 机器作为 VPS 服务器、本地路由器和 Web 服务器。

在 VPS 上,我的 DNAT 流量从端口 80,443 上的接口传入:

iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport –dports 80,443 -j DNAT –to-destination 192.168.0.2

我已经设置 sysctl.conf 来启用 ipv4 转发。我在 VPS 上有一条静态路由,告诉我从哪里到达 192.168.0.2:

ip route add 192.168.0.2/32 via 192.168.200.2 dev wg0

在本地路由器上,我根据接口在网上找到了一些基于回复的规则:

echo 200 vpsrt >> /etc/iproute2/rt_tables

ip rule add from 192.168.200.2 table vpsrt prio 1
ip route add default via 192.168.200.1 dev wg0 table vpsrt

由于 VPN 隧道位于路由器上,因此 Web 服务器已经配置了其默认网关,因此本地路由器和 Web 服务器之间的返回流量根本不会改变。

VPS 上的 wg0.conf(充当服务器):

[Interface]
PrivateKey=*
Address=192.168.200.1/30
ListenPort=50000

[Peer]
PublicKey=*
AllowedIPs=192.168.200.2/32,192.168.0.2/32

路由器上的 wg0.conf(作为客户端):

[Interface]
Address=192.168.200.2/32
PrivateKey=*

[Peer]
Endpoint=PUBIPVPS:50000
PublicKey=*
AllowedIPs=172.20.200.0/30

我已经验证了 Wireguard 隧道的工作原理。我可以分别在每个设备上 ping 192.168.200.1 和 .2,wg show 说握手完成并且双向数据正在流动。

做一些 PCAP,通过 VPS 的流量是正确的。VPS 上 wg0 上的 Tcpdump 显示发往 192.168.0.2 端口 443 的数据包。VPS 上的 WG Show 说它正在传输 1.3Kb,但路由器上的 WG Show 说它只收到了 500 字节(测试 ping)。路由器 WAN 接口上的 Tcpdump 显示 Wireguard 数据包正在到达路由器。但是路由器 wg0 上的 Tcpdump 显示它没有收到任何数据包。

我很确定问题是 Wireguard 正在默默地丢弃具有未在 AllowedIPs (在路由器上)中配置的源 IP 的数据包。但问题是我不能将 0.0.0.0/0 放在路由器 wg0.conf 上,因为它会开始使用隧道作为整个网络的默认网关!

是否不可能使用 Wireguard 作为非默认网关进行基于源的路由?使用其他隧道软件是否有任何潜在的解决方法?我真的很喜欢 Wireguard 的速度,但是如果没有 SNAT/Masquerade,它会变得非常有限。

更新: 刚刚找到这篇文章: https ://techoverflow.net/2021/07/09/what-does-wireguard-allowedips-actually-do/ 它解释说,wireguard“防火墙”和路由使用 AllowedIPs 绑定在一起。

再做一点测试,我可以简单地将路由器上的 AllowedIPs 放到 0.0.0.0/0 并在 wg0.conf 中添加一个 postup 规则来删除默认网关路由,而只添加一个静态路由到隧道 IP。(不幸的是,wireguard 选择将“防火墙”和路由整合到一个选项中)

路由器 wg0 接口上的 Tcpdump 显示数据包现在正在穿越隧道。路由器 LAN 接口上的 Tcpdump 显示数据包已传输出去,并且 Web 服务器正在响应。但现在的问题是那些基于接口源的路由规则似乎无法正常工作,因为 Web 服务器的响应没有被传递到 wireguard 隧道中。

路由器 WAN 接口上的 Tcpdump 显示 Web 服务器 syn-acks 被推出该网关。所以现在我的问题在于我上面提到的基于源的路由规则。基于源的路由超出了我的知识范围,因此非常感谢您提供任何帮助。

routing vps
  • 2 个回答
  • 188 Views
Martin Hope
ehammer
Asked: 2022-03-12 11:43:41 +0800 CST

Rsyslog 在远程发送之前丢弃消息 - 过滤器不起作用

  • 1

在 rsyslog 将它们发送到远程日志服务器之前,我正在努力删除某些 syslog 消息。

这是我的整个 rsyslog.conf 文件,如下所示:

# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf

#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

:msg, contains, "sudo: pam_unix(sudo:session):" ~
:msg, contains, "sudo:   zabbix : TTY=unknown ; PWD=/ ; USER=root ;" ~

*.*     @192.168.3.2:514

重新启动服务后,我继续在远程日志服务器上获取 sudo 消息。

甚至可以在远程发送消息之前丢弃消息吗?

我必须在rsyslog.d.conf 主文件中使用基于优先级的文件吗?

我在 Ubuntu 20.04.3 上运行 Rsyslog 8.2001。

旁注:我知道 ~ 已弃用,但使用stop也没有丢弃消息。

ubuntu rsyslog
  • 1 个回答
  • 211 Views
Martin Hope
ehammer
Asked: 2021-09-19 08:53:00 +0800 CST

Keepass Keeagent SSH Keys 如何与 bash 终端集成?

  • 0

我完全迷失在这里。

我发现了在我的 keepass 数据库中存储 ssh 私钥(我有很多)。在我有一个带有简单菜单的 bash 脚本之前,它只使用 ssh -i 并从 .ssh 目录本地获取 priv 密钥文件。这里的最终目标是创建一个集中可用的密码和私钥数据库,以便在不同设备上使用。

从那以后,我将所有 ssh 私钥都放在了我的 keepass 数据库中,我正在尝试弄清楚如何将 keepass/keeagent 与 bash 终端集成。

但是我想我误解了keepass实际上可以做什么。我想要做的是打开我的 keepass 数据库,运行我现有的 bash 脚本并能够以这种方式启动一个 ssh 会话。

我一直在尝试使用 ssh-agent,但实际上我不知道我在那里做什么或它是如何运作的。我在网上找到的所有信息都是通过我上面的步骤或不使用终端的选项进行的。

那么,有没有办法我可以运行这样的命令:ssh -i KEEPASS-DB-PRIVKEY user@ip或者这不是 keepass/keeagent/sshagent 的能力?

我在 ubuntu 20.04 上使用 KDE 等离子作为桌面。我安装了 keeagent 插件的 keepass2 (2.44)。

ubuntu ssh-agent
  • 2 个回答
  • 495 Views

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve