Articles of iptables

如何在具有双ISP链路的Linux路由器上设置默认路由?

所以,这是情况。 我有双ISP链接当前活跃和工作路由来自我的networking的stream量,一个非常类似的iptables设置到接受的答案在负载平衡和NAT在Linux上的多个ISP连接 我在/etc/iproute2/rt_tables中有两行,如下所示: … 10 COMCAST 20 CENTURYLINK … 我使用正确的默认网关在每个表中设置路由,并设置规则如下: ip rule add fwmark 1 table COMCAST prio 33000 ip rule add fwmark 2 table CENTURYLINK prio 33000 然后我设置了基于iptables的包标记和路由: Chain PREROUTING (policy ACCEPT) target prot opt source destination CONNMARK all — anywhere anywhere CONNMARK restore ACCEPT all — anywhere anywhere mark match ! 0x0 MARK […]

docker工人 – 这个网站无法到达

我安装了一个tomcat映像并运行一个容器: [root@MY_IP ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e624bb55878f tomcat:7 "catalina.sh run" 43 minutes ago Up 43 minutes 0.0.0.0:32768->8080/tcp pensive_leakey 日志告诉我,tomcat服务器正在运行,但是当我通过浏览器检查时,它告诉我: This site can't be reached : MY_IP:32768 MY_IP refused to connect. ERR_CONNECTION_REFUSED 所以MY_IP:32768不起作用。 我认为这是一个防火墙的问题,所以我检查了我的iptables,并添加了ligne: [root@MY_IP ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT […]

iptables / KVM转发端口

我有一个服务器与一个外部IP地址(例如1.2.3.4 )。 在该服务器上,我使用libvirt来运行虚拟机。 现在我想从外部通过ssh( port 1234 )访问我的主机上的虚拟服务器。 在我的主机系统上,我得到了一个连接到我的外部IP( 1.2.3.4 )的networking接口eth0 。 我的虚拟机通过一个名为virbr0的NAT接口连接到主机,IP地址为192.168.122.235 。 由于我需要转发一个端口,我做了以下与iptable iptables -t nat -A PREROUTING -p tcp -i eth0 –dport 1234 -j DNAT –to-destination 192.168.122.235:1234 iptables -A FORWARD -p tcp -d 192.168.122.235 –dport 1234 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT 对于基本的networking,我也得到了主机上运行的UFW允许port 1234 : Status: active Logging: on (low) Default: deny (incoming), […]

Postfix不接受外部连接

我已经build立了一个postfix服务器,当作为localhost访问时,工作得很好。 但是我无法从外面提供。 相关的configuration如下: /etc/postfix/main.cf包含(和后缀重新加载): myhostname = <myserver.with.fully.qualified.domain.name> # not localhost inet_interfaces = all inet_protocols = ipv4 smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination alias_maps = hash:/etc/aliases virtual_alias_maps = hash:/etc/postfix/virtual alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = <myserver.with.fully.qualified.domain.name> localhost.localdomain localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 inet_interfaces = all inet_protocols = ipv4 〜$ sudo iptables -L […]

iptables REDIRECT,只允许dport

快速iptables的问题,我希望。 我们在iptables中运行这个: -A PREROUTING -i eth0 -p udp -m udp –dport 57875 -j REDIRECT –to-ports 5060 然后我们也有: -A INPUT -p udp -m udp –dport 57875 -j ACCEPT 而我们想要的只是允许57875redirect访问端口5060,而不是直接访问5060,但是上面的两行并没有完成。 我们怎样才能做到这一点? [root @ dev1〜]#iptables -L -n Chain INPUT (policy DROP) target prot opt source destination fail2ban-FTP tcp — 0.0.0.0/0 0.0.0.0/0 multiport dports 21 fail2ban-apache-auth tcp — 0.0.0.0/0 […]

IPTables DNAT豁免

TL; DR – 我正在寻找通过代理服务器发送所有外部stream量的方式,但不通过代理服务器发送所有内部stream量。 我怎样才能做到这一点? 我的最终目标是将来自phantomjs节点的所有外部stream量转发到互联网上的一组代理服务器,并将所有去往我的服务器(10.X.1.X)的stream量保留在外部代理服务器上。 这是我的理解,我需要使用透明代理。 我试图用HAProxy和IPFire没有成功。 我的下一个尝试是使用IPTables。 我在虚拟机上使用CentOS 6.8上的IPTables v1.4.7。 IP地址是10.2.1.234。 我已经成功地build立了IPTables,用以下IPTables规则将所有stream量循环到互联网上的5台代理服务器: Table: nat Chain PREROUTING (policy ACCEPT) num target prot opt source destination 1 DNAT tcp — 0.0.0.0/0 0.0.0.0/0 statistic mode nth every 5 tcp dpt:80 to:104.36.80.240:80 2 DNAT tcp — 0.0.0.0/0 0.0.0.0/0 statistic mode nth every 4 tcp dpt:80 to:104.36.81.104:80 3 […]

如何从hostapd没有互联网访问redirect的URL?

我用iptables规则configuration我的服务器为了转发所有stream量到一个特定的域。 这些都是NAT规则,只要有Internet连接,redirect就可以正常工作。 但是,当互联网closures,当然转发不再工作。 有没有办法将所有的urlredirect到没有互联网访问的特定域名? 从我所观察到的情况来看,如果我插上网线然后拔掉它,redirect仍然可以工作大约10分钟,所以必须有一些守护进程仍在执行转发。 有人说,我的NAT不redirect,因为DNS不再工作。 但是我不知道该做什么,可能是最好的工具。 我已经尝试socat为了redirect套接字,但没有运气。 那么你有什么策略可以实现呢。 我知道这是可能的,因为当我拔掉以太网电缆,我不能访问互联网了,但URL仍然至less转发了10分钟。 所以如果有一个简单的黑客办法,你会受到欢迎。 我的意图是:有人连接到hostapd(没有互联网连接),input任何URL,然后redirect到我的服务器。

WhatsApp呼吁阻止

我正在pipe理一个小型networking,我被要求阻止WhatsApp调用而不会阻塞其消息function。 当他们提供他们的公共IP地址时,我认为可以直接添加一些iptables规则,然后我意识到他们的列表没有指定任何端口,我也不知道哪些是调用。 请注意,我必须保留消息function。 任何想法如何阻止呼叫? 另外, 这里有人提到我应该使用QoS而不是阻塞。 他什么意思? Whatsapp的stream量是一个非常限制的令牌桶吗?

iptables不负载平衡

我已经咨询了多个教程来实现两个互联网连接的负载平衡。 但是,所有stream量继续通过具有最低度量标准的默认路由进行路由,我无法弄清楚原因 iptables -t nat -F iptables -t mangle -F iptables -F iptables -X ip rule delete from all fwmark 0x1 ip rule delete from all fwmark 0x2 ip rule flush ip rule add lookup main priority 32766 iptables -A PREROUTING -t mangle -j CONNMARK –restore-mark iptables -A PREROUTING -t mangle -m mark –mark 0x0 […]

通过OpenVPN使用iptables的多个服务器的NAT

我成功地为我的家庭需要创build了一个OpenVPNnetworking(在VPS中托pipe的服务器 )10.8.0.0/255.255.0.0,支持OpenVPN客户端的客户端可以通过服务器连接并成功连接它们。 也有一些机器(如NAS)不支持OpenVPN,但我想通过VPNnetworking与他们连接。 我的解决scheme是有一个小型机器(如Raspberry Pi [ IP地址:192.168.1.109 ])作为一个OpenVPN客户端,并正确转发数据包到目标机器,但我不喜欢这里提出的解决scheme,因为: 我不想在不同的本地networking(和我的家)之间产生子网冲突; 我家有一些机器不想通过VPN访问。 所以我在每台机器上创build了一个客户端证书来连接到VPN(我的情况是2),然后尝试通过iptables做一个NAT来使用VPN IP地址访问这些机器。 我设法成功连接到VPN。 这是Raspberry Pi的ifconfig的输出: eth0 Link encap:Ethernet HWaddr b8:27:eb:40:44:76 inet addr:192.168.1.109 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::ed10:b13d:8e57:7a64/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:208623 errors:0 dropped:10506 overruns:0 frame:0 TX packets:183838 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:181180734 (172.7 MiB) TX bytes:35462529 (33.8 […]