Debian9.5 系统配置持久化iptables规则
RedHat和SUSE系列下有比较好用的iptables管理工具,可以像控制服务进程一样来对防火墙进行管理及控制,Debian系发行版默认不开启iptables,
当然也没有与之相关的能直接管理的工具了。
正常情况下,我们写入的iptables规则将会在系统重启时消失。即使我们使用iptables-save命令将iptables规则存储到文件,
在系统重启后也需要执行iptables-restore操作来恢复原有规则。Debian有两种方法可以让系统重启时规则不消失也就是实现持久化iptables规则。
一、首先我们把我们需要设置的规则写到一个文本文件中,这样的好处是写完所有的规则便于查找排错,不要上来就通过命令添加规则。
在/etc/目录下新建local/目录,我喜欢把自定义的配置放到/etc/local/目录中便于以后管理,在新建iptables/目录存放规则文件。
新建ipv4规则rules.v4文件
root@debian:~# vim.tiny rules.v4
#清除已有iptables规则
iptables -F
iptables -X
iptables -Z
#自定义默认策略
root@debian:~# iptables -P INPUT DROP
root@debian:~# iptables -P OUTPUT ACCEPT
root@debian:~# iptables -P FORWARD DROP
#定制各项规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
可以根据实际的情况增减.主要是检查规则的先后顺序和命令的格式,没有问题就可以在命令行下逐条执行了,如果需要可以保存下来
二、方法一实现持久化iptables规则,通过脚本文件。
1、通过上面的方法已经配置好了iptables,下面我们用iptables-save命令将配置好的iptables的规则保存到/etc/local/iptables/rules.v4.1.save文件
root@debian:~# iptables-save > /etc/local/iptables/rules.v4.save
2、查看/etc/local/iptables/rules.v4.save文件的内容
=====================================================================
root@debian:~# cat /etc/local/iptables/rules.v4.save
# Generated by iptables-save v1.6.0 on Thu Sep 27 09:13:42 2018
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
COMMIT
# Completed on Thu Sep 27 09:13:42 2018
root@debian:~#
======================================================================
通过上面的显示可以看到filter表中三个链的默认规则设置和定制的各项规则,可以把这个文件当作模板,根据实际情况进行配置。
这样就可以不用在通过iptables命令把需要设置的每一项都敲一遍,可以用iptables-resotre 命令直接从/etc/local/iptables/rules.v4.save文件
恢复所有规则,命令如下:
root@debian:~# iptables-resotre < /etc/local/iptables/rules.v4.save
3、设置开机启动
在/etc/network/if-pre-up.d/目录下新建个iptables文件(文件名可以自定义)并添加脚本
命令如下:
===================================================================
root@debian:~# vim.tiny /etc/network/if-pre-up.d/iptables
#!/bin/bash
/sbin/iptables-restore < /etc/local/iptables/rules.v4.save
===================================================================
上面添加的这个脚本文件的意思是在网络接口启动之前执行iptables-restore < /etc/local/iptables/rules.v4.1.save 命令
启动防火墙规则。
给这个新添加的文件/etc/network/if-pre-up.d/iptables执行权限
root@debian:~# chmod +x /etc/network/if-pre-up.d/iptables
4、重启查看是否开机加载
root@debian:~# shutdown -r now
root@debian:~# iptables -L -n
三、方法二实现持久化iptables规则,使用iptables-persistent工具
1、安装iptables-persistent
root@debian:~# apt install iptables-persistent
安装的过程中安装软件会询问您是否要保存当前IPv4规则。如下图:
如果您已经定义了规则,则选择[是]保存即可。
接下来会提示是否要保存当前IPv6规则。如下图:
我这里没有用到IPv6选择[否]即可。
通上面的操作会在/etc目录下生成/iptables目录,并生成rules.v4文件用于存放IPv4规则,如果保存IPv6规则也会生产一个rules.v6文件
可以通过dpkg-reconfigure iptables-persistent命令从新启动刚才的选项进行配置即可。
2、iptables-persistent程序的命令是netfilter-persistent 使用的语法如下
netfilter-persistent 选项(start|stop|restart|reload|flush|save)
start:启动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
stop:启动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则,暂时不可用,被flush选项取代
restart:从新启动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
reload:从新加载动目录/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
flush:清楚防火墙的规则,但是不会清空/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则
save:保持防火墙的规则,会清空/etc/iptables/下rules.v4和rules.v6(如果有)文件里面的规则,并从新写入防火墙现有的规则
3、通过netfilter-persistent save命令就可以保持防火墙当前的配置规则,系统重启后也不会丢失。
其实这个程序的作用就是将防火墙现有的规则保存下来,开机以后在从新加载,和第一种方法类似的,只是不用自己配置脚本,
我们可以查看/etc/iptables/下rules.v4文件的内容,如下:
=====================================================================
root@debian:~# cat /etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Thu Sep 27 16:39:54 2018
*filter
:INPUT ACCEPT [186:19951]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [71:11164]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 23 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 24 -j ACCEPT
COMMIT
# Completed on Thu Sep 27 16:39:54 2018
===================================================================
可以看到和通过命令iptables-save保存的格式一样,以后我们也可以直接配置这个文件,在里面添加我们需要的规则,并通过命令从新加载即可。
可以通过systemctl查看到netfilter-persistent 服务是开机自启动的。
Debian9.5 系统配置持久化iptables规则的更多相关文章
- 普通用户iptables规则持久化,开机自动恢复
本文档对于docker环境下并不适用,docker环境的iptables持久化请参考https://www.cnblogs.com/wiseo/p/15000745.html 添加iptables规则 ...
- Iptables 规则 一些简单实例和详细介绍
设定规则 iptables -p INPUT DROP iptables -p OUTPUT ACCEPT iptables -p FORWARD DROP 1.防止外网用内网IP欺骗 iptable ...
- iptables规则表
1.iptables规则表 Filter(针对过滤系统):INPUT.FORWARD.OUTPUT NAT(针对地址转换系统):PREROUTING.POSTROUTING.INPUT.OUTPUT ...
- linux iptables规则介绍
今天又学习了一下iptables,做一点总结来方便以后查阅. Netfilter(网络过滤器)是Linux操作系统核心层内部的一个数据包处理模块,主要负责数据包的拦截和转发,而iptables是Net ...
- iptables规则进阶
iptables规则进阶 1.实验环境搭建: 在进行试验之前,先要进行实验环境的搭建,要求如下: 1.对于三台主机,分别设置IP地址 2.设置10.0.1.22为内网主机 3.设置中间主机有两个网卡, ...
- debian6保存iptables规则
iptables规则不保存,一旦机器重启规则就清空了,所以需要保存: iptables-save >/etc/iptables-script vi /etc/rc.local 然后在文件中输入: ...
- linux系统中查看己设置iptables规则
1.iptables -L 查看filter表的iptables规则,包括所有的链.filter表包含INPUT.OUTPUT.FORWARD三个规则链. 说明:-L是--list的简写,作用是列出规 ...
- ifconfig 命令,改变主机名,改DNS hosts、关闭selinux firewalld netfilter 、防火墙iptables规则
ifconfig 命令用于查看网络相关的命令: 安装:yum install net-tools -y ifdown eth_name 关闭网卡 ifup eth_name 开启网卡 配 ...
- 常用的 Linux iptables 规则
一些常用的 Linux iptables 规则,请根据自己的具体需要再修改. 转载自:http://mp.weixin.qq.com/s/uAPzh9_D4Qk6a3zBh7Jq5A # 1. 删除所 ...
随机推荐
- bzoj5106: [CodePlus2017]汀博尔(二分答案)
5106: [CodePlus2017]汀博尔 题目:传送门 题解: 百题纪念!!! 原谅一下第一百题刷了到水题... 直接二分月份然后判断(注意上界大小) 代码: #include<cstdi ...
- 你务必知道的css简写
欢迎加入前端交流群来py:749539640 简写属性是可以让你同时设置其他几个 CSS 属性值的 CSS 属性.使用简写属性,Web 开发人员可以编写更简洁.更具可读性的样式表,节省时间和精力. ...
- 日常问题记录-- java.lang.IllegalArgumentException: taglib definition not consistent with specification version
转自:https://www.cnblogs.com/carterzhang/p/4288650.html 背景: tomcat8.0中使用taglib 错误表现: java.lang.Illegal ...
- [JZOJ NOIP2018模拟10.19]
T1写炸了今天,期望70却落了个20...连链上的都没有写对 T3什么什么线段树分治套AC自动机,表示我完全自闭了,幸好考场上没有杠T3 总体比赛还是比较舒服,暴力分给的蛮足的,不像昨天那样 T1:林 ...
- 你不知道的JavaScript(八)逻辑运算
JS的逻辑运算结果和其他一些强类型语言差别比较大,也比较容易让人产生困惑,看下面的例子: <script type="text/javascript"> var a = ...
- (转载)详解7.0带来的新工具类:DiffUtil
[Android]详解7.0带来的新工具类:DiffUtil 标签: diffutil 2017-04-17 18:21 226人阅读 评论(0) 收藏 举报 分类: Android学习笔记(94) ...
- JavaScript学习——DOM对象
1.DOM操作 Document:整个html文件都称之为一个document文档 Element:所有的标签都是Element元素 Attribute:标签里面的属性 Text:标签中间夹着的内容为 ...
- Oracle12C查询自建用户(非系统自带)
select username from dba_users where INHERITED='NO';
- SpringCloud学习笔记(13)----Spring Cloud Netflix之Hystrix断路器的隔离策略
说明 : 1.Hystrix通过舱壁模式来隔离限制依赖的并发量和阻塞扩散 2. Hystrix提供了两种隔离策略:线程池(THREAD)和信号量隔离SEMAPHORE). 1. 线程池隔离(默认策略模 ...
- How Javascript works (Javascript工作原理) (九) 网页消息推送通知机制
个人总结: 1.介绍了网页消息推送通知机制 全文地址:https://github.com/Troland/how-javascript-works 这是 JavaScript 工作原理的第九章. 现 ...