LInux服务——firewall

之前的好多篇博客都讲了关于Linux中的各种服务,这次继续说说比较重要的,为我们的电脑保驾护航的服务:防火墙。

关于Linux的防火墙,首先要知道Linux的防火墙分为好多种,但都是建立在对内核的控制上的。

RHEL中有几种防火墙共存

  • iptables
  • firewalld
  • ip6tables
  • ebtables

这些软件本身其实并不具备防火墙功能,他们的作用都是在用户空间中管理和维护规则,只不过规则结构和使用方法不一样罢了,真正利用规则进行过滤是由内核的netfilter完成的

这里主要说两种防火墙的控制及操作方式:firewalld,iptables


firewalld不是防火墙,只是用来管理防火墙的一款软件,对iptables进行操作,之后会对内核进行修改,另外一种方式是IPTABLES
真正的防火墙是IPTABLES,内核读取,firewalld更接近,类似于windows,iptables更类似于网络路由器(使用复杂但是功能强大)

防火墙功能计算机都是自带的,所以直接打开防火墙的图形操作模式就可以了。

firewalld-config

Firewalld分为许多不同的工作模式(网络区)


firewall的基本操作          ##往后所有防火墙的控制命令中如果添加了--permanent,都是永久更改,重启服务后才生效,不添加就是临时更改,重启服务后消失。

#firewall-cmd --state                                          ##查看防火墙的状态

#firewall-cmd --get-active-zones                        ##查看正在运行中的网络区

#firewall-cmd --get-default-zone                        ##查看默认的网络区

#firewall-cmd --zone=public --list-all                  ##查看public网络区的所有信息

#firewall-cmd --set-default-zone=dmz                ##设立默认网络区为dmz

#firewall-cmd --get-zones            ##查看防火墙所有的网络区

#firewall-cmd --get-services         ##查看防火墙所有的服务

#firewall-cmd --list-all-zones        ##查看防火墙所有网络区的详细信息

/usr/lib/firewalld/services ##这个目录下的文件标示的便是firewalld可通过的所有服务的名称,xml为可扩展标记语言,可用作数据封装,就是说这个文件中可写入命令,系统会自动执行。


其中写入的内容主要就是这个服务通过哪一个端口提供,如果防火墙要开启这一个服务的通过权限,那么开启端口就可以了。

#firewall-cmd --zone=public --add-source=172.25.254.54/24                 ##强制172.25.254.54这个IP在登陆时进入public网络区

#firewall-cmd --zone=public --remove-source=172.25.254.54/24           ##不对172.25.254.54这个IP进行制约。

#firewall-cmd --zone=internal --add-interface=eth0                ##将eth0这块网卡填加至internal网络区中(通过这个网络区提供的服务都由eht0这块网卡支持,但是前提是这块网卡不能被其他网络区使用,不然就无法填加。)

#firewall-cmd--zone=internal --change-interface=eth0           ##将eth0这块网卡从它原有提供服务的网络区上转移至internal网络区,并且不在对原有的网络区提供服务

#firewall-cmd--zone=internal --remove-interface=eth0            ##将eth0这块网卡删除


填加服务

#firewall-cmd --zone=public --add-service=http                    ##让public这个网络区可以通过http服务。实际就是打开上文提到的那个目录下http.xml文件中需要打开的端口,如果你的http服务要通过的端口发生了更改,那么firewall就不会让通过,那么如何更改:点击打开链接

#firewall-cmd --zone=public --remove-service=http               ##删除http服务的通过权力


#firewall-cmd --zone=public --add-port=8080/tcp(udp)                  ##让public这个网络区可以通过tcp(udp)模式的8080端口(所有经过这个端口的服务防火墙都不会禁止)

#firewall-cmd --zone=public --remove-port=8080/tcp             ##删除通过权力

#firewall-cmd --reload                    ##不重启服务的情况下更新更改与规则,临时更改会消失

#firewall-cmd --complete-reload    ##更新时会中断其他通过防火墙的连接

规则的写入

#firewall-cmd --direct --get-all-rules                  ##查看所有规则

#firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.54 --dport 22 -j REJECT                ##在filter表(filter表是默认表,功能是对数据包做过滤。此表有三条链(iptables -t filter -L -n,用此命令查看),分别是:INPUT、FORWARD、OUTPUT。)中填加一个规则,内容是不允许172.25.254.54这个IP的主机通过22端口


IP转移

在做接下来的实验的时候,我们需要一个拥有两个网卡的虚拟机(称为服务端)


首先在真机上面查询虚拟机与真机共同使用的网桥可支持哪一个网段的


之后将服务端的两个IP进行修改,写入规则

打开伪装功能(firewall允许其他主机使用自己的IP做伪装)

允许本机的两个不同网段的网卡进行通信(硬件方面)


修改完成之后使用真机连接,会直接连接至服务端转移的那个IP上

这些主要就是firewalld的简单用法下来说到功能更加全面的iptables

