iptables快速入门

iptables简介

在生产实践过程中,为了保证生产安全,通常需要进行数据加密,例如通过网络层面上将应用隔离成内网和公网应用,内网再分成生产、测试、开发、DMZ等区域,然后进行不同的策略更改,例如将重要应用添加防火墙,从物理层面看,有如下两种:

硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高,例如Radware公司的WAF

软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低,例如微软自带的防火墙。

netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能,在RedHat 6 系列及以下中作为内核层的防火墙,在在RedHat 7系列中采用firewall 进行替代,但同时保留iptables功能。

iptables数据传输原理

在说明iptables 功能作用前,我们先看下正常情况下用户流量访问经过iptables时,有哪些环节,针对每个环节我们再细说。

根据上图,我们能够归纳出常用场景中,网络流量流向:

到本机某进程的走向:PREROUTING –> INPUT->WEB->OUTPUT –> POSTROUTING

由本机转发的走向:PREROUTING –> FORWARD –> POSTROUTING

由本机的某进程发出走向:OUTPUT –> POSTROUTING

这就是我们日常提到的IPTABLES 实际控制的 “链”路,其工作原理就是在这五条链路 设置规则(rules),规则其实就是网络管理员预定义的条件,规则一般的定义为”如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。

那么规则又有哪些呢?这五条链路分别又可以设置什么呢?

iptables把相同规则进行分类,集合成一个大类,也就是我们所说的 “表”,包括我们自定义的规则,也是对这些表进行操作,通常我们认为有如下四张表

1.filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.

2.Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT、INPUT(RedHat系列Linux 7 及以上可支持)
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3.Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(所有链路都可以使用)
4.Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw

iptables快速入门

可以明显看出,并不是所有规则表都可以作用于某一条链路,唯一一个例如就是OUTPUT 链,它作为Web 应用最后的一套防线。

当这些规则表全部在一个链路上时,并不是满足先后设定顺序限制性原则,而是按照如下顺序,进行先后执行:

raw –> mangle –> nat –> filter

上面规则十分重要,这将是下面我们执行设定规则时所依据参考的。

iptables实际应用

看完前两步,大家可能还没感觉到iptables 作用在哪,其实netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间,完成封包过滤、封包重定向和网络地址转换(NAT)等功能,用户通过iptables这个功能代理,将用户数据按照设定网络规则链表送进安全框架,从而起到软件防火墙功能

那么如何操作iptables 呢?

命令格式: iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]


iptables v1.4.21

Usage: iptables -[ACD] chain rule-specification [options]
       iptables -I chain [rulenum] rule-specification [options]
       iptables -R chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LS] [chain [rulenum]] [options]
       iptables -[FZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)

Commands:
Either long or short options are allowed.

  --append  -A chain            Append to chain
  --check   -C chain            Check for the existence of a rule
  --delete  -D chain            Delete matching rule from chain
  --delete  -D chain rulenum
                                Delete rule rulenum (1 = first) from chain
  --insert  -I chain [rulenum]
                                Insert in chain as rulenum (default 1=first)
  --replace -R chain rulenum
                                Replace rule rulenum (1 = first) in chain
  --list    -L [chain [rulenum]]
                                List the rules in a chain or all chains
  --list-rules -S [chain [rulenum]]
                                Print the rules in a chain or all chains
  --flush   -F [chain]          Delete all rules in  chain or all chains
  --zero    -Z [chain [rulenum]]
                                Zero counters in chain or all chains
  --new     -N chain            Create a new user-defined chain
  --delete-chain
            -X [chain]          Delete a user-defined chain
  --policy  -P chain target
                                Change policy on chain to target
  --rename-chain
            -E old-chain new-chain
                                Change chain name, (moving any references)
Options:
    --ipv4      -4              Nothing (line is ignored by ip6tables-restore)
    --ipv6      -6              Error (line is ignored by iptables-restore)
[!] --protocol  -p proto        protocol: by number or name, eg. tcp'
[!] --source    -s address[/mask][...]
                                source specification
[!] --destination -d address[/mask][...]
                                destination specification
[!] --in-interface -i input name[+]
                                network interface name ([+] for wildcard)
 --jump -j target
                                target for rule (may load target extension)
  --goto      -g chain
                              jump to chain with no return
  --match       -m match
                                extended match (may load extension)
  --numeric     -n              numeric output of addresses and ports
