Linux常用命令之IPtables命令(1)

实验环境:Centos7.4

实验目的:掌握linux的常用命令-IPtables命令的用法

实验步骤:

写下这个题目的时候,我内心是拒绝的,iptables这个命令好讲,但是要把他讲明白,还真是不容易,东西多且杂,没有一点功底很难讲好,而我也只是将自己日常学习记录了下来,个人愚见,贻笑大方。有哪里说错了还请批评指正。

先来点简单的,上图,且看iptables的命令有哪些?

iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型] 参数

一、COMMAND:

-A 顺序添加,添加一条新规则

-I 插入,插入一条新规则 -I 后面加一数字表示插入到哪行

-R 修改, 删除一条新规则 -D 后面加一数字表示删除哪行

-D 删除,删除一条新规则 -D 后面加一数字表示删除哪行

-N 新建一个链

-X 删除一个自定义链,删除之前要保证次链是空的,而且没有被引用

-L 查看

-E 重命名链

-F 清空链中的所有规则

-Z 清除链中使用的规则

-P 设置默认规则

二、MATCH:

隐含匹配:

-p tcp udp icmp

--sport指定源端口

--dport指定目标端

-s 源地址

-d 目的地址

-i 数据包进入的网卡

-o 数据包出口的网卡

扩展匹配:

-m state --state 匹配状态的

-m mutiport --source-port 端口匹配 ,指定一组端口

-m limit --limit 3/minute 每三分种一次

-m limit --limit-burst 5 只匹配5个数据包

-m string --string --algo bm|kmp --string"xxxx" 匹配字符串

-mtime--timestart 8:00 --timestop 12:00 表示从哪个时间到哪个时间段

-mtime--days 表示那天

-m mac --mac-source xx:xx:xx:xx:xx:xx 匹配源MAC地址

-m layer7 --l7proto qq 表示匹配腾讯qq的 当然也支持很多协议,这个默认是没有的,需要我们给内核打补丁并重新编译内核及iptables才可以使用 -m layer7 这个显示扩展匹配

三、TARGET\JUMP:

-j

DROP 直接丢掉

ACCEPT 允许通过

REJECT 丢掉,但是回复信息

LOG --log-prefix"说明信息,自己随便定义" ,记录日志

SNAT 源地址转换

DNAT 目标地址转换

REDIRECT 重定向

MASQUERAED 地址伪装

举25个例子,例子均来源于网络内容

1. 删除已有规则

在开始创建iptables规则之前,你也许需要删除已有规则。

命令如下,两个命令均可以实现清除操作。

2.设置链的默认策略

链的默认政策设置为”ACCEPT”(接受),若要将INPUT,FORWARD,OUTPUT链设置成”DROP”(拒绝),命令如下:

当INPUT链和OUTPUT链都设置成DROP时,对于每一个防火墙规则,都应该定义两个规则。例如:一个传入另一个传出。

3. 阻止指定IP地址

例:丢弃来自IP地址x.x.x.x的包

注:当你在log里发现来自某ip地址的异常记录,可以通过此命令暂时阻止该地址的访问以做更深入分析

例:阻止来自IP地址x.x.x.x eth0 tcp的包

4. 允许所有SSH的连接请求

例:允许所有来自外部的SSH连接请求,即只允许进入eth0接口,并且目标端口为22的数据包

5. 仅允许来自指定网络的SSH连接请求

例:仅允许来自于192.168.100.0/24域的用户的ssh连接请求

6.允许http和https的连接请求

例:允许所有来自web - http的连接请求

例:允许所有来自web - https的连接请求

7. 使用multiport 将多个规则结合在一起

允许多个端口从外界连入,除了为每个端口都写一条独立的规则外,我们可以用multiport将其组合成一条规则。如下所示: 例:允许所有ssh,http,https的流量访问

8. 允许从本地发起的SSH

请注意,这与允许ssh连入的规则略有不同。本例在OUTPUT链上允许NEW和ESTABLISHED状态。在INPUT链上,只允许ESTABLISHED状态。ssh连入的规则与之相反。

9. 仅允许从本地发起到一个指定的网络域的SSH请求

例:仅允许从内部连接到网域192.168.100.0/24

10. 允许从本地发起的HTTPS连接请求

如果你想允许用户访问互联网,请执行

注:对于HTTP web流量的外联请求,只需要将上述命令中的端口从443改成80即可

本文先放这些例子,下篇文章继续。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190121G1DE6M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券