有没有更简单的命令?(例如:oneliner?可以通过一个命令将 iptables/netfilter 设置重置为此吗?)
IPTABLES="$(which iptables)"
# RESET DEFAULT POLICIES
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
# FLUSH ALL RULES, ERASE NON-DEFAULT CHAINS
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
Run Code Online (Sandbox Code Playgroud) 我需要在 Centos 7 上使用firewalld.
我在 Centos 6.5 上使用了 iptables,只需要添加以下几行/etc/sysconfig/iptables:
-A POSTROUTING -s "10.0.0.0/24" -o "wlan0" -j MASQUERADE
-A FORWARD -p tcp -s 10.0.0.0/24 -d 0.0.0.0/0 -j ACCEPT
run the command: echo 1 > /proc/sys/net/ipv4/ip_forward
open port 443.Run Code Online (Sandbox Code Playgroud) 我实际上有两个场景来应用这个:
Multiseat Desktop:两个网络连接都与互联网网关和两个帐户在每个网络上执行带宽密集型任务。我想把它们分开,这样一个帐户只使用 eth0,第二个帐户只使用 eth1。
服务器:我在服务器上有两个 IP,我想确保邮件用户只从第二个 IP(eth0:1 别名)发送电子邮件
第二个可能是 IPTabled(我只是不知道如何)通过该接口路由电子邮件流量,但第一个将处理各种流量,因此需要基于用户。如果有基于用户的解决方案,我可以在两个地方都应用它。
我有一个比较奇怪的问题。我有一个带有两个网络接口的服务器eth0和eth1. 每个都连接到不同的网络。每个网络都有一个互联网网关。服务器有各种出站连接:http(服务器上的一些脚本抓取网站)、nfs 客户端、samba 客户端、dns 客户端和电子邮件提取器等等。
由于我不会讨论的原因,我需要将这些出站客户端分开,以便出站 http、nfs、samba 和 dns 流量仅在eth0其他所有内容通过eth1.
我已经阅读了一些谷歌搜索,它看起来iptables是我需要的,但我真的没有任何线索。我只习惯于通过ufw.
有人可以从一些示例规则开始,告诉我如何让系统在启动时采用这些规则吗?理想情况下,不要将我锁定在 SSH 连接之外(我可以进行物理访问,但我宁愿不这样做)。
编辑如果可以将来自一个帐户的所有出站流量限制到一个接口,我可以将客户端拆分为两个用户。在纸面上似乎可能更容易。
如果我选择允许 OUTPUT 链上的所有流量 ( iptables -P OUTPUT ACCEPT) 邮件发送正常。一旦我用这些规则锁定我的服务器,外发邮件就会停止工作。不过,其他一切都有效,这很奇怪。
有没有人看到这里有任何东西可以阻止我的外发邮件发送?我很难过,一遍又一遍地查看这些规则并尝试了很多不同的版本。
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT …Run Code Online (Sandbox Code Playgroud) 我能够设置一个网络命名空间,使用 openvpn 建立隧道并启动一个在命名空间内使用此隧道的应用程序。到目前为止一切顺利,但是可以通过 Web 界面访问此应用程序,我不知道如何将请求路由到 LAN 内的 Web 界面。
我遵循了@schnouki 的指南,解释了如何设置网络命名空间并在其中运行 OpenVPN
ip netns add myvpn
ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up
ip link add vpn0 type veth peer name vpn1
ip link set vpn0 up
ip link set vpn1 netns myvpn up
ip addr add 10.200.200.1/24 dev vpn0
ip netns exec myvpn ip addr add 10.200.200.2/24 dev vpn1
ip netns exec myvpn ip route add …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的虚拟机上的 CentOS 6.5 中打开端口 80,以便我可以从桌面浏览器访问 apache。

如果你看看上面的截图......我已经在蓝色箭头之前添加了一行,正如http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- 80/ 现在我在浏览器中输入 IP 地址时确实获得了 apache 测试页面,但是在重新启动 iptables 时,当 CentOS 尝试应用新规则时,我仍然收到“FAILED”。
有谁知道解决方案?还是我需要忽略失败?
我想使用 iptables 在我的系统上停止互联网,我该怎么办?
iptables -A INPUT -p tcp --sport 80 -j DROP
或者
iptables -A INPUT -p tcp --dport 80 -j DROP ?
假设 LAN 上有两个用户,A 和 B。如何使用 iptables 规则限制用户 A 访问 Internet 并保存规则,以便重新启动后它们仍然有效。还假设我想在某个时候授予该用户访问权限;我如何再次启用它?我正在使用 Ubuntu Linux 10.04。如果有人告诉我如何从命令行执行此操作,那就太好了,因为我经常使用本地 ssh 登录名登录到机器。