当前位置: 首页 > news >正文

Linux防火墙-常用命令

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主,而云服务器基本上就不会使用系统自带的防火墙,而是使用安全组来代替了防火墙的功能,可以简单理解安全组就是web版的防火墙,我们主要从以下几个方面来讲解Linux防火墙:

Linux防火墙-什么是防火墙

Linux防火墙-4表5链

Linux防火墙-filter表

Linux防火墙-nat表

Linux防火墙-常用命令(本章节)

Linux防火墙-案例(一)

Linux防火墙-案例(二)

Linux防火墙-小结

iptables就是通过命令去控制防火墙的规则,虽然我们在讲filter和nat表的时候讲了几个命令,本节就主要讲解常用的命令。

iptables 是 Linux 中用于配置网络过滤规则的工具,它允许系统管理员设置防火墙规则来控制进出网络的数据包。下面是一些常用的 iptables 命令及其说明。

基本命令格式

iptables [选项] [链] [匹配条件] [目标]

选项

-A 添加规则到末尾
-I 添加规则到最前面
-D 删除规则
-N 创建链(为了将同类的内容放置到一起)

-t 表 -L 链
#默认表是filter

匹配条件:​​​​​​​

-p 协议类型,包括tcp,udp,icmp
-s 来源ip地址,支持网段
-d 目标ip地址,支持网段
--sport 源端口(一般需要配合-s和-d使用)
--dport 目标端口(一般需要配合-s和-d使用)
-i 进入网卡
-o 流出网卡
--state 连接状态(涉及到tcp的协议状态)
--string 匹配数据包内容(使用较少)

目标:​​​​​​​

常用命令

显示规则

查看所有表上的规则​​​​​​​

iptables -L
#默认是显示filter链,如果要显示其他链
iptables -L -t nat

查看特定链上的规则

iptables -L INPUT -t nat

查看所有链上的规则,并显示行号​​​​​​​

iptables -L --line-numbers
#这个是为了后期通过行号删除

清空规则

清空某个链中的所有规则

iptables -F INPUT

清空所有链中的所有规则​​​​​​​

iptables -F
#清空规则的的时候要确保默认规则是允许的,否则会被自己给屏蔽

清除NAT表的所有规则

iptables -t nat -F

设置所有链的默认策略

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#一般只需要设置filter表下dd INPUT需要这样配置

添加规则

允许所有入站流量

iptables -A INPUT -j ACCEPT

允许特定端口的TCP流量

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

拒绝特定端口的TCP流量

iptables -A INPUT -p tcp --dport 22 -j DROP

允许来自特定IP地址的流量

iptables -A INPUT -s 192.168.1.100 -j ACCEPT

删除规则

删除特定规则

iptables -D INPUT 1

删除特定条件的规则

iptables -D INPUT -p tcp --dport 80 -j ACCEP

其他命令

保存规则到文件

iptables-save > /etc/iptables/rules.v4

加载规则从文件

iptables-restore < /etc/iptables/rules.v4

总结

  1. 由于iptables是顺序执行,所以如果插入到最前面和追加到最后面是有区别的,需要注意。

  2. 如果在INPUT链里面默认是DROP的情况下,千万不要执行-F清空规则,否则会把自己关在外面。

  3. 添加顺序是先允许,后拒绝。

  4. 这里的的规则都是临时性的,重启将丢失。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

http://www.lryc.cn/news/454485.html

相关文章:

  • C++:STL常用算法随笔
  • Python NumPy学习指南:从入门到精通
  • Flutter笔记--通知
  • Aegisub字幕自动化及函数篇(图文教程附有gif动图展示)(二)
  • 系统分析师16:系统测试与维护
  • 详解Java中的堆内存
  • C++类和对象下详细指南
  • 【瑞昱RTL8763E】音频
  • videojs 播放监控
  • 电源管理芯片PMIC
  • C++ 线性表、内存操作、 迭代器,数据与算法分离。
  • PHP如何解析配置文件
  • 【Java】六大设计原则和23种设计模式
  • Java IO流全面教程
  • PCIe6.0 AIC金手指和板端CEM连接器信号完整性设计规范
  • 二、创建drf纯净项目
  • 算法1:双指针思想的运用(2)--C++
  • L1415 【哈工大_操作系统】CPU调度策略一个实际的schedule函数
  • 免费版U盘数据恢复软件大揭秘,拯救你的重要数据
  • Pikachu-Unsafe FileUpload-客户端check
  • 【数据结构】什么是红黑树(Red Black Tree)?
  • Xcode16适配
  • Vue - 路由用法
  • SpringBoot框架下校园资料库的构建与优化
  • vscode 连接云服务器(ubantu 20.04)
  • 【SpringBoot详细教程】-09-Redis详细教程以及SpringBoot整合Redis【持续更新】
  • 排序算法之——归并排序,计数排序
  • Linux中环境变量
  • 163页PPT罗兰贝格品牌战略升级:华为案例启示与电器集团转型之路
  • 系统设计,如何设计一个秒杀功能