Articles of iptables

将一个ssh连接从一个端口转发到另一个端口

我有一个方框B (在1.2.3.4说),我只能从另一个方框ssh到。 但是192.168.0.1上的某个开发工具只允许我指定一个ssh服务器的主机和端口,而不是比这更复杂,所以我打算在A上有一个端口来自动将sshstream量转发给B 我试过以下,但总是给我Connection timed out 。 我应该怎么做? sudo iptables -t nat -A PREROUTING -p tcp –dport 2222 -j DNAT –to-destination 1.2.3.4:22 sudo iptables -t nat -A POSTROUTING -p tcp -d 1.2.3.4 –dport 22 -j SNAT –to-source 192.168.0.1

iptables:DNAT规则是否立即将UDP数据包从一个目标IPredirect到另一个目标IP?

有一个UDP客户端(192.168.206.45)和一个UDP服务器(192.168.212.21)连接 我想要使​​用DNAT规则将UDP数据包从一个服务器(192.168.212.21)redirect到另一个服务器(192.168.215.46)“立即”,我命令如: iptables -t nat -A PREROUTING -d 192.168.212.21 -j DNAT – 到目的地192.168.215.46 题 : 很less会立即redirect数据包。 DNAT规则是否适时工作? 因为DNAT规则通常只在UDP连接重新启动后才起作用。 我该如何解决这个问题,以及时redirectUDP数据包? 感谢您的阅读。

Ubuntu 14.04 TCPbuild立了哈希表项

一点背景 我运行在高通信量的两个服务器与Ubuntu的12.04(Linux的3.2.0-69-通用)和一个与Ubuntu的14.04(Linux 3.13.0-52-通用)。 我现在试图保证两个。 他们都有非常相似的硬件资源(相同数量的CPUS,但是12.04在14.04获得16GB时只有8GB RAM)。 我想启用ufw防火墙,但是我遇到了nf_conntrack表越来越大的问题。 数据包基本上正在被丢弃。 我find了解决scheme,通过降低超时,增加表大小以及桶的数量。 那是: net.netfilter.nf_conntrack_tcp_timeout_established = 600 net.netfilter.nf_conntrack_max = 196608 net.netfilter.nf_conntrack_buckets = 24576 这些值正确更新,并保持重新启动。 (看到这个博客 )我也看到conntrack_count被提高远远高于默认值,所以我相信这是在两个服务器上工作。 值保持在极限之下,所以我相信它很好。 问题 12.04服务器在高负载下工作正常,但14.04一直丢包,创build客户端超时。 现在在14.04启动,我可以在kern.log中看到这一行: TCP established hash table entries: 131072 (order: 8, 1048576 bytes) 而在12.04,这是: TCP established hash table entries: 524288 (order: 11, 8388608 bytes) 我怀疑这可能是为什么我的服务器丢包,因为这个表可能太小,关于14.04的stream量。 所以我试图寻找一种方法来设置这个大小,并发现参数thash_entries 在这里看到的解释)。 但是,我不能用sysctl来设置它。 所以这是我的问题: 这个tcp连接表真的是我麻烦的来源吗? 或者我应该看看别的地方? 如果是,那我该如何设置它并使其在重新启动后能够存活? […]

Fail2Ban和BFD(Brute Force Detection)之间有什么区别?

我使用了Fail2Ban和BFD,通常在运行IPTables的服务器上使用Fail2Ban,在服务器运行APF时使用BFD。 这两项服务有什么重大的区别? 这两个程序和兼容性问题之间的优缺点是什么?

基于IP的白名单在Ubuntu服务器上的一个端口

目前我正在尝试创build一个基于一个特殊端口的白名单IP。 后面的应用程序只是一个简单的TeamSpeak3服务器。 IP白名单通过HTTP脚本获取Visitor-IP。 所以知识产权是在白名单(这是工作到目前为止很好)。 但是,我怎样才能允许这些IP为港口“9987”,并阻止其他一切? 我已经尝试过使用iptables ACCEPT作为白名单内的特殊IP,但是这样做效果不佳,因为我可以join与非白名单IP的Teamspeak? 你能抱怨其他灵魂吗? 我感谢任何有用的build议! 编辑:当前的脚本 # Create chain iptables -N teamspeakCommunication # Add ip iptables -A teamspeakCommunication –src 127.0.0.1 -j ACCEPT # Deny everything else iptables -A teamspeakCommunication -j DROP # Use this chain for port iptables -I INPUT -m udp -p udp –dport 9987 -j teamspeakCommunication iptables -I INPUT […]

