Articles of iptables

Linux的策略路由 – 数据包不回来

我正在尝试在我的主服务器上设置策略路由。 我的networking如下所示: Host routed VPN gateway Internet link through VPN 192.168.0.35/24 —> 192.168.0.5/24 —> 192.168.0.1 DSL router 10.200.2.235/22 …. …. 10.200.0.1 VPN server 来自192.168.0.32/27的stream量应该通过VPN路由。 我想要定义一些路由策略,以便通过VPN路由一些来自192.168.0.5的stream量 – 开始 – 从具有uid 2000的用户开始。策略路由使用iptables mark target和ip rule fwmark完成。 问题: 当从192.168.0.5使用用户2000连接时,tcpdump显示传出数据包,但是没有回来。 从192.168.0.35stream量工作正常(这里我没有使用fwmark,但src策略)。 这是我的VPN网关设置: # uname -a Linux placebo 3.2.0-34-generic #53-Ubuntu SMP Thu Nov 15 10:49:02 UTC 2012 i686 i686 i386 […]

如何将所有来自eth1的HTTPstream量路由到Squid代理? Iptable规则?

我刚刚安装了一个鱿鱼代理服务器。 该服务器有两个接口。 eth0连接到路由器,eth1连接到所有其他机器连接的交换机。 服务器也有一个DHCP服务器。 我已经在机器上设置Squid3,当我configuration我的浏览器使用该代理(我的networking设置,如果我设置的IP和端口),事情的工作。 但我需要它作为一个透明的代理,我不必设置浏览器,所有的请求将通过代理。 可以通过设置IPtable规则来完成吗? 一些文章谈论改变sysctl.conf。 我已经从很多教程中尝试了Iptable规则,但都没有工作。 请给我一个工作规则来添加。 谢谢。 PS:服务器是Ubuntu 12.10 PS2:如果可以,请告诉我如何为ufw添加这些规则

iptables – 通过VPN强制所有stream量(并在没有VPN连接时丢弃所有stream量)

目标:确保来自所有networking接口(wlan0,rmnet0,rmnet1)的VPN隧道强制所有stream量,即所有stream量在未连接到VPN时被丢弃 。 换句话说,互联网stream量不应该被允许,只有通过VPN的stream量是可以接受的。 到目前为止… Android设备与iptables的二进制,wlan和3G连接VPN网关@ 10.10.10.10(不是真正的地址)。 iptables -P OUTPUT DROP iptables -P INPUT DROP iptables -P FORWARD DROP iptables -A INPUT -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i tun0 -m conntrack –ctstate NEW -j ACCEPT iptables -A INPUT -j DROP iptables -A OUTPUT -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT […]

找不到在iptables中为特定的mac地址转发的方法

我使用Linux Centos 6.3作为NAT的Internet网关。 我想允许特定主机访问Internet,但是我不想使用它的IP地址,因为它可能从DHCP服务器获得新的IP地址。 相反,我想使用一个特定的MAC地址的规则。 我用了以下,但它不起作用: iptables -t nat -A POSTROUTING -o $INTERNETDEVICE -j MASQUERADE iptables -A INPUT -i $INTERNETDEVICE -m state –state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -d 10.1.1.0/24 -j ACCEPT iptables -A FORWARD -m mac –mac-source {my mac address} -j ACCEPT INTERNETDEVICE是互联网的PPP设备 如果不是我input的第四条规则 iptables -A FORWARD -s 10.1.1.39 -j ACCEPT 它完美的作品。 但是使用mac地址,它不起作用。 […]

Dom0不转发到DomU

情况: DomU:Debian SID 的/ etc /networking/接口 auto eth0 iface eth0 inet static address xxx55 gateway xxx49 netmask 255.255.255.255 pointopoint xxx49 Ping DomU – > xxx49(又名Dom0) PING xxx49 (xxx49) 56(84) bytes of data. 64 bytes from xxx49: icmp_req=1 ttl=64 time=0.107 ms Ping DomU – > 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. ^C — 8.8.8.8 […]

如何使用iptables删除“空”HTTP数据包?

我有一个运行在Ubuntu 10.04 LTS上的1GB-VPS托pipe站点。 我正在使用nginx作为Web服务器。 该网站已经运行了三年的相对稳定的configuration,每个月处理约400万的综合浏览量。 在过去的16个小时里,我一直在看到我认为是一个“温和”的DDoS攻击。 传出stream量已经乘以5,CPU使用率大约增加了三倍。 我在我的nginx日志中看到一个或两个IP每秒同时发送多个请求(每个1-10个)。 这些请求似乎没有去我的url,但我的IP地址直接。 由于我对nginx.conf有一定的了解,因此我在这里设置了一个单独的“默认”服务器模块来捕获这个stream量并logging下来。 我有它设置为logging该stream量,并返回错误代码444。 我也为这个stream量设置了limit_req_zone和limit_conn_zone,尽pipe因为这些是不同的IP发送请求,所以影响不大。 这里是nginx.conf的相关部分: limit_req_zone $binary_remote_addr zone=ddos:25m rate=1r/m; limit_conn_zone $binary_remote_addr zone=blockedfuckers:20m; server { listen 80 default_server; server_name _; access_log /var/log/nginx/a2.log hackers; limit_req zone=ddos nodelay; limit_conn blockedfrakers 1; return 444; } 这个CPU使用率下降了30%左右,但是输出stream量仍然很高,CPU仍然超过了一倍。 出于某种原因,日志显示请求正在发送一个400响应,而不是我试图发送的444。 例如: 109.198.195.28 [12/Mar/2013:22:49:24 -0400], REQLENGTH: 0, STATUS: 400, HTTPHEADER: – 107.199.204.111 [12/Mar/2013:22:49:36 -0400], REQLENGTH: […]

