最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

阿里云linux服務(wù)器上使用iptables設(shè)置安全策略的方法

 更新時(shí)間:2016年10月15日 22:52:29   作者:netingcn  
這篇文章主要介紹了阿里云linux服務(wù)器上使用iptables設(shè)置安全策略的方法,需要的朋友可以參考下

公司的產(chǎn)品一直運(yùn)行在云服務(wù)器上,從而有幸接觸過(guò)aws的ec2,盛大的云服務(wù)器,最近準(zhǔn)備有使用阿里云的彈性計(jì)算(云服務(wù)器)。前兩種云服務(wù)器在安全策略這塊做的比較好,提供簡(jiǎn)單明了的配置界面,而且給了默認(rèn)的安全策略,反觀阿里云服務(wù)器,安全策略需要自己去配置,甚至centos機(jī)器上都沒(méi)有預(yù)裝iptables(起碼我們申請(qǐng)兩臺(tái)上都沒(méi)有),算好可以使用yum來(lái)安裝,安裝命令如下:

yum install -y iptables

iptables安裝好后就可以來(lái)配置規(guī)則了。由于作為web服務(wù)器來(lái)使用,所以對(duì)外要開(kāi)放 80 端口,另外肯定要通過(guò)ssh進(jìn)行服務(wù)器管理,22 端口也要對(duì)外開(kāi)放,當(dāng)然最好是把ssh服務(wù)的默認(rèn)端口改掉,在公網(wǎng)上會(huì)有很多人試圖破解密碼的,如果修改端口,記得要把該端口對(duì)外開(kāi)發(fā),否則連不上就悲劇了。下面提供配置規(guī)則的詳細(xì)說(shuō)明:

第一步:清空所有規(guī)則

當(dāng)Chain INPUT (policy DROP)時(shí)執(zhí)行/sbin/iptables -F后,你將和服務(wù)器斷開(kāi)連接
所有在清空所有規(guī)則前把policy DROP該為INPUT,防止悲劇發(fā)生,小心小心再小心
/sbin/iptables -P INPUT ACCEPT
清空所有規(guī)則
/sbin/iptables -F
/sbin/iptables -X
計(jì)數(shù)器置0
/sbin/iptables -Z

第二步:設(shè)置規(guī)則

允許來(lái)自于lo接口的數(shù)據(jù)包,如果沒(méi)有此規(guī)則,你將不能通過(guò)127.0.0.1訪問(wèn)本地服務(wù),例如ping 127.0.0.1
/sbin/iptables -A INPUT -i lo -j ACCEPT 

開(kāi)放TCP協(xié)議22端口,以便能ssh,如果你是在有固定ip的場(chǎng)所,可以使用 -s 來(lái)限定客戶端的ip
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

開(kāi)放TCP協(xié)議80端口供web服務(wù)
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

10.241.121.15是另外一臺(tái)服務(wù)器的內(nèi)網(wǎng)ip,由于之間有通信,接受所有來(lái)自10.241.121.15的TCP請(qǐng)求
/sbin/iptables -A INPUT -p tcp -s 10.241.121.15 -j ACCEPT

接受ping
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

這條規(guī)則參看:http://www.netingcn.com/iptables-localhost-not-access-internet.html
/sbin/iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

屏蔽上述規(guī)則以為的所有請(qǐng)求,不可缺少,否則防火墻沒(méi)有任何過(guò)濾的功能
/sbin/iptables -P INPUT DROP

可以使用 iptables -L -n 查看規(guī)則是否生效

至此防火墻就算配置好,但是這是臨時(shí)的,當(dāng)重啟iptables或重啟機(jī)器,上述配置就會(huì)被清空,要想永久生效,還需要如下操作:

/etc/init.d/iptables save 
或
service iptables save

執(zhí)行上述命令可以在文件 /etc/sysconfig/iptables 中看到配置

以下提供一個(gè)干凈的配置腳本:

/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z

/sbin/iptables -A INPUT -i lo -j ACCEPT 
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 10.241.121.15 -j ACCEPT
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -P INPUT DROP

最后執(zhí)行 service iptables save ,先確保ssh連接沒(méi)有問(wèn)題,防止規(guī)則錯(cuò)誤,導(dǎo)致無(wú)法連上服務(wù)器,因?yàn)闆](méi)有save,重啟服務(wù)器規(guī)則都失效,否則就只有去機(jī)房才能修改規(guī)則了。也可以參考:ubuntu iptables 配置腳本來(lái)寫(xiě)一個(gè)腳本。

最后再次提醒,在清空規(guī)則之前一定要小心,確保Chain INPUT (policy ACCEPT)。

腳本之家補(bǔ)充阿里云的linux_drop_port.sh

#!/bin/bash
#########################################
#Function: linux drop port
#Usage:  bash linux_drop_port.sh
#Author:  Customer Service Department
#Company:  Alibaba Cloud Computing
#Version:  2.0
#########################################
 
