我使用 Linux 盒子作为路由器:
Box 有 2 个公共 ip 和本地 ip,我使用 natting 来允许本地用户访问网络。
当本地用户访问网络时,源解析发生在这里,通过公共接口的数据包是通过 OUTPUT 链还是通过 Forward 链进行检查?
对于已建立会话的返回数据包,他们是否通过 INPUT 或转发链进行检查?
最后一件事:将我视为本地用户,数据包将像这样
PC ---> LinuxBox 本地接口 ---> Linux Box 公共接口 ----> 外部世界。
当数据包返回时:
外部字---->公共接口---->本地接口----->PC
如果我想在数据包从本地接口移动到 PC 时对其应用规则,我应该使用 FORWARD 链还是 OUTPUT 链?
你怎么认为 ??
我在正确配置 iptables 时遇到一些麻烦。我想阻止除 SSH 之外的所有传入流量,并允许任何传出流量。我执行了以下操作。
#!/bin/sh
ETH0=$(ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
ETH1=$(ifconfig eth1 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
#!/bin/sh
# My system IP/set ip address of server
# Flushing all rules
iptables -F
iptables -X
# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# Allow unlimited traffic on loopback
iptables -A INPUT -i …Run Code Online (Sandbox Code Playgroud) 我们可以通过以下方式根据 IP 地址标记数据包 -
iptables -A FORWARD -t mangle -s 123.2.3.4 -j MARK --set-mark 1
如何根据主机名标记数据包?我试过这个 -
iptables -A FORWARD -t mangle -s google.co.in -j MARK --set-mark 1
但是iptables实用程序google.co.in从 DNS获取 IP 地址并将条目添加到 mangle 表中。如何标记来自 的所有数据包google.co.in,而不仅仅是来自 Google 的单个服务器。由于有数千台服务器,手动添加所有 IP 地址也是不可能的。
有没有办法读取数据包并获取主机名并进行标记?
谢谢你。
我想配置防火墙以阻止特定进程的某些域。但是这些被阻止的域应该可供其他进程使用。
我试图保存 iptable 配置,有人建议我iptables-save这对我来说并不合适。我登录并尝试/etc/init.d/iptables save和service命令,没有工作,也没有找到任何在线参考。
-bash-4.2# iptables --version
iptables v1.4.19.1
-bash-4.2#
-bash-4.2# uname -a
Linux server 2.6.32-042stab120.6 #1 SMP Thu Oct 27 16:59:03 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux
-bash-4.2#
-bash-4.2# cat /etc/SuSE-brand
BasedOnopenSUSE
VERSION = 13.1
-bash-4.2#
Run Code Online (Sandbox Code Playgroud)
编辑:尝试时收到错误消息/etc/init.d/iptables save和service iptables save
server:~ # /etc/init.d/iptables save; cat /etc/os-release | grep VER
-bash: /etc/init.d/iptables: No such file or directory
VERSION="13.1 (Bottle)"
VERSION_ID="13.1"
server:~ # service iptables save
service: no such service iptables …Run Code Online (Sandbox Code Playgroud) 我在玩 iptables 来过滤来来往往的数据包。遵循规则的结果是什么?
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -j DROP
Run Code Online (Sandbox Code Playgroud) 我正在此处下载 Amazon Web Services 的 CIDR 列表:
https://ip-ranges.amazonaws.com/ip-ranges.json
然后将它们放在带有以下行的 ipset 上:
sudo ipset -q -A tor $ip
Run Code Online (Sandbox Code Playgroud)
并使用以下行使用 iptables 进行阻塞:
sudo iptables -A INPUT -m set --match-set tor src -j DROP
Run Code Online (Sandbox Code Playgroud)
ipset tor 中总共有大约 65,000 个 IP 。它还阻止了 Tor IP 和其他一些 IP,这对这些 IP 工作正常,但由于某种原因,它似乎无法阻止任何 Amazon IP。
有任何想法吗?
完整规则列表:
sudo ipset -N whitelist nethash
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m set --match-set whitelist src -j ACCEPT
sudo iptables -N BLOCK24
sudo iptables -A …Run Code Online (Sandbox Code Playgroud) 我想iptables通过iptables-save代替ufwor保存的良好的老式命令来管理我的防火墙firewalld。对于 RHEL,有一个简洁的小包iptables-services可以做到这一点。(请参阅此处)对于 Debian,似乎没有。
我只是可以打iptables-restore </etc/default/iptables进去/etc/rc.local然后离开它,但我想要一个更干净的设置。如果它可以作为 systemctl 单元出现,那将是理想的。
我想检查和修改从一个进程发送到另一个进程的 http 请求。为此,我有一个在本地主机端口 8080/tcp 上运行的代理。进程所有者是 root,它发送到的应用程序在本地主机端口 50000/tcp 上运行。该进程会产生新的子进程,这就是我选择上述路线的原因。我无法使用--pid-owner。iptables 命令会是什么样子?
或者换种说法:
情况:
目标:
困难:
假设我有一个包含数千个要阻止的 IP 地址的列表。现在我知道如何遍历列表和每次运行:
iptables -A INPUT -s XX.XX.XX.XX -j DROP
Run Code Online (Sandbox Code Playgroud)
但这意味着我将不得不运行数千个进程!
我怎样才能更有效地做到这一点?