分享

iptables的备份、恢复及防火墙脚本的基本使用

 黎明霜冷 2017-01-11

      二:使用防火墙脚本:

      防火墙脚本的优势:便于使用shell变量、程序控制逻辑;作为独立的文件在需要重用、移植使用时会非常方便。

      1.定义基本变量:

      将防火墙的网卡、IP地址、局域网段、iptables命令的路径等定义为变量:

      INET_IF='eth0' ###外网接口

      INET_IP='173.16.16.1' ###外网接口地址

      LAN_IF='eth1' ###内网接口

      LAN_IP='192.168.10.1' ###内网接口地址

      LAN_NET='192.168.10.0/24' ###内网网段

      LAN_WWW_IP='192.168.10.2' ###网站服务器的内部地址

      IPT='/sbin/iptables' ###iptables命令的路径

      MOD='/sbin/modprobe' ###modprobe命令的路径

      CTL='/sbin/sysctl' ###sysctl命令的路径

      2.加载内核模块(5.5系统为例):

      (与FTP发布相关的ip_nat_ftp、ip_conntrack_ftp)需手动进行加载。

      $MOD ip_tables ###iptables基本模块

      $MOD ip_conntrack ###连接跟踪模块

      $MOD ipt_REJECT ###拒绝操作模块

      $MOD ipt_LOG ###日志记录模块

      $MOD ipt_iprange ###支持IP范围匹配

      $MOD xt_tcpudp ###支持TCP、UDP协议

      $MOD xt_state ###支持状态匹配

      $MOD xt_multiport ###支持多端口匹配

      $MOD xt_mac ###支持MAC地址匹配

      $MOD ip_nat_ftp ###支持FTP地址转换

      $MOD ip_conntrack_ftp ###支持FTP连接跟踪

      3.调整/proc参数:

  •       /proc是Linux或UNIX中的一种伪文件系统机制,提供了访问内核运行结构、改变内核设置的实时数据。

  •       与ext4、NFS、FAT32等文件系统不同,/proc中的数据存放在内存而不是硬盘上。

  •       在/proc/sys下存放着与系统相关的可控参数,可以直接用来改变内核的行为,通常作为Linux的内核调优的实时入口。

  •       也可以写到/etc/sysctl.conf文件中,sysctl-p使修改生效。

      $CTL -w net.ipv4.ip_forward=1 ###打开路由转发功能

      $CTL -w net.ipv4.ip_default_ttl=128 ###修改ICMP响应超时间

      $CTL -w net.ipv4.icmp_echo_ignore_all=1 ###拒绝响应ICMP请求

      $CTL -w net.ipv4.icmp_echo_ignore_broadcasts=1 ###拒绝响应ICMP广播

      $CTL -w net.ipv4.tcp_syncookies=1 ###启用SYN Cookie机制

      $CTL -w net.ipv4.tcp_syn_retries=3 ###最大SYN请求重试次数

      $CTL -w net.ipv4.tcp_synack_retries=3 ###最大ACK确认重试次数

      $CTL -w net.ipv4.tcp_fin_timeout=60 ###TCP连接等待超时

      $CTL -w net.ipv4.tcp_max_syn_backlog=3200 ###SYN请求的队列长度

      注解:

      ICMP相关的参数调整可使本机忽略其他主机的ping测试,TCP相关的内核参数调整可适当提高本机抗DoS攻击的能力

      4.设置具体的iptables规则:

      aa.清理已有的规则(避免已有防火墙规则造成的干扰):

      删除所有表中用户自定义的链、清空所有链内的规则:

      实际生产环境中,防火墙过滤规则建议采取“默认拒绝”的策略。

      bb.设置nat表中的各种规则、设置filter表中的各种规则(根据实际需求自行添加):

  •       iptables的nat表主要用在Linux网关服务器中,主机型防火墙方案中很少会用到。

  •       iptables的filter表主要用来过滤数据包,Linux网关或Linux服务器都经常用到。

      主机型防火墙主要使用INPUT、OUTPUT链,网络型防火墙主要使用FORWARD链。

      cc.为脚本文件添加执行权限,并设置自启动,并将脚本路径写入到/etc/rc.local文件中:

      使用IP地址黑、白名单

      黑白名单需要提前建立ip地址文件,同时需要注意的是:必须严格控制访问ip地址名单列表的权限。

      最后,通过对iptables这三部分的介绍,我们可以根据需求进行简单的、亦或复杂的批量部署的主机型防火墙脚本及网络型防火墙脚本编写。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多