IPtables 防火墙
防火墙的是干什么的?
简单来说:防火墙是用来将公网(外网)和内网or自身设备隔离开来的
需要准备的东西?
- 掌握搜索引擎技能(下面的文章只会叫你如何进行使用基本的iptables)
- 一个大脑🧠
- 一台运行了Linux系统的电脑
- 掌握基本的Linux基本知识
iptables 的基本知识
常说的名词四表五链
:
注意:以下知识不一定100%正确,如果有错误还请指出
四表:
- Filter表:也是用的最多,主要用来和主机自身有关系
- Nat表:是对进出主机的ip或者是端口进行转发的
- Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
- Raw表:决定数据包是否被状态跟踪机制处理
五链:
- INPUT:来进行管理入站(进来)的数据包
- OUTPUT:进行管理出站(出去)的数据包
- FORWARD:进行管理转发数据包
- PREROUTING:对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
- POSTROUTING:对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
正常我们自己的服务器只要针对filter表进行过滤即可。
四表顺序
表的执行顺序是:Raw
–> Mangle
–> Nat
–> Filter
下面这张图是我从搜索引擎上爬过来的
这张图 网络A 和 网络B 可以把变成是一个网口分开了:从A网口进来数据包,再从B网口出去。
基本语法
1 | iptables -t 表名 管理选项 [链名] [匹配条件] [-j 控制类型] |
-t 表名
:默认是Filter
表管理选项:
选项 功能 -A 添加防火墙规则(在此链的最后面加入 -D 删除防火墙规则 -I 插入防火墙规则(默认是插入链的最前面,可以加数字选择插入第X行 -F 清空防火墙规则 -L 列出添加防火墙规则 -R 替换防火墙规则 -P 设置链默认的规则 列名:上面已经写不在说明
匹配条件:
参数 功能 [!]-p 匹配协议,! 表示取反 [!]-s 匹配源地址 [!]-d 匹配目标地址 [!]-i 匹配入站网卡接口 [!]-o 匹配出站网卡接口 [!]–sport 匹配源端口 [!]–dport 匹配目标端口 [!]–src-range 匹配源地址范围 [!]–dst-range 匹配目标地址范围 [!]–limit 四配数据表速率 [!]–mac-source 匹配源MAC地址 [!]–sports 匹配源端口 [!]–dports 匹配目标端口 [!]–stste 匹配状态(INVALID、ESTABLISHED、NEW、RELATED) [!]–string 匹配应用层字串 控制类型:
控制类型 功能 ACCEPT 允许数据包通过 DROP 丢弃数据包(不会回复给对方拒绝信号,相当于当前主机不在线,会有额外的资源占用 REJECT 拒绝数据包通过(会发送给对方拒绝数据包,明确拒绝此链接 LOG 将数据包信息记录 syslog 曰志 DNAT 目标地址转换 SNAT 源地址转换 MASQUERADE 地址欺骗 REDIRECT 重定向
防火墙的配置
看完前面的防火墙的基本语法,应该已经可以应对我们,管理vps的基本使用了,下面都是举一些最简单切最常用的命令。
- 开启22 ssh远程连接:
1 | iptables -I INPUT -p tcp -dport 22 -j ACCEPT |
- 修改默认配置INPUT丢弃(设置前一定要备份一下,或者有第二种手段联系到服务器,例如idc的vnc确保你的小鸡不会失联
1 | iptables -P INPUT DROP |
- 改完以后记得使用,来保存到文件,不然重启以后上面的配置将会丢失
1 | iptables-save |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 某科学的贝壳!
评论