我有一台 Ubuntu 12.04 主机,上面有一个在端口 8080 上运行的鱿鱼代理。我想使用 iptables 通过鱿鱼代理来自主机的所有 Web 流量。正确的方法是:
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
Run Code Online (Sandbox Code Playgroud)
这是行不通的。当我浏览到某个页面时,即使禁用了代理,它也会正常显示。任何建议表示赞赏。
我正在寻找一种方法将所有流量(到任何端口)从一台电脑转发到某个IP。
看看下面的规则:
iptables -t nat -A PREROUTING -p tcp --dport 443 --jump DNAT --to-destination 129.94.5.88:5000
Run Code Online (Sandbox Code Playgroud)
这告诉我所有发往端口 443 的流量都应该转移到129.94.5.88:5000. 我如何更改此规则以表示:
iptables -t nat -A PREROUTING -p tcp --dport "ANY DESTINATION PORT" --jump DNAT --to-destination 129.94.5.88:5000
Run Code Online (Sandbox Code Playgroud)
我还想知道如何根据目标IP而不是端口进行重定向。所以再次查看这条规则:
iptables -t nat -A PREROUTING -p tcp --dport 8443 --jump DNAT --to-destination 129.94.5.88:5000
Run Code Online (Sandbox Code Playgroud)
如何更改此设置以基于目标 IP(比如说8.8.8.8)而不是端口进行重定向?
我通过 Wordpress Pingback BOTNET 受到 DDoS,现在我想阻止Wordpress其中包含用户代理的所有客户端。例如:
WordPress/4.0; http://vk.lokos.net; verifying pingback from 107.158.239.82
Run Code Online (Sandbox Code Playgroud)
我需要阻止 HTTP 端口 80 和 HTTPS 端口 443。我该如何执行此操作?
我有大约 4 个 IP 地址,它们不断地随机访问我网络上的一个端口,我想阻止。所以我在我的 OpenWRT 路由器中添加了这样的规则:
iptables -I INPUT -s FIRST_PUBLIC_IP -p tcp --dport 32400 -j DROP
iptables -I INPUT -s SECOND_PUBLIC_IP -p tcp --dport 32400 -j DROP
iptables -I INPUT -s THIRD_PUBLIC_IP -p tcp --dport 32400 -j DROP
iptables -I INPUT -s FOURTH_PUBLIC_IP -p tcp --dport 32400 -j DROP
Run Code Online (Sandbox Code Playgroud)
然后我也有这个规则,只要该端口上有连接就会写入日志
iptables -I FORWARD -p tcp --dport 32400 -m limit --limit 1/min -j LOG --log-prefix "PLEX Connection "
Run Code Online (Sandbox Code Playgroud)
所以我认为会发生的是,如果列出的 4 个 IP 地址中的 1 个尝试连接到该端口,它们只会被丢弃并且永远不会进入前向链。其他一切都会触发该日志记录规则。
但是,这些 IP 地址仍通过 FORWARD …
我在 VPS 上有 OpenVPN 服务器,我在 Windows 8.1 上工作,我只想通过 VPN 传递某些端口(例如 3000、3001)。从窗户可以吗?
本地生成并前往本地的数据包是否采用 PREROUTING 链?
我向 iptables 添加了一些规则,将我的公共 IP 的 http 请求转发到本地绑定的 Nginx。
iptables -t nat -A PREROUTING -i enp3s0f0 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1
iptables -t nat -A POSTROUTING -o lo -p tcp --sport 80 -j SNAT --to-source xxx.yyy.zzz.www
Run Code Online (Sandbox Code Playgroud)
并将过滤表 FORWARD 链的策略设置为 ACCEPT。
结果,这些规则起作用了,我可以在另一台机器上访问Nginx,但在具有xxx.yyy.zzz.www IP的机器上无法访问xxx.yyy.zzz.www。(使用 Curl 和 Chrome)
为什么xxx.yyy.zzz.www机器无法访问Nginx?
我们正在使用一些已配置的 Amazon EC2 实例Security Groups(例如,只能从特定 IP 进行 SSH - 抱歉,我不能发布规则)。
前段时间查iptables了一下,好像没有配置。
sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Run Code Online (Sandbox Code Playgroud)
我的问题是:
配置是否有意义iptables- 通过raw method或通过某些前端,例如csf(不一定是最佳选择,但我想提供一些示例)?
或者我们什么也得不到?
firewall iptables amazon-ec2 amazon-web-services security-groups
我有一台具有两个接口的计算机,这两个接口具有不同的可路由 IPv4 地址。为了在正确的接口上返回流量,我使用了这个答案和评论,它有效:我可以使用任一 IP 地址 ssh 进入机器。(我不知道这是否有任何影响,但可能有。)
现在我使用此答案添加了以下用于反向代理/DNAT 的 iptables 规则。我的启动脚本现在看起来像:
# eth0 is automatically brought up and gets 192.168.1.2 as IP
sudo ip link set eth1 up
sudo ip addr add 192.168.2.2/24 dev eth1
sudo ip rule add from 192.168.2.2 table frometh1
sudo ip route add default via 192.168.2.1 dev eth1 table frometh1
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.0.1:443
sudo iptables -t nat -A …Run Code Online (Sandbox Code Playgroud) 如何在其 INPUT 链中
iptables同时存在(ACCEPT, all, anywhere, anywhere)和?(DROP, all, anywhere, anywhere)
iptables对于具有默认策略 的规则ACCEPT以及DROP其链中的所有流量有何意义?INPUTDROP
在这种情况下,流量实际上会被接受还是丢弃?ssh我看到和存在特殊规则http,所以它们自然会优先,因为它们更具体?
# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:http ctstate NEW,ESTABLISHED
ACCEPT icmp -- …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置一些规则来阻止 TCP(SSH 和 FTP)上除 21 和 22 之外的所有端口。但是当我尝试运行这个脚本时,我被锁定在我的实例之外并且无法访问它。这是脚本:
# Flush the FW Rules
iptables -F
iptables -X
# Block all traffic
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Allow SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
# Allow FTP
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
# Allow ICMP (ping)
iptables …Run Code Online (Sandbox Code Playgroud)