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

Coxer's questions

Martin Hope
Coxer
Asked: 2022-01-01 10:40:16 +0800 CST

Wireguard 使用一个客户端作为另一个客户端的网关

  • 1

我有一个 Wireguard VPN 设置,基本上如下所示:

P1 ---- S ---- P2 --- Internet

IP地址: P1 = 10.200.1.5 S = 10.200.1.1 P2 = 10.200.1.3

我通过allowedIps = 0.0.0.0/0在 P1 的客户端配置中指定将 P1 的所有流量重定向到 S。

现在我希望 S 将流量路由到 P2。我在 S 上尝试了以下操作:

 ip rule add from 10.200.1.5 lookup 200
 ip route add default via 10.200.1.3 dev wg0 table 200
 sysctl -w net.ipv4.ip_forward=1

但是,当我在 P2 上运行 tcpdump 时,我看不到任何流量进入。P1 也没有遇到任何互联网连接。

编辑:通过 S 测试自定义路由表

ip route get 8.8.8.8 from 10.200.1.5 iif wg0

给出以下响应

8.8.8.8 from 10.200.1.5 via 10.200.1.3 dev wg0 table 200
    cache iif wg0

然而,这似乎很好

tcpdump -nn -i wg0

显示S无法访问,如下所示

09:58:22.207251 IP 10.200.1.5.9134 > 8.8.8.8.53: 36555+ A? play.googleapis.com. (37)
09:58:22.207270 IP 10.200.1.1 > 10.200.1.5: ICMP host 8.8.8.8 unreachable, length 73
routing wireguard policy-routing
  • 1 个回答
  • 1357 Views
Martin Hope
Coxer
Asked: 2016-10-06 04:41:53 +0800 CST

共享 Internet 连接上的连接被拒绝

  • 2

下图显示了我的网络拓扑。 施马特 我现在想使用 wlan0 将来自 10.8.0.15 的所有 http 流量通过 10.8.0.42 路由到外部世界。不幸的是,在 iptables 和路由方面,我是个菜鸟。谁能指出我正确的方向?

编辑:到目前为止,我在 10.8.0.15 上执行了以下命令

sudo ip rule add fwmark 2 table 3
sudo ip route add default via 10.8.0.42 table 3
sudo ip route flush cache
sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
sudo iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.8.0.15
sudo sysctl -w net.ipv4.conf.eth0.rp_filter=2
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 10.8.0.42

以及 10.8.0.42 上的以下内容

sudo iptables -I FORWARD -i eth0 -o wlan0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo sysctl -w net.ipv4.ip_forward=1

当我现在想在 10.8.0.15 上测试连接时,我得到以下信息

curl http://freegeoip.net/json/
curl: (7) Failed to connect to freegeoip.net port 80: Connection refused

和 10.8.0.42 上的 tcpdump 显示

sudo tcpdump -n -i eth0 -s 0 src or dst port 80
10:05:18.552329 IP 10.8.0.15.36186 > 10.8.0.42.80: Flags [S], seq 460236380, win 29200, options [mss 1308,sackOK,TS val 22927 ecr 0,nop,wscale 6], length 0
10:05:18.552612 IP 10.8.0.42.80 > 10.8.0.15.36186: Flags [R.], seq 0, ack 460236381, win 0, length 0
10:05:19.068397 IP 10.8.0.15.50052 > 10.8.0.42.80: Flags [S], seq 2824330189, win 29200, options [mss 1308,sackOK,TS val 22969 ecr 0,nop,wscale 6], length 0
10:05:19.068674 IP 10.8.0.42.80 > 10.8.0.15.50052: Flags [R.], seq 0, ack 2824330190, win 0, length 0

此设置的目的是使用网络中的任意客户端作为 Internet 网关。虽然图中只有 10.8.0.42,但可能有多个这样的客户端,每个客户端都有自己的专用互联网访问权限,其他客户端可能会使用这些客户端。

更新:我现在按照下面的建议测试了以下配置。

盒子0:

sudo ip route add default via 10.8.0.42 dev tun0 table 3
sudo ip rule add fwmark 2 table 3
sudo ip route flush cache
sudo iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK --set-mark 2
sudo sysctl -w net.ipv4.conf.eth0.rp_filter=0
sudo iptables -A POSTROUTING -t nat -o eth0 -p tcp --dport 80 -j SNAT --to-source 10.8.0.15
sudo iptables -A POSTROUTING -t nat -o eth0 -p tcp --dport 443 -j SNAT --to-source 10.8.0.15

框1:

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A POSTROUTING -t nat -s 10.8.0.0/24 -p tcp --dport 80 -j SNAT --to-source 192.168.0.2
sudo iptables -A POSTROUTING -t nat -s 10.8.0.0/24 -p tcp --dport 443 -j SNAT --to-source 192.168.0.2

box1 上的 tcpdump 输出保持不变:

