Articles of iptables

firehol简单的configuration在Debian 7上不起作用

我试图在全新的Debian7服务器下build立一个非常简单的firehol安装程序。 我只在这之前安装了ssh和sudo 安装了火炮 sudo apt-get install firehol 将/etc/firehol/firehol.conf中的configuration更改为: #!/sbin/firehol version 5 interface eth0 y1 policy drop server ICMP accept server ssh accept client all accept 而我进入后 firehol try ssh会话被冻结了30秒(幸运的是我要求只尝试),并且有这样的输出: 重要警告:—————— FireHOL无法find您当前的内核configuration。 请使用/ proc / config编译你的内核,或者确保在/usr/src/linux/.config中有一个有效的内核configuration 正因为如此,FireHOL只会尝试加载所有使用的服务的内核模块,而不能检测到故障。 FireHOL:将旧的防火墙保存到临时文件中:OK FireHOL:处理文件/etc/firehol/firehol.conf:确定FireHOL:激活新的防火墙(53规则): ————————————————–警告:这可能会或可能不会影响您的防火墙的操作。 什么:运行时命令执行失败(返回错误1)。 SOURCE:/etc/firehol/firehol.conf的FIN行:/ sbin / modprobe ip_conntrack_irc -q输出: ————————————————–警告:这可能会或可能不会影响您的防火墙的操作。 什么:运行时命令执行失败(返回错误1)。 SOURCE:/etc/firehol/firehol.conf的FIN行:/ sbin / modprobe ip_conntrack_ftp -q输出: 我在另一个非常相似的服务器上安装了一个firehol,从来没有问题

如何仅通过OpenVPN为服务器路由stream量

我有一些服务在我的服务器上运行,我想限制只有通过OpenVPN连接的服务。 我设法让路由工作到我添加到机器上的第二个IP,但是这并不理想。 *.*.*.1是主要的公共IP。 它绑定到本地IP 172.31.20.102 。 *.*.*.2是创build用于testing的同一台计算机上的辅助IP。 它被绑定到本地IP 172.31.20.103 。 这在Amazon EC2接口中完成,而不是在服务器上完成。 注意 :* s只是在此屏蔽IP地址。 真正的configuration有实际的公共IP。 以下是OpenVPN服务器configuration的相关位: dev tun server 172.16.128.32 255.255.255.240 #push "route *.*.*.1 255.255.255.255 net_gateway" push "route *.*.*.2 255.255.255.255" 我已经尝试了和没有push "route *.*.*.1 255.255.255.255 net_gateway"行,这就是为什么我在这个样本中评论。 请注意,路由对当前configuration中的*.*.*.2起作用。 VPN上的服务器IP是172.16.128.33 。 这是来自sysctl.conf的相关行: net.ipv4.ip_forward = 1 这里是iptables-save的相关位: *nat -A PREROUTING -p tcp -m state –state NEW -m tcp […]

在NAT后面的libvirt中更改虚拟机的发件人IP

我有一个服务器与我自己的公共/ 28 IPv4networking。 在这个服务器上,我有一些vServer,用KVM / libvirt完成。 这些vServer与一个虚拟networking连接,NAT到互联网。 每个vServer都有一个私有地址(192.168.xy / 24),并不是每个vServer都应该获得一个公有IP地址。 主机将公共IP路由到其特定的vServer,这对于传入的连接非常有用。 我的问题:从vServer的传出连接,他们从主机获取发件人IP,而不是他们的公共。 有什么办法可以在libvirt中为vServer设置一个公共的发送者IP? 我已经search了ServerFault,但没有find任何东西。 但我不得不承认,我可能不知道这个最好的search条件。

IPTables自定义日志失败

我目前正在试图从kern.log中将一些IPTableslogging分成一个名为iptables.log的文件。 基本上,我有几个不同的适配器,我logging每个端口80的请求。 这些规则正在工作,输出到kern.log罚款。 这是一个例子: -A INPUT -d 192.168.100.10 -p tcp -m tcp –dport 80 -j LOG –log-prefix "[10010] REQUEST Port 80: " –log-level 7 我做了以下尝试分离出我想要的: 在/ var / log中创build了一个具有644权限的iptables.log文件 在/etc/rsyslog.d/创build一个iptables.conf文件,其内容如下:msg,contains,"[10010] REQUEST Port 80: " -/var/log/iptables.log 编辑/etc/rsyslog.conf以包含以下行: kern.debug /var/log/iptables.log 重新启动rsyslog: service rsyslog restart 尽pipe如此,我的“[10010]”东西仍然被写入到kern.log文件而不是iptables.log中。 任何帮助这个问题将不胜感激。

iptables:只匹配build立的TCP连接的第一个数据包

在我的Apache日志文件中,我发现了很多包含"GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400或类似垃圾的条目。 他们来自非RFC2616连接(HTTP / 1.1没有主机名)。 我不希望我的日志文件垃圾邮件与此消息。 所以我想用iptables拒绝这些连接。 因此,我想在数据包有效负载中searchstring“HTTP / 1.1”,然后search两个后续的CR / LF(CR / LF / CR / LF)(总共给出了hex串485454502f312e310d0a0d0a )。 但是,当我知道它是在第一个数据包时,它在所有的TPC数据包中search这个string都是浪费CPU周期的愚蠢。 它甚至会是错误的,因为后面跟着两个CR / LF的“HTTP / 1.1”可能是http请求有效载荷内合法的传输部分。 这里http://spamcleaner.org/en/misc/w00tw00t.html是这个问题的一个解决scheme,但我不明白标识build立的tcp连接的第一个数据包的部分。 我不明白的是,为什么在INPUT-Chain中只能看到初始TCP-Handshake(SYN,ACK + SYN,ACK)的所有3个数据包,或者只能从INPUT到达的链中。 据我了解iptables及其链,第二个数据包(ACK + SYN)永远不会经过INPUT。 我认为它传递OUTPUT是因为它发送它的我(即服务器)。 这是spamcleaner.org的脚本,我在脚本的第一部分只改了一些注释,但是我保留了所有的命令: #!/bin/bash # allow loopback iptables -A INPUT -i lo -j ACCEPT # DROP any IP that is in the […]

