一般情况下加载iptables服务,是按照安装iptables-service服务来实现,并在/etc/sysconfig/iptables配置文件中添加规则,再启动iptables.service服务来实现。如果要求不安装iptables服务,那怎么来实现iptables规则呢?
下面就实际演示从操作系统开机自启动文件rc.local中来加载iptables规则
首先检查rc.local 文件信息,查询到开机自启动文件/etc/rc.local是做了一个软链接到/etc/rc.d/rc.local
进入/etc/rc.d 目录下可以查询到rc.local文件
文件中 最后一条 touch /var/lock/subsys/local 说明如果是启用了开机自启动文件会在/var/local/subsys目录下创建一个local文件,本系统未采用
查询现有系统iptables规则,无规则信息
检查iptables服务未开启,并且开机未启动
创建一个临时目录/root/iptables-sh
创建一个临时文件iptables.sh
添加如下内容
#!/bin/sh
iptables -A INPUT -s 192.168.137.24/32 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j DROP
说明:test6服务器地址为192.168.137.23,test7 服务器地址为192.168.137.24,本次规则只允许test7可以ssh访问test6,其它地址均不能访问。
配置完成后查询iptables.sh脚本
并且给文件添加可执行权限
将执行脚本的命令追加到开机自启动文件后
echo "sh /root/iptables-sh/iptables.sh" >> rc.local
重启test6服务器
重启后检查iptables规则,发现iptable没有生效
原因是rc.local 文件没有执行权限
给/etc/rc.d/rc.local 文件添加权限
再次重启
重启完成后检查iptables规则已经生效
从别的服务器上可以ping通,但登录不了
只有配置文件中192.168.137.24服务器可以登录
证明开机启动后从rc.local中加载执行了iptables.sh 脚本,进而通过iptables命令添加规则,从而实现了不启用iptables服务方式来实现规则添加。