作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们经过上小章节讲了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
总结
-
由于iptables是顺序执行,所以如果插入到最前面和追加到最后面是有区别的,需要注意。
-
如果在INPUT链里面默认是DROP的情况下,千万不要执行-F清空规则,否则会把自己关在外面。
-
添加顺序是先允许,后拒绝。
-
这里的的规则都是临时性的,重启将丢失。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。