为什么在接口configuration中路由的两个后续命令中的第一个不是自动处理的

我们设法将我们的服务器连接到两个不同的networking,一切正常。 我们使用路由规则来确保服务器响应正确的networking。 我按照此链接下的说明: http : //www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System#Configuring_the_New_Routing_Table 现在我遇到以下问题:II重启服务器,只有一个路由configuration(rt3)build立。 只有第二套后续命令似乎自动工作。 我可以很容易地解决这个问题,然后手动执行第一套后续命令(rt2),一切都将按预期工作。 当然,后续命令应该自动执行。 这是我们的接口文件: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 allow-hotplug eth0 iface eth0 […]

如何监控每个iptables伪装设备的带宽

题: 我可以使用哪种工具实时监视和分解哪些带宽由iptables传送到哪台计算机? 语境: 我有一个Linux的盒子,通过iptables和3个以太网(2个局域网,1个广域网)来伪装大约15台设备。 用户有时会消耗所有的ADSL带宽。 我使用bwm-ng来监控stream量,并看到如下结果: $ bwm-ng bwm-ng v0.6 (probing every 0.500s), press 'h' for help input: /proc/net/dev type: rate / iface Rx Tx Total ============================================================================== tun0: 0.00 KB/s 0.00 KB/s 0.00 KB/s eth0: 31.35 KB/s 649.82 KB/s 681.18 KB/s eth1: 649.40 KB/s 33.84 KB/s 683.24 KB/s eth2: 0.00 KB/s 0.00 KB/s 0.00 KB/s […]

缺less用于手机的VPN的Strongswan路由的iptables规则

在互联网上有一个公共IP的Centos 6.6 VPS。 我已经安装了StrongSwan 5.1.3,允许我的BlackBerry 10手机从热点连接,并使用VPS的连接。 VPS的IP显示,当我去www.whatismyip.com,所以我认为这部分运作良好。 我现在想做一些开发/testing,当手机连接到VPS时,我希望VPS能够使用由Strongswan分配的IP访问手机。 (即ping 192.168.179.101,https 192.168.179.101)但是,我不认为Centos知道如何获得stream量到特定的客户端。 需要对StrongSwan和/或iptables进行哪些更改才能实现? 这是我的ipsec.conf: config setup strictcrlpolicy=no conn %default ikelifetime=24h keylife=24h keyexchange=ikev2 dpdaction=clear dpdtimeout=3600s dpddelay=3600s compress=yes conn rem rekey=no leftsubnet=0.0.0.0/0 leftauth=psk leftid=162.244.xxx.xxx right=%any rightsourceip=192.168.179.100/29 rightauth=eap-mschapv2 rightsendcert=never eap_identity=%any auto=add iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-SSH tcp — anywhere anywhere tcp dpt:ssh […]

stream量整形出站客户端使用tc / iptables源IP

我的问题是我试图限制服务器上的用户带宽,想知道这样做的最好方法。 在深入研究tc / iptables之前,我想知道是否可以得到任何build议,如果有人可以给我一个示例configuration,可能是我可以玩的东西,这将不胜感激。 从我所了解的可以用tc制定规则,然后使用mark语句在iptables中应用规则。 有些人说使用破解或输出,但不能100%确定哪一个是最好的,哪怕是最重要的。 我相信与tc我将使用htb(令牌桶来限制带宽),但人们说有性能权衡,我正在寻找最低的延迟方法。 这些用户不在内部networking上,而是连接到服务器。 我有两种types的用户,所以只需要有两个规则来限制它们。 到目前为止,我所看到的是tc / iptables组合是我想要的,但是我可以为替代scheme提供build议。 我认为iptables的命令将如下所示 带宽限制规则1 iptables -A PREROUTING -s xxx.xxx.xxx.xxx -t mangle -j MARK –set-mark 0x1 带宽限制规则2 iptables -A PREROUTING -s xxx.xxx.xxx.xxx -t mangle -j MARK –set-mark 0x2 我想要发生的事情 用户进入eth0(他们的IP将是已知的,而不是随机的IP) 从服务器请求信息 服务器应用规则将eth0上的信息发回给用户

两台openvpn服务器在同一台机器上,路由两个子网间的stream量

我在同一台机器上运行了两个openvpn服务器 (一个在tcp上,一个在udp上) – 一个OPENVZ vps 。 第一个networkingA使用10.10.0.0/24,它被devise成一个内部网。 第二个networkingB使用10.11.0.0/24,它的devise使得客户端可以访问互联网和Anetworking。 两个networking都configuration了客户端到客户端的设置,并将子网的路由推送给客户端。 我遇到的问题: 我想从networkingB的客户端访问networkingA的机器 。 此时来自B的客户端可以ping通10.10.0.1,即A网关,但不能ping 10.10.0.38(例如)。 先谢谢你!