win与Linux的防火墙配置

Windows防火墙

环境:

OS 名称:          Microsoft Windows 10 家庭中文版
OS 版本:          10.0.19042 暂缺 Build 19042
OS 制造商:        Microsoft Corporation
OS 配置:          独立工作站
OS 构建类型:      Multiprocessor Free
注册的所有人:     暂缺
注册的组织:       暂缺
系统制造商:       Timi
系统型号:         TM1701
系统类型:         x64-based PC

windows的防火墙比较简单,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果规则配置乱了,可以使用重置命令复原,命令如下:

netsh advfirewall reset

问题

  • 目前没有试过windows防火墙的执行策略是怎样的,会不会存在冲突的策略。如果冲突了究竟是按照啥原则来执行。
  • 在实际项目过程中遇到过配置了无法生效的情况,因为客观原因无法找到问题所在。当时是配置了阻断某IP段访问服务器的3389端口,但还是可以访问。

Linux防火墙

iptables

  • iptables严格按照顺序执行的。
# 清空规则
iptables -F

# 这个命令的好处是可以看到规则的编号,删除规则的时候有用。
iptables -L -n --line-numbers -v

# 对外开放ping包的返回。也就是别人可以ping通你的电脑
iptables -I INPUT -p icmp  -j ACCEPT

# 允许本地电脑和本地电脑所有的连接。
iptables -I INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# 这条命令极其重要,允许本地电脑访问出去的流量可以返回不阻断。
# 没有这条命令的话,例如:我访问了1.1.1.1的22端口,那么是不会建立成功。因为当1.1.1.1:22返回数据给我的时候,iptables会阻断的。
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# ip地址白名单,也就是说只有1.1.1.1来的数据包,都不阻断。
iptables -I INPUT -s 1.1.1.1 -j ACCEPT

# ip地址白名单,并开放指定端口。对19.16.19.0/24整个网段开放443端口
iptables -I INPUT -s 19.16.19.0/24 -p tcp --dport 443 -j ACCEPT

# 无条件允许数据发出去。
iptables -A OUTPUT -j ACCEPT

# 把入站连接改成默认阻断(不回包的阻断)。
iptables -P INPUT DROP

# 把入站连接改成默认允许。
iptables -P INPUT ACCEPT

# 删除入站规则的第一条规则。
iptables -D INPUT 1

# 删除出站规则的第一条规则。
iptables -D OUTPUT 1

# 刷新策略,就是应用生效的意思,但并不永久保存。
iptables-save

简单说明

root@hostname:~# iptables -L -n --line-numbers -v
Chain INPUT (policy DROP 12 packets, 936 bytes)  #入站连接默认动作是阻断。
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       10.129.8.211         0.0.0.0/0           
2        0     0 ACCEPT     all  --  *      *       19.15.15.56          0.0.0.0/0           
3     6822 2845K ACCEPT     all  --  *      *       10.130.7.96          0.0.0.0/0           
4        0     0 ACCEPT     all  --  *      *       19.15.75.246         0.0.0.0/0           
5        0     0 ACCEPT     all  --  *      *       19.15.60.47          0.0.0.0/0           
6        0     0 ACCEPT     all  --  *      *       192.168.190.64       0.0.0.0/0           
7        0     0 ACCEPT     all  --  *      *       192.168.156.43       0.0.0.0/0           
8        0     0 ACCEPT     all  --  *      *       19.16.5.7            0.0.0.0/0           
9        0     0 ACCEPT     all  --  *      *       19.16.5.6            0.0.0.0/0           
10     508 33404 ACCEPT     all  --  *      *       19.16.5.5            0.0.0.0/0           
11       0     0 ACCEPT     all  --  *      *       10.129.110.7         0.0.0.0/0           
12       0     0 ACCEPT     all  --  *      *       10.129.110.6         0.0.0.0/0           
13       0     0 ACCEPT     all  --  *      *       10.129.110.5         0.0.0.0/0           
14   32519 8881K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
15     331 82708 ACCEPT     all  --  *      *       127.0.0.1            127.0.0.1           
16       0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) # 出站默认动作是允许。
num   pkts bytes target     prot opt in     out     source               destination         
1    41114   14M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0          

永久保存防火墙策略

方法一

配置永久保存

配置启动后自动加载最新的防火墙规则

(一)新建文件:
vi /etc/network/if-pre-up.d/iptables

(二)输入文件内容如下:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.up.rules
赋予执行权限

