标签: iptables

可以ping但不能连接(curl、wget、apt-get等)(rasberry pi服务器)

背景:我正在尝试设置一个 rasberry pi 服务器。一切都很顺利,我的 pi 可以 apt-get update 等,直到我让端口转发工作并且 ssh 在 LAN 之外工作。我也一直在尝试启动网页,因此我为 80 以外的端口创建了一个端口转发,因为我的 ISP 阻止了它。

问题:通过局域网外的 ssh 访问 pi 后,我无法使用 apt-get 或通过我的 pi 连接到网站。尽管如此,ping 仍然运行良好。

我尝试过的:我尝试了许多不同的 iptables 配置,以及完全刷新它并使用人们建议的配置重新开始几次。它似乎都不起作用。目前,iptables 已完全刷新。

这是 pings 和 wget/curls 的示例输出:

pi@raspberrypi:~$ sudo apt-get update
0% [Connecting to mirrordirector.raspbian.org (5.153.225.207)] [Connecting to w^Cpi@raspberrypi:~$ wget -q -O- google.com
^C
pi@raspberrypi:~$ ping google.com
PING google.com (74.125.224.98) 56(84) bytes of data.
64 bytes from lax02s19-in-f2.1e100.net (74.125.224.98): icmp_req=1 ttl=52 time=58.8 ms
64 bytes from lax02s19-in-f2.1e100.net (74.125.224.98): icmp_req=2 ttl=52 time=53.8 …
Run Code Online (Sandbox Code Playgroud)

networking linux ssh wget iptables

8
推荐指数
1
解决办法
2万
查看次数

从 iptables 黑名单中删除 IP

我使用 ipset 和 iptables 创建了一个名为“黑名单”的黑名单,现在我想知道如何编辑“黑名单”来删除或添加 IP。

有谁知道?

networking linux firewall iptables

8
推荐指数
1
解决办法
8178
查看次数

如何故意为传入的 UDP 数据包引入延迟

我希望每个数据包(匹配 iptables 规则)延迟某个固定时间间隔。这怎么办?

前置码: iptables -A INPUT -p udp <more conditions> -j DELAY --delay 50000 # delay UDP packets for 50 milliseconds

更新: @related在 Linux 上模拟低带宽、高延迟的网络连接

networking linux iptables udp traffic-shaping

7
推荐指数
1
解决办法
9604
查看次数

用于透明 TCP 代理的 iptables

这是我的情况。我的网络上有一个 iPad、一个 TiVo 和一个 dd-wrt ​​路由器,还有一台我想用来嗅探/解密 iPad 和 TiVo 之间的数据的机器。

iPad 有一个应用程序,A) 自动发现 TiVo 的 IP,B) 通过 SSL 与 TiVo 通话。iPad 在我的 wifi 网络上,而 TiVo 是有线的,保证数据包通过我的 dd-wrt ​​路由器;我可以用 tcpdump 嗅探它们,但它们是加密的。

我想尝试使用 tcpcatcher 来尝试使用 ssl 解密和重新加密的中间人。我假设我可以在 dd-wrt ​​路由器上使用一些简单的 iptable 规则来转发/重定向/nat 将在 ipad 和 tivo 之间传输的数据包,就像透明 http 代理一样。但是,我还没有找到正确的规则来执行此操作,因此需要一些帮助。

networking tcp iptables

7
推荐指数
1
解决办法
2万
查看次数

与 PS3 共享透明代理的 Internet 连接

我想在 PS3 上玩日本卡拉 OK 游戏,但延迟太可怕了,下载歌曲需要永远。我得到的一个建议是通过 OpenSSH 登录我朋友在日本的服务器,将我的笔记本电脑变成 SOCKS 代理。

[服务器]----(ssh 隧道)---[wlan0 <laptop> eth0]---[PS3]

所以这就是我所做的:

ssh -ND 4711 login@friend.server
Run Code Online (Sandbox Code Playgroud)

在那一刻,我尝试使用 Firefox(使用 SOCKS 代理设置)从我的笔记本电脑访问 google.com,然后我被重定向到 google.co.jp。伟大的。

然后我想通过以太网将我的 PS3 连接到我的笔记本电脑。

我首先为 eth0 分配了一个静态 IP:

ip link set dev eth0 up
ip addr add 139.96.30.100/24 dev eth0
Run Code Online (Sandbox Code Playgroud)

然后我在我的笔记本电脑上启动了一个 DHCP 服务器,为 PS3 提供一个 IP:

systemctl start dhcp4.service
Run Code Online (Sandbox Code Playgroud)

最后我用一些 iptables 魔法启用了 NAT:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

我转到“网络设置”并测试了我的 PS3 的连接,很好,它似乎工作正常。我启动了网络浏览器,google.com 被重定向到 google.fr。多么愚蠢,我忘了将连接转发到正确的端口。

在通过 iptables 进行大量连接转发后,我决定尝试使用透明代理:redsocks。http://darkk.net.ru/redsocks/

安装后我修改了 /etc/redsocks.conf 以满足我的需要:

