shell允许特定ip访问网站
最近公司要求把a服务器上的iptables过滤里的白名单加到b服务器上,让b服务器读取白名单里的ip,并允许白名单里的ip通过不被禁止,我在下面实现过程中,使用了上一篇的用expect不用输密码自动scp数据里的脚本来配合实现的.
环境:a服务器ip:192.168.10.5
b服务器ip:192.168.10.150
1.a服务器上的白名单文件为white.txt
cat /root/white.txt
171.214.x.x
220.166.x.x
103.15.x.x
2.在b服务器上创建下面2个脚本
vi down.exp
vi allow_ip.sh
3.安装expect
yum -y install expect
chmod +x down.exp
chmod +x allow_ip.sh
4.加入计划任务
*/3 * * * * /bin/sh /root/soft_shell/allow_ip.sh
好了,这样就可以了.
环境:a服务器ip:192.168.10.5
b服务器ip:192.168.10.150
1.a服务器上的白名单文件为white.txt
cat /root/white.txt
171.214.x.x
220.166.x.x
103.15.x.x
2.在b服务器上创建下面2个脚本
vi down.exp
#!/usr/bin/expect -f set timeout -1 set passwd 你的密码 spawn scp -r -P18330 root@192.168.10.5:/root/white.txt /root/ match_max 100000 expect -exact "password:" send -- "$passwd\r" expect eof
vi allow_ip.sh
#!/bin/bash expect /root/soft_shell/down.exp for ip in `cat /root/white.txt` do ipex=`iptables -nL|grep "$ip"` if [ -z "$ipex" ]; then #iptables -I INPUT -s $ip -j ACCEPT iptables -I RH-Firewall-1-INPUT -s $ip -p tcp -m tcp --dport 80 -j ACCEPT fi done
3.安装expect
yum -y install expect
chmod +x down.exp
chmod +x allow_ip.sh
4.加入计划任务
*/3 * * * * /bin/sh /root/soft_shell/allow_ip.sh
好了,这样就可以了.
评论: