iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

语法

  1. iptables(选项)(参数)

选项

  1. -t<表>:指定要操纵的表;
  2. -A:向规则链中添加条目;
  3. -D:从规则链中删除条目;
  4. -i:向规则链中插入条目;
  5. -R:替换规则链中的条目;
  6. -L:显示规则链中已有的条目;
  7. -F:清楚规则链中已有的条目;
  8. -Z:清空规则链中的数据包计算器和字节计数器;
  9. -N:创建新的用户自定义规则链;
  10. -P:定义规则链中的默认目标;
  11. -h:显示帮助信息;
  12. -p:指定要匹配的数据包协议类型;
  13. -s:指定要匹配的数据包源ip地址;
  14. -j<目标>:指定要跳转的目标;
  15. -i<网络接口>:指定数据包进入本机的网络接口;
  16. -o<网络接口>:指定数据包要离开本机所使用的网络接口。

iptables命令选项输入顺序:

  1. iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

表名包括:

  • raw:高级功能,如:网址过滤。
  • mangle:数据包修改(QOS),用于实现服务质量。
  • net:地址转换,用于网关路由器。
  • filter:包过滤,用于防火墙规则。

规则链名包括:

  • INPUT链:处理输入数据包。
  • OUTPUT链:处理输出数据包。
  • PORWARD链:处理转发数据包。
  • PREROUTING链:用于目标地址转换(DNAT)。
  • POSTOUTING链:用于源地址转换(SNAT)。

动作包括:

  • accept:接收数据包。
  • DROP:丢弃数据包。
  • REDIRECT:重定向、映射、透明代理。
  • SNAT:源地址转换。
  • DNAT:目标地址转换。
  • MASQUERADE:IP伪装(NAT),用于ADSL。
  • LOG:日志记录。

实例

清除已有iptables规则

  1. iptables -F
  2. iptables -X
  3. iptables -Z

开放指定的端口

  1. iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允许本地回环接口(即运行本机访问本机)
  2. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已建立的或相关连的通行
  3. iptables -A OUTPUT -j ACCEPT #允许所有本机向外的访问
  4. iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许访问22端口
  5. iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许访问80端口
  6. iptables -A INPUT -p tcp --dport 21 -j ACCEPT #允许ftp服务的21端口
  7. iptables -A INPUT -p tcp --dport 20 -j ACCEPT #允许FTP服务的20端口
  8. iptables -A INPUT -j reject #禁止其他未允许的规则访问
  9. iptables -A FORWARD -j REJECT #禁止其他未允许的规则访问

屏蔽IP

  1. iptables -I INPUT -s 123.45.6.7 -j DROP #屏蔽单个IP的命令
  2. iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令
  3. iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令
  4. iptables -I INPUT -s 123.45.6.0/24 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令是

查看已添加的iptables规则

  1. iptables -L -n -v
  2. Chain INPUT (policy DROP 48106 packets, 2690K bytes)
  3. pkts bytes target prot opt in out source destination
  4. 5075 589K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
  5. 191K 90M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
  6. 1499K 133M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
  7. 4364K 6351M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
  8. 6256 327K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
  9.  
  10. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  11. pkts bytes target prot opt in out source destination
  12.  
  13. Chain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)
  14. pkts bytes target prot opt in out source destination
  15. 5075 589K ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0

删除已添加的iptables规则

将所有iptables以序号标记显示,执行:

  1. iptables -L -n --line-numbers

比如要删除INPUT里序号为8的规则,执行:

  1. iptables -D INPUT 8
  2.  
  3. 实例:
  1. iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
  2. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  3. iptables -A OUTPUT -j ACCEPT
  4. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  5. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  6. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  7. iptables -A INPUT -p tcp --dport 111 -j ACCEPT
  8. iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  9. iptables -A INPUT -p tcp --dport 20 -j ACCEPT
  10. iptables -A INPUT -p tcp --dport 7789 -j ACCEPT
  11. iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
  12. iptables -A INPUT -p tcp --dport 30000:65535 -j ACCEPT
  13. iptables -A INPUT -p udp --dport 123 -j ACCEPT
  14. iptables -A INPUT -p udp --dport 957 -j ACCEPT
  15. iptables -A INPUT -p udp --dport 924 -j ACCEPT
  16. iptables -A INPUT -p udp --dport 883 -j ACCEPT
  17. iptables -A INPUT -p udp --dport 908 -j ACCEPT
  18. iptables -A INPUT -j REJECT

  

  1.  

