linux 的防火墙 ufw、firwalld、iptables 、
防火墙综述
linux
防火墙,常用的包括三种:ufw
、 firewalld
和 iptables
。学习难度依次递增。
ufw
因为原生的 iptable
配置麻烦,学习成本较高。 ufw
全称 Uncomplicated Firewall
是 ubuntu
提供的一个 iptables
的接口。同时支持 ipv4
和 ipv6
。
最新版的UFW默认启用了IPV6配置,你也可以通过以下命令进行检查:
# cat /etc/default/ufw | grep -i ipv6
IPV6=yes
默认策略
默认情况下,UFW
设置了:禁止所有流量转入,允许所有流量转出。(这点和 iptable 的默认允许所有流量转入不同)。
我们也可以更改此默认配置:
cat /etc/default/ufw |grep -i default_input # 加 -i 是关闭大小写区分。
DEFAULT_INPUT_POLICY="DROP"
规则设置
允许 80 端口的 tcp 流量包进入
sudo ufw allow 22/tcp
拒绝 88 端口的 tcp 流量包进入与流出
sudo ufw deny 88/tcp
允许特定的 ip 源的访问
sudo ufw allow from 192.168.1.1
firewall
Centos7
以上的发行版都试自带了firewalld
防火墙的,firewalld
去带了iptables
防火墙。其原因是iptables
的防火墙策略是交由内核层面的netfilter
网络过滤器来处理的,而firewalld则是交由内核层面的nftables
包过滤框架来处理。 相较于iptables
防火墙而言,firewalld
支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld
预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
关于 firewall 防火墙配置,需要注意的是:
这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。
规则配置
- 默认域的配置
firewall-cmd --list-all
- 应急命令
firewall-cmd --panic-on # 拒绝所有流量,远程连接会立即断开,只有本地能登陆
firewall-cmd --panic-off # 取消应急模式,但需要重启firewalld后才可以远程ssh
firewall-cmd --query-panic # 查看是否为应急模式
- 端口
firewall-cmd --add-port=<port>/<protocol> # 添加端口/协议(TCP/UDP)
firewall-cmd --remove-port=<port>/<protocol> # 移除端口/协议(TCP/UDP)
firewall-cmd --list-ports # 查看开放的端口
iptables
iptables 的结构
iptables -> Tables -> Chains -> Rules
简单地讲,tables由chains组成,而chains又由rules组成。iptables 默认有四个表Filter, NAT, Mangle, Raw,其对于的链如下图。
参考文献
https://zhuanlan.zhihu.com/p/98880088
https://www.cnblogs.com/stulzq/p/9808504.html
https://wooyun.js.org/drops/Iptables入门教程.html
最新文章
- CentOS 新增swap交换空间
- Gvim常用命令
- Java JDK 环境变量配置
- python3 filter用法(举例求0~n之间的素数)
- awk过滤数据
- DataTable模拟
- (转)javascript中的对象查找
- bzoj 2243: [SDOI2011]染色
- 转载:node.js socket.io
- python学习应用笔记(一)
- JS判断是否为安卓orIOS
- A simple json-rpc case for bitcoin blockchains
- UpdataData
- Kotlin——最详解的类(class)的使用
- 让自己写的项目支持Cocoapods管理
- 尽量用pass-by-reference-to-const(const引用)替换pass-by-value(传值)
- Adobe系列产品卸载不干净怎么解决
- IntellijIDEA快速入门(Windows版)
- mysql自动化测试第一个例子
- 适配器模式和外观模式(head first设计模式——6)