精华内容
下载资源
问答
  • iptables 打开端口How to open a port, say 3389, in iptables... 如何在iptables中打开一个端口(例如3389),以允许传入流量到该端口? There are several cases for this question: ipv4 or ipv6 or both, ...

    iptables 打开端口

    How to open a port, say 3389, in iptables to allow incoming traffics to it?

    如何在iptables中打开一个端口(例如3389),以允许传入流量到该端口?

    There are several cases for this question: ipv4 or ipv6 or both, TCP or UDP or both and which interface?

    这个问题有几种情况:ipv4或ipv6或两者,TCP或UDP或两者,以及哪个接口?

    For simplicity, I give commands to allow all (ipv4 and ipv6, TCP and UDP from all interfaces) using port 3389 as an example. You may choose which ones to be used. For other ports, replace 3389 with the port you want to open.

    为简单起见,我以端口3389为例给出命令以允许所有命令(所有接口的ipv4和ipv6,TCP和UDP)。 您可以选择要使用的那些。 对于其他端口,将3389替换为要打开的端口。

    # allow TCP ipv4
    iptables -I INPUT -p tcp --dport 3389 -j ACCEPT
    # allow UDP ipv4
    iptables -I INPUT -p udp --dport 3389 -j ACCEPT
    # allow TCP ipv6
    ip6tables -I INPUT -p tcp --dport 3389 -j ACCEPT
    # allow UDP ipv6
    ip6tables -I INPUT -p udp --dport 3389 -j ACCEPT

    Note that the rules are in memory only after these commands and will be lost after Linux reboots. If you would like to make it permanent (take effect after reboot), please check How to make iptables/ip6tables configurations permanent across reboot on CentOS 7 Linux? .

    请注意,只有在执行这些命令后,规则才会在内存中 ,并且在Linux重新引导后将丢失。 如果您想使其永久( 重新启动后生效),请检查如何在CentOS 7 Linux上重新启动时使iptables / ip6tables配置永久?

    翻译自: https://www.systutorials.com/how-to-open-a-port-in-iptables/

    iptables 打开端口

    展开全文
  • How to log connections hitting certain rules in iptables on Linux? Like the one that are dropped because of too ... 如何在Linux上的 iptables中记录达到某些规则的连接? 就像由于过于频繁地创建SSH连接而被...

    How to log connections hitting certain rules in iptables on Linux? Like the one that are dropped because of too frequently creating SSH connections.

    如何在Linux上的 iptables中记录达到某些规则的连接? 就像由于过于频繁地创建SSH连接而被丢弃的那个一样。

    You can create a new chain named LOGNDROP that log the connections and drop them, then pass the connection to be redirected to the LOGNDROP chain.

    您可以创建一个名为LOGNDROP的新链,该链记录连接并删除它们,然后将连接传递给LOGNDROP链。

    $tables -N LOGNDROP
        # Connections to LOGNDROP chain will be logged and dropped
        $tables -A LOGNDROP -j LOG --log-level 6
        $tables -A LOGNDROP -j DROP

    As an example, the rules for How to use iptables to limit rates new SSH incoming connections from each IP on Linux can be changed to:

    例如,关于如何使用iptables限制来自Linux上每个IP的新SSH传入连接的速率的规则可以更改为:

    for tables in iptables ip6tables ; do
        #start with a clean table
        $tables -F
        # allow localhost connections
        $tables -A INPUT -p tcp -s localhost -j ACCEPT
    
        # Allow established inbound connections
        $tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
        # Create LOGNDROP chain
        $tables -N LOGNDROP
        # Connections to LOGNDROP chain will be logged and dropped
        $tables -A LOGNDROP -j LOG --log-level 6
        $tables -A LOGNDROP -j DROP
        # Maximum 6 new connections every 60 seconds
        $tables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 6 --name SSH --rsource -j LOGNDROP
        # Record new connections
        $tables -A INPUT -p tcp --dport 22 -m recent --set --name SSH --rsource -j ACCEPT
        # Reject other connections; use only needed
        $tables -A INPUT -j REJECT
        $tables -A FORWARD -j REJECT
    done
    
    Answered by Eric Z Ma.
    埃里克·马(Eric Z Ma)回答。

    翻译自: https://www.systutorials.com/how-to-log-connections-hitting-certain-rules-in-iptables-on-linux/

    展开全文
  • 不要老是迷信什么“土办法”或“偏方”就一定要比大厂的整体安全方案强,多数时候,网络安全上缩减必要的成本是不明智的,企业为了从安全方面省点小钱而招致巨大损失,血淋淋的例子实在太多了。— 防火墙的选择 —...

    网络安全对于企业的信息安全极为重要,也对Ubuntu server的系统安全至关重要。网络不安全了,即使操作系统武装到牙齿,也难免不中招。

    不要老是迷信什么“土办法”或“偏方”就一定要比大厂的整体安全方案强,多数时候,在网络安全上缩减必要的成本是不明智的,企业为了从安全方面省点小钱而招致巨大损失,血淋淋的例子实在太多了。

    6960632f85fbe114c29cd3cbb8b18a43.png

    — 防火墙的选择 —

    Ubuntu server环境,防火墙有很多选择,从最为易用便捷的UFW防火墙,到较新的动态防火墙Firewalld,再到较为专业的防火墙iptables一应俱全,如何选择一款合适的防火墙呢?没有标准答案,但肯定有最合适的选择。

    其中,iptables这个工具功能全面强大,可以实现很多UFW及Firewalld无法完成的网络功能,推荐有一定基础的用户使用。

    下面将以iptables为例,就防火墙的部署及配置等多个方面提高系统的安全性进行演示。

    — iptables防火墙的结构 —

    iptables是Linux中功能最为强大的防火墙,使用灵活,可以对流入和流出服务器的数据包进行很精细的控制,当然如果只是用来开启或禁止某个网络服务的某个网络端口,它和UFW以及Firewalld都差不多。

    iptables的三大核心要素是表,链和规则。

    一言以蔽之,iptables是表的集合,包含四张表(常用的三张),表则是链的集合,每个表都包含若干个链, 而链则是规则的集合,真正过滤规则是属于链,iptables的内部结果如图所示。

    071c86d9249d06cad1f7b6671ab11951.png

    — iptables的部署 —

    iptables可以说是Linux系统中功能最为强大的防火墙了,虽然Ubuntu server预置的防火墙是UFW,但可以自动动手将iptables安装到Ubuntu server,关键操作如下:

    sudo aptitude updatesudo aptitude purge ufwsudo aptitude purge firewalldsudo aptitude install -y iptables #默认安装,仅在没有安装的系统中执行

    — iptables的使用 —

    成功安装后就可以使用iptables功能强大的命令行工具了,需要注意的是,iptables的命令仅当前会话有效,如果不保存的话,重启后防火墙规则全部丢失。

    此外,每条iptables的命令都可以翻译成一条规则定义并保存到iptables的相关文件,随时调用,即使重启服务器也不怕。先来熟悉iptable的通用命令结构:

    iptables [-t tbl] -COMMAND 链名 匹配条件 相应操作 #[-t tbl]为可选参数,-t用来指定具体操作那张表,不指定的话默认是Filter表

    ◆COMMAND

    命令选项用于指定iptables的执行方式,包括插入规则,删除规则和添加规则,高频命令如下:

    -A:在规则列表的最后增加1条规则 #简写(一个横杠)和全称(两个横杠),敲对了使用那个都可以,推荐使用简写不容易犯错

    -D:从规则列表中删除1条规则

    -F:删除表中所有规则

    -I:在指定的位置插入1条规则

    -L:查看iptables规则列表

    -P:定义默认策略

    -R:替换规则列表中的某条规则

    -X:删除自定义链

    -Z:将表中数据包计数器和流量计数器归零

    ◆匹配条件

    匹配条件用来实现更为精细和具体的条件,如网络接口名称,协议名称,源目的端口号等,高频匹配条件如下:

    -i:网络接口名称 #指定数据包从哪个网络接口进入

    -m:匹配的模块 #指定数据包规则所使用的过滤模块

    -o:网络接口名称 #指定数据包从哪个网络接口输出

    -p:协议名称 #指定数据包匹配的协议,如TCP、UDP和ICMP等

    -s:源地址或子网地址 #指定数据包匹配的源地址

    -state:数据包当前状态 #指定ESTABLISHED,RELATED等

    -sport:源端口号 #指定数据包匹配的源端口号

    -dport:目的端口号 #指定数据包匹配的目的端口号iptables规则的动作

    ◆相应操作

    对于符合过滤规则或条件的数据包,需要进行相应的操作,如下:

    -ACCEPT:接受数据包

    -DNAT:目标地址转换,即改变数据包的目的地址。例如:将的广域网IP(222.101.98.54/24) ==> 局域网的IP(.1/24),且在NAT表的PREROUTING链上进行该动作

    -DROP:丢弃数据包

    -LOG:日志功能,将符合规则的数据包的相关信息记录在日志中,便于分析和排错

    -MASQUERADE:IP伪装,改写数据包来源IP为防火墙的IP及端口,和SNAT不同的是,当进行IP伪装时,不需指定要伪装成哪个IP,IP会从网卡直接读取

    -EDIRECT:与DROP基本一样,区别在于它除了阻塞包之外,还向发送者返回错误信息

    -SNAT:源地址转换,即改变数据包的源地址

    356dc9f3b7b2a547f8dbda66e7c9c801.png

    — iptables命令实例 —

    掌握了那么多参数,学以致用一下,下面就是三个典型的iptables命令:

    sudo iptables -A INPUT -i ens33 -p tcp --sport 22 -j ACCEPT

    sudo iptables -A INPUT -i ens33 -p tcp --sport 80 -j ACCEPT

    sudo iptables -A INPUT -i ens33 -p tcp --sport 443 -j ACCEPT

    上述命令看似复杂,但将其拆开来看的话,其实真的很简单。

    首先,这条命令或规则中的-A表示将此条规则附加到的iptables规则上,由于没有指定链名,故采用默认的链Filter。

    随后的-i参数指定了此规则所用的网络接口 ens33,在编写自己的规则时,由于服务器网口众多,请确保知道通过哪个网口连接到网络。

    -p参数用于指定协议,以上这条规则适用于TCP协议,-m参数有点不同,用于判断必须满足的条件才能使流量不被拒绝,过滤条件是数据包的状态。

    --state参数后接具体状态名,如ESTABLISHED或RELATED等,还有就是--sport参数表示源端口,告诉iptables流量来自哪个端口,后还有-j参数,它用于对符合此条iptables规则的数据包所执行的操作,如ACCEPT、DROP或REJECT等。

    152761b3511be35e387bc4a5e02b217b.png

    — iptables高频规则及命令 —

    对于Ubuntu server而言,实现基本的安全,iptables高频使用的规则及命令如下,由于服务器网卡众多,下面将采用默认的网卡ens33。

    ◆查看当前所有规则

    查看当前所有规则,可以运行如下命令:

    sudo iptables -vnL

    开始使用iptables之前,需要注意的是,使用iptables时,规则添加的顺序至关重要,当然这一条对其他防火墙也或多或少地适用。

    ◆清除当前所有规则

    彻底清除之前添加了一些规则,可以通过如下命令将其清除:

    sudo iptables -Fsudo iptables -Xsudo iptables -Z

    清理当前所有规则的目的是防止当前的规则影响自己规则,并能够按照自己的想法生效,建议先将老规则保存后再执行此命令比较稳妥,具体方法详见下文。

    ◆允许回路Loopback

    环回接口Loopback是Linux系统所使用的内部接口,一定要允许回路Loopback,关键操作如下:

    sudo iptables -A INPUT -i lo -j ACCEPT

    ◆禁止其他主机Ping Ubuntu服务器

    通常服务器不允许其他主机ping自己,实现方法如下:

    sudo iptables -A INPUT -i ens33 -p icmp -j DROP

    如果要禁止来自某一IP的ping,可以使用如下命令:

    sudo iptables -A INPUT -i ens33 -p icmp -s 192.168.1.4 -j DROP #禁止192.168.1.4发出的ping

    ◆封杀指定IP

    可使用iptables封杀指定IP,关键操作如下:

    sudo iptables -I INPUT -i ens33 -s 192.168.1.4 -j DROP #DROP掉来自192.168.1.4的所有数据包

    在上述规则存在的添加下,要解封IP 192.168.1.23,只需将参数-I换成-D即可。此外如果要想清空封掉的IP地址,可以运行如下命令:

    sudo iptables -F

    ◆封杀指定网段

    要添加IP段到封停列表中,使用下面的命令:

    sudo iptables -I INPUT -i ens33 -s 192.168.1.0/24 -j DROP #DROP掉所有来自192.168.1.0网段的数据包

    ◆封杀指定端口

    可使用iptables封杀指定IP端口,关键操作如下:

    sudo iptables -I INPUT -i ens33 -p tcp --dport 1234 -j DROP #封杀123端口

    如果要放行某些IP的1234端口,可以进行如下操作:

    sudo iptables -I INPUT -i ens33 -s 192.168.1.0/24 -p tcp --dport 1234 -j ACCEPT #放行源地址来自192.168.1.0网段1234端口的所有数据包

    ◆允许SSH服务

    服务器大多需要SSH服务,iptables需要开启SSH端口,具体操作如下:

    sudo iptables -A INPUT -i ens33 -p tcp --dport 22 -j ACCEPT

    ◆允许Web服务

    服务器大多需要访问Web服务的,可用如下规则打开Web服务访问:

    sudo iptables -A INPUT -i ens33 -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -i ens33 -p tcp --dport 443 -j ACCEPT

    ◆允许域名服务

    服务器要启用DNS服务,iptables需要开启相应端口,关键操作如下:

    sudo iptables -A INPUT -i ens33 -p tcp --dport 53 -j ACCEPTsudo iptables -A INPUT -i ens33 -p udp --dport 53 -j ACCEPT #大于512字节的请求将使用TCP的53端口,因为UDP报文的最大长度为512字节,而TCP的报文长度则可以超过512字节

    ◆允许时间服务

    需要允许的计算机连接到NTP服务器以获取时间,具体操作如下:

    sudo iptables -A INPUT -i ens33 -p udp --dport 123 -j ACCEPT

    ◆允许Email服务

    对于电子邮件的发送和接收比较麻烦,这里采用默认和安全两种方式,关键操作如下:

    SMTPsudo iptables -A INPUT -i ens33 -p tcp --dport 25 -j ACCEPTsudo iptables -A INPUT -i ens33 -p tcp --dport 465 -j ACCEPTPOP3sudo iptables -A INPUT -i ens33 -p tcp --dport 110 -j ACCEPTsudo iptables -A INPUT -i ens33 -p tcp --dport 995 -j ACCEPTIMAPsudo iptables -A INPUT -i ens33 -p tcp --dport 143 -j ACCEPTsudo iptables -A INPUT -i ens33 -p tcp --dport 993 -j ACCEPT

    如果是上述之外的服务,如MySQL或Postgre等,请用相应端口替换即可。

    ◆拒绝其它数据包

    需要的端口和协议都开启了,最后就需要iptables绝对拒绝上面规则之外的数据包内容,参考操作如下:

    sudo iptables -A INPUT -j REJECTsudo iptables -A FORWARD -j REJECTsudo iptables -A OUTPUT -j REJECT

    由于企业的需求千变万化,需求又不尽相同,而防火墙的配置参数既多又复杂,故上述所有的防火墙规则仅供学习和参考,待掌握之后再在此基础上定制出最适合自己应用环境的防火墙规则,让防火墙为服务器的安全出一份力。

    — iptables命令保存为规则文件 —

    前面展示了iptables的强大功能及高频操作,所有操作都可以通过命令行来实现,缺点是配置繁琐,且无法保存防火墙规则。

    企业应用实际中,如果总是一条条的键入iptables规则,一方面很容易出错,因为iptable命令大多很长,另一方面,好不容易键入的规则一旦服务器重启将全部丢失。

    可以通过创建iptables规则文件来实现,并且规则文件可以保存,重启服务器后可以直接调用,比通过命令行的方式便捷得多,关键操作如下:

    sudo iptables-save > ~/iptables_save_03062019.txt

    — 导入iptables规则 —

    前面保存了iptables的规则,如何恢复呢?只需运行如下命令即可导入保存号的iptables规则文件:

    sudo iptables-restore < ~/iptables_save_03062019.txt

    最后还需要强调的是,通过手动或规则文件添加的iptables规则都不是永久的。如果重启服务器,这些规则都将被清空,需要重新添加或从文件导入。

    关注微信公众号:安徽思恒信息科技有限公司,了解更多技术内容……

    展开全文
  • 针对ip某个端口范围 iptabels -A INPUT -p tcp -s 192.168.0.1 --dport ...iptables -A OUTPUT -p tcp --sport 1024:65535 -d 192.168.0.1 -j ACCEPT 针对端口的某个网段 iptables -A INPUT -p tcp -m state -...
    针对ip某个端口范围
    iptabels -A INPUT -p tcp -s 192.168.0.1 --dport 1024:65535-j ACCEPT
    iptables -A OUTPUT -p tcp --sport 1024:65535 -d 192.168.0.1 -j ACCEPT

    针对端口的某个网段
    iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 21 -j ACCEPT
    iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --dport 21 -j ACCEPT

    针对某个端口的某个网段
    iptables -A INPUT -p tcp -s 10.10.11.0/24 --dport 1024:65535 -j ACCEPT
    iptables -A INPUT -p udp -s 10.10.11.0/24 --dport 1024:65535 -j ACCEPT

    你所说的内网,就看你在哪个网段了,修改192.168.0.0即可


    针对某个网段
    /etc/sysconfig/iptables
    -A INPUT -p tcp -m state --state NEW -m tcp -s 10.10.11.0/24 -j ACCEPT
    -A INPUT -p udp -m state --state NEW -m udp -s 10.10.11.0/24 -j ACCEPT
    展开全文
  • 系统,往往需要进行iptables规则的编写,但是当系统重新启动后这些规则则没有了,那么如何解决这样的问题呢? 解决这样的问题也即是解决iptables规则的持久化,可能使用iptables-save与iptables-restore两个...
  • 向大家介绍复杂防火墙规则之前,还是先上一些简单的料,让大家对IPTables最为基本的命令有一些简单了解。 首先要说明的是IPTables命令必需以root权限运行,这意味着你需要使用root身份登录或者能够有权限使用su或...
  • 2.iptables 其实只是一个运行用户空间的命令行工具,功能是实现防火墙NAT等功能,但是真正实现这些功能的是运行内核空间的 netfilter 模块 3.iptables 内置了三张表:fiter、 nat mangle filter nat 顾名思义,...
  • 最近做一个V*P*N中间件的配置工作,配置iptables的时候,当用户想删除EIP(即释放当前连接),发现使用iptables的相关命令会提示错误。iptables: Bad rule (does a matching rule exist in that chain?).我就纳闷...
  • 如何iptables中删除特定规则?

    千次阅读 2020-07-09 10:03:18
    I am hosting special HTTP and HTTPS services on the ports 8006 and 8007 respectively. 我分别端口8006和80
  • Iptables 中文指南

    2011-07-23 10:16:39
    1.2. 指南是如何写的 1.3. 文中出现的术语 2. 准备阶段 2.1. 哪里能取得iptables 2.2. 内核配置 2.3. 编译与安装 2.3.1. 编译 2.3.2. Red Hat 7.1上安装 3. 表和链 3.1. 概述 3.2. mangle 表 3.3. nat 表...
  • Kubernetes1.2如何使用iptables

    万次阅读 2016-04-26 11:35:27
    Kuberneteskube-proxy组件负责维护NODE节点上的防火墙规则和路由规则,Kube-proxy有两种实现方式,一种是通过iptables,一种是通过userspace,1.2中将使用iptables作为首选,可以大幅提升性能,下面看看kube-...
  • 最近CentOS 7.6下使用service iptables xxx相关命令,提示如下错误: The service command supports only basic LSB actions .... 可按照如下方法解决: 关闭防火墙 #systemctl stop firewalld 安装或更新...
  • (六)洞悉linux下的Netfilter&iptables如何理解连接跟踪机制?【】 2012-04-13 00:09:54 分类: LINUX Netfilter连接跟踪的详细流程  上一篇我们了解了连接跟踪的基本框架和大概流程,本篇我们着重...
  • Dcoker容器使用的过程,有的时候是需要使用容器使用iptables进行启动的,默认的docker run时都是以普通方式启动的,没有使用iptables的权限,那么怎样才能容器使用iptables呢?要如何开启权限呢? 那么...
  • SYN泛洪攻击(SYN Flood)是指使用不完善的TCP/IP三次握手,恶意发送大量只包含SYN握手序列的数据包的...如果您遭受SYN洪水攻击下的Linux服务器,您可以设置以下:减少SYN-超时时间:iptables-AFORWARD-ptcp–syn-mli...
  • CentOS 5 彻底关闭SELinux用vim打开 /etc/selinux/config SELINUX=enforcing 前面加个#号注释掉...Centos关闭防火墙执行”setup”命令启动文字模式配置实用程序,”选择一种工具”选择”防火墙配置”,然后选择...
  • [root@m176com ~]# vim /etc/sysconfig/iptables 在iptables中加入下面几行 #anti syn,ddos -A FORWARD -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT -A FORWARD -p tcp --tcp-flags
  • IPtables防火墙使用技巧: 最近架设了一台LINUX的小型服务器,因为需要把LINUX的机子作为软路由器来使用...这里就不阐述了我的系统环境,简易配置如下 redhat 7.2 adsl 2m 8139fast 网卡 1、linux如何使用软...
  • Iptables is standard and popular firewall provides by Linux distributions like Ubuntu, CentOS, Fedora, Debian etc. Iptables rules are managed in run time where a lot of rules are added, changed and re...
  • iptables

    2018-10-29 19:53:21
    iptables之网络防火墙 防火墙,作用就是用于实现Linux下访问控制的功能,它分为硬件的或者软件的防火墙或者软件的防火墙两种,无论是那个网络,防火墙工作的地方一定是网络的边缘,而我们的任务就是需要定义...
  • 挂载钩子处理函数都是初始化做的 filtile表则是iptable_filter_init函数中将iptable_filter_hook函数注册到NF_BR_LOCAL_IN NF_BR_FORWARD NF_BR_LOCAL_OUT 链上。 函数调用关系如下 内核Linux 4.14版本 ...
  • 如何iptables实现NAT

    2017-11-12 21:07:00
    本文主要介绍如何使用...需要申明的是,本文绝对不是 NAT-HOWTO的简单重复或是中文版,整个的叙述过程,作者都试图用自己的语言来表达自己的理解,自己的思想。 一、概述 1. 什么是NAT 传统的标准的TCP/I...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 885
精华内容 354
关键字:

在iptables中如何