Articles of iptables

高级dynamic路由与外部程序

我需要build立一个系统,在这个系统中,我可以根据许多参数(如端口/协议等)来发送数据包,这些参数在某种程度上是“正常”的,而且还有其他方面,比如队列长度和其他外部因素。 我的路由器由两个内部接口(802.11)和两个外部接口(一个ADSL,一个LTE)组成。 所以我想通过一个外部程序来检查每个数据包,并决定它应该被路由的接口。 我看了一下iproute2,但没有find任何方法将每个数据包传递给外部程序,或者以某种方式为每个数据包dynamicselect路由。 所以问题是:做这件事的最好方法是什么? 有没有工具可以朝这个方向发展,还是我应该依靠自己制造的东西,并通过Linux标准工具传递数据包?

iptables – 默认情况下如何阻止IP

我需要允许从特定IP访问端口11211到现有规则(在服务器加载后运行的脚本中) 我想添加的行: iptables -A INPUT -p tcp -s xx.xx.xx.xx –dport 11211 -j ACCEPT 但是iptables已经包含这个端口的一个下拉行,所以我的行会追加,永远不会工作。 下拉线: DROP tcp — anywhere anywhere tcp dpt:11211 我该怎么做?

iptables – 允许整个10.xxx的stream量

有没有办法configurationiptables来接受来自10.anything的stream量? 目前我有规则到单个地址,但我想要整个范围: sudo iptables -I INPUT –src 10.240.74.164 -m tcp -p tcp –dport 80 -j ACCEPT 我将如何改变我的上述规则? 任何帮助,将不胜感激。

这是什么在我的系统日志,我应该担心?

我在/var/log/syslog看到很多以下行: Jun 21 14:36:15 my-server kernel: [416219.080061] iptables denied: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:the-mac-address:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=328 TOS=0x00 PREC=0x00 TTL=128 ID=10081 PROTO=UDP SPT=68 DPT=67 LEN=308 这似乎发生在每一分钟。 这只是我的服务器试图广播的东西和我自己的iptables否认发生? 如果是这样,什么样的服务可以做这样的事情,我应该允许吗? 我在Ubuntu 12.04.2上运行Postgres 9.2.4,除了基本的预装软件包之外基本上没有其他的服务。

IPTables:允许传出SSH

我试图写我的规则,只保留一个Web服务器的HTTP / HTTPS,apt-get更新,发送邮件SSH访问。 到目前为止,我已经这样做了: IPT=/sbin/iptables $IPT -F $IPT -X $IPT -t nat -F $IPT -t nat -X $IPT -t mangle -F $IPT -t mangle -X $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP # $IPT -A INPUT -m state –STATE ESTABLISHED,RELATED -j ACCEPT $IPT -A OUTPUT -m state –STATE ESTABLISHED,RELATED -j […]

应用iptables规则需要多长时间?

应用iptables规则需要多长时间? 我使用下面的代码脚本试图阻止主机,但他们似乎并没有立即采取。 是否有一些延迟,是iptables不工作或是代码只是明显的错误? #!/bin/sh echo $1 >> /etc/dropped_hosts iptables -A INPUT -s $1 -j DROP iptables -A OUTPUT -d $1 -j DROP

iptables海量1:1 NAT

我必须连接两个局域网:LAN1:10.10.0.0/16和LAN2:192.168.0.0/16。 我不能做简单的路由,因为在LAN1中禁止192.168.0.0/16networking,所以我正在考虑使用Full cone nat(1:1)将192.168.xy / 16转换为10.11.xy / 16。 每个翻译都是由这个规则完成的: iptables -t nat -A PREROUTING -d 10.11.0.0/16 -j DNAT –to-destination 192.168.0.0/16 iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j SNAT –to-source 10.11.0.0/16 但是我必须input254 * 254 * 2的规则,我认为会导致巨大的性能下降。 那么,有没有办法用最less的规则编写这种一对一的翻译呢?

Debian的ip6tables规则设置为IPv6

我正在为Debian Squeeze上的ipv6设置一个防火墙。 这是一个networking服务器,所以我认为唯一需要向世界开放的端口是80。 这是我的: *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] :in-new – [0:0] -P INPUT DROP -P OUTPUT DROP -P FORWARD DROP -A INPUT -i lo -s ::1/128 -j ACCEPT -A OUTPUT -o lo -d ::1/128 -j ACCEPT -A INPUT -s fe80::/10 -j ACCEPT -A INPUT -m rt –rt-type 0 -j […]

如何禁止外部访问127.0.0.1?

我使用127.0.0.1:9000上的tcp socket将nginx连接到php5-cgi。 但是我想确保没有外部的请求可以对这个IP,所以没有攻击者可以混淆IP和绕过nginx用php做恶心的东西。 现在我想知道是否真的有可能做这样的利用,如果是这样,我怎样才能避免使用iptables?

在iptables中阻塞的IP,但仍在apache日志中看到它

我运行的是Apache 2 / MySQL的Centos 6.0服务器。 我有iptables运行。 今晚我按照这些步骤使用iptables阻止来自IP的所有stream量: iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP iptables -A OUTPUT -d xxx.xxx.xxx.xxx -j DROP service iptables save service iptables restart 但是我仍然在Apache访问日志中不断地看到来自这个IP的命中,即使在我重新启动Apache之后。 iptables肯定是在运行,这绝对是正确的IP地址。 这些是我的iptables条目的其余部分: Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all — anywhere anywhere 2 REJECT all — anywhere loopback/8 reject-with icmp-port-unreachable 3 […]