Articles of iptables

Iptables – 将端口上的出站stream量redirect到127.0.0.1上的入站stream量

有没有一种方法来redirectstream量设置从服务器到另一个IP,回到本地主机上的服务器(最好就好像它是从原来的目的地)? 我基本上希望能够build立我自己的软件,监听端口80,并接收发送的stream量,如1.2.3.4。 所以作为一些代码的例子。 这里将是服务器: my $server = IO::Socket::INET->new( LocalAddr => '127.0.0.1', LocalPort => '80', Listen => 128, ); 这将从下列客户端接收stream量: my $client = IO::Socket::INET->new( PeerAddr => 'google.com', PeerPort => '80', ) 因此,而不是让客户端连接到google.com,它将连接到服务器,我已经监听同一台服务器的本地主机。 我的意图是使用此来捕获连接到远程主机的恶意软件。 我不特别需要将stream量redirect到127.0.0.1,但需要将其redirect到同一台机器可以侦听的IP。 编辑:我已经尝试了以下,它不起作用 – echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to-destination 127.0.0.1:80 iptables -t nat […]

使用iptables保护NAT设置

我有一个需要充当互联网网关的Debian运行设备。 最重要的是,我想提供的防火墙,不仅阻止入站stream量,而且出站stream量。 而且我认为iptables应该能够完成这项工作。 问题:我已经正确地configuration了NAT(我想?),但是一旦我将默认策略设置为DROP并添加规则以允许来自LAN内部的HTTP通信,则HTTP将不会通过。 所以基本上我的规则似乎没有工作。 以下是我用于iptables的初始化脚本。 该设备有两个NIC,分别是eth0(WAN接口)和eth1(LAN接口)。 echo 1 > /proc/sys/net/ipv4/ip_forward # Flush tables iptables -F iptables -t nat -F # Set policies iptables -P INPUT DROP iptables -P OUTPUT DROP # NAT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth0 -o eth1 -m state –state RELATED,ESTABLISHED -j ACCEPT […]

当应用于本地目的地stream量时,DNAT和REDIRECT是否等同?

在设置我们的OpenStack环境时,遇到了阻止实例联系在主机上运行的服务器的问题。 元数据服务(暴露HTTP API)在主机上的端口8775上运行,OpenStacknetworking代码添加以下DNAT规则,通过端口80上的特殊地址授予访问权限: -A PREROUTING -d 169.254.169.254/32 -p tcp -m tcp –dport 80 -j DNAT –to-destination 127.0.0.1:8775 实例通过本地桥接设备连接到主机,并将169.254.169.254分配给lo 。 虽然这条规则成功地匹配来自试图访问http://169.254.168.254/的访客实例的数据包,但是他们从未到达侦听服务。 用一个基本上等效的REDIRECT来replace这个DNAT规则会使所有事情都正常工作: -A PREROUTING -d 169.254.169.254/32 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8775 我试图理解为什么REDIRECT工作和DNAT失败。 从iptables文档中不清楚DNAT规则是否适用于本地目的地stream量。 我希望这里有人可以提供一个权威的答案,理想的文件备份,或者可以build议什么可能是我的configuration错误,阻止DNAT规则按预期工作。

iptables – 清除所有PREROUTING规则与特定的目标地址

我有一个脚本添加了iptable PREROUTING规则。 他们都有相同的地址。 当我运行这个: iptables –list PREROUTING -t nat 我看到这样的输出: DNAT tcp — anywhere 165.193.122.18 tcp dpt:https to:192.168.2.1:443 DNAT tcp — anywhere 63.135.91.11 tcp dpt:https to:192.168.2.1:443 DNAT tcp — anywhere 63.135.90.224 tcp dpt:https to:192.168.2.1:443 看来我应该可以通过编写像这样的命令来放弃所有这些规则… "drop all PREROUTING rules that go to 192.168.2.1:443" 所以,在看它的选项看起来像我需要使用-D选项。 但是我不知道这个原因。 🙁 所以,我可能需要查询现有的规则,grep将其限制为目标192.168.2.1:443,然后运行-D传递每个规则的rulenum。 我不知道该怎么做。 任何帮助,将不胜感激。 谢谢! EV

UFW – 服务名称与端口和协议的规则

通过服务创build允许/拒绝规则与端口和协议有什么区别? 例如: ufw allow ssh与ufw allow 22/tcp甚至ufw allow ssh/tcp 。 哪一个是最干净的2)最严格的3)最好的方法?

iptables:阻止出站stream量,除了某些IP地址

