关闭firewalld, 启用iptables:
systemctl stop firewalld  && systemctl disable firewalld  # 关闭firewalld防火墙
yum install iptables-services -y # Cetnos默认已经装了iptables, 只需装services

直接修改iptables配置文件添加规则连:
vi /etc/sysconfig/iptables  #iptables配置文件位置
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  # 开启 80 端口

初始化iptables服务:
systemctl restart iptables  # 重启防火墙使配置生效
systemctl enable iptables  # 设置防火墙开机启动
service iptables save  #保存iptables配置
iptables-save  >路径/文件名 #规则永久保存成文件
iptables-restore < 路径/文件名 #导入规则, 参数: "-n:不清除原有规则" , "-t:仅分析生成规则集,但不提交" 
chkconfig --level 35 iptables off /etc/init.d/iptables stop iptables -P INPUT DROP #永久关闭iptables防火墙

初始化iptables规则连:
iptables -F #清除预设表filter中的所有规则链的规则
iptables -P INPUT DROP  #拒绝所有入站请求
iptables -P FORWARD DROP  #拒绝所有转发请求
iptables -P OUTPUT ACCEPT  #出站不做限制
iptables -L -nv --line-numbers   #查看一下INPUT和FORWARD默认策略是否变成(policy DROP)
iptables -A INPUT -i lo -j ACCEPT  #允许回环Input
iptables -A OUTPUT -o lo -j ACCEPT  #允许回环Output, 一般不需要配置
iptables -I INPUT -p tcp --dport 22 -j ACCEPT #打开ssh端口

删除已添加的iptables规则: 
iptables -L -nv --line-numbers   #将所有iptables以序号标记显示
iptables -L -nv -t nat --line-numbers   #显示所有允许(ACCEPT)的规则链
iptables -D INPUT 8  #删除上个命令中查到的规则链名称和序列号, 比如INPUT里序号为8的规则

================================================================
iptables的语法格式:
  iptables -t table command chain cretiria -j action
    各参数的含义为:
    -t:指定需要维护的防火墙规则表 filter、nat、mangle或raw。在不使用 -t 时则默认使用 filter 表。
    command:子命令,定义对规则的管理。
    chain:指明链表。
    cretiria:匹配参数。
    action:触发动作。

iptables是Linux中的IP 信息包过滤系统, 有四表五链:
四表:  (优先级:raw,mangle,nat,filter)
    filter表, 即防火墙规则,允许、阻止或丢弃进出的数据包,使用是最多的
        三个链:INPUT、FORWARD、OUTPUT
    nat表,网络地址转换,管理内网的数据包收发,有多种类型,常见的有SNAT,PNAT,DNAT,是第二常用的
        三个链:PREROUTING、POSTROUTING、OUTPUT
    mangle表,修改数据包的TTL,给数据包做不同的标记,策略路由等
        五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
    raw表,一般用于跟踪状态,调试,用的较少
        两个链:OUTPUT、PREROUTING
五链:
    INPUT    #进来的数据包应用此规则链中的策略
    OUTPUT    #外出的数据包应用此规则链中的策略
    FORWARD     #转发数据包时应用此规则链中的策略
    PREROUTING    #对数据包做路由选择前应用此链中的规则, 所有的数据包进来的时候都先由这个链处理
    POSTROUTING    #对数据包做路由选择后应用此链中的规则, 所有的数据包出来的时候都先由这个链处理

iptables流量处理流程:

iptables常用命令参数: 
  -P    #设置默认策略
  -F    #清空规则链
  -L    #查看规则链
  -A    #在规则链末尾加入新规则
  -N    #自定义规则链
  -I num    #在规则链头部加入新规则
  -D num    #删除某一条规则
  -i    网卡名称    #流入接口, 匹配从这块网卡流入的数据
  -o    网卡名称    #流出接口, 匹配从这块网卡流出的数据
  -p    协议        #如TCP、UDP、ICMP
  -s    来源地址    #可表达网段"IP/MASK", 加"!"表示除这个IP外
  -d    目标地址    #可表达网段"IP/MASK", 加"!"表示除这个IP外
  -j    采取动作    #如ACCEPT, DROP, SNAT, DNAT, MASQUERADE, REDIRECT
  --sport num    #匹配来源端口号,端口必须与协议一起使用
  --dport num    #匹配目标端口号,端口必须与协议一起使用,一组端口用"--dport 21:25"来表达
  -n    #直接显示IP不对地址反查域名,速度快,不加-n则显示IP解析到的域名
  -v    #显示详细信息,数据包数量、总字节数以及相应的网络接口等, -vv或-vvv越多越详细
  -t    #指定需要维护的防火墙规则表 filter、nat、mangle或raw。在不使用 -t 时则默认使用 filter 表。
  -t nat    #显示所有nat表的信息
  -m     #使用扩展模块功能
  -m state --state 状态1,状态2  #调用状态模块匹配数据包, iptables有四种状态: NEW,ESTABLISHED,RELATED和INVALID
    NEW:        主机连接目标主机,在目标主机上看到的第一个想要连接的包
    ESTABLISHED: 主机已与目标主机进行通信,判断标准只要目标主机回应了第一个包,就进入该状态
    RELATED:    主机已与目标主机进行通信,目标主机发起新的链接方式,例如ftp
    INVALID:    无效的封包,例如数据破损的封包状态

========注意iptables的规则要把允许动作放到拒绝动作之前====================

FTP的iptables端口配置:
1.打开主动模式21端口
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 20 -j ACCEPT
2.打开被动模式49152~65534之间的端口
iptables -I INPUT -p tcp --dport 49152:65534 -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT

设置指定网段的主机访问本机某端口,拒绝其他所有主机的流量:
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j REJECT
    上述第一条命令含义是:
        -I INPUT 在INPUT规则链中头部添加规则
        -s 192.168.10.0/24 匹配192.168.10.0-192.168.10.24中的所有主机IP地址
        -p tcp 匹配tcp协议
        --dport 22 匹配访问本机端口号为22的流量
        -j ACCEPT 跳转至执行ACCEPT(允许通过)操作
    上述第二条命令含义是:
        -A INPUT 在INPUT规则链末尾添加规则
        -p tcp匹配tcp协议
        --dport 22 匹配访问本机端口号为22的流量
        -j REJECT 跳转至执行REJECT操作

清除已有iptables规则:
iptables -F 清除预设表filter中的所有规则链的规则
iptables -X 清除预设表filter中使用者自定链中的规则
iptables -Z

允许本地回环接口(即运行本机访问本机)
iptables -I INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

允许已建立的或相关连的通行
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许所有本机向外的访问
iptables -I OUTPUT -j ACCEPT

端口访问控制:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT  #允许访问本机22端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT  #允许访问本机80端口
iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.63.7 -j ACCEPT  #允许172.16.0.0网段访问本机
iptables -t filter -A INPUT -s 172.16.63.66 -d 172.16.63.7 -j REJECT  #允许某IP访问本机
iptables -I INPUT -s 172.16.63.66 -d 172.16.63.7 -j REJECT  #拒绝某IP访问本机

屏蔽单个IP或IP段的命令是:
iptables -I INPUT -s 123.45.6.7 -j DROP
iptables -I INPUT -s 123.0.0.0/8 -j DROP
iptables -I INPUT -s 124.45.0.0/16 -j DROP
iptables -I INPUT -s 123.45.6.0/24 -j DROP

查看已添加的iptables规则
iptables -L -n
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示IP地址和端口号,不将ip解析为域名

service iptables save  #每次修改, 都要记得保存规则
systemctl restart iptables #重启服务使生效

关于iptables的一些知识的更多相关文章

  1. tony_iptables_01_linux下IPTABLES配置详解(转)

    如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...

  2. linux下IPTABLES配置详解(转)

    如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...

  3. [转] Linux下防火墙iptables用法规则详及其防火墙配置

    from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...

  4. linux下IPTABLES配置详解(转)

    如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[ ~]# iptables -L -nChain I ...

  5. Netfilter/iptables防火墙

    http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...

  6. 转:db2 iptables相关用法(1)

    如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...

  7. 实用Linux命令,不求最全但求实用-------iptables命令实战

    开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCE ...

  8. Linux防火墙基本知识

    一.防火墙的分类 (一).包过滤防火墙. 数据包过滤(packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(access control ...

  9. (转载)Linux下IPTABLES配置详解

    (转载)http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 ...

  10. linux 防火墙 iptables实例讲解

    端口为例): 显示现有规则: iptables –L -n 清空现有规则表: iptables -F 黑名单:先允许所有数据包通过,后逐条添加黑名单规则. iptables –A INPUT–p tc ...

随机推荐

  1. Epicor 助力F1车队Scuderia AlphaTauri 提升车队运营效率和性能

    Scuderia AlphaTauri 很高兴地宣布,Epicor 是促进业务增长的行业特定企业软件的全球领导者,已被任命为车队的官方 ERP 合作伙伴.这项多年期协议建立在已经成功的长期技术合作关系 ...

  2. autodesk2023全家桶 Autodesk 2023 所有产品下载地址

    autodesk2023全家桶 Autodesk 2023 所有产品下载地址 作者: 佚名 2022/4/10 11:51:24 Autodesk系列软件每年都会提前发布,目前autodesk2023 ...

  3. WSL2安装nvm并配置npm镜像源

    1.下载安装脚本并执行 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash 2.关闭命令行后 ...

  4. 【yum】使用新的centos 6.9系统时,遇到的Yum问题

    1,不识别域名 vi /etc/yum.conf 新增: nameserver 1.1.1.1(根据实际配置) 2,Header V3 RSA/SHA256 Signature, key ID 060 ...

  5. redis 持久化之RDB和AOF的区别

    持久化之RDB 定义:在指定的时间间隔内生成数据集的时间点快照 RDB 的优点: 1.RDB 是一个非常紧凑的文件 它保存了 Redis 在某个时间点上的数据集. 这种文件非常适合用于进行备份: 比如 ...

  6. 使用vue3对数据进行分页展示

    要获取用户的滚动位置,可以在末尾添加一列空白节点.每当出现空白时意味着滑倒网页最底部,则进行渲染数据.可以使用getBoundingClientRect来判断是否在页面底部. getBoundingC ...

  7. SpringBoot 块形式的配置文件写法(简单示例)

    1.配置文件写法 spring: profiles: dev quartz: auto-startup: true --- spring: profiles: local quartz: auto-s ...

  8. MySQL数据库SQL语法常规操作

    必备sql和表关系及授权 graph LR 执行1[必备sql和授权] 执行2[SQL强化和实践] 执行3[索引和函数以及存储过程] 执行4[Python操作mysql和应用] 执行5[常见SQL语句 ...

  9. SSLCipherCheck_v1.4.2

    Usage: sslciphercheck.exe -h <Host> -p <Port> -u <URL> -c <CSV File> -i < ...

  10. error RC2104 : undefined keyword or key name: Invalid

    检查.rc文件是否存在有未定义的宏常量就使用了,如果没发现就检查常量字符串表(STRINGTABLE)是否存在特殊字符,例如: " /" " 这种东西在里面,发现的话能删 ...