Linux学习系列之Iptables的更多相关文章

  1. Linux学习系列八:操作网口

    一些相对高性能的单片机会带以太网接口,网口在MCU里算是比较复杂的外设了,因为它涉及到网络协议栈,通常情况下网络协议栈会运行在一个RTOS中,所以对普通单片机开发者来说网口使用起来相对难度较大一些.在 ...

  2. Linux学习系列之Linux入门(二)Vim学习

    第二篇 Vim学习 主要内容: 基本命令: 插件扩展: 参考资料: vim是一个命令控制的文本编辑器,可以完成几乎我们想要做的所有工作,除了Emacs几乎没有其他的工具能和它匹敌.官方网站是:http ...

  3. Linux学习系列之一:在centos 7.5上安装nginx 以及简单配置

    说到Linux我们都知道那是相当相当得重要得啊,在计算机这个行业,开发运维都是离不开它得.我作为一个准毕业生,智商可能不太够,只能自己笨鸟先飞,自己操作起来咯.俗话说的好,好记性不如难笔头嘛.而且ng ...

  4. linux学习系列一

    1. 基本命令(注意参数的大小写) 学习linux如果使用的是windows 建议使用一个很好用的工具git,下载安装即可使用linux下的命令来操作windows 1.1目录及文件 注意/ 有表示根 ...

  5. Linux学习系列之Linux入门(一)linux安装与入门

    第一篇:安装并配置Linux开发环境 一.安装linux: 主要安装Linux的发行版,到目前为之,主要的发行版有: 比较常用的是Ubuntu.redhat和centOS,主要的安装方法详细: Ubu ...

  6. Linux学习系列之Nginx调优实战

    Nginx配置文件性能微调 全局的配置 user www-data; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofi ...

  7. Linux学习系列——零基础开始

    第一部分 Linux基础命令 1.查看系统信息命令 2.Linux内核版本 3.修改环境变量

  8. linux学习系列三

    1. 账户与账户安全 账户和组是操作系统的基本概念,linux的组有基本组和附加组之分,一个用户只可以加入到一个基本组中国,但是可以加入到多个附加组中.创建用户时,系统默认会自动创建同名的组,并设置用 ...

  9. linux学习系列二

    vim是由vi发展而来,具有语法高亮显示,多视图编辑,代码折叠,支持插件等功能,vim成为了linux发行版本的标配. 1. vim工作模式 1. 普通模式:实现基本的光标移动和大量的快捷操作 2. ...

随机推荐

  1. perl学习之:read

    perl read()函数例子,read()函数实例代码 - 读取,或试图读取,长度LENGTH 与文件句柄FILEHANDLE 相关联的文件到缓冲区BUFFER中的字节数. 语法 read FILE ...

  2. Google实践中总结的Python规范,get了吗?

    好的代码风格,给人舒服的感觉,今天介绍一下谷歌的Python风格规范 1 分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 2 行长度 每行不超过80个字符:不要使用反斜杠连接行.Pyth ...

  3. Onenote代码高亮的实现方法

    最终效果图 最终的效果图如下: VBA的编写参考 主要参考的是这篇博客中的思路:如何在Word中排出漂亮的代码 将VBA脚本复制到Word中并设置快捷键 Alt+F11 打开Word中的 VBS,将下 ...

  4. (转)Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id)等

    本文转自http://blog.csdn.net/totogo2010/article/details/7714960 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断对象类型 - ...

  5. (原)剑指offer之栈和队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 设两个栈为stack1,stack2: 1:首先想到最简单的方法:是入栈时将数据压入stack1,出栈时 ...

  6. maven 打某一个模块的包

    mvn clean mvn clean install -pl benefit-microservice-gateway -am -Dmaven.test.skip=true

  7. js--如何判别 null undefined

    收集资料如下判断: 1.判断undefined: ? 1 2 3 4 var tmp = undefined; if (typeof(tmp) == "undefined"){ a ...

  8. PYDay14:反射、面向对象基础-封装、集成、多态

    1.反射 通过字符串的形式,导入模块再通过字符串的形式,去模块中寻找指定的函数并执行eg:__import__(模块) 更加字符串的形式去对象(某个模块)中操作其成员 常用方法: getattr() ...

  9. STM32F407 窗口看门狗 个人笔记

    窗口看门狗的喂狗时间范围 由框图知: 复位条件是:当且仅当 { 启动位启动 且 { T6为0 (计数器的值减小到0X03F即下限,还没喂狗,即喂狗太晚) 或 计数器的值高于上限时喂狗,即喂狗太早 } ...

  10. 紫书第五章训练2 F - Compound Words

    F - Compound Words You are to find all the two-word compound words in a dictionary. A two-word compo ...