使用iptables,我需要阻止我的服务器上的所有出站stream量,除了: SSH访问less量的IP地址 HTTPS访问同一个IP地址的小列表 任何人都可以给我看一套合适的规则吗? 谢谢。

Linux网关:一块网卡如何伪装成一个子网

大家早上好。 在我们的networking中,我们有一台具有别名IP地址的Linux机器。 这些IP地址中的每一个都位于由远程路由器控制的ISPnetworking上。 我们希望使用我们的Linux机箱作为内部networking(10.0.0.x)和Linux机箱的网关,然后将传出的stream量转发到另一个networking上的其中一台路由器。 我读过的所有东西都是关于两个物理接口卡之间的伪装。 但是我们只有一个网卡,监听多个IP地址。 在Linux的盒子本身; 它可以使用其中一个路由器作为上游网关来ping和访问互联网。 所以我们的configuration如下: : Linux Box eth0:0 = 10.0.0.5 eth0:1 = 192.168.137.5 GW: 192.168.137.1 : Router#1 IP: 192.168.137.1 Connection to internet via ISP : Network Machines IP: 10.0.0.x GW: 10.0.0.5 所以问题是,我在Linux上为iptables / nat设置了什么,以允许它接受10.0.0.x子网上的数据包,并将它们路由到为网关configuration的特定IP地址。 当我尝试使用eth0:1作为我的-d然后iptables抱怨无效的字符,并从我在互联网上阅读,这是禁用的iptables( http://lkml.indiana.edu/hypermail/linux/net/9705.1 /0016.html )。 有人可以帮忙吗? 我确信我错过了一些真正明显的东西。 我所有的历史知识都是两个独立的ethXnetworking接口。 谢谢 更新; 这里是“hackity”iptables脚本 WIFIBACKUP=192.168.137.1 iptables -F INPUT iptables -F […]

重复和转发udpstream量

有什么办法来重复在端口162传入的udpstream量,并转发到多个端口,如162本身和1600? 我正在检查iptables,但似乎只能redirect到一个单一的端口/主机。 Thx Luke

两个DHCP服务器,阻止其中一个客户端?

我正在构build一个位于不同VLAN上的kickstartnetworking,使用它自己的DHCP服务器。 出于某种原因,我的kickstart客户端不断从我的主DHCP服务器分配IP。 我build立的方式是我在这台路由器上有一个主要的DHCP服务器: 192.168.15.1 连接到该DHCP服务器是IP为192.168.15.2的交换机。 我的kickstart(Scientific Linux)服务器连接到两个端口上的交换机: 端口2 – kickstart服务器通过eth0与生产networking的其余部分通信。 在该接口上分配给服务器的IP是192.168.15.100(在eth0上)。 细节是: Interface: eth0 IP: 192.168.15.100 Netmask: 255.255.255.0 Gateway: 192.168.15.1 端口7 – 有它自己的VLAN ID(和端口8一起)。 kickstart服务器连接到IP为172.16.15.100的端口(在eth1上)。 再次,细节是: Interface: eth1 IP: 172.16.15.100 Netmask: 255.255.255.0 Gateway: none kickstart服务器运行自己的DHCP服务器,并通过eth1分配它们。 大多数启动都是通过端口8在kickstart VLAN上构build的。为防止kickstart DHCP服务器通过生产networking分配地址,我使用如下的路由设置: route add -host 255.255.255.255 dev eth1 此时,客户端不断从192.168.15.1 DHCP服务器分配IP。 我需要找出阻止客户端请求到达该DHCP的方法。 需要注意的是,我也在kickstart服务器上构build了KVM主机,所以我需要这些KVM有能力通过桥接networking从192.168.15.1 DHCP服务器获得DHCP请求,一旦我解决了这个问题。 (目前,他们通过NAT进行通信)。 那么将如何解决这个问题呢? 通过iptables或某种路由我需要放在? 我试图限制在该接口上通过IPtables的请求,允许DHCP请求172.16.15.xnetworking: -A INPUT […]

运行在openvz上的OpenVPN服务器。 如何写没有伪装的iptables规则?

我正在configuration一个使用tun接口作为OpenVPN服务器在OpenVZ上运行的VPS。 由于MASQUERADE不可用,我在iptables规则上遇到了一些麻烦。 如果MASQUERADE可用,我会写如下的iptables规则: iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -j REJECT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 但是,鉴于我无法使用MASQUERADE,我怎样才能改写这些规则使用SNAT或DNAT呢? 提前致谢 ————–编辑————— 感谢Olipro的解决scheme。 以下是适用于我的规则: iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.8.0.0/24 -j […]