Questions tagged «iptables»

iptables允许创建规则以定义数据包过滤行为。

1
如何在iptables Debian Linux上允许传出SMTP
如果我选择允许OUTPUT链(iptables -P OUTPUT ACCEPT)上的所有流量,则邮件发送正常。使用这些规则锁定服务器后,外发邮件将停止工作。尽管其他所有方法都起作用,但这很奇怪。 有人在这里看到任何东西阻止我的外发邮件发送吗?我很困惑,一遍又一遍地看了这些规则,并尝试了许多不同的版本。 iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp …
13 linux  iptables  email  smtp 

4
使用VPN将端口转发到网络名称空间中的应用程序
我能够设置网络名称空间,使用openvpn建立隧道,并启动在名称空间内使用此隧道的应用程序。到目前为止,一切都很好,但是可以通过Web界面访问此应用程序,但我不知道如何将请求路由到LAN内部的Web界面。 我遵循了@schnouki的指南,解释了如何设置网络名称空间并在其中运行OpenVPN。 ip netns add myvpn ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo ip netns exec myvpn ip link set lo up ip link add vpn0 type veth peer name vpn1 ip link set vpn0 up ip link set vpn1 netns myvpn up ip addr add 10.200.200.1/24 …

2
Linux iptables ssh端口转发(Martian拒绝)
我有一个为我的家庭网络执行NAT的Linux网关。我有另一个网络,我想透明地将数据包转发到,但仅转发到特定IP /端口(或从特定IP /端口转发)。以下是一些可使用的IP和端口示例: Source Router Remote Gateway Remote Target 192.168.1.10 -> 192.168.1.1 -> 1.2.3.4 -> 192.168.50.50:5000 我希望Source计算机能够与Remote Target上的特定端口进行通信,就好像它可以直接从Router路由一样。在路由器上,eth0是专用网络,eth1是面向互联网的。远程网关是我可以使用的另一台Linux计算机,它可以直接路由到远程目标。 我尝试一个简单的解决方案是在路由器上设置ssh端口转发,例如: ssh -L 5000:192.168.50.50:5000 1.2.3.4 这对于Router现在可以正常工作,它现在可以本地连接到端口5000。因此,“ telnet localhost 5000”将按预期连接到192.168.50.50:5000。 现在,我想通过现在建立的ssh隧道重定向来自Source和渠道的流量。我为此尝试了NAT规则: iptables -t nat -D PREROUTING -i eth0 -p tcp -s 192.168.1.10 --dport 5000 -d 1.2.3.4 -j DNAT --to-destination 127.0.0.1:5000 由于路由器已经是我的NAT网关,因此它已经具有所需的路由规则: -A POSTROUTING …

1
如何使所有流量通过Linux中的一个接口
我有一个自写的接口tun0(基于TUN / TAP),可以输出接收到的内容。 我需要系统的所有流量才能通过此接口。 接口的作用是: 找出可能被检查的数据包并通过隧道传输。 保持所有其他流量不变。 如您所料,我正在尝试构建一个防审查工具。 必须在tun0进程内做出有关隧道的决定, 因为只有在那儿,我们才可以使用受信任的DNS。 我需要您的帮助,向我展示如何通过自写接口tun0使所有流量通过。如果tun0需要更改,请您提供此类更改。 以下是我尝试使所有流量通过tun0并失败(ping失败)的方法。 编译中 gcc tun0.c sudo ./a.out 配置中 sudo ip addr add 10.0.0.1/24 dev tun0 创建表约翰 $ cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 200 John …
12 linux  iptables  ip  route 

1
为什么我的防火墙(iptables)会干扰我的网桥(brctl)?
我设置了一个br0“附加”到两个接口的桥: eth0,我的物理接口已连接到真实的局域网, vnet0,KVM虚拟接口(连接到Windows VM)。 我在前向链中有一条防火墙规则: iptables -A FORWARD -j REJECT 现在,唯一有效的ping是从VM到主机。 该br0接口拥有我的主机的IP地址。eth0而vnet0没有“拥有”任何IP,从主机点。Windows VM具有静态IP配置。 如果将我的iptables规则更改为ACCEPT(甚至使用更具限制性的iptables -A FORWARD -o br0 -j ACCEPT),一切都将正常工作!(即,我可以从VM ping任何LAN计算机,反之亦然)。 所有IP转发内核选项均被禁用(如net.ipv4.ip_forward = 0)。 那么,netfilter防火墙如何阻止甚至没有启用的功能? 此外,VM-LAN流量仅应包含eth0和vnet0。但是,似乎允许-o br0“作品” 进行正向流量(尽管我并未非常仔细地检查)。

1
iptables中的addrtype的定义是什么?
我热衷于addrtype在-src我的过滤器链之一中结合使用,例如,这样可以丢弃一些Bogon ip: -A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB 手册页显示以下内容 addrtype 此模块根据数据包的地址类型匹配数据包。地址类型用于内核网络堆栈中,并将地址分为各种组。该组的确切定义取决于特定的第三层协议。 以下地址类型是可能的: UNSPEC一个未指定的地址(即0.0.0.0) UNICAST单播地址 本地地址 广播广播地址 ANYCAST任播数据包 多播多播地址 黑洞黑洞地址 无法访问的地址 禁止使用禁止的地址 扔固定 NAT修复程序 XRESOLVE 目前尚不清楚确切的定义是什么,它是否取决于特定的第3层协议。我是这样认为的: UNICAST(!广播,!MULTICAST,!ANYCAST) 当地(127.0.0.0/8) 广播(*.*.*.255) ANYCAST(*.*.*.*) 多播(224.0.0.0/4) 是否有人清楚这意味着什么以及如何通过iptables实现它(例如,它如何知道黑洞在哪里)?
11 iptables 

3
在ip6tables中设置规则还是禁用ipv6更好?
我具有以下网络配置: # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:e0:1c:73:02:09 inet addr:10.1.4.41 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::2e0:4cff:fe75:309/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:858600 errors:0 dropped:0 overruns:0 frame:0 TX packets:1069549 errors:0 dropped:0 overruns:5 carrier:0 collisions:0 txqueuelen:1000 RX bytes:142871181 (136.2 MiB) TX bytes:717982640 (684.7 MiB) lo Link encap:Local Loopback inet …
11 iptables  ipv6 

1
如何理解为什么iptables将数据包视为无效?
我设置了一些iptables规则,以便它记录并丢弃无效(--state INVALID)的数据包。阅读日志如何理解为什么该数据包被视为无效?例如,以下内容: Nov 29 22:59:13 htpc-router kernel: [6550193.790402] ::IPT::DROP:: IN=ppp0 OUT= MAC= SRC=31.13.72.7 DST=136.169.151.82 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=5104 DF PROTO=TCP SPT=80 DPT=61597 WINDOW=0 RES=0x00 ACK RST URGP=0

2
如何在Linux中使用iptables限制局域网中特定用户的互联网访问
假设LAN上有两个用户A和B。如何使用iptables规则限制用户A的互联网访问并保存规则,以便重新启动后仍然有效。还假设我想在某个时候授予该用户访问权限;如何再次启用它?我正在使用Ubuntu Linux 10.04。如果有人向我展示如何从命令行进行操作,那将是很好的选择,因为我经常使用本地ssh登录名登录计算机。

4
使用IPtables的Fail2ban阻止在Debian Lenny上不起作用。[移动的SSH端口]
我最近决定做一些安全维护。我看到了我的日志,并且尝试对我的SSH服务器进行一些尝试。首先,我将SSH端口从默认的22移开了。之后,我阅读了有关Fail2ban,BlockHosts和DenyHosts的内容。 我看了第一个:配置简单,一切都可以理解;但是当我尝试“探测其保护”时,测试失败了。一切似乎都很好,但是我仍然可以访问服务器。 我还测试了IPtables:# iptables -I INPUT -j DROP-在那之后,我的SSH连接丢失了(所以,我想要的)。然后# iptables -I INPUT -s 84.x.y.z -j DROP,它也起作用。 但是,Fail2ban遵循什么规则,这行不通:($ sudo iptables -L) Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-apache tcp -- anywhere anywhere multiport dports www,https fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh-ddos tcp -- anywhere anywhere multiport …

