Articles of iptables

我应该打开哪些端口以允许基于ACME的证书更新?

我在一个面向公众的服务器上托pipe一个网站。 在这个网站上,我希望有尽可能严格的防火墙规则。 这种方法的一部分涉及通过端口的白名单。 我已经将SSH打开到一些可信的地址,并且我configuration了iptables来允许HTTP和HTTPS上的任何地方的stream量,但是在INPUT上有一个总体的DROP策略。 现在我试图设置让我们encryption一个指向那个盒子的域名,但是这个一直挂起,直到我运行iptables –policy INPUT ACCEPT ,直到证书签名期间。 这是令人费解的,因为据我所知: certificate是在/var/www/ acme-tiny通过HTTPS发送一个签名请求让letsencrypt.org LE的服务器从该目录通过HTTP获取certificate 因此,唯一需要开放的港口是80和443。 如上所述,除非我将全局INPUT策略设置为ACCEPT ,否则脚本会挂在它试图validation的第一个域上(直到发生超时),理想情况下,我希望避免这种情况。 在将来自letsencrypt.org , acme-staging.api.letsencrypt.org和acme-v01.api.letsencrypt.org 所有stream量列入白名单之后,这仍然存在 还有什么其他的端口和域名,以及在什么链上,我应该白名单,以便在需要更新时可以定期访问LE服务器?

在Ubuntu上使用DHCP(isc)和DNS(Bind9)问题的iptables设置2 nic

我的Linux作为网关设置有问题。 不知道我在这里做错了什么。 预期的是: 计算机具有基于DHCP保留的IP地址转发的服务。 我可以从互联网上的服务器(我有一个DDNS) networking架构: 互联网 路由器(DDNS附加) Linux Box – (有线计算机命名的网关) – IP 192.168.1.161(enp9s0的外部)192.168.99.1(enp7s5的内部) 交换机 – IP 192.168.99.100 多台计算机 – (有线) – IP 192.168.99.102,192.168.99.103,192.168.99.104,192.168.99.105 什么工作: DHCP提供保留的IP地址 电脑内部有互联网 我可以从同一个networking上的计算机ssh进入网关enp9s0(不从互联网) DDNS将信息正确转发给路由器 问题: 端口不会转发到内部计算机 我无法从互联网上得到任何东西 额外信息:这是一个共享networking。 在同一个networking中将会有windows和linux机器。 的IPtables: *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] # enp9s0 is WAN interface, enp7s5 […]

iptables规则来防止IP欺骗

我们在下面的iptables规则存在于我们的web前端框中以防止IP欺骗: -A INPUT -s 255.0.0.0/8 -j LOG –log-prefix "Spoofed source IP" -A INPUT -s 255.0.0.0/8 -j DROP -A INPUT -s 0.0.0.0/8 -j LOG –log-prefix "Spoofed source IP" -A INPUT -s 0.0.0.0/8 -j DROP 我们现在要添加以下规则来进一步加强IP欺骗防范 -A INPUT -s 224.0.0.0/3 -j LOG –log-prefix "Spoofed source IP" -A INPUT -s 255.0.0.0/8 -j DROP -A INPUT –s 169.254.0.0/16 -j […]

为什么我收到这么多未经请求的GRE数据包?

我的(Linux)服务器有一些相当简单的iptables规则。 iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT iptables -A INPUT -m tcp -p tcp –dport ssh -j ACCEPT iptables -A INPUT -m tcp -p tcp –dport https -j ACCEPT iptables -A INPUT -j LOG iptables -A INPUT -j NFLOG iptables -A INPUT -j DROP ICMP没有被过滤,但是没有任何其他不确定的连接被允许。 […]

我如何正确地使用iptables禁止IP

这是我目前的IPTablesconfiguration。 但是我禁止的IP仍然可以ping,ssh,web等等。 IP即时通讯testing这些规则是:195.154.220.14 # Generated by iptables-save v1.4.7 on Thu Feb 16 22:06:28 2017 *nat :PREROUTING ACCEPT [1452:83067] :POSTROUTING ACCEPT [95:6213] :OUTPUT ACCEPT [95:6213] COMMIT # Completed on Thu Feb 16 22:06:28 2017 # Generated by iptables-save v1.4.7 on Thu Feb 16 22:06:28 2017 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [591:260189] :ICMPFLOOD […]

IPTABLES DROP不能打到外部设备

