只允许通过HTTPS通过iptables、-m recent(可能)和-m string(肯定)连接到特定URL

只允许通过HTTPS通过iptables、-m recent(可能)和-m string(肯定)连接到特定URL,https,nginx,wireshark,string-matching,iptables,Https,Nginx,Wireshark,String Matching,Iptables,比方说,我只允许连接subdomain.mydomain.com;我让它部分工作,但一旦允许客户端Hello,它有时会与客户端密钥交换进入一个奇怪的循环。啊,更烦人的是,这是一个自签名证书,页面需要身份验证,HTTPS正在非标准端口上侦听。。。因此,对于许多用户来说,TCP/SSL握手体验将大相径庭 最近的-m路线对吗?是否有一种更优雅的方法可以在看到字符串后允许完整的TCP流 以下是我目前掌握的情况: #iptables -N SSL #iptables -A INPUT -i eth0 -p

比方说,我只允许连接subdomain.mydomain.com;我让它部分工作,但一旦允许客户端Hello,它有时会与客户端密钥交换进入一个奇怪的循环。啊,更烦人的是,这是一个自签名证书,页面需要身份验证,HTTPS正在非标准端口上侦听。。。因此,对于许多用户来说,TCP/SSL握手体验将大相径庭

最近的-m路线对吗?是否有一种更优雅的方法可以在看到字符串后允许完整的TCP流

以下是我目前掌握的情况:

#iptables -N SSL #iptables -A INPUT -i eth0 -p tcp -j SSL #iptables -A SSL -m recent --set -p tcp --syn --dport 400 #iptables -A SSL -m recent --update -p tcp --tcp-flags PSH,SYN,ACK SYN,ACK --sport 400 #iptables -A SSL -m recent --update -p tcp --tcp-flags PSH,SYN,ACK ACK --dport 400 #iptables -A SSL -m recent --remove -p tcp --tcp-flags PSH,ACK PSH,ACK --dport 400 -m string --algo kmp --string "subdomain.mydomain.com" -j ACCEPT #iptables-nsl #iptables-A输入-i eth0-p tcp-j SSL #iptables-A SSL-m recent--set-p tcp--syn--dport 400 #iptables-A SSL-m recent-update-p tcp-tcp标志PSH、SYN、ACK-SYN、ACK-sport 400 #iptables-A SSL-m recent-update-p tcp-tcp标志PSH、SYN、ACK-ACK-dport 400 #iptables-A SSL-m recent--remove-ptcp--tcp标志PSH,ACK PSH,ACK--dport 400-m字符串--algokmp--string“subdomain.mydomain.com”-j ACCEPT 是的,我已经尝试通过nginx的调整来解决这个问题,但我无法让nginx在客户端之前返回444你好,如果你能想出一种方法来实现这一点,我会全神贯注地听着,呃,眼睛。

正如我在上面提到的,我找到了一个解决方案:

iptables -A INPUT -p tcp --tcp-flags FIN,PSH,ACK PSH,ACK --dport 400 -m connbytes --connbytes 0:512 --connbytes-dir original --connbytes-mode bytes -m string --algo bm ! --string "subdomain.mydomain.com" -j REJECT --reject-with tcp-reset iptables -A INPUT -i eth0 -p tcp --dport 400 -j ACCEPT iptables-A INPUT-p tcp-tcp标志FIN,PSH,ACK-PSH,ACK-dport 400-m connbytes-connbytes 0:512-connbytes dir original-connbytes mode bytes-m string-algo bm--字符串“subdomain.mydomain.com”-j REJECT--使用tcp重置拒绝 iptables-A输入-i eth0-ptcp--dport 400-j接受
属于谢谢,我也会试着把它贴在那里。