Articles of iptables

NAT通过iptables和虚拟接口

我试图实现以下场景:一个VM主机,多个来宾虚拟机 ,每个都有自己的IP地址 (和域)。 我们的服务器只有一个物理接口,所以用途是在eth0上添加虚拟接口 。 为了使我们的情况复杂化,提供者在他们的交换机上使用端口安全 ,所以我不能以桥接模式运行访客接口,因为那么交换机检测到一个“伪造的”MAC地址并且终止了这个接口(永久性的,迫使我打电话这个支持,我敢肯定会让他们第三次有点生气;))。 我的第一个猜测是使用iptables和NAT将所有软件包从一个虚拟接口转发到另一个虚拟接口,但iptables似乎并不喜欢虚拟接口(至less我不能使其正常工作)。 所以我的第二个猜测是使用包的源IP到公共接口。 假设libvirt创build了一个192.168.100.0/24的virbr0networking,而guest虚拟机使用192.168.100.2作为IP地址。 这是我试图使用的: iptables -t nat -I PREROUTING –src public_ip_on_eth0:0 -p tcp –dport 80 -j DNAT –to-destination 192.168.100.2:80 这并没有给我预期的结果(访问服务器超时)。 有没有办法做我想做的事,甚至路由所有stream量到一个虚拟接口到虚拟机的设备上的某个IP?

IPTABLES规则不阻塞

我一直在试图了解Iptables。 我看了几个来源,他们说,我可以通过做类似的东西来阻止一个子网 iptables -A OUTPUT -s 192.168.3.0/24 -j DROP 这留下了类似的东西, iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-SSH tcp — anywhere anywhere tcp dpt:ssh DROP all — 192.168.3.0/24 anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP all — 192.168.3.0/24 […]

如何为外部IP地址设置静态路由

我正在networking上安装一个新的路由器,以帮助pipe理我们的专用networking连接,并更好地控制到外部的路由。 我已经决定通过去除对路由器上第二个专用networking的引用来简化这个问题(但请注意,这个问题是有原因的,所以答案并不是将旧路由器作为默认网关)。 我在我的路由器上的iptables中有以下路由: # Allow established connections, and those !not! coming from the public interface # eth0 = public interface # eth1 = private interface #1 (129.2.2.0/25) iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state –state NEW ! -i eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 […]

将特定端口上的stream量转发到另一台机器的最佳方式是什么?

我的设置是这样的: [client01] <-A-> [server01] <-B-> [server02] client01可以访问client01上的端口9300(连接A )。 server01只能通过ssh访问server02 (连接B ) 上的 9300端口。 使端口9300到server01所有stream量到达server01端口9300的最佳方法是什么? 我可以用client01到server01到server02的ssh隧道成功地做到这server02 ,但我不想在client01上运行ssh。 当我从server01到server02转发端口9300( ssh -g -L9300:localhost:9300 server02上的ssh -g -L9300:localhost:9300 server02 server01 ),它不起作用 – 我使用错误的命令? 编辑:添加server02只能通过SSH访问

使用logrotate旋转Iptables日志

我正在运行CentOS6,并configuration了rsyslog来监视我的iptables警告消息,并将它们转储到/var/log/iptables.log 。 我经历了我的logrotate.d/syslog文件,并添加iptables.log所以logrotate将拿起并旋转日志。 该文件如下所示: /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler /var/log/iptables.log { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript } 但是,当我运行logrotate -f -v logrotate.conf来触发一个强制滚动时,iptables.log文件不会滚动。 为了使logrotate不是iptables文件上的iptables.log-20121014 ,我创build了一个iptables.log-20121014文件。 我运行命令时的输出如下所示: rotating log /var/log/iptables.log, log->rotateCount is 4 dateext suffix '-20121021' 我正在失望。 我如何获得logrotate滚动文件? 我不是100%确定,如果我configuration正确,但我不知道足以确定如果是这样的话。

我可以在我的Varnish服务器上使用iptables将HTTPSstream量转发到特定的服务器吗?

我们使用Varnish作为我们的前端Webcaching和负载均衡器,所以我们在我们的开发环境中有一个Linux服务器,在一对Windows 2008 IIS Web服务器上运行Varnish,其中包含一些基本的caching和负载均衡规则。 我们有一个通用的DNS规则,指向这个Varnish框的* .development,所以我们可以浏览http://www.mysite.com.development,http ://www.othersite.com.development等。问题是由于Varnish无法处理HTTPSstream量,因此无法访问https://www.mysite.com.development/ 对于开发/testing,我们不需要任何加速或负载平衡 – 我所需要的就是告诉这个盒子作为一个哑代理,并将端口443上的任何传入请求转发到特定的IIS服务器。 我怀疑iptables可能会提供一个解决scheme,但是我写了一个iptables规则已经很久了。 一些最初的黑客已经让我尽可能的 iptables -F iptables -A INPUT -p tcp -m tcp –sport 443 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp –dport 443 -j ACCEPT iptables -t nat -A PREROUTING -p tcp –dport 443 -j DNAT –to 10.0.0.241:443 iptables -t nat -A POSTROUTING -p […]

iptableslogging不logging

我试图logging到端口22到我的系统日志的任何请求,所以我有我的iptables中的以下行: LOG tcp — anywhere anywhere tcp dpt:ssh LOG level debug 但是,当我在ssh中,没有任何logging。 我正在使用RHEL6(6.2) 任何想法为什么?

数字在iptable规则的括号内的含义?

可能重复: 不明白[0:0] iptable语法 例如命令iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080 ,导致configs *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [1:132] :OUTPUT ACCEPT [1:132] -A PREROUTING -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080 COMMIT 任何人都可以解释从线路 :PREROUTING ACCEPT [0:0] 至 :OUTPUT ACCEPT [1:132] 特别是在iptable规则的括号内是什么意思?

在添加DROP规则之后,iptables列表缓慢

我从一个空的iptables结构开始,所有的表和链都是默认的ACCEPT默认策略。 重现步骤: iptables -I INPUT -s 192.168.0.1/24 -j ACCEPT iptables -L 在这一点上,我得到了下面的输出(其他链保持不变,所以我滑他们): Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all — 0.0.168.192.in-addr.arpa/24 anywhere 输出打印时没有任何问题。 然后我添加一个DROP规则: iptables -I INPUT 2 -j DROP iptables -L 产量 Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all — 192.168.0.0/24 anywhere DROP all — anywhere […]

IPTables允许通过主动连接进行阻塞

我有一个备份服务器,我想知道如果我设置一个cron作业,以允许从IPTables中的服务器连接,然后一旦它连接到rsync,我可以使用IPTables然后closures端口,以防止连接? 这个想法是阻止备份如果主服务器被攻破的机会(是的,它是安全的,但我没有机会)。 编辑:经过尝试的东西,因为如何工作。 我决定最好的想法是设置第二台服务器,它将从第一台服务器上启动。