Articles of iptables

iptables 1:1 NAT与单个服务的规则

我在CentOS 6.7上有一个1:1的NAT设置。 但是我还没有为各种服务设置访问规则。 如何启用对当前位于192.168.0.149的主机上的TCP / 3389的访问,受到源地址1.2.3.4的限制? 这里是我的工作/ etc / sysconfig / iptables: *nat :PREROUTING ACCEPT [12:1200] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [1:124] -A PREROUTING -d 1.1.1.149/32 -i eth0 -j DNAT –to-destination 192.168.0.149 -A POSTROUTING -o eth0 -j MASQUERADE -A POSTROUTING -s 192.168.0.149/32 -o eth0 -j SNAT –to-source 1.1.1.149 COMMIT *filter :INPUT DROP [0:0] :FORWARD DROP […]

iptables-restore重新启动后首次运行时挂起

在重新启动后第一次运行时,我以root身份运行iptables-restore < rules 。 它挂起,拒绝没有ctrl-c返回到我的控制台。 但是,通过不同的控制台查看iptables -L显示规则已应用! 所以它似乎至less部分工作。 但是,在if-pre-up.d中运行该命令不会产生成功。 运行Ubuntu Server 14.04 编辑:对于那些可能在将来阅读这个,iptables恢复本身并没有挂。 只是没有按下任何按键而打印出提示。

我怎样才能在一个服务器IP上打开一个端口?

我为游戏服务器托pipe设置了一个专用服务器,它还将托pipe其他一些服务器应用程序(如Web服务器)。 专用服务器总共有四个IP地址,假设它使用以下内容: 192.0.2.0 ; 192.0.2.1 ; 192.0.2.2 ; 192.0.2.3 为了安全起见,我希望每个IP专用于某个服务/一组服务(并使出站端口完全打开),例如: 192.0.2.0 (游戏服务器); 192.0.2.1 (Teamspeak服务器); 192.0.2.2 (Web服务器); 192.0.2.3 (系统[SSH等]) 事件的顺序应该是所有端口都被阻塞 ,然后某些端口被解除阻塞。 我看了这里 ,我有一个粗略的命令列表变成一个bash脚本并设置为在启动时执行: iptables -A OUTPUT -o -j DROP iptables -I OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT iptables -I INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT iptables -I OUTPUT -p tcp -s 192.0.2.3 […]

我怎样才能使用iptables将通过网桥进入的数据包返回到源代码?

我有一个host1有一个WAN接口eth0 ( 1.2.3.4 )和一个LAN接口eth1 ( 10.41.82.1 )。 在局域网内是一个host2 ,IP地址为10.41.82.2 。 到1.2.3.4:22入站连接使用host1上的以下iptables规则转发给host2 : root@host1:~# iptables -t nat -A OUTPUT -d 1.2.3.4 -p tcp –dport 22 -j DNAT –to 10.41.82.2:22 root@host1:~# iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp –dport 22 -j DNAT –to 10.41.82.2:22 这工作正常,除了当host2试图访问1.2.3.4:22 : root@host2:~# telnet 1.2.3.4 22 Trying 1.2.3.4… root@host2:~# ping 1.2.3.4 […]

阻止DNS放大攻击的iptables

上次我从NFOservers.com的DDoS通知器得到关于DNS放大攻击的警告 2015-12-30 23:28:52.609178 IP (tos 0x0, ttl 54, id 42635, offset 0, flags [+], proto UDP (17), length 1500) my.dns.ip.addr.53 > 63.251.20.x.18150: 41159| 20/0/1 cpsc.gov. MX hormel.cpsc.gov. 5, cpsc.gov.[|domain] 2015-12-30 23:28:52.609632 IP (tos 0x0, ttl 54, id 42636, offset 0, flags [+], proto UDP (17), length 1500) my.dns.ip.addr.53 > 63.251.20.x.18150: 41159| 20/0/1 cpsc.gov. MX stagg.cpsc.gov. […]

网桥中的数据包无需redirect到用户空间

我在PC-A(Linux Ubunutu 14.04)上build立了一个桥接接口(br0) 另外,我在PC-A的用户空间的端口80上创build了一个TCP侦听器的应用程序 正如我从Netfilter和bridge-utils的文档中所理解的那样,网桥假设通过内核路由数据包,而不会将数据包泡进用户空间,但是当我将有线(p2p)PC-B连接到网桥pc PC-A)并冲浪到一个HTTPnetworking,我可以看到数据包在监听器中被接收,这意味着数据包进入了用户空间。 我不得不说,在任何链中都没有ebtables规则,告诉数据包redirect到用户空间。 这里最奇怪的是我在另一个位置有相同的configuration,并且数据包不能到达用户空间,除非我添加一个布鲁特规则(这是我猜测的预期行为) 任何改变谁知道什么会导致奇怪的行为?

IPTables转发到dynamicIP

我在servera.example.com上运行一个服务器,在serverb.example.com上运行一个服务器。 我希望将所有端口80stream量redirect到servera.example.com到serverb.example.com,并保留所有其他端口。 难点是serverb.example.com有一个dynamicIP,所以IP不能直接放入iptables规则。 有没有办法做到这一点?

CentOS服务器阻止自己的传出stream量

我有一台服务器(CentOS 6.7)正在运行,这让我感到头疼。 几个月前,服务器上运行的网站不可用。 经过一番挖掘,似乎iptables阻止了服务器自己的传出stream量。 这发生了由(我认为)fail2ban自动添加的规则。 今天,我遇到了类似的问题。 现在服务器阻止了两个特定IP的传出通信,这对于运行在服务器上的应用程序来说是非常重要的。 我已经删除了规则,所以现在所有的工作都重新开始,但是如何防止这种情况再次发生呢? 如何防止fail2ban(也可能是朋友)添加阻止传出stream量的规则?

为什么fail2ban不禁止? (ubuntu,ssh)

我安装了一台新的Ubuntu机器。 然后我改变了不再是22而是22111的ssh端口: 然后我安装了fail2ban: apt-get install fail2ban -y cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local service fail2ban restart iptables -L 然后我尝试从IP 192.168.1.22 SSHlogin。 经过一些错误的login,fail2ban添加后续行到iptables。 -A fail2ban-ssh -s 192.168.1.22/32 -j REJECT –reject-with icmp-port-unreachable 之后,我尝试再次login正确的凭据,我可以login没有问题,从IP 192.168.1.22 iptables规则仍然存在。 我需要额外的configuration吗?

添加不包括SSH数据包的延迟和随机丢包

我想添加一些随机延迟/丢弃除了SSH数据包的所有数据包。 我可以这样做所有的数据包: tc qdisc change dev $NIC root netem delay 100ms 10ms 25% tc qdisc change dev $NIC root netem loss 10% 25% 而且我可以用这种方式使用iptables标记SSH数据包: iptables -N TOP iptables -I OUTPUT -j TOP iptables -A TOP -p tcp –dport 22 -j RETURN iptables -A TOP -p tcp –sport 22 -j RETURN iptables -A TOP -j MARK […]