防火牆設定的小問題(r6筆記第94天)
今天也算忙忙碌碌,處理了不少小問題,自己也總結幾個問題,本來寫點MySQL和mongoDB的東西,發現還是沒有準備好,再補補分享給大家。
### 批量處理防火牆許可權開通
每天都會接到不少的請求,有一部分是關於許可權開通的,一般的流程就是登陸到目標機器,然後賦予相應的協議和埠,如果檢查發現已經開通了許可權,就不需要了。
所以如果要開通某個客戶端的許可權,可能對應很多臺伺服器,這樣一來,處理工作就是大批量的重複性勞動,而且還繁瑣。
所以磨刀不誤砍柴工,先寫個簡單指令碼來做個半自動化。
#!/usr/bin/expect
set dbip_addr [lindex $argv 0]
set dbip_port [lindex $argv 1]
set ip_addr [lindex $argv 2]
set timeout 5
spawn scp -r open_firewall_dep.sh $dbip_addr:/home
send "exit r"
expect eof
spawn ssh $dbip_addr
send "sh /home/open_firewall_dep.sh $ip_addr $dbip_port r"
expect eof
ip_exists_flag=`iptables -nvL|grep -w $1|wc -l`
echo $ip_exists_flag "ip address is founded from firewall list"
if [ ${ip_exists_flag} -eq 0 ];then
echo "iptables -I INPUT -s $1 -p tcp -m multiport --dports $2 -i `ifconfig |head -1|awk '{print $1}'` -j ACCEPT ";
iptables -I INPUT -s $1 -p tcp -m multiport --dports $2 -i `ifconfig |head -1|awk '{print $1}'` -j ACCEPT
echo "iptables -nvL|grep -w $1 ";
iptables -nvL|grep -w $1
echo "service iptables save";
service iptables save
else
echo "nothing to do";
fi
echo 'pass in quick on e1000g0 proto tcp from 10.127.xxxx to any port = 1522' | ipf -f -
/etc/ipf/ipf.conf ||pass in quick on e1000g0 proto tcp from 10.127.xxxxx to any port = 1522
ipfstat -io|grep "10.127"
但是在solaris上使用vi編輯檔案,結果有了下面的警告,讓人匪夷所思。 root@xxxxx # vi /etc/ipf/ipf.conf linux: Unknown terminal type I don't know what kind of terminal you are on - all I have is 'linux'. [Using open mode] "/etc/ipf/ipf.conf" 933 lines, 62110 characters block in log on e1000g0 from any to any # echo $TERM linux 解決方法就是設定為其它的TERM,比如 TERM=vt100 可能這種問題可遇不可求,很難碰到,但是碰到了還是讓人有些不知所措。