redsocks {
    local_ip=0.0.0.0; …
Run Code Online (Sandbox Code Playgroud)

linux ssh ps3 socks-proxy iptables

7
推荐指数
1
解决办法
1290
查看次数

如何在 Tun 设备和 eth0 之间转发流量?

总之,我想让 Tun 设备流量通过另一个具有 Internet 连接的网络接口来回转发。虽然我可以看到流量传到互联网并返回,但它没有路由回我的 Tun 设备。

这是我的设置:

我在 VirtualBox 下使用 Mint Linux 15 VM 进行了非常简单的设置,Win7 作为主机。

在 VM 中,有两个网络接口 - eth0 和 tun0。

  • eth0 接口连接到互联网,并分配​​为192.168.1.115/24
  • tun0 接口被分配为10.0.5.1/24

    ip tuntap add dev tun0 mode tun user askldjd
    ip link set tun0 up
    ip addr add 10.0.5.1/24 dev tun0
    
    Run Code Online (Sandbox Code Playgroud)

我设置了我的 iptables 规则来伪装所有通过 eth0 流出的流量。

    iptables -I FORWARD -i tun0 -o eth0 -s 10.0.5.0/24 -m conntrack --ctstate NEW -j ACCEPT
    iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j …
Run Code Online (Sandbox Code Playgroud)

networking iptables icmp

7
推荐指数
1
解决办法
1万
查看次数

如何使用防火墙从主机外部阻止 docker 映射的端口,而不会弄乱主机内部的 docker 路由?

我有一个在主机上运行的 docker 容器,其中一些端口映射到主机上的端口。

docker run -d -p 9009:9009 someserver

除了 80、443 和 22,我希望这台机器与 Internet 防火墙隔离。

但我仍然希望主机内的进程能够连接到 9009。

我有点震惊地发现 docker 似乎完全绕过了丢弃数据包的任何防火墙规则。

我尝试在 centos 7 上使用firewalldiptables来阻止除 80、443 和 22 之外的所有内容。不知何故,我仍然能够从主机外部访问 docker 端口映射容器(端口 9009)!我发现的一些解决方案似乎完全弄乱了 docker 的路由——要么使 docker 容器无法访问互联网或其他什么。

我的情况可能吗?

这似乎在问同样的问题:https : //security.stackexchange.com/questions/66136/docker-port-forwarding-exposure

networking firewall iptables docker firewalld

7
推荐指数
1
解决办法
3570
查看次数

如何使用 Mikrotik 路由器隔离网络?

我最近为我的网络安装了一个Mikrotik 路由器,我想创建 3 个相互隔离但都可以访问互联网的网络:

  1. PC 等的“主”网络。
  2. 用于家庭自动化设备/电器的网络。我不希望这些主机能够访问其他网络,但我希望主网络上的某些特定主机能够访问该网络上的特定主机。
  3. 访客的访客网络。我希望此网络上的主机只能访问 Internet,并与其他网络完全隔离。

通过遵循这些说明并模仿路由器附带的默认配置,我已经能够使用网桥设置这三个网络。

听起来我现在需要定义防火墙规则来阻止网桥之间的流量,而这正是我需要帮助的地方。我的理解是 Mikrotik 防火墙软件是基于 Linux iptables 的。

  1. 似乎有两个地方可以做到这一点: 中的主要防火墙配置/ip firewall filter,以及 中特定于网桥的部分/interface bridge filter。最好使用哪一种?各自的优缺点是什么?

  2. 我正在试验桥接过滤器,但我所有的规则旁边都有一个小交通栏图标,这对我来说不太好。我找不到有关图标含义的任何解释。

  3. 我应该如何设置规则?为每个桥创建一堆单独的链会更易于管理吗?如果是这样,应该如何组织链条?

  4. 听起来我需要为此定义forward规则。是否有任何inputoutput我需要的规则?

  5. 我应该在网桥/接口(即桥内、桥外、WAN 接口等)上设置规则匹配,对吗?例如,要阻止从主网络到家庭自动化网络的数据包,我需要一个类似于 in-bridge=main out-bridge=home_automation action=DROP 的规则,对吗?

firewall iptables mikrotik-routeros

7
推荐指数
1
解决办法
3万
查看次数

通过 SSH 隧道的 OpenVPN 连接

我目前正在访问中国,所以我有一些设置 VPN 的选项。但是,我的 VPN 服务器有一个习惯,在我使用一段时间后突然从网络中消失。

我认为使用 SSH 隧道连接到另一台服务器并通过它连接 VPN 可能是一种选择,以防止检测到 VPN 流量。这样,大概,流量只是作为到提供商的 SSH 连接读取。

所以,我连接到这样的服务器:

ssh peter@some-server -L 4444:vpn-server:1194 -N
Run Code Online (Sandbox Code Playgroud)

然后将其添加到我的 openvpn 客户端配置中:

remote localhost 1194
Run Code Online (Sandbox Code Playgroud)

可悲的是,这行不通。连接通过身份验证,但之后,我无法连接到 VPN 内部 ( ping 10.8.0.1) 或外部 ( ping 8.8.8.8)。这应该有效,还是我误解了什么?

我应该添加一些 iptables nat 规则吗?到目前为止,我添加的唯一 nat 规则是:

-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

networking ssh vpn openvpn iptables

7
推荐指数
3
解决办法
1万
查看次数

FTP 客户端无法在 Docker 容器内工作

我试图让我的应用程序在 Docker 中正常运行,但遇到了问题。

该应用程序以 PASV 模式连接到远程 FTP 服务器,并 PUT 文件。非常简单,无需 docker 即可正常工作。FTP 服务器和客户端都不在任何 NAT 之后;但是客户端变成了 NAT,因为我使用的是 Docker 桥接网络。(使用默认网桥配置http://pastie.org/10954592

如果我在运行客户端应用程序时查看 FTP 服务器上的 tshark,它会交换大量数据包,因此它正在“连接”到服务器,但应用程序没有收到任何回复。这让我假设当 FTP 服务器尝试在该经验端口上响应时,它不会从主机操作系统路由回 Docker 容器。

所以,希望总结一下,有没有什么好的方法可以将这些 pasv 端口正确转发到 docker 网桥?约束:我无法控制生产中的 FTP 服务器,所以我不能简单地硬编码 iptables 的 pasv 端口列表。

感谢您的任何想法!

networking ftp nat iptables docker

6
推荐指数
1
解决办法
4501
查看次数