iptables防火墙备份与恢复
一规则的备份、恢复
防火墙的批量备份和还原用到两个命令iptables-save、iptables-restore,分别用来备份和恢复
・iptables-save备份工具:可结合重定向输出保存到指定文件
1查看当前启用的所有规则
"#注释";"*表名";":链名默认策略"(省略了命令名iptables);"COMMIT"表示提交前面的规则设置
2查看指定表中的规则
3备份当前已设置的所有防火墙规则(使用重定向输出到指定文件)
・iptables-restore恢复工具:可结合重定向输入将备份文件恢复到iptables文件
1清除规则并查看
2恢复备份好的规则
3保存防火墙配置
即时编写的规则会即时生效,但是重启系统或服务后会失效,因此需要进行保存
两种保存方法
4启动和关闭防火墙
和其他服务一样,使用service命令
5可以直接编辑配置文件来添加规则,保存后重启服务生效
二使用防火墙脚本
・定义基本变量
・加载内核模块
查看指定模块是否加载;如果搭建FTP服务器设置防火墙规则就需要手动加载模块
・调整/proc参数
/proc是linux或Unix中的一种伪文件系统机制,提供了访问内核运行结构,改变内核设置的实时数据;它的数据存放在内存中而不是硬盘;
在/proc/sys/下存放着与系统相关的一些可控参数,可以直接用来修改内核行为;(直接修改配置文件或使用脚本修改)
・设置具体的iptables规则
1先清空规则,再删除在定义链
2设置规则链的默认策略
默认所以有链都是允许策略,根据实际情况进行修改
允许的多就默认允许(ACCEPT)
拒绝的多就修改为拒绝(DROP)
3设置nat表中的规则
Nat表主要用在网络型防火墙上,根据实际情况,编写SNAT、DNAT规则来共享互联网和发布服务器,如果没有可以不设置
4设置filter表中的规则
Filter表主要用来过滤数据包;根据实际情况而定
・调用IP地址黑、白名单
当对指定的不连续的IP设置规则时,需要手动挨个的添加规则,比较繁琐;因此使用脚本语句中的for语句可以非常方便的实现IP地址的黑、白名单功能
1建立IP地址表
创建两个文件,分别作为黑名单和白名单,在文件中添加需要放行或拒绝的IP、网络地址;地址每行一个,可以用#号开头的文字来注释
2调用IP地址列表,分别读取白名单和黑名单中的IP
・保存防火墙规则
在脚本的最后添加service iptables save
・给脚本执行权限
Chmod +x /opt/iptables.sh
三 实验
实验目的:发布内网的FTP服务
实验环境:如图所示;其中内网FTP服务器由linux搭建,外网服务器由2008同时搭建web和FTP服务;(ip地址按图配好)内网主机网关指向192.168.1.1;外网实验环境中可以不指网关
实验要求:
网络要求
1内网主机都可以访问互联网,但是不能访问互联网FTP服务也不能ping通外网
主机要求
2内网FTP服务器只提供FTP服务,可以访问互联网(必要条件,不然发布不出去)
实验步骤
网络要求
1搭建内网FTP服务,并在内网客户机上测试
实验环境下只需安装服务启动即可,默认使用匿名用户anyamon空密码即可访问
2将linux网关开启路由功能(两块网卡)(虚拟机上可以再添加一块网卡,所有网卡都用V1,也可以将外网卡和外网主机使用V2)
修改下图值为1,然后重载
3配置外网服务器并在外网客户机上测试(略)
4在网关防火墙上配置SNAT,实现内网可以访问互联网;并测试访问
5在网关防火墙上配置DNAT,将内网FTP服务器发布出去,并测试
6不允许内网主机访问外网FTP服务
在网关上建规则:丢弃从内网发送过来的21号端口请求包
7不允许内网ping通外网
主机要求
8内网ftp服务器只提供ftp服务
拒绝所有,只允许21号端口且关联20号端口
FTP服务器在配置了防火墙策略后默认只支持客户端的主动模式,而客户端默认是被动模式,因此要么开启客户端的主动模式,要么让服务器两种模式都支持
开启客户端的主动模式:浏览器-internet选项-高级-去掉被动模式的选项勾
然后才能正常访问
给内网FTP服务器上加载所需模块,让其支持两种模式的客户端连接
这样只能让内网客户端支持,而外网客户机并不支持,还需要在网关防火墙上加载转发模块