如果我想在我的服务器build议中添加INPUT防火墙规则,我看到的是执行以下操作(端口80在这里,但可以是任何其他服务的众所周知的端口) iptables -A INPUT -p tcp –dport 80 -m conntrack –ctstate NEW,ESTABLISHED -j ACCEPT 这和以前有什么不同? iptables -A INPUT -p tcp –dport 80 -j ACCEPT 即:检查INPUT链中连接状态的好处是什么,因为服务器必须在端口80上提供任何请求?
我们在Docker容器中设置了一个jupyter笔记本( https://jupyter-notebook.readthedocs.io/en/latest/notebook.html )。 这个想法是,用户从个人电脑上的networking浏览器连接到jupyter,然后可以分析运行在容器主机上的postgres提供的数据。 这个工作到现在为止,我们使用docker端口映射,用户可以将他们的浏览器指向http://host-server.ch:8080 ,笔记本打开。 要控制对主机的访问并避免数据泄露到外部世界,我们希望限制networking设置,以便: 外部世界可以连接到正在运行的容器的端口8080的http://host-server.ch:8080 从容器连接到主机上的端口5432是允许的 来自容器内的所有其他连接都被禁止 这可以通过在主机上configurationiptables来完成吗? 我不是iptables专家。
我正在使用iptablesredirect来使RHEL7上的Tomcat可以在端口443上访问(用于httpsstream量),如此处所述。 重要的规则应该是这三个: iptables -A INPUT -p tcp –dport 443 -i eth3 -j ACCEPT iptables -A INPUT -p tcp –dport 8443 -i eth3 -j ACCEPT iptables -A PREROUTING -t nat -p tcp –dport 443 -j REDIRECT –to-port 8443 iptables -A INPUT -m state –state ESTABLISHED,RELATED -i eth3 -j ACCEPT # Drop all other incoming packets on […]
我试图build立一个使用OpenVPN的站点到站点VPN,初始设置已经完成,我的openvpn客户端节点(201.100.0.x)能够与openvpn服务器端节点(192.0.0.x )。 但是,如果我从服务器端节点(192.0.0.32)ping任何客户端节点(201.100.0.18),我没有得到答复,(我在端点上添加了正确的路由)。 通过使用TCP转储进行分析,我可以看到ping重播到达我的openvpn服务器。 服务器节点:192.0.0.32(eth0) 服务器:192.0.0.39(eth0); 10.8.0.1(tun0) 客户端节点:201.100.0.18(eth0) OpenvpnClient:201.100.0.11(eth0); 10.8.0.6(tun0) server node> ping 201.100.0.18 -c 1 PING 201.100.0.18 (201.100.0.18) 56(84) bytes of data. — 201.100.0.18 ping statistics — 1 packets transmitted, 0 received, 100% packet loss, time 10000ms 这是openvpn服务器的TCP转储格式eth0 vpnserver> tcpdump -nni eth0 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol […]
我环顾四周,我很困惑,我可以如何使用iptables将DHCP请求转发到客户端。 我知道DHCP工作在服务器端的两个UDP端口67和客户端的68端口。 我的networking看起来像这样: networking拓扑 我已经设置了input,输出,前进链和冲洗的一切。 我试过了iptables -A FORWARD -p udp -s 0/0 –dport 67 -j ACCEPT iptables -A FORWARD -p udp -d 0/0 –sport 67 -J ACCEPT iptables -A FORWARD -p udp -s 0/0 –dport 68 -j ACCEPT iptables -A FORWARD -p udp -s 0/0 –sport 68 -j ACCEPT 但是这不行! iptables的: iptables -F iptables -P […]
有许多关于如何使用“iptables”在Linux上安装NAT的指南。 他们包含一条线 iptables –table nat –append POSTROUTING –out-interface $UPLINK –jump MASQUERADE UPLINK是连接到互联网的networking接口的名称。 我没有看到的是将IP数据包向后翻译的规则,即将全局IP地址翻译为本地IP地址。 它应该看起来像这样。 iptables –table nat –append PREROUTING –in-interface $UPLINK $ARGS 向后的方向在哪里?
我有两个应用程序。 其中一个与世界对话,但需要从我们其他地方(在heroku上)托pipe的内部API提供一些数据。 我在想安全。 目前,我们有令牌授权工作 – 但我们可以做得更好。 由于应用程序的范围完全是内部的,所以即使authentication已经到位,我们也没有理由不必要地将API暴露给因特网。 如果不是在heroku上,我可以将API服务器上的其他服务器的IP列入白名单,并完成它。 这将显着减less我的攻击面。 不过,我明白,Heroku不允许我们操纵IP表,更糟糕的是 – dynamic链接不保证有静态IP。 但是,我确实有这些heroku实例的每个域。 有没有一种很好的方法来确保我的API服务器只能与我帐户中的其他heroku应用程序通话? 还是我坚持移动api服务器到专用的VPS?
总之,一切工作,直到我尝试从互联网上访问我的Apache服务器在docker集装箱。 进入的数据包到达docker容器,但是出口数据包被docker-machine上的NAT接口丢弃。 我的设置是 典型的家庭局域网设置与路由器连接到互联网 osx机器运行docker(即 – docker-machine aka boot2docker) 运行apache的Docker容器(将端口80暴露为11111) 我有osx(我的主机)上运行的Apache,它将作为一个故障排除工具。 我给docker-machine添加了一个桥接接口,它将docker-machine直接连接到我的LAN,并从我的路由器获得一个IP。 在我的路由器(192.168.1.1)我有端口转发11111到我的docker机IP(192.168.1.102) 我可以做什么 我可以连接到我的主机和从我的局域网(所有192.168.1.X)的另一台计算机的Apache由于桥接口 泊坞窗机。 同时使用192.168.1.102:11111 HTTP://:11111 所以显然我的域名parsing它的IP是正确的,我的路由器端口转发工作正常。 我也可以通过互联网轻松访问我的主机(osx)上的Web服务器 我试过了 在我的主机(osx)上使用pfctl进行端口转发 在我的容器上使用–net = host 我已经缩小了问题(使用tcpdump和其他实验),当我连接到我的局域网上的计算机的容器中的Web服务器时,数据包stream经docker机中的桥接接口(192.168.1.102)。 当我从互联网连接传入的数据包stream通过192.168.1.102,但返回数据包不。 相反,它会通过docker-machine上的NAT接口并被丢弃。 我已经通过在docker-machine内部的NAT接口上执行“ifconfig eth0 down”来certificate这一点。 现在显然,这使我的docker机,因为我不能再运行docker命令,并杀死我当前的SSH会话。 但是当我这样做,从互联网的容器中的Web服务器的连接工作! 所以我certificate了返回数据包是问题。 现在, 我可以在docker-machine里面使用iptables来正确地路由这个数据包,这样它就能从桥接接口而不是NAT接口走出去了吗? 我试过没有成功。 这是我的docker-machine上的iptables规则。 我想要路由来自我的容器的源端口为11111的任何数据包,并将它们路由到eth1(桥接接口)。 sudo iptables -I FORWARD 1 -i docker0 -o eth1 -p tcp –syn –sport 11111 -m conntrack […]
我有我的公司开发的HTTP代理。 代理使用TPROXY。 通常,安装此代理需要添加一些路由规则和iptables规则(对于squid): ip rule add fwmark 1 lookup 100 ip route add local 0.0.0.0/0 dev lo table 100 iptables -t mangle -N DIVERT iptables -t mangle -A DIVERT -j MARK –set-mark 1 iptables -t mangle -A DIVERT -j ACCEPT iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT iptables -t mangle -A […]
我有一个安装了Squid 3.5.22的Ubuntu 16.04服务器。 它被configuration为拦截HTTP和HTTPSstream量(透明)。 所以iptablesredirect用于端口80和443。 当我连接一台局域网的电脑时,除了Skype for Business之外,一切都按预期工作。 据预计,我的意思是一些HTTP和HTTPS域的Internet访问被阻止/redirect到另一个页面。 但是,Skype for Business无法连接,正常的Skype工作正常。 我修改了: https : //support.office.com/zh-CN/article/Create-DNS-records-at-eNomCentral-for-Office-365-a6626053-a9c8-445b-81ee-eeb6672fae77?ui=en-US&rs = en-US&ad = US#bkmk_verify在enom上添加所有DNSconfiguration。 这摆脱了DNS错误,我得到另一个错误,说服务暂时不可用。 将我的网关从我的Linux机箱IP更改回常规路由器,可让我正常loginSkype for Business。 有什么build议,为什么发生这种情况? 任何解决scheme 我search了几天,没有得到任何地方,MS修复程序没有实际工作。 注1:路由器和Ubuntu的WAN接口都使用Google的8.8.8.8 DNS 注2:我用来安装鱿鱼和configuration它的指南有这些iptables规则,使一切工作: http : //pastebin.com/SqpbmYQQ 注3:我只在服务器上安装了Sky(Skype for Business Linux客户端软件),并且没有问题login。 所以我认为这个问题是在iptables或服务器上的网桥上的某个地方。