我在 192.168.0.1 和 192.168.0.100 上有对我的 dd-wrt 路由器和计算机的 root 访问权限。
我需要让来自其他计算机(192.168.0.101)的流量通过路由器(进出互联网)并在我的 192.168.0.100 机器上的wireshark 中检查它。如何才能做到这一点?可能在路由器上使用 iptables。
我在我的 Web 服务器上托管了两个应用程序,一个是 Drupal 站点,另一个是 Errbit 安装,它是一个 Ruby on Rails 应用程序。这些 URL 看起来像这样:
http://ourcompany.com
http://errbit.ourcompany.com:3000
Run Code Online (Sandbox Code Playgroud)
我想在第二个 URL 上删除 :3000 的需要,因此我们可以通过以下方式直接访问它:
http://errbit.ourcompany.com
Run Code Online (Sandbox Code Playgroud)
我不想重定向,我希望保留 URL,没有端口号。我以前使用以下命令行命令来设置一些 IP 表重新配置:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 3000
Run Code Online (Sandbox Code Playgroud)
...运行良好,因为旧服务器上没有运行 Apache。但是,这将导致端口 80 上的所有请求都被重定向到端口 3000,这意味着它将中断对http://ourcompany.com 的
我该如何设置?
有没有办法配置 IP 表以允许这样做,或者这会在 Apache2 配置中完成吗?
我为 samba 客户端尝试了以下 iptables 规则,它们奏效了。请注意,INPUT、OUTPUT 和 FORWARD 的策略都设置为 DROP
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p udp --dport 137 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p udp --dport 138 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p tcp --dport 139 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p tcp --dport 445 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
为什么我们只需要 samba 客户端的 OUTPUT 规则?为什么我们不需要 INPUT 规则来为传入的数据包打开这些端口?
另一个问题:链名在内部是否带有任何方向的意义,或者它们只是便于理解的助记符?
iptables:
-------------
# Generated by iptables-save v1.4.7 on Wed Aug 28 …Run Code Online (Sandbox Code Playgroud) 一旦 TCP 连接总数达到全局最大值,而不考虑源或目标端口,我很难弄清楚如何拒绝来自具有 iptables 的机器的入站和出站连接。必须包括所有来源/目的地/端口。
这可能与 iptables 吗?
2064 871K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x3F
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
61 3712 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置此规则:
iptables -A INPUT -i eth1 -p tcp -s ! 10.111.11.0/24 --dport ssh --syn -m state --state NEW -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
但它不起作用。当我改变位置时!
iptables -A INPUT -i eth1 -p tcp ! -s 10.111.11.0/24 --dport ssh --syn -m state --state NEW -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
没关系,但我不确定它是否正常工作。在网络上的每一个啧啧“!” 在 -s 和 ip 之间,不在它前面。
我刚刚完成了我的 VPN 的设置,谷歌显示我的 IP 是我的 VPN 的 IP,所以这很好用。但是,当我通过 SSH 登录到 VPN 服务器时,它显示我的最后一次登录是我的(非 VPN 的)IP(即使在多次登录/退出之后)。这让我相信并非所有数据都通过 VPN。
在我的server.conf我有以下指令:
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
Run Code Online (Sandbox Code Playgroud)
并iptables使用以下设置:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
有没有办法来解决这个问题?它
我想设置一些 NAT 策略,以便某些机器只能对 http/https 进行出站访问。他们不应该能够从他们的机器上进行端口扫描或其他任何事情。
目前我的 NAT 规则是:
-A PREROUTING -d 1.2.3.4 -j DNAT --to-destination 10.10.1.10
-A POSTROUTING -s 10.10.1.10 -j SNAT --to-source 1.2.3.4
Run Code Online (Sandbox Code Playgroud)
我有这个共享规则:
-A POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
1.2.3.4是公网IP,10.10.1.10是内网IP。
这允许直接通过 NAT 的所有入站和出站访问。
我尝试了以下 POSTROUTING 规则而不是上面的规则:
-A POSTROUTING -s 10.10.1.10 -p tcp --dport 80 -j SNAT --to-source 1.2.3.4:80
Run Code Online (Sandbox Code Playgroud)
然而,这似乎不起作用。添加该规则后,我仍然可以从工作站使用 RDP。
概括地说,我的目标是允许某些工作站只能通过 http/https 访问 Internet。应阻止所有其他出站流量。应该允许所有流量。我希望网络中的所有其他工作站都使用现有的 NAT 策略,以允许对所有出站流量进行 NAT。
更新 根据@Zoredache 的回复,我现在有以下 Postrouting 规则。
-A POSTROUTING -s 10.10.1.10/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 1.2.3.4:80
-A POSTROUTING …Run Code Online (Sandbox Code Playgroud) 我将我的服务器设置为在端口 21966 上接受 SSH 连接,我按照一些步骤来配置 ufw,但是它现在已将我锁定在任何端口上的所有 SSH 访问之外!
我已经能够将我的服务器启动到“救援”模式,为我提供一个 SSH 救援帐户,通过它我可以安装硬盘驱动器并查看我的文件。我不知道该怎么做,因为 ufww 服务没有运行,所以我无法禁用或卸载它。
当我尝试将我的 SSH 端口设置为 22(编辑/etc/sysconfig/iptables和/etc/ssh/sshd_config)以外的其他端口时,我最终被锁定在我的服务器之外并且不得不启动到救援模式来纠正问题。
我已经经历了几次这个循环,每次都更加小心,我在做正确的事情。
我的新端口(在本例中为 33933)是否有可能在其他地方被阻止 - 或者还有另一个引用 22 的文件需要更改?
这是在 CentOS 6 上的一个全新的专用盒子上,我刚刚从 oneprovider.com(一个 online.net 经销商)设置了这个盒子。