当DNS使用外部IP应答时,将专用LANstream量redirect到内部服务器

我有一个mikrotik RB2011路由器/防火墙。 在防火墙内部,我有一个具有私有IP的Web服务器(可以说它是192.168.1.5) 在防火墙的WAN端,我有一个静态IP(假设它是192.0.43.10 – www.example.com)。 防火墙/路由器正在运行NAT。 我有一个dstnat规则来通过HTTPSstream量到服务器,并工作。 现在,老问题是,如果一个内部的电脑试图连接https://www.example.com它无法加载页面与铬这个错误: Google Chrome与www.example.com的连接尝试遭到拒绝。 该网站可能已closures,或者您的networking可能无法正确configuration。 以下是一些build议:稍后重新加载此网页。 检查您的Internet连接。 重新启动您可能正在使用的任何路由器,调制解调器或其他networking设备。 将Google Chrome作为允许的程序添加到防火墙或防病毒软件的设置中。 如果它已经是允许的程序,请尝试从允许的程序列表中删除它并重新添加。 如果您使用代理服务器,请检查您的代理设置或与networkingpipe理员联系,以确保代理服务器正在工作。 如果您不相信应使用代理服务器,请调整您的代理设置:转至Chrome菜单>设置> +显示高级设置>更改代理设置…,并确保您的configuration设置为“无代理”或“直接”。 错误102(net :: ERR_CONNECTION_REFUSED):服务器拒绝连接。 传统上,我已经通过使用拆分DNS或双DNStypes的设置来解决这个问题,其中www.example.com的dns查找返回了服务器的内部IP而不是外部。 不过,我没有这个设置的豪华。 应该有一种方法来解决这个在mikrotik使用prerouting规则,但我不确定如何设置。 我该怎么做? 这是我在自己的桌子上。 但是,事实并非如此。 我正在服务器上运行tcpdump,但我可以看到,数据包实际上并没有达到它。 [admin@MikroTik] /ip firewall nat> print Flags: X – disabled, I – invalid, D – dynamic 0 chain=dstnat action=dst-nat to-addresses=192.168.0.10 protocol=tcp dst-address=114.134.xxx.xxx in-interface=wan dst-port=22 1 […]

使用IPtables防止服务器上的用户从端口扫描其他服务器

我们的一些用户正在Internet服务器上启动端口扫描。 这些用户使用ssh和openvpn连接到我们的服务器。 我们显然暂停他们的帐户在适当的情况下,但我想find一个技术解决scheme,要么阻止扫描或阻止他们(例如通过减慢)。 我提出的最好的解决scheme是(这是针对SYN扫描): # Log suspected port scanners iptables -A Limit_Pscan -p tcp –syn -m state –state NEW -m recent –name port_scan –rcheck –seconds 10 –hitcount 30 -j LOG –log-prefix 'PORT SCANNER(?): ' # Drop connections where packets > 29 in 10 second period. iptables -A Limit_Pscan -p tcp –syn -m state –state NEW […]

iptables的FORWARD端口到内部服务器

我一直在努力的FORWARD政策,是不是我想要的方式,我不知道是什么导致会话失败。 我希望有人能帮帮忙。 我的目标是转发从eth0的端口3000到一个内部的Windows机器端口3389出eth2,所以我可以RDP到Windows框。 下面的configuration脚本只适用于iptables -P FORWARD ACCEPT ,但是我不想那样做。 我感觉更好的iptables -P FORWARD DROP ,但这不适合我。 这是我一直在使用的脚本的最后一个版本。 请注意,这是包含我所有评论内容的整个脚本,因此您可以检查这里发生的所有事情,但请记住这是我需要帮助的FORWARD部分。 echo "Flush firewall and setting default chain policies…" iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP […]

如何在nat prerouting表中转发数据包时设置标记?

我有几个像这样的端口转发规则 iptables -t nat -A PREROUTING -p tcp –dport 46000 -j DNAT –to-destination 172.16.8.2:46000 iptables -A FORWARD -p tcp -d 172.16.8.2 –dport 46000 -j ACCEPT 我想知道是否有办法在一行而不是两行中添加新的转发规则,所以我不必input两次相同的数据。 我的意思是这样的规则: 在nat PREROUTING转发数据包到目的地并将其标记 在FORWARDfilter中,允许所有使用规则1标记的数据包 可能吗?