Questions tagged «iptables»

iptables是用于配置Linux 2.4.x和2.6.x IPv4数据包过滤规则集的用户空间命令行程序。它针对系统管理员。请在询问有关iptables的问题时,添加以下命令的输出:iptables -L -v -n

3
一种简单的方法来“编辑”来自TCP主机的流量(Linux)
在处理连接的进程获取流之前,我需要对来自已知tcp host:port的传入流量进行一些小的修改。 例如,让192.168.1.88成为运行Web服务器的远程主机。 我需要这样,当我本地主机上的某个进程从192.168.1.88:80(例如浏览器)接收到数据时,首先将数据更改text-A为text-B,如下所示: 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一样。 假设我有一种基于流的方法来进行此更改(sed例如使用),预处理传入的tcp流的最简单方法是什么? 我想这会涉及到iptables,但我不是很擅长。 请注意,该应用程序应具有处理原始主机的感觉,因此设置代理不太可能是一种解决方案。

1
使用IPTable限制每个源IP的ICMP
我错误地认为限制模块是每个源IP,但它似乎是基于所有请求的: 577 36987 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8 limit: avg 3/sec burst 5 46 3478 LOG icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8 LOG flags 0 level 4 prefix `INET-PING-DROP:' 46 3478 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8 ... …


6
将数据包从一个接口复制到另一个接口
我有一个带有2个以太网卡(即eth0和eth1)的Linux系统(将其命名为A),这些网卡连接到两个完全不相关的LAN。 基本上eth0用于正常的应用程序流量,而eth1仅用于调试目的。调试意味着eth1使用交叉电缆链接到另一个运行Wireshark的linux盒(命名为B)。我希望Wireshark能够处理在A的eth0上传输的应用程序数据包。 基本上,我需要将旅行数据包从eth0接口复制到接口eth1,以便框B上的Wireshark可以嗅探它们(由于某些原因,我无法物理访问LAN eth0)。我还可能需要根据一些规则(顺便仅基于TCP / IP字段)指定要从eth0复制到eth1的数据包。 还要注意,不需要将A的eth0设置为混杂模式,因为我只想复制以A为目的地的数据包的子集 有没有办法单独使用iptables实现此目的?还是我需要编写一个应用程序才能使它正常工作?我应该怎么做才能“复制”数据包?

2
安全地增加ip_conntrack_max?
我经常在日志中看到以下内容: 内核:ip_conntrack:表已满,正在丢弃数据包。 目前,我已将ip_conntrack_max设置为65536(默认为RHEL5)。 记住内存使用情况,我可以安全地增加多少?我在这个盒子上有4GB的内存。这台机器充当静态内容服务器的功能之一,这可能解释了高连接数,也意味着我想尽可能多地保留用于缓存的OS内存。 另外,以下两个之间有何区别?/ proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max 我应该编辑哪个? 谢谢!

4
网络名称空间中的iptables LOG规则
我正在尝试为Docker容器设置iptables规则。我正在使用nsenter在容器的网络名称空间内执行iptables命令: # log access to port 8080 PID=$(docker inspect --format "{{.State.Pid}}" $ID) /home/ubuntu/nsenter -n -t $PID iptables -A OUTPUT -o eth0 -p tcp -m tcp --dport 8080 -j LOG 除LOG规则外,此方法非常有效。那些似乎不在任何地方记录。请注意,适用于主机系统的相同规则适用并登录到/var/log/kern.log。 在哪里可以找到这些日志规则的输出?这是网络名称空间的已知问题/限制吗?

1
我认为该HAProxy的“重新启动脚本”是否可以正常运行?
我从各个地方整理了这个脚本。我希望一旦运行它将执行以下操作: 暂停端口80和443的所有“新” http流量-只需“暂停”它们,不要出现任何错误 完成所有“处理中”的请求后,优雅地重新启动haproxy 取消暂停http流量并继续照常营业。 这是怎么运行的?我错过了什么吗?我们有成千上万个基于ip的acl规则,存储在haproxy引用的文件中,我们需要每分钟重载几次。 #!/bin/sh # hold/pause new requests iptables -I INPUT -p tcp --dport 80 --syn -j DROP iptables -I INPUT -p tcp --dport 443 --syn -j DROP sleep 1 # gracefully restart haproxy /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid) # allow new requests to …

1
为什么iptables拒绝允许的数据包的第二个和后续片段?
我有两个正在尝试建立IPSec连接的主机。为此,它们必须在UDP端口500和4500上进行通信,因此我在两端的防火墙中打开了它们(如相关部分所示): -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -m udp -p udp --dport 500 -j ACCEPT -A INPUT -m udp -p udp --dport 4500 -j ACCEPT #..... -A INPUT -j REJECT --reject-with icmp6-port-unreachable 但是,密钥交换永远不会成功。双方不断尝试不断地重传UDP数据包,直到最终放弃之前,再也听不到响应。 我从tcpdump一端开始,观察到UDP数据包被分段了,第二个分段进入后,ICMP端口不可达被返回。 此类交换失败的示例(为保护您而进行了消毒): 04:00:43.311572 IP6 (hlim 51, next-header Fragment (44) payload length: 1240) 2001:db8::be6b:d879 …

3
为什么iptables不阻止IP地址?
我已经配置了fail2ban来监视某种形式的恶意流量,并禁止关联的IP地址。 一切似乎都运行良好-正则表达式正确匹配了模式,问题IP地址已添加到iptables中。 但是,当我检查Apache日志时,仍然从被禁止的IP地址中获得点击。好像iptables根本没有运行。 因此,让我分享一些细节,只是为了确认所有配置均正确。 首先,我将清除并重新加载iptables规则: $ sudo iptables -F $ cat /etc/iptables.firewall.rules *filter # Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 -j REJECT # Accept all established inbound connections -A INPUT -m …

3
使用IPTable转发FTP
我正在尝试使用IPTables转发FTP服务器。FTP服务器在Windows 2008机器(Cerberus)上运行。 详细信息赢箱: IP:192.168.220.51 FTP端口:21 PASV端口:11000-13000 FTP服务器在LAN中工作良好。 路由器对于其他客户端(服务NAT,DHCP,防火墙等)正常工作。我需要将FTP服务转发到外界,但是我不能使用端口20-21(已使用)。 我试过了,但是没有用: iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 2121 -j DNAT --to 192.168.220.51:21 当前的IPTables配置: [root@router ~]# service iptables status Table: nat Chain PREROUTING (policy ACCEPT) num target prot opt source destination Chain POSTROUTING (policy ACCEPT) num target prot opt …

4
Linux iptables被拒绝-如何重新启用它?
所以我的网络中有一个客户端通过我的计算机通过arpspoof连接到路由器。当我知道要停止数据包转发时,我执行: iptables -A FORWARD -j REJECT 这是我所期望的。但是当我尝试做类似的事情时: iptables -A FORWARD -j ACCEPT 我无法像一开始那样设法使数据包通过。 我在做错什么吗?还是应该使用与“接受”不同的其他论点?


1
具有-m和-p参数的iptables
我的iptables中有以下规则: iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP 我真的需要“ -m tcp”吗?我已经在使用“ -p tcp”了,所以我应该使用“ -m tcp”更安全吗?

1
monit:无法连接到http界面
我正在新站点上设置监视,在此问题中将其称为mywebsite.com。我已经设置了配置以访问monit的Web界面页面,但无法连接到它。我有一个运行iptables的基本防火墙,我认为我为monit挖了一个坑,但是我无法连接到monit的Web界面,我也不知道为什么。 我尚未设置任何要监视的内容:我的monit配置如下所示: ## Start monit in the background (run as a daemon): set daemon 120 # check services at 2-minute intervals set httpd port 2812 and use address mywebsite.com allow localhost allow admin:password 我已经按照这些规则重新启动了monit。 我在iptables配置中为monit制定了规则,如下所示: #monit interface -A OUTPUT -p tcp --dport 2812 -j ACCEPT -A INPUT -p tcp --dport …
8 linux  iptables  http  monit 

1
窗口缩小
我运行了一个主要的媒体上传/下载网站,我注意到了这些: 这是由于文件大而引起的严重噪音还是背景噪音?我可以对/etc/sysctl.conf进行任何调整以改善和预防问题吗? [8822139.804040] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822140.944041] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822143.224052] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822147.776079] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822156.896049] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822175.136049] TCP: Peer …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.