Articles of iptables

撤消端口转发

我需要所有80的要求转发到8020.我google了,我知道了。 iptables -t nat -I PREROUTING –source 0/0 –destination 0/0 -p tcp –dport 80 -j REDIRECT –to-ports 8020 现在在furute,如果我不得不撤消它,我该怎么做(除了重新启动系统) 提前致谢 :)

基本的iptables NAT端口转发

我有三台机器:一台本地PC(公共IP 1.2.3.4),一个数据中心的Ubuntu 10服务器盒(5.6.7.8公共IP上的eth0)以及一个托pipe我networking之外的网站的第三方服务器Slashdot在216.34.181.45)。 使用iptables,如何使用5.6.7.8:8080从本地机器访问Slashdot? 如果Slashdot与我的Ubuntu盒子在同一个LAN上,这个过程会不同吗? 这可以通过NAT PREROUTING / POSTROUTING完成,还是需要MASQUERADE?

Laggy服务器,似乎iptables正在做的负载

我在CentOS盒子里增加了几千个包装在多个/ 24class的IP地址,因此我得到了日夜扫描。 由于这台服务器将是一个主力,它只需要在SSH(更改的SSH端口)和http / s上可用,我最终阻止邮件端口和ping答复。 这解决了http / s的高响应时间,但iptables增加了服务器上的负载。 我正进入(状态: top – 22:01:30 up 2 days, 10:17, 3 users, load average: 1.99, 2.23, 2.07 Tasks: 198 total, 2 running, 195 sleeping, 0 stopped, 1 zombie Cpu(s): 1.0%us, 5.1%sy, 0.0%ni, 85.0%id, 0.0%wa, 0.0%hi, 8.8%si, 0.0%st Mem: 16638532k total, 2692948k used, 13945584k free, 206992k buffers Swap: 8193140k total, […]

我的网站会在iptables重启过程中被停止吗?

在CentOS 6系统中,通过以下命令重新启动iptables会不会停止网站? $ service iptables restart

iptable规则不阻塞

我试图允许SSH访问一定范围的IP(从192.168.1.1到192.168.1.24 ),并阻止所有其他,但由于我是iptables的新手,我似乎无法弄清楚。 我有 : iptables -A INPUT -s 192.168.1.0/24 -p udp –dport ssh -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -p tcp –dport ssh -j ACCEPT iptables -A INPUT -p tcp –dport ssh -j REJECT iptables -A INPUT -p udp –dport ssh -j REJECT 啧啧,这不起作用,虚拟机设置为192.168.1.89我仍然可以通过SSH访问。 有人可以帮忙吗?

iptables规则来对付最常见的DoS攻击?

最近我有很多小规模的DoS攻击。 我想知道什么iptables规则应该用来对付最常见的DoS攻击,并且通常保护我的web服务器。 Web服务器运动Varnish – > nginx / php5 – > memcached – > mysql 我尝试了一些普通的收据,但他们也阻止访问我的数据库服务器位于远程服务器,所以我只是刷新build议的规则,现在感觉有点勉强,当我在iptables上只看到fail2ban volnurable。 所以感谢你的规则,阻止最常见的攻击媒介。

简单的方法来编辑来自tcp主机的stream量(linux)

在处理连接的进程获取stream之前,我需要对来自已知tcp主机:端口的传入stream量进行一些小的修改。 例如,让192.168.1.88是运行Web服务器的远程主机。 我需要的是,当我的本地主机上的进程接收到来自192.168.1.88:80(例如浏览器)的数据时,数据首先被replace为text-B text-A ,如下所示: 127.0.0.1:…连接到192.168.1.88:80 127.0.0.1:…发送到192.168.1.88:80: GET / 192.168.1.88:80发送到127.0.0.1:…: HTTP/1.0 200 OK Content-Type: text/plain Some text-A, some other text 该数据被系统截获并传递给一个程序,其输出是: HTTP/1.0 200 OK Content-Type: text/plain Some text-B, some other text 系统将如此更改的数据提供给进程处理127.0.0.1:…,如果它来自192.168.1.88:80。 假设我有一个基于stream的方式来进行更改(例如使用sed ),预处理传入的tcpstream最简单的方法是什么? 我想这会涉及iptables ,但我不是很擅长。 请注意,应用程序应该觉得要处理原来的主机,所以设置代理不可能是一个解决scheme。

iptables:build立一个防止滥用DNS放大攻击的规则集

我一直在build立规则集来检测和阻止DNS放大攻击。 我卡住了,希望能在这里find帮助。 我会在这里发布我所拥有的(bash脚本,涉及DNS的部分): IPTABLES='/sbin/iptables -v' SERVERIP=abcd echo '################ Previously initiated and accepted exchanges bypass rule checking #' $IPTABLES –append INPUT -m state –state ESTABLISHED,RELATED –jump ACCEPT echo '################################################ Allow unlimited outbound traffic #' $IPTABLES –append OUTPUT -m state –state NEW,ESTABLISHED,RELATED –jump ACCEPT echo '################################################################## Rules for DNS #' # DIG ANY ISC.ORG attack preventer. # […]

基于进程的IPstream量到不同的默认路由/接口

我试图确定是否有可能通过特定接口select性地路由来自进程或进程组的IP数据包,而所有其他数据包通过另一个接口进行路由。 也就是说,我希望来自/usr/bin/testapp所有stream量都通过eth1路由,而所有其他数据包都通过eth0 。 这种情况下的报文可以是TCP,UDP,ICMP等,可以由最终用户configuration使用不同的端口。 因为我不能轻易地强制有问题的过程绑定到特定的接口,所以我试图通过路由实现相同的结果。 这可能吗? —编辑— 在这里和其他许多地方通过一个有用的build议是基于UID标记数据包; 这不是真正的目标。 目标是根据进程标记/过滤/路由而不pipe用户 。 也就是说,如果alice , bob和charlie都运行自己的/usr/bin/testapp实例, 所有三个实例的所有数据包应该通过eth1而来自系统的所有其他数据包应该通过eth0 。 请注意,通过源/目标端口,用户名/ UID等标记是不够的,因为各种用户可能运行testapp ,他们可能会在他们自己的~/.config/testapp.conf或其他设置不同的端口。 问题是关于过程的过滤。 一个可用的选项,虽然我不知道它是多么有帮助,但是在本地二进制文件中使用基于/bin/(ba|z)?sh的包装。 —编辑— 我指的是在运行现代Linux内核的系统上进行路由,例如4.0或更高版本。 如果iproute2 , nftables , conntrack和类似工具之外还有软件依赖性,我愿意探索开源解决scheme,尽pipe基本工具是可取的。

利用两个网关在同一个networking相同的接口上进行负载均衡

我的设置是在一个接口和单个networking上的两个ISP。 我可以将我的默认网关设置为192.168.0.1或192.168.1.250并可以工作。 编辑:networking掩码(在注释中注意到) is 255.255.254.0 – 正如我所说,他们在同一个子网。 我的愿望是利用他们两个负载平衡。 我试图按照https://serverfault.com/a/96586中给出的build议 #!/bin/sh ip route show table main | grep -Ev '^default' \ | while read ROUTE ; do ip route add table ISP1 $ROUTE done ip route add default via 192.168.1.250 table ISP1 ip route add default via 192.168.0.1 table ISP2 iptables -t mangle -A PREROUTING -j […]