(三)赋予权限
chmod +x /etc/network/if-pre-up.d/iptables

保存文件自动刷新

(四)执行保存
root@MM:/home/nnb# iptables-save > /etc/iptables.up.rules

或者使用重定向输出方法

可以使用 iptables-save 命令,再配合重定向,将规则重定向到 /etc/sysconfig/iptables 文件中即可。

iptables-save > /etc/sysconfig/iptables

方法二

当我们对规则进行了修改以后,如果想要修改永久生效,必须使用下面命令保存规则:

service iptables save

当然,如果你误操作了规则,但是并没有保存,那么使用 service iptables restart 命令重启 iptables 以后,规则会再次回到上次保存 /etc/sysconfig/iptables 文件时的模样。

centos7 中,已经不再使用 init 风格的脚本启动服务,而是使用 unit 文件,所以,在 centos7 中已经不能再使用类似 service iptables start 这样的命令了,所以 service iptables save 也无法执行,同时,在 centos7中,使用 firewall 替代了原来的 iptables service,不过不用担心,我们只要通过 yum 源安装 iptables与iptables-services 即可(iptables 一般会被默认安装,但是iptables-services 在 centos7 中一般不会被默认安装),在centos7 中安装完 iptables-services 后,即可像 centos6 中一样,通过 service iptables save 命令保存规则了,规则同样保存在 /etc/sysconfig/iptables 文件中。此处给出 centos7 中配置 iptables-service 的步骤:

#配置好yum源以后安装iptables-service
yum install -y iptables-services
#停止firewalld
systemctl stop firewalld
#禁止firewalld自动启动
systemctl disable firewalld
#启动iptables
systemctl start iptables
#将iptables设置为开机自动启动,以后即可通过iptables-service控制iptables服务
systemctl enable iptables

上述配置过程只需一次,以后即可在 centos7 中使用 service iptables save 命令保存 iptables 规则了。

加载规则

我们也可以将 /etc/sysconfig/iptables 中的规则重新载入为当前的iptables 规则,但是注意,未保存入 /etc/sysconfig/iptables 文件中的修改将会丢失或者被覆盖。

使用 iptables-restore 命令可以从指定文件中重载规则,示例如下

iptables-restore < /etc/sysconfig/iptables

日志记录

LOG 动作默认会将报文的相关信息记录在/var/log/message文件中,当然,我们也可以将相关信息记录在指定的文件中,以防止 iptables 的相关信息与其他日志信息相混淆,修改 /etc/rsyslog.conf 文件(或者 /etc/syslog.conf),在 rsyslog 配置文件中添加如下配置即可:

kern.warning /var/log/iptables.log

完成上述配置后,重启rsyslog服务(或者syslogd):

service rsyslog restart

LOG 动作也有自己的选项,常用选项如下:

  • –log-level 选项可以指定记录日志的日志级别,可用级别有 emerg,alert,crit,error,warning,notice,info,debug。
  • –log-prefix 选项可以给记录到的相关信息添加”标签”之类的信息,以便区分各种记录到的报文信息,方便在分析时进行过滤。–log-prefix 对应的值不能超过 29 个字符。

比如,我想要将主动连接22号端口的报文的相关信息都记录到日志中,并且把这类记录命名为”want-in-from-port-22″,则可以使用如下命令:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j LOG --log-prefix "want-in-from-port-22"

完成上述配置后,我在IP地址为 192.168.1.98 的客户端机上,尝试使用 ssh 工具连接上例中的主机,然后查看对应的日志文件(已经将日志文件设置为 /var/log/iptables.log):
在这里插入图片描述
如上图所示,ssh 连接操作的报文的相关信息已经被记录到了 iptables.log 日志文件中,而且这条日志中包含”标签”:want-in-from-port-22,如果有很多日志记录,我们就能通过这个”标签”进行筛选了,这样方便我们查看日志,同时,从上述记录中还能够得知报文的源IP与目标IP,源端口与目标端口等信息,从上述日志我们能够看出,192.168.1.98 这个 IP 想要在 14点11分 连接到 192.168.1.139(当前主机的 IP)的22号端口,报文由eth4网卡进入,eth4 网卡的 MAC 地址为 00:0c:29:b7:f4:d1,客户端网卡的 MAC 地址为 f4:8e:38:82:b1:29。

参考链接

https://www.bookstack.cn/read/linux-command-1.6.0/command-iptables.md

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值