2
IPTables规则允许传入的SSH连接
该脚本的目的是仅允许通过VPN的流量,但localhost <-> localhost和传入的SSH流量除外。但是,当我通过SSH运行脚本时,我已断开连接并被迫重新启动vm。我的脚本有什么问题? #!/bin/bash iptables -F #Allow over VPN iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT #Localhost iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT iptables -A OUTPUT -d 127.0.0.1/8 -j ACCEPT #VPN iptables -A INPUT -s 123.123.123.123 -j ACCEPT iptables -A OUTPUT -d …
11 iptables 

2
iptables:使用conntrack和owner匹配传出流量。适用于奇怪的滴
在我的iptables脚本中,我一直在尝试编写尽可能细化的规则。我限制了允许哪些用户使用哪些服务,部分出于安全性考虑,一部分作为学习练习。 在运行3.6.2内核的Debian 6.0.6上使用iptables v1.4.16.2。 但是我遇到了一个我不太了解的问题。 所有用户的传出端口 这工作得很好。我没有任何通用的状态跟踪规则。 ##出口端口81 $ IPTABLES -A输出-p tcp –dport 81 -m conntrack –ctstate新的,已确定的-j接受 $ IPTABLES -A INPUT -p tcp --sport 81 -s $ MYIP -m conntrack --ctstate已建立-j接受 用户匹配的出站端口 ##用户帐户的传出端口80 $ IPTABLES -A输出-匹配所有者--uid-owner用户帐户-p tcp --dport 80 -m conntrack --ctstate新创建的--sport 1024:65535 -j接受 $ IPTABLES -A INPUT -p tcp …

3
为什么我不能在iptables OUTPUT链上使用REJECT策略?
我目前将OUTPUT链设置为DROP。我想将其更改为REJECT,这样就可以知道这是我的防火墙阻止了我进入某处,而不是我尝试访问的任何服务都没有问题(立即拒绝而不是超时)。但是,iptables似乎对此并不在意。如果我手动编辑保存的规则文件并尝试还原它,iptables-restore v1.4.15: Can't set policy 'REJECT' on 'OUTPUT' line 22: Bad policy name则会得到该文件,并且拒绝加载规则。如果尝试手动设置(iptables -P OUTPUT REJECT),我会得到,iptables: Bad policy name. Run 'dmesg' for more information.但dmesg中没有输出。 我已经确认适当的规则已编译到内核中,并且已经重新启动以确保已加载: # CONFIG_IP_NF_MATCH_TTL is not set CONFIG_IP_NF_FILTER=y *** CONFIG_IP_NF_TARGET_REJECT=y *** CONFIG_IP_NF_TARGET_LOG=y CONFIG_IP_NF_TARGET_ULOG=y (添加星号以突出显示适用规则) 我能找到的所有内容都表明REJECT是有效的策略/目标(通常),但是我找不到任何对INPUT,FORWARD或OUTPUT链无效的信息。我的Google-fu没有帮助。我在Gentoo上,如果有什么不同的话。这里有人有见识吗?


2
通过SSH通过另一台服务器隧道传输yum流量
我正在公司代理后面运行Fedora桌面,该代理阻止了yum流量(特别是*.gz和*.bz2)。我可以通过ssh访问单独的RedHat机器,该机器可以下载喜欢的任何东西。 当我执行yum update其他yum命令时:是否可以将该流量路由到RedHat机器来为我执行下载?我在RedHat机器上没有root用户访问权限,但是我可以登录并使用wget下载文件。如果是这样,怎么办?

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.