iptables 是标准的 Linux 防火墙,不会在重新启动之间保存规则。你必须自己照顾这个。有很多方法可以做到这一点。这样做的规范方法是什么?什么是最佳实践?
我会用我自己的解决方案来回答,但我对其他/更好的解决方案感兴趣。
我正在尝试解决一个损坏的应用程序,该应用程序坚持连接到服务器的私有地址(因此无法访问),而不是连接到公共地址(即使相关端口已打开)。更改应用程序不是一种选择。
我正在尝试在客户端上添加 iptables 规则,以将去往 192.168.251.3 的数据包的目标 IP 改为去往 1.2.3.4。DNAT 不起作用,因为 1.2.3.4 不是我的任何客户端接口上的 IP。
任何人都可以指出我可以使用 MANGLE 更改目标 IP 的相关文档吗?
我们有 2 个不同的 ISP 连接。我们以前的“IT 人员”像这样设置我们的防火墙:
当/etc/rc.local被启动时执行的,但它确实一堆ip rule add和ip route add命令以路线某些内部主机使用某些ISP的连接。
然后在最后/etc/rc.local,他执行了我们iptables生成的防火墙规则Firewall Builder。这些iptables规则中设置了策略和 NAT 规则。
我不明白的是,为什么他iproute2用来指定规则和路由,但也指定 NAT 规则iptables?他为什么不把这一切都放在一个或另一个中,而不是同时使用它们?他能否摆脱iproute2规则和路由,并将所有这些相同的规则放入iptablesNAT 设置中?
在我的另一个线程中,我正在谈论有关iptables 策略和状态的一些有趣的事情,现在我想更多地了解 DHCP 的工作原理以及 iptables 如何理解它。
ETH0 连接到我的主交换机,它从我的路由器接收动态 ip,不仅可以访问互联网,还可以访问我的外部网络。
ETH1 是连接到内部交换机的内部卡,X 客户端从该服务器接收其 IPS
ETH1 网络为 192.168.1.0/255.255.255.0,其中服务器 IP 为 192.168.1.254。
据我了解,dhcp 是一个 bootp 协议,因此即使您的防火墙策略可以删除所有内容,您的网络仍会收到 DHCP,在我进行的测试中,这似乎是正确的。
来自 tcpdump:
root@test:~# tcpdump -i eth1 port 67 or 68
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
11:34:03.943928 IP 192.168.1.2.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:0c:29:29:52:8b (oui Unknown), length 303
11:34:03.957647 IP 192.168.1.254.bootps > 192.168.1.2.bootpc: BOOTP/DHCP, Reply, length 300 …Run Code Online (Sandbox Code Playgroud) 我一定不擅长谷歌搜索,因为这似乎是一个非常基本的问题,但我似乎无法在任何地方找到答案……而且man iptables阅读时间很长!
我有两个 NIC - eth0 和 eth1 - 在一个 linux 机器上,我想阻止来自其中一个 NIC 的所有出站流量(所有端口上的 TCP 和 UDP),以便没有流量返回到路由器。
这是什么命令?我只看到了带有特定端口的示例。
提前致谢。
我有一台运行 Debian 7 的服务器,我想连接到 VPN,让除某些端口(SSH、托管网站等)之外的所有流量都通过 VPN。
我已经在互联网上搜索了一段时间,但似乎没有任何效果。
我不是 iptables/网络专家,所以也许我错过了一些东西......
这是我的脚本:
这是在 VPN 之前启动的脚本,它用于阻止所有流量出/入而不通过 VPN,除了某些端口(此处为 SSH)。
如果我只启动这个脚本,它就完成了他的工作。我可以通过 SSH 连接到我的服务器,但所有其他端口都被阻止并且服务器无法进入 Internet(因为 VPN 未启动)。
#!/bin/bash
# Flush iptables
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Default policy
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Accept packets through VPN …Run Code Online (Sandbox Code Playgroud) 目前,我限制了哪些客户端可以通过 iptables 使用 IP 地址访问我的服务器,只有经过批准的 IP 地址才能连接。
但是,问题在于如果客户端在笔记本电脑上并转到不同的位置,他们将无法再连接,因为 IP 已更改。
由于各种原因,iptables 身份验证是我唯一的选择。
有没有办法通过设备而不是 IP 地址来限制访问。例如,只允许某些 MAC 地址连接到端口 5000。
是否可以通过 iptables 做到这一点?请注意,计算机不在同一网络上,它们可以从世界任何地方连接。
我在 CentOS 6.4 上使用 iptables 为 HTTP 打开端口 80 我通常使用 vim 编辑 /etc/sysconfig/iptables 但这次我使用 /sbin/iptables 命令。
# /sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
# service iptables save
# service iptables restart
Run Code Online (Sandbox Code Playgroud)
当我列出规则时,我可以看到这样的 http:
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
Run Code Online (Sandbox Code Playgroud)
但是我无法从其他机器连接到 Web 服务器我检查了 iptables 文件,看到的内容如下:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT …Run Code Online (Sandbox Code Playgroud) 我运行一个主要的媒体上传/下载站点,我注意到这些:
由于文件大小过大,这是严重的还是背景噪音,我是否可以向 /etc/sysctl.conf 添加任何调整以改进和防止问题?
[8822139.804040] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired)
[8822140.944041] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired)
[8822143.224052] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired)
[8822147.776079] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired)
[8822156.896049] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired)
[8822175.136049] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired)
[8900596.808027] TCP: Peer 101.109.227.138:56284/80 unexpectedly shrunk window 1388148754:1388196670 (repaired)
[8900598.444020] TCP: Peer 101.109.227.138:56284/80 unexpectedly shrunk window 1388148754:1388196670 (repaired)
[8914737.204037] TCP: Peer 2.238.243.60:63238/80 …Run Code Online (Sandbox Code Playgroud)