安装完成后要关闭firewalld因为系统中所有的防火墙都不可以兼容。

iptables -t filter -nL    ##查看filter表中的规则

文件则是在/etc/sysconfig/iptables

iptables -A (添加)INPUT -i lo (当你访问回环接口的时候) -j ACCEPT
iptables -A INPUT -s 172.25.254.54 -p tcp --dport 22(ssh的,80是apache的) -j ACCEPT
iptables -P INPUT DROP 将iptables的input改为DROP模式
iptables -A input -j REJECT 将iptables的input所有都改成REJECT模式
但是这个策略的读取顺序是上下顺序的,当上面的一条策略被读取,下面的一条就不会被读取了。而且重启之后就没有了。

iptables -F ##刷新策略

所以这个策略的实际内容就是:只有54主机与使用回环接口的主机才可以通过ssh连接,其他的主机连接时不会有反馈,这就是DROP与REJECT的差别

从其他地方下载下来的。在这里与大家分享。 内容简介   《Linux防火墙》创造性地将防火墙技术和入侵检测技术相结合,充分展示开源软件的威力。书中全面阐述了iptables防火墙,并详细讨论了如何应用psad、fwsnort、fwknop 3个开源软件最大限度地发挥iptables检测和防御攻击的效力。大量真实例子以及源代码更有助于读者理解安全防御的原理、技术和实际作。 作者简介   Michael Rash,世界级的安全技术专家,以防火墙、入侵检测系统等方面的造诣享誉安全界。他是psad、fwsnort和fWknop等著名开源安全软件的开发者。也是屡获大奖的Dragon入侵防御系统的安全架构师。除本书外.他还与人合撰Snort 2.1 Intrusion Detection和Intrusion Prevention and Active Response。他同时还是Linux Joumal、SysAdmin和login等著名技术媒体的专栏作家。 目录   第1章 iptables使用简介 1   1.1 iptables 1   1.2 使用iptables进行包过滤 2   1.2.1 表 2   1.2.2 链 2   1.2.3 匹配 3   1.2.4 目标 3   1.3 安装iptables 4   1.4 内核配置 5   1.4.1 基本Netfilter编译选项 6   1.4.2 结束内核配置 7   1.4.3 可加载内核模块与内置编译和安全 7   1.5 安全性和最小化编译 9   1.6 内核编译和安装 9   1.7 安装iptables用户层二进制文件 10   1.8 默认iptables策略 11   1.8.1 策略需求 11   1.8.2 iptables.sh脚本的开头 12   1.8.3 INPUT链 13   1.8.4 OUTPUT链 15   1.8.5 FORWARD链 15   1.8.6 网络地址转换 16   1.8.7 激活策略 17   1.8.8 iptables-save与iptables-restore 18   1.8.9 测试策略:TCP 20   1.8.10 测试策略:UDP 21   1.8.11 测试策略:ICMP 22   1.9 本章总结 23   第2章 网络层的攻击与防御 24   2.1 使用iptables记录网络层首部信息 24   2.2 网络层攻击的定义 27   2.3 滥用网络层 28   2.3.1 Nmap ICMP Ping 28   2.3.2 IP欺骗 28   2.3.3 IP分片 30   2.3.4 低TTL值 30   2.3.5 Smurf攻击 31   2.3.6 DDoS攻击 32   2.3.7 Linux内核IGMP攻击 32   2.4 网络层回应 33   2.4.1 网络层过滤回应 33   2.4.2 网络层阈值回应 33   2.4.3 结合多层的回应 34   第3章 传输层的攻击与防御 35   3.1 使用iptables记录传输层首部 35   3.1.1 记录TCP首部 35   3.1.2 记录UDP首部 37   3.2 传输层攻击的定义 38   3.3 滥用传输层 38   3.3.1 端口扫描 38   3.3.2 端口扫射 46   3.3.3 TCP序号预测攻击 46   3.3.4 SYN洪泛 47   3.4 传输层回应 47   3.4.1 TCP回应 47   3.4.2 UDP回应 50   3.4.3 防火墙规则和路由器ACL 51   第4章 应用层的攻击与防御 53   4.1 使用iptables实现应用层字符串匹配 53   4.1.1 实际观察字符串匹配扩展 54   4.1.2 匹配不可打印的应用层数据 55   4.2 应用层攻击的定义 56   4.3 滥用应用层 56   4.3.1 Snort签名 57   4.3.2 缓冲区溢出攻击 57   4.3.3 SQL注入攻击 59   4.3.4 大脑灰质攻击 60   4.4 加密和应用层编码 62   4.5 应用层回应 63   第5章 端口扫描攻击检测程序psad简介 64   5.1 发展历史 64   5.2 为何要分析防火墙日志 64   5.3 psad特性 65   5.4 psad的安装 65   5.5 psad的 67   5.5.1 启动和停止psad 68   5.5.2 守护进程的唯一性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值