12:24:05.788127 IP 10.8.0.15.45844 > 10.8.0.42.80: Flags [S], seq 4169666416, win 29200, options [mss 1308,sackOK,TS val 15420789 ecr 0,nop,wscale 6], length 0
12:24:05.788414 IP 10.8.0.42.80 > 10.8.0.15.45844: Flags [R.], seq 0, ack 4169666417, win 0, length 0
12:24:06.786406 IP 10.8.0.15.45844 > 10.8.0.42.80: Flags [S], seq 4169666416, win 29200, options [mss 1308,sackOK,TS val 15420889 ecr 0,nop,wscale 6], length 0
12:24:06.786694 IP 10.8.0.42.80 > 10.8.0.15.45844: Flags [R.], seq 0, ack 1, win 0, length 0
12:24:08.789821 IP 10.8.0.15.45844 > 10.8.0.42.80: Flags [S], seq 4169666416, win 29200, options [mss 1308,sackOK,TS val 15421089 ecr 0,nop,wscale 6], length 0
12:24:08.790111 IP 10.8.0.42.80 > 10.8.0.15.45844: Flags [R.], seq 0, ack 1, win 0, length 0

box0 上的 tcpdump 输出:

11:26:14.220391 IP 10.8.0.15.33420 > 158.69.242.138.80: Flags [S], seq 2659446178, win 29200, options [mss 1460,sackOK,TS val 15433635 ecr 0,nop,wscale 6], length 0
11:26:14.308915 IP 10.8.0.42.80 > 10.8.0.15.33420: Flags [R.], seq 0, ack 2659446179, win 0, length 0
11:26:15.211761 IP 10.8.0.15.33420 > 158.69.242.138.80: Flags [S], seq 2659446178, win 29200, options [mss 1460,sackOK,TS val 15433735 ecr 0,nop,wscale 6], length 0
11:26:15.337652 IP 10.8.0.42.80 > 10.8.0.15.33420: Flags [R.], seq 0, ack 1, win 0, length 0

我想主要问题是 tcp 数据包到达 box1 时的目的地是 10.8.0.42,而不是 http 请求的 URL 的 IP(这里:158.69.242.138)。但是我看不到这个目的地在哪里被改变了。

unix iptables route
  • 2 个回答
  • 514 Views
Martin Hope
Coxer
Asked: 2014-04-25 08:51:11 +0800 CST

Dovecot - 身份验证错误权限被拒绝

  • 2

以下日志文​​件来自我当前的邮件日志:

Apr 24 17:44:48 h2290750 dovecot: auth: Error: pgsql: Connect failed to mail: could not connect to server: Permission denied
Apr 24 17:44:48 h2290750 dovecot: auth: Error: #011Is the server running on host "localhost" (::1) and accepting
Apr 24 17:44:48 h2290750 dovecot: auth: Error: #011TCP/IP connections on port 5432?
Apr 24 17:44:48 h2290750 dovecot: auth: Error: could not connect to server: Permission denied
Apr 24 17:44:48 h2290750 dovecot: auth: Error: #011Is the server running on host "localhost" (127.0.0.1) and accepting
Apr 24 17:44:48 h2290750 dovecot: auth: Error: #011TCP/IP connections on port 5432?

我检查了 postgresql 服务器正在侦听端口 5432。我的 pg_hba.conf 看起来像这样。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# Mail stuff
host    mail            mailreader      127.0.0.1/32            md5
host    mail            mailreader      ::1/128                 md5
# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident

我的dovecot-sql.conf的连接配置:

driver = pgsql
connect = host=localhost dbname=mail user=mailreader password=secret
default_pass_scheme = SHA512
password_query = SELECT email as user, password, 'maildir:/home/mail'||maildir as userdb_mail FROM users WHERE email = '%u'

有什么建议么?也许我需要散列秘密,以便 dovecot 将 md5 散列密码推送到 pgsql?

编辑:psql -U mailreader -d mail在数据库中给我留下一个 SQL 提示mail

postgresql
  • 3 个回答
  • 2319 Views
Martin Hope
Coxer
Asked: 2014-04-15 02:55:52 +0800 CST

多个内部邮件地址,而只有一个公共地址

  • 0

我有以下设置(硬件):一个根服务器,在互联网上,域 example.com 指向该服务器。公司内部的 Intranet,包含多台 PC。

目前,邮件流量由根服务器处理,内部网中的客户端 (Outlook) 可以通过根服务器发送邮件。只允许公司内的两名员工进行邮件检索,他们通过文件系统将邮件发送给其余员工。

到目前为止,一切都很好。我的客户现在分配给我的任务是为公司内的每个员工都有一个单独的电子邮件地址。这将导致[email protected]、[email protected] 等。尽管如此,仍然需要这些地址在公司外部是不可见的。我的客户希望有一个电子邮件地址,例如 [email protected],两名调度员员工从该地址检索邮件。当其他员工发送邮件时,邮件应从 [email protected] 发送,对该邮件的回复应由 [email protected] 接收。但是在公司内部,地址为[email protected] 的员工应该有可能收到从[email protected] 转发的邮件,或者[email protected] 应该能够向[email protected] 发送电子邮件

我希望对问题的描述能以某种方式理解。有谁知道解决这类问题的好方法?

email
  • 1 个回答
  • 133 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