check_os_release()
{
 while true
 do
 os_release=$(grep "Red Hat Enterprise Linux Server release"/etc/issue 2>/dev/null)
 os_release_2=$(grep "Red Hat Enterprise Linux Server release"/etc/redhat-release 2>/dev/null)
 if [ "$os_release" ] && [ "$os_release_2" ]
 then
  if echo "$os_release"|grep "release 5" >/dev/null2>&1
  then
  os_release=redhat5
  echo "$os_release"
  elif echo "$os_release"|grep "release 6">/dev/null 2>&1
  then
  os_release=redhat6
  echo "$os_release"
  else
  os_release=""
  echo "$os_release"
  fi
  break
 fi
 os_release=$(grep "Aliyun Linux release" /etc/issue2>/dev/null)
 os_release_2=$(grep "Aliyun Linux release" /etc/aliyun-release2>/dev/null)
 if [ "$os_release" ] && [ "$os_release_2" ]
 then
  if echo "$os_release"|grep "release 5" >/dev/null2>&1
  then
  os_release=aliyun5
  echo "$os_release"
  elif echo "$os_release"|grep "release 6">/dev/null 2>&1
  then
  os_release=aliyun6
  echo "$os_release"
  else
  os_release=""
  echo "$os_release"
  fi
  break
 fi
 os_release=$(grep "CentOS release" /etc/issue 2>/dev/null)
 os_release_2=$(grep "CentOS release" /etc/*release2>/dev/null)
 if [ "$os_release" ] && [ "$os_release_2" ]
 then
  if echo "$os_release"|grep "release 5" >/dev/null2>&1
  then
  os_release=centos5
  echo "$os_release"
  elif echo "$os_release"|grep "release 6">/dev/null 2>&1
  then
  os_release=centos6
  echo "$os_release"
  else
  os_release=""
  echo "$os_release"
  fi
  break
 fi
 os_release=$(grep -i "ubuntu" /etc/issue 2>/dev/null)
 os_release_2=$(grep -i "ubuntu" /etc/lsb-release2>/dev/null)
 if [ "$os_release" ] && [ "$os_release_2" ]
 then
  if echo "$os_release"|grep "Ubuntu 10" >/dev/null2>&1
  then
  os_release=ubuntu10
  echo "$os_release"
  elif echo "$os_release"|grep "Ubuntu 12.04">/dev/null 2>&1
  then
  os_release=ubuntu1204
  echo "$os_release"
  elif echo "$os_release"|grep "Ubuntu 12.10">/dev/null 2>&1
  then
  os_release=ubuntu1210
  echo "$os_release"
  else
  os_release=""
  echo "$os_release"
  fi
  break
 fi
 os_release=$(grep -i "debian" /etc/issue 2>/dev/null)
 os_release_2=$(grep -i "debian" /proc/version 2>/dev/null)
 if [ "$os_release" ] && [ "$os_release_2" ]
 then
  if echo "$os_release"|grep "Linux 6" >/dev/null2>&1
  then
  os_release=debian6
  echo "$os_release"
  else
  os_release=""
  echo "$os_release"
  fi
  break
 fi
 os_release=$(grep "openSUSE" /etc/issue 2>/dev/null)
 os_release_2=$(grep "openSUSE" /etc/*release 2>/dev/null)
 if [ "$os_release" ] && [ "$os_release_2" ]
 then
  if echo "$os_release"|grep"13.1" >/dev/null 2>&1
  then
  os_release=opensuse131
  echo "$os_release"
  else
  os_release=""
  echo "$os_release"
  fi
  break
 fi
 break
 done
}
 
exit_script()
{
 echo -e "\033[1;40;31mInstall $1 error,will exit.\n\033[0m"
 rm-f $LOCKfile
 exit 1
}
 
config_iptables()
{
 iptables -I OUTPUT 1 -p tcp -m multiport --dport21,22,23,25,53,80,135,139,443,445 -j DROP
 iptables -I OUTPUT 2 -p tcp -m multiport --dport 1433,1314,1521,2222,3306,3433,3389,4899,8080,18186-j DROP
 iptables -I OUTPUT 3 -p udp -j DROP
 iptables -nvL
}
 
ubuntu_config_ufw()
{
 ufwdeny out proto tcp to any port 21,22,23,25,53,80,135,139,443,445
 ufwdeny out proto tcp to any port 1433,1314,1521,2222,3306,3433,3389,4899,8080,18186
 ufwdeny out proto udp to any
 ufwstatus
}
 
####################Start###################
#check lock file ,one time only let thescript run one time
LOCKfile=/tmp/.$(basename $0)
if [ -f "$LOCKfile" ]
then
 echo -e "\033[1;40;31mThe script is already exist,please next timeto run this script.\n\033[0m"
 exit
else
 echo -e "\033[40;32mStep 1.No lock file,begin to create lock fileand continue.\n\033[40;37m"
 touch $LOCKfile
fi
 
#check user
if [ $(id -u) != "0" ]
then
 echo -e "\033[1;40;31mError: You must be root to run this script,please use root to execute this script.\n\033[0m"
 rm-f $LOCKfile
 exit 1
fi
 
echo -e "\033[40;32mStep 2.Begen tocheck the OS issue.\n\033[40;37m"
os_release=$(check_os_release)
if [ "X$os_release" =="X" ]
then
 echo -e "\033[1;40;31mThe OS does not identify,So this script isnot executede.\n\033[0m"
 rm-f $LOCKfile
 exit 0
else
 echo -e "\033[40;32mThis OS is $os_release.\n\033[40;37m"
fi
 
echo -e "\033[40;32mStep 3.Begen toconfig firewall.\n\033[40;37m"
case "$os_release" in
redhat5|centos5|redhat6|centos6|aliyun5|aliyun6)
 service iptables start
 config_iptables
 ;;
debian6)
 config_iptables
 ;;
ubuntu10|ubuntu1204|ubuntu1210)
 ufwenable <<EOF
y
EOF
 ubuntu_config_ufw
 ;;
opensuse131)
 config_iptables
 ;;
esac
 
echo -e "\033[40;32mConfig firewallsuccess,this script now exit!\n\033[40;37m"
rm -f $LOCKfile

上述文件下載到機(jī)器內(nèi)部直接執(zhí)行即可。

相關(guān)文章

  • linux vps服務(wù)器常用服務(wù)iptables策略

    linux vps服務(wù)器常用服務(wù)iptables策略

    linux系統(tǒng)自帶防火墻必須要好好利用起來(lái),可是我有一年多沒(méi)寫(xiě)過(guò)防火墻策略了,該忘的都忘了,不該忘的也都忘得差不多了,看筆記,找找感覺(jué)
    2017-04-04
  • Linux中如何查詢運(yùn)行文件的全路徑的方法

    Linux中如何查詢運(yùn)行文件的全路徑的方法

    這篇文章主要介紹了Linux中如何查詢運(yùn)行文件的全路徑的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • ubuntu下編譯安裝opencv的方法

    ubuntu下編譯安裝opencv的方法

    今天小編就為大家分享一篇關(guān)于ubuntu下編譯安裝opencv的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • Linux網(wǎng)絡(luò)啟動(dòng)問(wèn)題:Device does not seem to be present解決辦法

    Linux網(wǎng)絡(luò)啟動(dòng)問(wèn)題:Device does not seem to be present解決辦法

    這篇文章主要介紹了Linux網(wǎng)絡(luò)啟動(dòng)問(wèn)題:Device does not seem to be present解決辦法的相關(guān)資料,希望通過(guò)本文能幫助到大家解決這樣的問(wèn)題,需要的朋友可以參考下
    2017-10-10
  • CentOS6.8中/英文環(huán)境切換教程圖解

    CentOS6.8中/英文環(huán)境切換教程圖解

    這篇文章主要介紹了CentOS6.8中/英文環(huán)境切換教程,本文只以中文切換為英文為例給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Linux使用fdisk實(shí)現(xiàn)磁盤分區(qū)過(guò)程圖解

    Linux使用fdisk實(shí)現(xiàn)磁盤分區(qū)過(guò)程圖解

    這篇文章主要介紹了Linux使用fdisk實(shí)現(xiàn)磁盤分區(qū)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • rsync 數(shù)據(jù)同步使用詳解

    rsync 數(shù)據(jù)同步使用詳解

    rsync 是很強(qiáng)大的同步工具 本地遠(yuǎn)程皆宜 不少project都提供 http ftp rsync 等mirror方式 rsync官方主頁(yè)是 http://samba.anu.edu.au/rsync/
    2008-09-09
  • Linux提示網(wǎng)絡(luò)不可達(dá)問(wèn)題

    Linux提示網(wǎng)絡(luò)不可達(dá)問(wèn)題

    這篇文章主要介紹了Linux提示網(wǎng)絡(luò)不可達(dá)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • linux mount掛載共享目錄詳解

    linux mount掛載共享目錄詳解

    本篇文章主要介紹了linux mount掛載共享目錄詳解,詳細(xì)的介紹mount命令的使用,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-03-03
  • linux線程的取消(終止)方法

    linux線程的取消(終止)方法

    下面小編就為大家?guī)?lái)一篇linux線程的取消(終止)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01

最新評(píng)論

峨眉山市| 登封市| 石门县| 武陟县| 九龙坡区| 蕉岭县| 长乐市| 全椒县| 缙云县| 舒城县| 伊金霍洛旗| 白水县| 广德县| 噶尔县| 邵武市| 秦皇岛市| 米林县| 铜川市| 深州市| 霍山县| 镇雄县| 石泉县| 凤城市| 康平县| 襄樊市| 黑水县| 长白| 鹰潭市| 新郑市| 襄汾县| 高雄市| 武定县| 揭西县| 商城县| 哈尔滨市| 治多县| 定边县| 无锡市| 威宁| 遂平县| 囊谦县|