在crontab里面用sudo执行php

我写了一个PHP脚本,执行需要sudo权限,因为它执行一些其他系统相关的东西。 所以我已经添加到crontab -e但是我看不到,我的脚本运行正常。 命令: */5 * * * * /usr/bin/php /srv/www/php/script.php && date > /srv/www/php/mylog.log 唯一的输出是date。 没有来自我的脚本的回应。 它是可执行文件(chmod a + x),如果我在terminal中使用和root相同的命令,一切都可以。 所以这取决于crontab -e ? 另外我确定,我的cronjob正在运行(/ var / log / syslog): Oct 23 16:40:01 $MYMACHINE CRON[13797]: (root) CMD (/usr/bin/php /srv/www/php/script.php && date > /srv/www/php/mylog.log) 而这个每5分钟。 另外我的“mylog.log”总是得到最新的时间戳,所以我猜,里面的脚本可能有问题。 编辑:我已经创build了另一个testing脚本来检查,如果脚本得到执行或不。 但脚本被执行了,所以这是脚本内部的问题。 我正在尝试将dynamicIP添加到iptables链中: #!/bin/bash value=`cat whitelist.txt` #echo "$value" for i […]

iptables规则存储在Digital Ocean Ubuntu 14.04上

我有一个基本的标准的Ubuntu 14.04数字海洋液滴。 我使用ufw来设置一些防火墙规则,但忘记打开SSH端口22。 我重新启动我的服务器,不能再login,所以DO支持启动我进入恢复模式,所以我可以解决这个问题。 不幸的是,我不知道iptables或ufwconfiguration文件保存在哪里。 我GOOGLE了很久,尝试了所有这些地点,并没有存在: 在/ etc / iptables的 在/ etc / UFW 在/ etc / SYSCONFIG / lib目录/ UFW 在/ var / lib中/ iptables的 他们可能在哪里?

IPV4 linuxnetworkingconfiguration

我有问题搞清楚我configuration错了什么。 我无法将数据包从velodyne传回带有2个eth接口em1和em2的Fedora服务器。 我有velodyne连接到em1主机与eth电缆主机。 我知道velodyne在2368抽出UDP数据包,我可以在wireshark上看到它们。 我知道velodyne是反应,因为它响应平: ping 192.168.0.27 PING 192.168.0.27 (192.168.0.27) 56(84) bytes of data. 64 bytes from 192.168.0.27: icmp_seq=1 ttl=64 time=1.36 ms 64 bytes from 192.168.0.27: icmp_seq=2 ttl=64 time=0.521 ms 64 bytes from 192.168.0.27: icmp_seq=3 ttl=64 time=0.353 ms 64 bytes from 192.168.0.27: icmp_seq=4 ttl=64 time=0.485 ms 它在255.255.255.255上写出广播UDP数据报。 em1上的主机地址是192.168.0.200。 velodyne是192.168.0.67 ifconfig -a em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 […]

使用iptables跨多个服务器pipe理ips白名单的最佳实践?

我想知道在多个服务器上pipe理一个IP地址白名单的最佳做法是什么? 我们希望允许我们的用户群通过网页界面添加他们希望列入白名单的IP地址,然后将该IP地址添加,删除或修改为所有服务器。 我正在考虑编写一个脚本来通过python或者bash来实现,并且使用无密钥的sshlogin到每个服务器,并且应用这些规则,但是一定有一个更好的方法来实现这个。 有什么build议? 谢谢大家!

在firewallD中创build子区域

在firewalld中,我可以将一个区域分配给一个networking接口。 区域包含一些防火墙规则。 现在我有一个具有不同信任级别的networking接口( 172.16.1.1/32应该在172.16.1.0/24networking中有特殊的访问权限)。 例如pipe理主机的SSH访问。 我发现意识到的唯一方法就是使用丰富的规则。 但是我对这种方法并不满意,因为它基本上是一个iptables规则,没有可能给出一个描述。 有没有办法为pipe理主机创build一个单独的区域或分区? 优点是,configuration更具可读性。 我可以创build一个具有特殊权限的ManagmentZone。 当另一台Admin-PC出现时,我可以简单地将它的地址添加到这个区域。