第十三章 LINUX安全IPTABLES基础-CENTOS7.5知识

第一部分、安装配置
[[email protected]~]# systemctl stop firewalld
[[email protected]~]# systemctl disable firewalld

yum install iptables-services
systemctl start iptables
systemctl enable iptables

第二部分、防火墙:iptables设置
规则写好了,不次于硬件级防火墙
作用:包过滤技术,类似于ACL
当linux服务器作为路由转发设备时,可以过滤来往数据包
作为独立服务器时,可以对进出数据包进行安全过滤。

开启路由转发功能(与多个网络相关的路由功能开启都需要):
方法:echo 1 > /proc/sys/net/ipv4/ip_forward
vi /etc/sysctl.conf

cd /usr/lib/sysctl.d
vi 00-system.conf
net.ipv4.ip_forward = 1

iptables有四个表table和五个链chain:
iptables的四个表:四个功能方向
raw
Mangle:QOS网络服务品质
nat:网络地址转换
filter:过滤规则的主要表
五个链:主要写入规则,数据流方向
如:filter: INPUT FORWARD OUTPUT
INPUT:处理所有访问我的请求
OUTPUT: 出站规则
FORWARD:处理转发规则
PREROUTING:路由前
POSTROUTING:路由后
开启防火墙:setup或service iptables start
2.查看防火墙规则列表:
iptables -nL 或者iptables -L -n

  1. iptables -F 清空所有规则策略
    4.命令语法
    iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
    ****
    注释:
    控制类型:
    ACCEPT 放行
    DROP 丢弃,不回应
    REJECT 拒绝,并回应
    LOG 做拒绝也不放行,记录日志
    选项 :
    -I 插入规则,默认插入到第1条
    -A 追加规则,默认在最后追加
    -P 修改默认的规则(ACCEPT DROP)
    iptables -P INPUT/OUTPUT/FORWARD ACCEPT/DROP
    -F 清空所有规则
    -D 删除一条规则
    -nvL --line-numbers 查看所有规则链的详细信息
    watch -n1 iptables -nvL --line-numbers 每一秒观察数据包状态
    注意事项:
    1)不指定表名,默认就是filter表,所以我们主要以filter为主,后续不再加表名。
    2)不指定链名,默认指所有链。如:iptables -F 并观察iptables -nL,检查默认动作
    3)设置默认动作:如iptables -P INPUT DROP
    4)选项、链名、控制类型必须大写,其他为小写
    5)除-P -F -D外,必须写条件
    6.尝试编写:
    iptables -A INPUT -p tcp --dport 80 -j REJECT/DROP
    iptables -A INPUT -p tcp --dport 2200 -j ACCEPT
    iptables -I INPUT -p udp --dport 67 -j DROP
    iptables -I INPUT 2 -p tcp --dport 2200 -j ACCEPT
    iptables -D INPUT 2
    7.条件编写:
    1)通用匹配:
    特点:独立使用,不依赖与其他条件
    -p 协议名,icmp、tcp、udp: dns 53,QQ 8000,DHCP 67
    -s 源IP
    -d 目标IP 192.168.1.0/24 -j ACCEPT
    -i eth0 从哪个网卡进来
    -o eth1 从哪个网卡出去
    注意!的用法
    [[email protected] [local~]# iptables -I INPUT -p icmp -j DROP
    [[email protected] [local~]# iptables -I INPUT -s 10.20.30.0/24 -j DROP
    [[email protected] [local~]# iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
    [[email protected] [local~]# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
    [[email protected] [local~]# iptables -A INPUT -i eth1 -s 172.16.0.0/16 -j DROP
    2)隐含匹配:
    端口匹配:--sport 源端口、--dport 目的端口
    TCP标记匹配:--tcp-flags 检查范围 被设置的标记 SYN/FIN
    iptables -I INPUT -s 172.18.11.87 -p tcp --dport 22 --tcp-flags SYN,RST,ACK,FIN RST -j DROP
    ICMP类型匹配:--icmp-type ICMP类型8/0/3
    如:
    [[email protected] [local~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
    [[email protected] [local~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP
    [[email protected] [local~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
    [[email protected] [local~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
    [[email protected] [local~]# iptables -A INPUT -p icmp -j DROP
    3)显式匹配条件
    多端口匹配:-m multiport --sport 源端口列表
    -m multiport --dport 目的端口列表
    IP范围匹配:-m iprange --src-range IP范围
    MAC地址匹配:-m mac --mac-source MAC地址
    [[email protected] [local~]# iptables -P INPUT DROP
    [[email protected] [local~]# iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
    [[email protected] [local~]# iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143:200 -j ACCEPT
    [[email protected] [local~]# iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP
  2. iptables-save > 文件 导出当前规则
    iptables-restore < 文件 导入规则
    service iptables restart 后加载/etc/sysconfig/iptables配置文件恢复了默认值
    /etc/init.d/iptables save 将当前规则设定为默认规则
    service iptables restart 验证
  3. iptables nat 上网
    首先开启内核路由转发的模块。
    echo 1 > /porc/sys/net/ipv4/ip_forward #这是个暂时的做法,重启后就会失效,好的做法是:
    vi /etc/sysctl.conf
    修改其中的net.ipv4.ip_forward = 1
    然后要让它立即生效,需要执行命令:
    sysctl -p
    DNS的配置在/etc/resolv.conf中添加DNS的IP即可
    至此第一步搞定。
    第二步添加NAT:
    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to 外网IP
    或-j MASQUERADE(使用ASDL动态IP用此选项)
    如:
    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to 172.18.11.92
    #这条命令里的 eth0代表外网接口,-s 192.168.10.0/24代表内网段

原文地址:http://blog.51cto.com/jxwpx/2317654

时间: 2024-11-05 21:47:35

第十三章 LINUX安全IPTABLES基础-CENTOS7.5知识的相关文章

Linux防火墙iptables基础

IPtables基础 简介 iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙.NAT. iptables里面有4张表,分别是filter,NAT,mangle,raw表.运维人员的话主要关注的是filter和NAT表. filter:主要是过滤包的,内建三个链INPUT.OUTPUT以及FORWARD.INPUT作用于进入本机的包:OUTPUT作用于本机送出的包:FORWARD作用于那些跟本机无关的包. NAT:主要用户地址转换和端口映射,内建三个链,分别是PREOUTIN

Linux上iptables基础应用

Linux上iptables防火墙的基本应用解说 iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装.清除iptables规则.iptables只开放指定端口.iptables屏蔽指定ip.ip段及解封.删除已添加的iptables规则等iptables的基本应用. 关于更多的iptables的使用方法可以执行:iptables --help或网上搜索一下iptables参数的说明. 1.安装iptables防火墙如果没有安装iptables需要先安

Linux 之 iptables基础(一)

 iptables基础(一) =========================================================================== 概述: iptables介绍 1)Firewall ★Firewall:防火墙系统 是一种隔离工具,Packets Filter Firewall (包过滤型防火墙): 定义:工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件: 硬件

Linux中iptables基础命令

防火墙(Firewalld)是一种隔离工具,防范与非授权的访问,使主机更安全.它主要工作与网络或主机的边缘,对于进出本网络或主机的通信报文根据事先定义好的规则进行匹配检测:对于能够被规则所匹配到的报文做出相应的处理. 防火墙的分类: 主机防火墙:工作范围是单个主机 网络防火墙:工作范围是整个网络:网络防火墙中还可以包含主机防火墙 防火墙的实现方式: 硬件防火墙:NetScreen.CheckPoint 软件防火墙:iptables 本文所介绍的iptables就是Linux的软防火前的实现. i

Linux防火墙iptables基础详解

原文来自于:https://www.linuxidc.com/Linux/2017-01/140073.htm(引用自) 一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP.数据进行检测. 目前市面上比较常见的有3.4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关.

第十三章 Linux磁盘管理-RAID

常见的硬盘:SATA一般pc机主流的硬盘.SCSI一般服务器应用广泛.IDE比较老,二者均可. RAID 的意思是廉价磁盘冗余阵.是一些列放在一起,成为一个逻辑卷的磁盘集合. 软件RAID和硬件RAID 软件RAID的性能低,使用主机资源,加载RAID软件,从软件RAID卷中读取数据.无需物理硬件,成本低. 硬件RAID性能高,使用pciexpress 卡物理的提供专有RAID控制器.不使用主机资源.有NVRAM用于缓存的读取和写入.缓存用于RAID重建,即使出现电源故障,也会使用后背电池电源保

第七章 Linux文件和目录相关的知识 作业题

1. rmdir -p  用来删除一串目录,比如 rmdir  -p /tmp/test/1/2/3  如果 /tmp/1/2/ 下面除了3目录外还有个4目录,4目录里还有个5目录,那么是否可以成功删除?   rmdir -p  删除一个不存在的目录时是否报错呢?rmdir -p 不能成功删除非空目录,rmdir -p 删除一个不存在的目录时会报错,提示"没有那个文件或目录" 2. 删除一个目录或者文件时,在删除之前会先问一下我们是否删除,如果直接回车,是否删除呢?如果输入的不是'y'

《Linux高性能服务器编程》学习总结(五)——Linux网络编程基础API

第五章      Linux网络编程基础API 对于网络编程,首先要了解的就是字节序的问题,字节序分为主机字节序和网络字节序,主机字节序又称小端字节序,是低字节存放在地地址,而网络字节序又称大端字节序,是低字节放在高地址.当数据在不同的机器上传播时,就需要统一字节顺序以保证不出现错误.在发送数据前,先将需要转变的数据转成网络字节序再发送,接收时先转成主机字节序再处理,要特别注意的是,即使是本机的两个进程通信,也要考虑字节序的问题,比如JAVA的虚拟机就使用大端字节序.使用如下代码可以查看本机的字

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu