拥抱firewalld,但也别忘了iptables——上篇(iptables详解)
来源:互联网 发布:whois域名查询系统 编辑:程序博客网 时间:2024/06/06 19:05
拥抱firewalld,但也别忘了iptables——上篇(iptables详解)
从CentOS7(RHEL7)开始,官方的标准防火墙设置软件从iptables变更为firewalld,但是我个人认为对iptables稍加了解仍十分有必要,甚至感觉iptables就是firewalld的前端软件。
iptables的语法组成
$ iptables [-t 规则表] 命令选项 规则链 [条件匹配] [跳转动作]
规则表
iptables将对于数据包的控制分给4个规则表完成,各自在不同的场合发挥作用。它们分别是“filter表”、“nat表”、“mangle表”、“raw表”。
1.filter表
filter表负责数据包的接收或者拒绝,我们最常接触的就是它。
如果直接修改配置文件/etc/sysconfig/iptables
,则常是如下格式。
*filter #在这里编写filter的配置COMMIT
当然你也可以使用命令来添加filter规则:
# 使用命令往filter表格中添加以下规则:直接丢弃端口80接收到的数据包$ iptables -t filter -p tcp --dport 80 -j -DROP
因为默认的规则表就是filter,因此这部分可以省略,如下:
$ iptables -p tcp --dport 80 -j -DROP
2.nat表
所谓NAT,就是网络地址转换,主要通过修改数据包中的传输源地址和目的地址来实现。常用于将数据包根据某些规则分发到本地局域网的各台服务器上,实现负载均衡或者IP地址复用扩展。
如果直接修改配置文件/etc/sysconfig/iptables
,则常是如下格式。
*nat #在这里编写nat的配置COMMIT
当然你也可以使用命令来添加nat规则:
# 把访问202.103.96.112的访问转发到192.168.0.112上(PREROUTING可理解为流入的数据包)$ iptables -t nat -A PREROUTING -d 202.103.96.112 -j DNAT --to-destination 192.168.0.112
# 把即将要流出本机的数据的源ID地址修改成为58.20.51.66(POSTROUTING可理解为流出的数据包)iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 58.20.51.66
3.mangle表
mangle表主要负责管理各数据包处理的优先级,常用于改善通信质量,其实现方式主要是修改TOS(服务类型)的值。
如果直接修改配置文件/etc/sysconfig/iptables
,则常是如下格式。
*mangle #在这里编写mangle的配置COMMIT
当然你也可以使用命令来添加mangle规则:
# 将80端口的通信服务类型设置为高吞吐量$ iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TOS --set-tos Maximize-Throughput
4.raw表
raw表的功能与mangle表有点类似,都是可以给特定的数据包附加标记,最常见的就是附加NOTRACK标记。也就是不经过防火墙,不对该数据包进行任何跟踪而交由其他机器负责处理。
例如,你发现机器因为大量的DNS解析服务负荷则造成通信质量下降,因此决定使用负载均衡把DNS相关的数据包交给其他服务器来处理,这时候只需要为端口53添加NOTRACK标记就可以了。
$ iptables -t raw -I PREROUTING -p udp --dport 53 -j NOTRACK$ iptables -t raw -I OUTPUT -p udp --dport 53 -j NOTRACK
表之间的优先顺序
Raw——mangle——nat——filter
规则链
规则表和规则链的对照关系
命令选项
条件匹配
“-j”:对于匹配成功的对象执行跳转动作
保存规则
使用iptables命令创建的规则列表通常只保存在内存,机器重启后就会消失,我们可以使用以下命令把它保存到/etc/sysconfig/iptables文件中。
$ service iptables save
- 拥抱firewalld,但也别忘了iptables——上篇(iptables详解)
- 拥抱firewalld,但也别忘了iptables——下篇(firewalld详解)
- firewalld(iptables)
- 火墙——firewalld and iptables
- iptables&firewalld
- iptables firewalld
- firewalld&iptables
- iptables& firewalld
- firewalld & iptables
- firewalld & iptables
- iptables&firewalld
- 防火墙(firewalld与iptables)
- Iptables与Firewalld防火墙
- iptables替换firewalld
- 06-IPTABLES.FIREWALLD防火墙
- firewalld和iptables
- iptables&firewalld防火墙
- Iptables与Firewalld防火墙
- CentOS安装MPlayer
- 移动应用,原生?Web?混合式?
- 机器学习中产生overfitting的可能性和解决overfitting的方法
- jupyter notebook 增加kernel的方法
- 深度学习神经网络从欠拟合到拟合的调整方法及示例代码
- 拥抱firewalld,但也别忘了iptables——上篇(iptables详解)
- css的引入规则---lesson1
- 概率编程语言(Probabilistic Programming Languages)库 —— edward
- Dorado的一些技巧总结
- 八个移动应用的测试工具
- 梳理一下ios开发的环境、工具、框架
- Service xxx does not have a SELinux domain defined
- java调用python
- 《数据结构学习与实验指导》2-1:简单计算器