Shell腳本實(shí)現(xiàn)防止國(guó)外ip訪問服務(wù)器
客戶的要求,不想讓外國(guó)的ip來(lái)訪問服務(wù)器,本來(lái)要讓機(jī)房在上端路由解決,但是那些人不鳥你?。。~~~
這樣的話,只能自己用iptables解決了~~~~~~~~~
關(guān)于 ip庫(kù) 大家可以去 http://www.ipdeny.com/ipblocks/ 下載, 這里有各個(gè)國(guó)家的~~~
#下載ip庫(kù)
#wget http://rfyiamcool.googlecode.com/files/allip.txt
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
#把分號(hào)去掉
sed -i 's/;$//' allip.txt
#把ip端調(diào)出來(lái)
for i in `cat cn.zone`
do
echo "iptables -A INPUT -s $i -j ACCEPT" >>iptables.sh
done
cat iptables.sh

把這個(gè)腳本做下優(yōu)化,在iptables.sh前面加上下面的命令!
#!/bin/bash
ziji="222.173.13.5"
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t mangle -F
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ipt_limit
modprobe ipt_recent ip_list_tot=16384
modprobe ip_conntrack hashsize=16384
echo "1024 63000" > /proc/sys/net/ipv4/ip_local_port_range
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" >/proc/sys/net/ipv4/conf/all/log_martians
echo "1" >/proc/sys/net/ipv4/tcp_syncookies
echo "2" >/proc/sys/net/ipv4/tcp_synack_retries
echo "5000" >/proc/sys/net/ipv4/tcp_max_syn_backlog
echo "3" >/proc/sys/net/ipv4/tcp_syn_retries
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
iptables -A INPUT -s $ziji -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
下面是效果圖~~~~~~~~~~~~~~~~(剛才把主機(jī)關(guān)機(jī)了,大家國(guó)內(nèi)也是ping不了的 O(∩_∩)O~)

相關(guān)文章
讓Linux下的cron以秒為單位執(zhí)行shell腳本的3種方法
這篇文章主要介紹了讓Linux下的cron以秒為單位執(zhí)行shell腳本的3種方法,cron默認(rèn)只支持以分為單位執(zhí)行Shell腳本的,需要的朋友可以參考下2014-10-10
使用Linux的alternatives命令替換選擇軟件的版本方法
下面小編就為大家?guī)?lái)一篇使用Linux的alternatives命令替換選擇軟件的版本方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-05-05
Python執(zhí)行Linux系統(tǒng)命令的4種方法
這篇文章主要介紹了Python執(zhí)行Linux系統(tǒng)命令的4種方法,即在Python腳本中調(diào)用Shell命令,需要的朋友可以參考下2014-10-10
快速入門Shell腳本之條件判斷語(yǔ)句與循環(huán)
這篇文章主要介紹了快速入門Shell腳本之條件判斷語(yǔ)句與循環(huán),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
shell 腳本自動(dòng)搭建nfs服務(wù)的方法示例
這篇文章主要介紹了shell 腳本自動(dòng)搭建nfs服務(wù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
linux 獲取某個(gè)日期對(duì)應(yīng)的月末日期方法
今天小編就為大家分享一篇linux 獲取某個(gè)日期對(duì)應(yīng)的月末日期方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-06-06

