iptables与Firewalld防火墙

之前也没街粗过  防火墙方面可以说是一窍不通

iptables

iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:

在进行路由选择前处理数据包(PREROUTING);

处理流入的数据包(INPUT);

处理流出的数据包(OUTPUT);

处理转发的数据包(FORWARD);

在进行路由选择后处理数据包(POSTROUTING)。

一般来说,从内网向外网发送的流量一般都是可控且良性的,因此我们使用最多的就是INPUT规则链,该规则链可以增大黑客人员从外网入侵内网的难度。

iptables服务的术语中分别是ACCEPT(允许流量通过)、REJECT(拒绝流量通过)、LOG(记录日志信息)、DROP(拒绝流量通过)。

当把Linux系统中的防火墙策略设置为REJECT拒绝动作后,流量发送方会看到端口不可达的响应

而把Linux系统中的防火墙策略修改成DROP拒绝动作后,流量发送方会看到响应超时的提醒。但是流量发送方无法判断流量是被拒绝,还是接收方主机当前不在线:

这就是两种拒绝的差异

在iptables命令后添加-L参数查看已有的防火墙规则链:

[root@linuxprobe ~]# iptables -L

在iptables命令后添加-F参数清空已有的防火墙规则链:

[root@linuxprobe ~]# iptables -F

把INPUT规则链的默认策略设置为拒绝:

[root@linuxprobe ~]# iptables -P INPUT DROP

在刚刚使用xshell执行了这个命令后 ssh协议都不能用了 xshell直接不能使用连接不到虚拟机了

不过没事我们添加一条允许我们网段访问就好

向INPUT链中添加允许ICMP流量进入的策略规则:

[root@linuxprobe ~]# iptables -I INPUT -p icmp -j ACCEPT

有添加就有删除 删除INPUT规则链中刚刚加入的那条策略(允许ICMP流量),并把默认策略设置为允许:

[root@linuxprobe ~]# iptables -D INPUT 1

在日常运维工作中经常会使用到ping命令来检查对方主机是否在线,而向防火墙INPUT链中添加一条允许icmp协议数据包流入的策略就是默认允许了这种ping命令检测行为。

刚刚我们不是把进来的默认策略关闭了吗 现在我们把他设置为允许

[root@linuxprobe ~]# iptables -P INPUT ACCEPT
将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量:

[root@linuxprobe ~]# iptables -I INPUT -s 192.168.43.0/24 -p tcp --dport 22 -j ACCEPT

我是43网段的大家网段可自行查看 然后拒绝来自其他所有主机的流量

[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT

这里的22号端口是ssh服务使用的  -j 后面就是刚刚上面讲的允许 与拒绝

防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将被拒绝掉,从而导致任何主机都无法访问我们的服务

iptables命令配置的防火墙规则默认会在系统下一次重启时失效,如果想让配置的防火墙策略永久生效,还要执行保存命令:

[root@linuxprobe ~]# service iptables save

firewalld防火墙就我刚刚学习而言 我觉得比iptables要打脑壳一点 他们的共同点都是命令的使用

就是这个命令长一点 要难记一点





查看firewalld服务当前所使用的区域:

[root@linuxprobe ~]# firewall-cmd --get-default-zone

查询网卡在firewalld服务中的区域:

[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=网卡名

把firewalld服务中8网卡的默认区域修改为external,并在系统重启后生效。分别查看当前与永久模式下的区域名称:

[root@linuxprobe ~]# firewall-cmd --permanent --zone=external --change-interface=eno16777728
success      修改成功
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=eno16777728
public    当前模式
[root@linuxprobe ~]# firewall-cmd --permanent --get-zone-of-interface=eno16777728
external   永久模式

把firewalld服务的当前默认区域设置为public:

[root@linuxprobe ~]# firewall-cmd --set-default-zone=public

启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用):

[root@linuxprobe ~]# firewall-cmd --panic-on   启动应急模式 阻断一切  远程服务会中断
[root@linuxprobe ~]# firewall-cmd --panic-off    关闭应急模式

查询public区域是否允许请求SSH和HTTPS协议的流量:

[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=ssh

如果查看到是不允许 而我们想设置为允许是 把firewalld服务中请求HTTPS协议的流量设置为永久允许,并立即生效: 

[root@linuxprobe ~]# firewall-cmd --zone=public --add-service=https
success       这不其实可以省略  直接设置下一步用户允许就好啊
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@linuxprobe ~]# firewall-cmd --reload
success

把firewalld服务中请求HTTP协议的流量设置为永久拒绝,并立即生效:

[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --remove-service=http 
success
[root@linuxprobe ~]# firewall-cmd --reload 
success

把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效:

[root@linuxprobe ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
[root@linuxprobe ~]# firewall-cmd --zone=public --list-ports 
8080-8081/tcp

把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:

流量转发命令格式为firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto
=tcp:toport=22:toaddr=IP地址

firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的。比如,我们可以在firewalld服务中配置一条富规则,使其拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务(22端口):

 
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv
4" source address="192.168.10.0/24" service name="ssh" reject"

图形管理工具 使用firewall-config命令可以进入图形化界面
服务的访问控制列表  TCP Wrappers服务

制列表文件修改后会立即生效,系统将会先检查允许控制列表文件(/etc/hosts.allow),

如果匹配到相应的允许策略则放行流量;如果没有匹配,则去进一步匹配拒绝控制列表文件(/etc/hosts.deny),

若找到匹配项则拒绝该流量。如果这两个文件全都没有匹配到,则默认放行流量。



























 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值