我想使用运行最新的Raspbian作为networking桥梁的PI – 不知道这是否正确,但目标很容易解释: 其中一个PI的USB端口连接到调制解调器 – 它通过DHCP为接口usb0获得IP,互联网工程(开箱即用,非常好) PI的以太网/ RJ45端口连接到路由器的WAN端口 我希望PI给路由器互联网接入的设备+阻止所有传入的请求(这里没有任何提示) PI不运行DHCP; 其eth0configuration为使用静态IP 192.168.0.1,地址掩码为255.255.255.0,路由器configuration为使用IP 192.168.0.2,地址掩码和网关为192.168.0.1。 在testing中,我发现除了PI本身在线的事实: 从PI到路由器的ping是成功的(一旦在路由器上启用了该选项) 从LAN设备ping到PI是成功的 所以networking方面明智的一切似乎很好,但没有从局域网设备的互联网接入,大概是因为数据包转发规则丢失/错误。 有什么规则将所有到达eth0的数据包从IP 192.168.0.2转发到usb0上的dynamicIP +返回的“应答数据包”的对应部分? 后者与阻止所有传入请求的规则结合使用? 谢谢! 更新 感谢@ BillThor的回答和本教程,我能够走上正轨。 不要混淆路由和防火墙方面。 如果启用了IP伪装,则“路由”不需要特殊的转发规则。 启用IP伪装的命令是: $> sudo sysctl -w net.ipv4.ip_forward=1在内核中启用IP转发 $> sudo iptables -t nat -A POSTROUTING -o <wan_network_interface> -j MASQUERADE 与<wan_network_interface>提供networking连接的networking接口, usb0在我的情况。 只要FORWARD的默认防火墙策略是ACCEPT(并且没有其他规则明确禁止它),f.ex就会工作。 如果iptables -S返回 OUTPUT DROP FORWARD ACCEPT INPUT DROP […]
我想testing删除所有默认的iptable规则,并用我自己的,使用ufwreplace它们。 我有一个非常简单的局域网只需要二打打开的端口,当我尝试阻止IP时,iptable默认导致重大冲突。 所以我创build了ufw规则: ufw allow 22 / tcp然后我发出: echo“ufw reload”| 在现在+ 1分钟和iptables – 冲洗期望我的SSH会话将在一分钟后恢复。 但是这没有发生 – 我不得不重新启动运行ufw的服务器。 还有其他什么是强制恢复SSH会话的默认iptables?
我添加了DNS服务器端口到iptables,甚至指定的服务正在监听,当我用netstat检查它,但是当我检查端口从外面closures。 iptables -n -L =>输出: Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp — 0.0.0.0/0 0.0.0.0/0 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW,ESTABLISHED REJECT all — 0.0.0.0/0 0.0.0.0/0 reject-with […]
我是IPTables的新手,我相信我忽视了一些显而易见的东西。 这是我的设置: Chain INPUT (policy ACCEPT) target prot opt source destination DROP all — anywhere anywhere state NEW recent: UPDATE seconds: 60 hit_count: 12 name: DEFAULT side: source mask: 255.255.255.255 all — anywhere anywhere state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp — anywhere […]
我有一个运行Docker的CentOS服务器,我试图用iptables来保护它。 而我无法弄清楚如何让容器访问互联网,而不需要从外部访问端口。 我已经停止了Docker使用'–iptables = false'命令搞乱我的iptables,现在正在努力手动configurationiptables。 我想设置防火墙,以便: input被删除,除非我特别打开它们 容器可以通过本地主机连接相互通信 容器可以连接到互联网下载代码等 我有前两个,但无论我尝试启用第三个无效的第一! 我有两个testing容器。 一个httpd容器转发其web输出端口3333 – 另一个运行Debian的容器。 IPTables被configuration为 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT 所以从外面我不能访问我的服务器:3333。 但是我可以从主机运行:curl localhost:3333并有权限访问。 然后我补充说: iptables -A INPUT -i docker0 -j ACCEPT 现在我可以运行在我的debiantesting容器curl172.17.0.1:3333,并且工作正常。 但是,如果我在testing容器中,并尝试:curl httpbin.org/ip我没有得到任何回应。 我正在阅读https://fralef.me/docker-and-iptables.html并试着build议: iptables-A FORWARD -i docker0 -o eth0 […]
这是我的设置:VMWare ESXi 4.0上的两个CentOS 5.2盒子。 第一个IP地址是eth0的192.168.22.52,eth1的IP地址是192.168.99.1。 第二个盒子在eth0上运行PostgreSQL 8.3,IP地址为192.168.99.2。 这里是box1的 iptables,box2参见下面的注释。 我已经在box1上设置了端口5432转发,并且能够通过pgAdminIII或者Vista笔记本上的psql(192.168.22.1,这个子网中没有其他的盒子,它有自己的交换机并且物理隔离)在box2上连接到PostgreSQL。 我连接的数据库有两个模式,一个是“较小”(基本上只有一个表),另一个是较大的(大约30个表,100个function等)。所以我能够使用较小的模式(浏览表等),但我试图扩大更大的模式 – pgAdminIII冻结20分钟左右。 PostgreSQL日志显示有一个查询需要太长时间: 2009-06-04 21:04:46 EEST LOG: 00000: duration: 493578.874 ms statement: SELECT pr.oid, pr.xmin, pr.*, format_type(TYP.oid, NULL) AS typname, typns.nspname AS typnsp, lanname, proargnames, proconfig, pg_get_userbyid(proowner) as funcowner, description FROM pg_proc pr JOIN pg_type typ ON typ.oid=prorettype JOIN pg_namespace typns ON typns.oid=typ.typnamespace JOIN […]
在Linux上,我创build了一个名为gre1 172.17.1 – > 172.17.2的GRE隧道。 Linux的IP地址是10.10.100.100,端点IP是10.10.101.101。 我试图做一个源 NAT(不是目的地NAT)来隧道的stream量从Linux的盒子去实际去隧道是目的地端口是80.我已经尝试沿着这些方面的事情没有成功: iptables -t nat -A OUTPUT -p tcp –dport 80 -j SNAT –to 172.17.1.1 iptables -t nat -A FORWARD -p tcp –dport 80 -j SNAT –to 172.17.1.1 我发现GRE隧道的大多数例子都是针对DNAT,而不是SNAT。 任何例子,将为我的情况下工作?
我最近升级我的Ubuntu服务器安装到9.04。 我想安装和使用ufw。 有没有办法将我现有的iptables导入ufw? 我担心打开它,并closures所有的端口。 我想打开一个额外的TCP端口,但不想经历更改我的iptable规则的复杂过程。
我们有一个Java进程,其中包含一个embedded式FTP服务器,我想在RHEL5机器上运行。 我不想以root身份运行进程,我不希望客户端在build立连接时必须指定端口。 看来我应该能够configurationvsftpd监听另一个端口(例如20000),然后configurationipchains将端口21上的所有stream量转发到20000.我想具体我需要: configurationvsftpd在端口20000上侦听 configurationip_conntrack_ftp将端口21的stream量转发到20000 所以我最初的问题是这似乎是一个合理的方法? 为了完成第一步,我修改了我的vsftpd.conf文件,使其具有以下行: listen_port=20000 然后,我可以重新启动vsftpd,并通过执行以下操作validation它是否正在侦听20000: > ftp tstweb1 20000 Connected to tstweb1.pulseenergy.com. 220 (vsFTPd 2.0.5) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (tstweb1:cclark): 我继续login没有问题。 第1步完成。 至于第2步,我没有看到模块加载: > /sbin/lsmod | grep ftp > 所以我尝试使用正确的端口转发信息加载它: > /sbin/modprobe ip_conntrack_ftp ports=21,20000 […]
我目前有一个具有多个外部IP地址的openVPN服务器。 我想所有VPN连接(tun0接口,和/或10.19.88.xx IP范围)将第二个外部IP地址作为“公共IP”,而不是第一个。 作为一个例子,使用虚构地址: Deault eth0 address: 11.12.13.1 (server.domain.tld) eth0:0 address: 11.12.13.2 (vpn.domain.tld) 所有VPN连接当前使用11.12.13.1,而不是11.12.13.2。 有没有办法解决这个问题(使用iptables?) 谢谢