首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux防火墙-常用命令

Linux防火墙-常用命令

作者头像
运维小路
发布2024-11-01 19:42:36
发布2024-11-01 19:42:36
29400
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

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

Linux防火墙-什么是防火墙

Linux防火墙-4表5链

Linux防火墙-filter表

Linux防火墙-nat表

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

Linux防火墙-案例(一)

Linux防火墙-案例(二)

Linux防火墙-小结

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

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

基本命令格式

代码语言:javascript
代码运行次数:0
运行
复制
iptables [选项] [链] [匹配条件] [目标]

选项

代码语言:javascript
代码运行次数:0
运行
复制
-A 添加规则到末尾
-I 添加规则到最前面
-D 删除规则
-N 创建链(为了将同类的内容放置到一起)

代码语言:javascript
代码运行次数:0
运行
复制
-t 表 -L 链
#默认表是filter

匹配条件

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

目标

代码语言:javascript
代码运行次数:0
运行
复制
-j ACCEPT 允许
-j DROP 丢弃,不回包给源
-j REJECT 拒绝,会告诉源我拒绝你了
-j RETURN 继续

常用命令

显示规则

查看所有表上的规则

代码语言:javascript
代码运行次数:0
运行
复制
iptables -L
#默认是显示filter链,如果要显示其他链
iptables -L -t nat

查看特定链上的规则

代码语言:javascript
代码运行次数:0
运行
复制
iptables -L INPUT -t nat

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

代码语言:javascript
代码运行次数:0
运行
复制
iptables -L --line-numbers
#这个是为了后期通过行号删除

清空规则

清空某个链中的所有规则

代码语言:javascript
代码运行次数:0
运行
复制
iptables -F INPUT

清空所有链中的所有规则

代码语言:javascript
代码运行次数:0
运行
复制
iptables -F
#清空规则的的时候要确保默认规则是允许的,否则会被自己给屏蔽

清除NAT表的所有规则

代码语言:javascript
代码运行次数:0
运行
复制
iptables -t nat -F

设置所有链的默认策略

代码语言:javascript
代码运行次数:0
运行
复制
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#一般只需要设置filter表下dd INPUT需要这样配置

添加规则

允许所有入站流量

代码语言:javascript
代码运行次数:0
运行
复制
iptables -A INPUT -j ACCEPT

允许特定端口的TCP流量

代码语言:javascript
代码运行次数:0
运行
复制
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

拒绝特定端口的TCP流量

代码语言:javascript
代码运行次数:0
运行
复制
iptables -A INPUT -p tcp --dport 22 -j DROP

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

代码语言:javascript
代码运行次数:0
运行
复制
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
删除规则

删除特定规则

代码语言:javascript
代码运行次数:0
运行
复制
iptables -D INPUT 1

删除特定条件的规则

代码语言:javascript
代码运行次数:0
运行
复制
iptables -D INPUT -p tcp --dport 80 -j ACCEP

其他命令

保存规则到文件

代码语言:javascript
代码运行次数:0
运行
复制
iptables-save > /etc/iptables/rules.v4

加载规则从文件

代码语言:javascript
代码运行次数:0
运行
复制
iptables-restore < /etc/iptables/rules.v4

总结

  1. 由于iptables是顺序执行,所以如果插入到最前面和追加到最后面是有区别的,需要注意。
  2. 如果在INPUT链里面默认是DROP的情况下,千万不要执行-F清空规则,否则会把自己关在外面。
  3. 添加顺序是先允许,后拒绝。
  4. 这里的的规则都是临时性的,重启将丢失。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本命令格式
  • 常用命令
    • 显示规则
    • 删除规则
  • 其他命令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档