[!] --out-interface -o output name[+]
                                network interface name ([+] for wildcard)
  --table       -t table        table to manipulate (default: ')
  --verbose     -v              verbose mode
  --wait        -w [seconds]    maximum wait to acquire xtables lock before give up
  --wait-interval -W [usecs]    wait time to try to acquire xtables lock
                                default is 1 second
  --line-numbers                print line numbers when listing
  --exact       -x              expand numbers (display exact values)
[!] --fragment  -f              match second or further fragments only
  --modprobe=<command>          try to insert modules using this command
  --set-counters PKTS BYTES     set the counter during insert/append
[!] --version   -V              print package version.

上面列举了iptables 所有参数,但实际上我们常用到其实没有这么多,主要就这几个常见:

command &#x9009;&#x9879;
-A  &#x6DFB;&#x52A0;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;
-D  &#x5220;&#x9664;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;
-I  &#x63D2;&#x5165;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;
-F  &#x6E05;&#x7A7A;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;
-L  &#x5217;&#x51FA;&#x6DFB;&#x52A0;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;
-R  &#x66FF;&#x6362;&#x9632;&#x706B;&#x5899;&#x89C4;&#x5219;
-Z  &#x6E05;&#x7A7A;&#x9632;&#x706B;&#x5899;&#x6570;&#x636E;&#x8868;&#x7EDF;&#x8BA1;&#x4FE1;&#x606F;
-P  &#x8BBE;&#x7F6E;&#x94FE;&#x9ED8;&#x8BA4;&#x89C4;&#x5219;

parametes &#x9009;&#x9879;
-p &#x534F;&#x8BAE;&#xFF08;protocol&#xFF09;
&#x6307;&#x5B9A;&#x89C4;&#x5219;&#x7684;&#x534F;&#x8BAE;&#xFF0C;&#x5982;tcp, udp, icmp&#x7B49;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;all&#x6765;&#x6307;&#x5B9A;&#x6240;&#x6709;&#x534F;&#x8BAE;&#x3002;
&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A;-p&#x53C2;&#x6570;&#xFF0C;&#x5219;&#x9ED8;&#x8BA4;&#x662F;all&#x503C;&#x3002;&#x8FD9;&#x5E76;&#x4E0D;&#x660E;&#x667A;&#xFF0C;&#x8BF7;&#x603B;&#x662F;&#x660E;&#x786E;&#x6307;&#x5B9A;&#x534F;&#x8BAE;&#x540D;&#x79F0;&#x3002;
&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x534F;&#x8BAE;&#x540D;(&#x5982;tcp)&#xFF0C;&#x6216;&#x8005;&#x662F;&#x534F;&#x8BAE;&#x503C;&#xFF08;&#x6BD4;&#x5982;6&#x4EE3;&#x8868;tcp&#xFF09;&#x6765;&#x6307;&#x5B9A;&#x534F;&#x8BAE;&#x3002;&#x6620;&#x5C04;&#x5173;&#x7CFB;&#x8BF7;&#x67E5;&#x770B;/etc/protocols
&#x8FD8;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x2013;protocol&#x53C2;&#x6570;&#x4EE3;&#x66FF;-p&#x53C2;&#x6570;

-s &#x6E90;&#x5730;&#x5740;&#xFF08;source&#xFF09;
&#x6307;&#x5B9A;&#x6570;&#x636E;&#x5305;&#x7684;&#x6E90;&#x5730;&#x5740;
&#x53C2;&#x6570;&#x53EF;&#x4EE5;&#x4F7F;IP&#x5730;&#x5740;&#x3001;&#x7F51;&#x7EDC;&#x5730;&#x5740;&#x3001;&#x4E3B;&#x673A;&#x540D;
&#x4F8B;&#x5982;&#xFF1A;-s 192.168.31.101&#x6307;&#x5B9A;IP&#x5730;&#x5740;
&#x4F8B;&#x5982;&#xFF1A;-s 192.168.31.10/24&#x6307;&#x5B9A;&#x7F51;&#x7EDC;&#x5730;&#x5740;
&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A;-s&#x53C2;&#x6570;&#xFF0C;&#x5C31;&#x4EE3;&#x8868;&#x6240;&#x6709;&#x5730;&#x5740;

-d &#x76EE;&#x7684;&#x5730;&#x5740;&#xFF08;destination&#xFF09;
&#x6307;&#x5B9A;&#x76EE;&#x7684;&#x5730;&#x5740;
&#x53C2;&#x6570;&#x548C;-s&#x76F8;&#x540C;
&#x8FD8;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x2013;dst&#x6216;&#x8005;&#x2013;destination

-j &#x6267;&#x884C;&#x76EE;&#x6807;&#xFF08;jump to target&#xFF09;
&#x6307;&#x5B9A;&#x4E86;&#x5F53;&#x4E0E;&#x89C4;&#x5219;(Rule)&#x5339;&#x914D;&#x65F6;&#x5982;&#x4F55;&#x5904;&#x7406;&#x6570;&#x636E;&#x5305;
&#x53EF;&#x80FD;&#x7684;&#x503C;&#x662F;ACCEPT, DROP, QUEUE, RETURN&#xFF0C;MASQUERADE
&#x8FD8;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x5176;&#x4ED6;&#x94FE;&#xFF08;Chain&#xFF09;&#x4F5C;&#x4E3A;&#x76EE;&#x6807;
&#x6CE8;&#xFF1A;MASQUERADE&#xFF0C;&#x5730;&#x5740;&#x4F2A;&#x88C5;&#xFF0C;&#x7B97;&#x662F;snat&#x4E2D;&#x7684;&#x4E00;&#x79CD;&#x7279;&#x4F8B;&#xFF0C;&#x53EF;&#x4EE5;&#x5B9E;&#x73B0;&#x81EA;&#x52A8;&#x5316;&#x7684;snat

-i &#x8F93;&#x5165;&#x63A5;&#x53E3;&#xFF08;input interface&#xFF09;
&#x6307;&#x5B9A;&#x4E86;&#x8981;&#x5904;&#x7406;&#x6765;&#x81EA;&#x54EA;&#x4E2A;&#x63A5;&#x53E3;&#x7684;&#x6570;&#x636E;&#x5305;
&#x8FD9;&#x4E9B;&#x6570;&#x636E;&#x5305;&#x5373;&#x5C06;&#x8FDB;&#x5165;INPUT, FORWARD, PREROUTE&#x94FE;
&#x4F8B;&#x5982;&#xFF1A;-i eth0&#x6307;&#x5B9A;&#x4E86;&#x8981;&#x5904;&#x7406;&#x7ECF;&#x7531;eth0&#x8FDB;&#x5165;&#x7684;&#x6570;&#x636E;&#x5305;
&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A;-i&#x53C2;&#x6570;&#xFF0C;&#x90A3;&#x4E48;&#x5C06;&#x5904;&#x7406;&#x8FDB;&#x5165;&#x6240;&#x6709;&#x63A5;&#x53E3;&#x7684;&#x6570;&#x636E;&#x5305;
&#x5982;&#x679C;&#x51FA;&#x73B0;! -i eth0&#xFF0C;&#x90A3;&#x4E48;&#x5C06;&#x5904;&#x7406;&#x6240;&#x6709;&#x7ECF;&#x7531;eth0&#x4EE5;&#x5916;&#x7684;&#x63A5;&#x53E3;&#x8FDB;&#x5165;&#x7684;&#x6570;&#x636E;&#x5305;
&#x5982;&#x679C;&#x51FA;&#x73B0;-i eth+&#xFF0C;&#x90A3;&#x4E48;&#x5C06;&#x5904;&#x7406;&#x6240;&#x6709;&#x7ECF;&#x7531;eth&#x5F00;&#x5934;&#x7684;&#x63A5;&#x53E3;&#x8FDB;&#x5165;&#x7684;&#x6570;&#x636E;&#x5305;

-o &#x8F93;&#x51FA;&#xFF08;out interface&#xFF09;&#x6307;&#x5B9A;&#x4E86;&#x6570;&#x636E;&#x5305;&#x7531;&#x54EA;&#x4E2A;&#x63A5;&#x53E3;&#x8F93;&#x51FA;
&#x8FD9;&#x4E9B;&#x6570;&#x636E;&#x5305;&#x5373;&#x5C06;&#x8FDB;&#x5165;FORWARD, OUTPUT, POSTROUTING&#x94FE;
&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A;-o&#x9009;&#x9879;&#xFF0C;&#x90A3;&#x4E48;&#x7CFB;&#x7EDF;&#x4E0A;&#x7684;&#x6240;&#x6709;&#x63A5;&#x53E3;&#x90FD;&#x53EF;&#x4EE5;&#x4F5C;&#x4E3A;&#x8F93;&#x51FA;&#x63A5;&#x53E3;
&#x5982;&#x679C;&#x51FA;&#x73B0;! -o eth0&#xFF0C;&#x90A3;&#x4E48;&#x5C06;&#x4ECE;eth0&#x4EE5;&#x5916;&#x7684;&#x63A5;&#x53E3;&#x8F93;&#x51FA;
&#x5982;&#x679C;&#x51FA;&#x73B0;-i eth+&#xFF0C;&#x90A3;&#x4E48;&#x5C06;&#x4EC5;&#x4ECE;eth&#x5F00;&#x5934;&#x7684;&#x63A5;&#x53E3;&#x8F93;&#x51FA;

&#x2013;sport &#x6E90;&#x7AEF;&#x53E3;&#xFF08;source port&#xFF09;&#x9488;&#x5BF9; -p tcp &#x6216;&#x8005; -p udp
&#x7F3A;&#x7701;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x5C06;&#x5339;&#x914D;&#x6240;&#x6709;&#x7AEF;&#x53E3;
&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x7AEF;&#x53E3;&#x53F7;&#x6216;&#x8005;&#x7AEF;&#x53E3;&#x540D;&#x79F0;&#xFF0C;&#x4F8B;&#x5982;&#x201D;&#x2013;sport 22&#x2033;&#x4E0E;&#x201D;&#x2013;sport ssh&#x201D;&#x3002;
&#x5982;&#x201D;&#x2013;sport 22:100&#x2033;

&#x2013;-dport &#x76EE;&#x7684;&#x7AEF;&#x53E3;&#xFF08;destination port&#xFF09;&#x9488;&#x5BF9;-p tcp &#x6216;&#x8005; -p udp
&#x53C2;&#x6570;&#x548C;&#x2013;sport&#x7C7B;&#x4F3C;

下面就实际使用情况举例:

1 查看是否支持iptables:

[root@test01 ~]# rpm -qa|grep iptables
iptables-1.4.21-33.el7.x86_64

2 查看已设定规则

[root@test01 ~]#  iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  372 26903 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
  130 25795 INPUT_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0
  130 25795 INPUT_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
  130 25795 INPUT_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
  128 25691 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

3 防火墙的备份与还原

防火墙规则默认保存在 /etc/sysconfig/iptables 文件中,使用 iptables-save 将规则保存至该文件中可以实现保存防火墙规则的作用,计算机重启后会自动加载该文件中的规则。如果使用 iptables-save 将规则保存至其他位置,可以实现备份防火墙规则的作用。

[root@test01 ~]# iptables-save
Generated by iptables-save v1.4.21 on Mon Jul 11 01:38:27 2022
*nat
:PREROUTING ACCEPT [132:25859]
:INPUT ACCEPT [2:104]
:OUTPUT ACCEPT [8:500]
:POSTROUTING ACCEPT [8:500]
:OUTPUT_direct - [0:0]
:POSTROUTING_ZONES - [0:0]
:POSTROUTING_ZONES_SOURCE - [0:0]
:POSTROUTING_direct - [0:0]
:POST_public - [0:0]
:POST_public_allow - [0:0]
:POST_public_deny - [0:0]
:POST_public_log - [0:0]
:PREROUTING_ZONES - [0:0]
:PREROUTING_ZONES_SOURCE - [0:0]
:PREROUTING_direct - [0:0]
:PRE_public - [0:0]
:PRE_public_allow - [0:0]
:PRE_public_deny - [0:0]
:PRE_public_log - [0:0]

备份到 /tmp/test.txt

[root@test01 ~]# iptables-save > /tmp/test.txt
[root@test01 ~]# cat /tmp/test.txt
Generated by iptables-save v1.4.21 on Mon Jul 11 01:39:19 2022
*nat
:PREROUTING ACCEPT [132:25859]
:INPUT ACCEPT [2:104]
:OUTPUT ACCEPT [8:500]
:POSTROUTING ACCEPT [8:500]
:OUTPUT_direct - [0:0]
:POSTROUTING_ZONES - [0:0]
:POSTROUTING_ZONES_SOURCE - [0:0]
:POSTROUTING_direct - [0:0]
:POST_public - [0:0]
:POST_public_allow - [0:0]
:POST_public_deny - [0:0]
:POST_public_log - [0:0]
:PREROUTING_ZONES - [0:0]
:PREROUTING_ZONES_SOURCE - [0:0]
:PREROUTING_direct - [0:0]
:PRE_public - [0:0]
:PRE_public_allow - [0:0]
:PRE_public_deny - [0:0]
:PRE_public_log - [0:0]

从备份文件还原回来

注意,这里导入的文件必须是使用 iptables-save工具导出来的才可以。

[root@test01 ~]# iptables-restore < /tmp/test.txt

4.拒绝所有ICMP协议访问数据包,此时显示无法 ping

iptables -I INPUT -p icmp -j REJECT

iptables快速入门

5.拒绝转发来自192.168.31.100主机的数据,允许转发来自192.168.31.0/24网段的数据

iptables -A FORWARD -s 192.168.31.100 -j REJECT

iptables -A FORWARD -s 192.168.31.0/24 -j ACCEPT

6.丢弃从外网接口(eth1)进入防火墙本机的源地址为私网地址的数据包

iptables -A INPUT -i eth1 -s 192.168.31.0/16 -j DROP

iptables&#xA0;-A INPUT -i eth1 -s 172.16.0.0/12 -j DROP

iptables&#xA0;-A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

7.将本机的80端口映射到本机的8080端口上

iptables -t nat -A PREROUTING -p tcp &#x2013;dport 80 -j REDIRECT &#x2013;to-ports 8080

说明:这里需要开启NAT功能,否则可能失败,实际中用的比较少,端口转发一般采用中间件nginx等,这样性能损耗会比较少。

<span class="enlighter-text">echo </span><span class="enlighter-n1">1</span> <span class="enlighter-g1">></span><span class="enlighter-text"> /proc/sys/net/ipv4/ip_forward</span>

隐藏网内主机的IP地址,共享公网IP,访问互联网

<span class="enlighter-text">iptables -t nat -A POSTROUTING -s 192.168.31.0/24</span><span class="enlighter-text">&#xA0;-j SNAT --to-source &#x516C;&#x7F51;IP</span>

反过来,将访问的IP 映射成其它IP

iptables -t nat -I PREROUTING -d &#x8BBF;&#x95EE;IP -p tcp --dport &#x8BBF;&#x95EE;&#x7AEF;&#x53E3; -j DNAT --to-destination &#x6620;&#x5C04;IP:&#x7AEF;&#x53E3;&#x53F7;

8.限制访问源IP,例如只允许管理员从 192.168.31.0/16 网段使用SSH远程登录防火墙主机,生产中一般采用jumpserver等堡垒机,这里是做演示。

iptables -A INPUT -p tcp --dport 22 -s 192.168.31.0/16 -j ACCEPT

iptables&#xA0;-A INPUT -p tcp --dport 22 -j DROP

说明:使用”!”可以将条件取反,从而限制源IP。

iptables&#xA0;-A INPUT -p tcp -s &#xFF01;192.168.31.0/16 --dport 22 -j DROP

9.只允许本机开放从TCP端口20-1024提供的应用服务,包括外部访问。

iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT

iptables&#xA0;-A OUTPUT -p tcp --sport 20:1024 -j ACCEPT

10.允许防火墙本机对外开放TCP端口20、80、110以及被动模式FTP端口1250-1280

iptables -I INPUT -p tcp -m multiport --dport 20,80,110,1250:1280 -j ACCEPT

iptables -A INPUT -p tcp DROP

说明:这里用”-m multiport –dport”来指定目的端口及范围

11.拒绝访问的新数据包,但允许响应连接或与已有连接相关的数据包

iptables -A INPUT -p tcp -m state --state NEW -j DROP

iptables&#xA0;-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

说明:”ESTABLISHED”表示已经响应请求或者已经建立连接的数据包,”RELATED”表示与已建立的连接有相关性的,比如FTP数据连接等。

12.只开放本机的web服务(80,443)、FTP(20、21、20450-20480),放行外部主机发住服务器其它端口的应答数据包,将其他入站数据包均予以丢弃处理。

iptables -I INPUT -p tcp -m multiport --dport 20,21,80 ,443-j ACCEPT

iptables&#xA0;-I INPUT -p tcp --dport 20450:20480 -j ACCEPT

iptables&#xA0;-I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

iptables&#xA0;-P INPUT DROP

Original: https://www.cnblogs.com/xiong97/p/16464219.html
Author: 静言善思
Title: iptables快速入门

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578287/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 一文解读:CSS语法、注释、使用方式、选择器。

    写在开篇 html的内容,想要改变它的样式?比如颜色、字体、布局,等等,怎么破?CSS代码带你起飞! css语法 css的语法非常简单,如下: 选择器 {属性: 值;属性:值} 例…

    Linux 2023年6月7日
    066
  • USB转双串口产品设计-RS232串口

    基于USB转2路串口芯片CH342,可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windo…

    Linux 2023年6月7日
    085
  • DQL

    查询语法 select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组后条件 order by 排序字段 limit 分页限定 …

    Linux 2023年6月7日
    064
  • ES查询区分大小写

    ES查询在默认的情况下是不区分大小写的,在5.0版本之后将 string类型拆分成两种新的数据类型, text用于全文搜索(模糊搜索), keyword用于关键字搜索(精确搜索)。…

    Linux 2023年6月8日
    099
  • Mybatis 实体别名支持通配符扫描

    问题 Spring集成Mybatis的项目中,可以为指定包下的实体取别名,这样在Mapper xml文件中可以省略实体类的全路径名称,只写类名称即可;但是在多模块项目中,可能需要将…

    Linux 2023年6月14日
    098
  • MSF生成木马实现远控

    思路 使用kali工具msf制作exe木马文件靶机通过点击开启后门进行监听 原理 靶机执行木马文件后,向攻击机中发送信息建立session会话,本机打开监听状态,收到信息后进行操作…

    Linux 2023年6月13日
    057
  • IDEA 无法显示 Run Dashboard 的解决方法

    前言 最近开始接触微服务的项目,项目很多有时候本地调测需要启动多个项目,看到同事都是使用dashboard管理项目,服务和端口排列的整整齐齐。但是我dashboard里面啥都没有,…

    Linux 2023年6月14日
    0101
  • 关于.NET CORE 编译时错误:Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79, 5): The project XXXXX must provide a value for Configuration.

    此笔记记载了本人在编译.Net Core项目时遇到的 Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets(79, 5)…

    Linux 2023年6月14日
    0104
  • 安装win10和ubuntu双系统

    2019-06-22 ​ 最近找了一份新的工作,要用到linux,由于之前基本上没有接触过这方面的东西,所以今天捣鼓一下,安装win10和linux双系统,办公研发双不误。如果在安…

    Linux 2023年6月14日
    096
  • 【Java】关于Maven仓库地址

    Maven仓库地址 仓库 如果你没有配置阿里云仓库镜像源,可以到这里来找 https://mvnrepository.com/ 如果你配置了阿里云仓库镜像源,可以来这里找 http…

    Linux 2023年6月14日
    090
  • Redis集群-Cluster模式

    1.为什么需要分片集群?它解决了什么问题? Redis从单个节点的架构方式演变到主从模式,提高了数据的可靠性以及相对较弱的高可用性;从主从模式到哨兵模式将高可用性提升到了一个新的高…

    Linux 2023年6月7日
    094
  • 大数据之Hadoop集群中Yarn常用命令

    Yarn状态的查询,除了可以在hadoop103:8088页面查看以外,还可以通过命令操作。常见的命令操作如下所示。 启动集群 [hadoop@hadoop102 bin]$ my…

    Linux 2023年6月8日
    0118
  • shell 递归枚举文件并操作

    递归枚举文件并操作 #!/bin/bash CURDIR=$(cd $(dirname $0); pwd) export GOPATH=$CURDIR/.. echo GOPATH…

    Linux 2023年5月28日
    090
  • linux三剑客之awk

    linux三剑客之awk 适用范围:awk主要是用来格式化文本。 语法格式:awk [参数] [处理规则] [操作对象] 参数 作用 -F 指定文本分隔符(不写默认是以空格作为分隔…

    Linux 2023年5月27日
    097
  • KindEditor配置和使用

    1下载kindeditor包,目前最新版本是kindeditor-3.5.5。下载地址:http://www.kindsoft.net/ 2.解压之后,解压目录kindeditor…

    Linux 2023年6月13日
    087
  • Docker自定义镜像无容器日志输出

    Docker自定义镜像无容器日志输出 因工作环境需要,需自己定制一个python环境的镜像,但制作完之后, docker logs发现无日志输出,经文档查询原来需要将日志重定向到标…

    Linux 2023年6月8日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球