我有一个路由器/网关是10.1.1.1/24我有一个服务器运行Ubunutu服务器16.04 3接口。 ens3 = 10.1.1.250/24(outside)ens4 = 10.1.2.250/24(inside)ens5 = 10.1.3.250/24(尚未使用)我添加了一个nat表规则来SNAT ens3外部接口。 Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 SNAT all — any ens3 anywhere anywhere to:10.1.1.250 使用笔记本电脑我设置我的默认网关10.1.2.250和IP到10.1.2.22/24,我能ping通所有的服务器接口,路由器和互联网。 我添加了一个filter规则,根据目的IP地址丢弃 Chain OUTPUT (policy ACCEPT 23 packets, 2564 bytes) pkts bytes target prot opt in out source […]

将stream量转发到docker集装箱/ VM

我有一台非常强大的机器,运行Ubuntu 16.04服务器。 它运行了几个docker集装箱和虚拟机(使用VirtualBox),以下简称VM。 目前主机已经分配了一个IP地址(比如说192.168.1.10),通过NATing访问虚拟机上的业务(如192.168.1.10:80 – > 172.17.0.2:80),这是不尽人意的。 相反,我想将多个IP地址(比如192.168.1.100-110)绑定到主机接口,并将其他IP地址的stream量转发给虚拟机。 这导致映射<public IP> <–> <private IP> 。 我已经能够完成这个第一部分,通过添加[…] up ip addr add 192.168.1.1xx/24 dev ens3 label ens3:0 down ip addr del 192.168.1.1xx/24 dev ens3 label ens3:0 […] /etc/network/interfaces文件(其中ens3明显是主机networking接口的名称)。 这意味着额外的IP地址正在运行。 但是第二部分让我头痛。 到目前为止,我只考虑过基于iptables的解决scheme,因为看起来最合适,而且我读过的所有指南都使用了它。 所以我所做的是通过在/etc/sysctl.conf添加net.ipv4.ip_forward=1来激活IP转发。 然后,我发出以下命令来执行转发: iptables -t nat -A POSTROUTING -d 172.17.0.2 -j SNAT –to-source 192.168.1.100 iptables -t nat -A […]

如果src地址与dst地址在同一networking中,则iptables匹配转发的数据包

我正在寻找一种方法在iptables中匹配转发的数据包,其中源地址与目标地址在同一networking中, 而不指定networking 。 当然,当我指定networking时,这很简单: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 但是让我们说,我想要做任何C类networking(我不想明确指出所有这些)。 我看了rpfilter比赛,但根据manpage: 此匹配只能用于原始或折叠表的PREROUTING链。 所以这对我没用。 u32比赛看起来很有希望,但是太复杂了,我不明白。 我尝试了一种不同的方法:匹配出现在相同接口上的数据包,如下所示: iptables -t nat -A POSTROUTING -i eth0 -o eth0 但是这也不起作用,因为-i不能在POSTROUTING链中使用: iptables v1.4.21: Can't use -i with POSTROUTING 我想到的一个解决scheme是使用数据包标记:在eth0标记数据包,并匹配出口接口和POSTROUTING链中的标记,如下所示: iptables -t mangle -A PREROUTING -i eth0 -j MARK –set-mark 0x01/0xff iptables -t nat -A POSTROUTING -o eth […]

无法在Ubuntu 16.04中使用netstat-nat查看IP连接

我已经在Ubuntu服务器(16.04)上设置了NAT,并使用TCP dump来validationNAT是否正常工作。 我现在试图使用netstat-nat来查看连接,所以我可以快速演示它的工作,而不诉诸数据包捕获。 但是,Ubuntu似乎在停止netstat-nat的工作。 跟踪输出给出: strace -f netstat-nat . . . open("/proc/net/nf_conntrack", O_RDONLY) = -1 ENOENT (No such file or directory) open("/proc/net/ip_conntrack", O_RDONLY) = -1 ENOENT (No such file or directory) fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), …}) = 0 write(1, "Could not read info about connec"…, 111Could not read info about connections from the kernel, make […]

IPTable规则来限制eth1访问端口80和443

我有一个服务(Elasticsearch后台代理)在eth1的端口80和443上监听客户stream量。 托pipe我的服务的服务器还在eth0和localhost上托pipe其他pipe理员/特权访问内容 我试图设置iptable规则locking在与客户端在同一networking上的服务器上的eth1(通过eth1阻塞像ssh /访问端口9904上运行的内部服务等)我也想确保规则不要禁止访问eth1:80和eth1:443。 我已经提出了以下的规则,但想要与iptable的大师审查这个规则的可能的问题。 -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -i eth1 -p tcp -m tcp –dport 80 -j ACCEPT -A INPUT -i eth1 -p tcp -m tcp –dport 443 -j ACCEPT -A INPUT -i eth1 -j DROP 做上面的规则就足够了 上述情况与Googlesearch时发现的规则有何不同 -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT […]