firewall与iptables学习笔记分享

firewall:

systemctl start|stop|status|reload|enable|disable firewalld ---含义自己猜
firewall-cmd  --state   ---查看防火墙状态
firewall-cmd --get-zones   ---查看预定义区域
firewall-cmd --get-service   ----查看预定义服务
firewall-cmd --get-icmptypes   ---查看预定义ICMP类型
#######ICMP类型######
firewall-cmd --get-icmptypes 命令的执行结果中各种阻塞类型的含义分别如下所示。
➢destination-unreachable: 目的地址不可达。
➢echo-reply: 应答回应(pong).
➢parameter- - problem:参数问题。
➢redirect: 重新定向。
➢router-advertisement:路由器通告。
➢router-solicitation: 路由器征寻。
➢source- quench:源端抑制。
➢time-exceeded: 超时。
➢timestamp-reply:时间戳应答回应。
➢timestamp-request: 时间戳请求。
########区域管理##########
firewall-cmd 命令可以实现获取和管理区域,为指定区域绑定网络接口等功能
(1)firewall-cmd 显示网络连接或接口的默认区域
(2)–set-default-zone= 设置网络连接或接口的默认区域
(3)–get-active-zones 显示已激活的所有区域
(4)–get-zone-of-interface= 显示指定接口绑定的区域
(5)–zone= --add-interface= 为指定接口绑定区域
(6)–zone= --change-interface= 为指定的区域更改绑定的网络接口
(7)–zone= --remove-interface= 为指定的区域删除绑定的网络接口
(8)–list-all-zones 显示所有区域及其规则
(9)[–zone=] --list-all 显示所有指定区域的所有规则,省略–zone=时表示仅 对默认区域操作
示例:
firewall-cmd  --get-default-zone  ---显示当前系统的默认区域
firewall-cmd  --list-all    ---显示默认区域的所有规则
firewall-cmd --get-zone-of-interface=ens33   ---显示网络接口 ens33 对应区域
firewall-cmd --zone=internal --change-interface=ens33   ---将网络接口 ens33 对应区域更改为 internal 区域
firewall-cmd --get-active-zones     ---显示所有激活区域

############服务管理###########
为 了 方 便 管 理 , firewalld 预 先 定 义 了 很 多 服 务 , 存 放 在 /usr/lib/firewalld/services/ 目录中,
服务通过单个的 XML 配置文件来指定。这些配置文件则按以下格式命名:service-name.xml,
每个文件对应一项具体的网络服务,如 ssh 服务等。与之对应的配置文件中记录了各项服务所使用的 tcp/udp 端口。
1、[–zone=] --list-services 显示指定区域内允许访问的所有服务
2、[–zone=] --add-service= 为指定区域设置允许访问的某项服务
3、[–zone=] --remove-service= 删除指定区域已设置的允许访问的某项服务
4、[–zone=] --list-ports 显示指定区域内允许访问的所有端口号
5、[–zone=] --add-port=[-]/  ---为指定区域设置允许访问的某个/某段端口号 (包括协议名)
6、[–zone=] --remove-port=[-]/     ---删除指定区域已设置的允许访问的端口号(包括 协议名)
7、[–zone=] --list-icmp-blocks 显示指定区域内拒绝访问的所有 ICMP 类型
8、[–zone=] --add-icmp-block= 为指定区域设置拒绝访问的某项 ICMP 类型
9、[–zone=] --remove-icmp-block= 删除指定区域已设置的拒绝访问的某项 ICMP 类 型,省略–zone=时表示对默认区域操作
示例:
firewall-cmd --list-services  --显示默认区域内允许访问的所有服务
firewall-cmd --add-service=http   ---设置默认区域允许访问 http 服务
firewall-cmd --add-service=https   ---设置默认区域允许访问 https 服务
firewall-cmd --zone=internal --add-service=mysql  ---设置 internal 区域允许访问 mysql 服务
firewall-cmd --zone=internal --remove-service=samba-client    ----设置 internal 区域不允许访问 samba-client 服务
firewall-cmd --zone=internal --list-services   ---显示 internal 区域内允许访问的所有服务

############端口管理##########
在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自
动打开。但是,对于非预定义的服务只能手动为指定的区域添加端口
firewall-cmd --zone=internal --add-port=443/tcp   ---在 internal 区域打开 443/TCP 端口
firewall-cmd --zone=internal --remove-port=443/tcp   ---在 internal 区域关闭 443/TCP 端口

#########两种配置模式##########
 firewall-cmd 命令工具有两种配置模式:运行时模式(Runtime mode)表示 当前内存中运行的防火墙配置,
 在系统或 firewalld 服务重启、停止时配置将失效;永久模 式(Permanent mode)表示重启防火墙或重新加载防火墙时的规则配置,
 是永久存储在配置 文件中的。
 firewall-cmd 命令工具与配置模式相关的选项有三个。
(1) --reload:重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。
(2) --permanent:带有此选项的命令用于设置永久性规则,这些规则只有在重新启动 firewalld 或重新加载防火墙规则时才会生效;
若不带有此选项,表示用于设置运行时 规则。
(3)–runtime-to-permanent:将当前的运行时配置写入规则配置文件中,使之成为永久性


##########/etc/firewalld/中的配置文件########
(1)Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/bin/firewalld/中的配置
(2)/etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/bin/firewalld/中拷贝
(3)/usr/bin/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/中的配置
 

systemctl start|stop|status|reload|enable|disable firewalld ---含义自己猜
firewall-cmd  --state   ---查看防火墙状态
firewall-cmd --get-zones   ---查看预定义区域
firewall-cmd --get-service   ----查看预定义服务
firewall-cmd --get-icmptypes   ---查看预定义ICMP类型
#######ICMP类型######
firewall-cmd --get-icmptypes 命令的执行结果中各种阻塞类型的含义分别如下所示。
➢destination-unreachable: 目的地址不可达。
➢echo-reply: 应答回应(pong).
➢parameter- - problem:参数问题。
➢redirect: 重新定向。
➢router-advertisement:路由器通告。
➢router-solicitation: 路由器征寻。
➢source- quench:源端抑制。
➢time-exceeded: 超时。
➢timestamp-reply:时间戳应答回应。
➢timestamp-request: 时间戳请求。
########区域管理##########
firewall-cmd 命令可以实现获取和管理区域,为指定区域绑定网络接口等功能
(1)firewall-cmd 显示网络连接或接口的默认区域
(2)–set-default-zone= 设置网络连接或接口的默认区域
(3)–get-active-zones 显示已激活的所有区域
(4)–get-zone-of-interface= 显示指定接口绑定的区域
(5)–zone= --add-interface= 为指定接口绑定区域
(6)–zone= --change-interface= 为指定的区域更改绑定的网络接口
(7)–zone= --remove-interface= 为指定的区域删除绑定的网络接口
(8)–list-all-zones 显示所有区域及其规则
(9)[–zone=] --list-all 显示所有指定区域的所有规则,省略–zone=时表示仅 对默认区域操作
示例:
firewall-cmd  --get-default-zone  ---显示当前系统的默认区域
firewall-cmd  --list-all    ---显示默认区域的所有规则
firewall-cmd --get-zone-of-interface=ens33   ---显示网络接口 ens33 对应区域
firewall-cmd --zone=internal --change-interface=ens33   ---将网络接口 ens33 对应区域更改为 internal 区域
firewall-cmd --get-active-zones     ---显示所有激活区域

############服务管理###########
为 了 方 便 管 理 , firewalld 预 先 定 义 了 很 多 服 务 , 存 放 在 /usr/lib/firewalld/services/ 目录中,
服务通过单个的 XML 配置文件来指定。这些配置文件则按以下格式命名:service-name.xml,
每个文件对应一项具体的网络服务,如 ssh 服务等。与之对应的配置文件中记录了各项服务所使用的 tcp/udp 端口。
1、[–zone=] --list-services 显示指定区域内允许访问的所有服务
2、[–zone=] --add-service= 为指定区域设置允许访问的某项服务
3、[–zone=] --remove-service= 删除指定区域已设置的允许访问的某项服务
4、[–zone=] --list-ports 显示指定区域内允许访问的所有端口号
5、[–zone=] --add-port=[-]/  ---为指定区域设置允许访问的某个/某段端口号 (包括协议名)
6、[–zone=] --remove-port=[-]/     ---删除指定区域已设置的允许访问的端口号(包括 协议名)
7、[–zone=] --list-icmp-blocks 显示指定区域内拒绝访问的所有 ICMP 类型
8、[–zone=] --add-icmp-block= 为指定区域设置拒绝访问的某项 ICMP 类型
9、[–zone=] --remove-icmp-block= 删除指定区域已设置的拒绝访问的某项 ICMP 类 型,省略–zone=时表示对默认区域操作
示例:
firewall-cmd --list-services  --显示默认区域内允许访问的所有服务
firewall-cmd --add-service=http   ---设置默认区域允许访问 http 服务
firewall-cmd --add-service=https   ---设置默认区域允许访问 https 服务
firewall-cmd --zone=internal --add-service=mysql  ---设置 internal 区域允许访问 mysql 服务
firewall-cmd --zone=internal --remove-service=samba-client    ----设置 internal 区域不允许访问 samba-client 服务
firewall-cmd --zone=internal --list-services   ---显示 internal 区域内允许访问的所有服务

############端口管理##########
在进行服务配置时,预定义的网络服务可以使用服务名配置,服务所涉及的端口就会自
动打开。但是,对于非预定义的服务只能手动为指定的区域添加端口
firewall-cmd --zone=internal --add-port=443/tcp   ---在 internal 区域打开 443/TCP 端口
firewall-cmd --zone=internal --remove-port=443/tcp   ---在 internal 区域关闭 443/TCP 端口

#########两种配置模式##########
 firewall-cmd 命令工具有两种配置模式:运行时模式(Runtime mode)表示 当前内存中运行的防火墙配置,
 在系统或 firewalld 服务重启、停止时配置将失效;永久模 式(Permanent mode)表示重启防火墙或重新加载防火墙时的规则配置,
 是永久存储在配置 文件中的。
 firewall-cmd 命令工具与配置模式相关的选项有三个。
(1) --reload:重新加载防火墙规则并保持状态信息,即将永久配置应用为运行时配置。
(2) --permanent:带有此选项的命令用于设置永久性规则,这些规则只有在重新启动 firewalld 或重新加载防火墙规则时才会生效;
若不带有此选项,表示用于设置运行时 规则。
(3)–runtime-to-permanent:将当前的运行时配置写入规则配置文件中,使之成为永久性


##########/etc/firewalld/中的配置文件########
(1)Firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/bin/firewalld/中的配置
(2)/etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/bin/firewalld/中拷贝
(3)/usr/bin/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可直接删除/etc/firewalld/中的配置
 

iptables:

 yum -y install iptables-services.x86_64  ##安装
 systemctl   start iptables.service  ##启动
 iptables-save >/etc/iptables-script  ##永久生效
iptables --line -nvL INPUT   #查看入的规则 不-t表示默认filter
iptables -t filter -I INPUT 9 -p icmp -j DROP    #在filter中input方向添加第9号规则禁ping,思考为何是9号
iptables -t filter -D INPUT 9        #删除filter中input方向9号规则
常用命令:
-A 追加规则-->iptables -A INPUT
-D 删除规则-->iptables -D INPUT 1(编号)
-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)
-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位
-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则
-N 新的规则-->iptables -N allowed 定义新的规则

通用参数:
-p 协议  例:iptables -A INPUT -p tcp
-s源地址 例:iptables -A INPUT -s 192.168.1.1
-d目的地址 例:iptables -A INPUT -d 192.168.12.1
-sport源端口 例:iptables -A INPUT -p tcp --sport 22
-dport目的端口 例:iptables -A INPUT -p tcp --dport 22
-i指定入口网卡 例:iptables -A INPUT -i eth0
-o指定出口网卡 例:iptables -A FORWARD -o eth0

-j 指定要进行的处理动作
常用的ACTION:
DROP:丢弃
REJECT:明示拒绝
ACCEPT:接受
SNAT基于原地址的转换
source--指定原地址
    例:现在要将所有192.168.10.0网段的IP在经过的时候全都转换成172.16.100.1这个假设出来的外网地址:
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.1(外网有效ip)
这样,只要是来自本地网络的试图通过网卡访问网络的,都会被统统转换成172.16.100.1这个IP.
MASQUERADE(动态伪装)--家用带宽获取的外网ip,就是用到了动态伪装
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
DNAT目标地址转换
destination-指定目标地址
iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp --dport 80 -j DNAT --to-destination 172.16.100.2
10.18访问80端口转换到100.2上
MASQUERADE:源地址伪装
REDIRECT:重定向:主要用于实现端口重定向
MARK:打防火墙标记的
RETURN:返回 在自定义链执行完毕后使用返回,来返回原规则链。

链    (chain)
每个表都有自己的一组内置链,可以对链进行自定义,这样就可以建立一组规则,
filter表中的input、output和forward链

匹配(match)
每个iptables规则都包含一组匹配以及一个目标,iptables匹配指的是数据包必须匹配的条件,只有当
数据包满足所有的匹配条件时,iptables才能根据由该规则的目标所指定的动作来处理该数据包
匹配都在iptable的命令行中指定
source--匹配源ip地址或网络
destination (-d)--匹配目标ip地址或网络
protocol (-p)--匹配ip值
in-interface (-i)--流入接口(例如,eth0)
out-interface (-o)--流出接口
state--匹配一组连接状态
string--匹配应用层数据字节序列
comment--在内核内存中为一个规则关联多达256个字节的注释数据

目标(target)
iptables支持一组目标,用于数据包匹配一条规则时触发一个动作
ACCEPT--允许数据包通过
DROP--丢弃数据包,不对该数据包做进一步的处理,对接收栈而言,就好像该数据包从来没有被接收一样
LOG--将数据包信息记录到syslog
REJECT--丢弃数据包,同时发送适当的响应报文(针对TCP连接的TCP重要数据包或针对UDP数据包的ICMP端口不可达消息)
RETURN--在调用链中继续处理数据包

vi /etc/sysconfig/iptables 策略文件
vi /etc/sysconfig/iptables-config  配置文件

iptables缺省具有5条规则链
prerouting(内到外) forward(转发) postrouting(外到内)
         input(输入)        output(输出)


1.链管理命令(这都是立即生效的)
-P :设置默认策略的(设定默认门是关着的还是开着的)
    默认策略一般只有两种
    iptables -P INPUT (DROP|ACCEPT)
    默认是关的/默认是开的
    例::
    iptables -P INPUT DROP
这就把默认规则给拒绝了。并且没有定义哪个动作,所以关于外界连接的所有规则包括Xshell连接之类的,远程连接都被拒绝了
-F: FLASH,清空规则链的(注意每个链的管理权限)
    iptables -t nat -F PREROUTING
    iptables -t nat -F 清空nat表的所有链
    -N:NEW 支持用户新建一个链
    iptables -N inbound_tcp_web 表示附在tcp表上用于检查web的。
-X: 用于删除用户自定义的空链
    使用方法跟-N相同,但是在删除之前必须要将里面的链给清空昂了
-E:用来Rename chain主要是用来给用户自定义的链重命名
    -E oldname newname
-Z:清空链,及链中默认规则的计数器的(有两个计数器,被匹配到多少个数据包,多少个字节)
    iptables -Z :清空

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT大白鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值