欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

阿里云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)限定客戶(hù)端的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)文章

  • apache服務(wù)出現(xiàn)Forbidden 403問(wèn)題的解決方法總結(jié)

    apache服務(wù)出現(xiàn)Forbidden 403問(wèn)題的解決方法總結(jié)

    這篇文章主要介紹了apache服務(wù)出現(xiàn)Forbidden 403問(wèn)題的解決方法總結(jié),需要的朋友可以參考下
    2014-08-08
  • centos克隆linux虛擬機(jī)的完整步驟分享

    centos克隆linux虛擬機(jī)的完整步驟分享

    這篇文章主要給大家分享介紹了關(guān)于centos克隆linux虛擬機(jī)的完整步驟,文中通過(guò)圖文將實(shí)現(xiàn)的步驟一步步介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧
    2018-11-11
  • Apache?ECharts介紹

    Apache?ECharts介紹

    Apache?ECharts?是一款基于?JavaScript?的數(shù)據(jù)可視化圖表庫(kù),提供直觀、生動(dòng)、可交互、可個(gè)性化定制的數(shù)據(jù)可視化圖表,本文給大家分享Apache?ECharts簡(jiǎn)介,感興趣的朋友一起看看吧
    2023-11-11
  • 基于Apache的支持.NET2.0的Web服務(wù)器搭建

    基于Apache的支持.NET2.0的Web服務(wù)器搭建

    在Windows XP下如果沒(méi)有IIS,那么Apache HTTP Server無(wú)疑是最好的替代品了。而它也能夠很好的支持ASP.NET1.1/2.0。下面就介紹一下如何搭建該環(huán)境。
    2009-08-08
  • ubuntu下安裝Java 8的步驟教程

    ubuntu下安裝Java 8的步驟教程

    這篇文章主要介紹了ubuntu下Java 8的安裝步驟,文中通過(guò)一步步的步驟介紹很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-01-01
  • 寶塔apache配置阿里云SSL免費(fèi)證書(shū)的步驟(圖文)

    寶塔apache配置阿里云SSL免費(fèi)證書(shū)的步驟(圖文)

    本文主要介紹了寶塔apache配置阿里云SSL免費(fèi)證書(shū)的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • ubuntu16.04下vim安裝失敗的原因分析及解決方案

    ubuntu16.04下vim安裝失敗的原因分析及解決方案

    重裝了ubuntu系統(tǒng),安裝vim出現(xiàn)了很多奇葩問(wèn)題,今天百度查閱資料才順利解決。今天小編特此把解決思路分享到腳本之家平臺(tái),需要的朋友參考下吧
    2016-11-11
  • linux服務(wù)器校對(duì)時(shí)間方法命令詳解

    linux服務(wù)器校對(duì)時(shí)間方法命令詳解

    Linux中有個(gè)ntp包可以自動(dòng)校準(zhǔn)時(shí)間,并且非常好用,這篇文章主要介紹了linux服務(wù)器校對(duì)時(shí)間方法,需要的朋友可以參考下
    2022-08-08
  • Linux查看分區(qū)文件系統(tǒng)類(lèi)型的方法總結(jié)

    Linux查看分區(qū)文件系統(tǒng)類(lèi)型的方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Linux查看分區(qū)文件系統(tǒng)類(lèi)型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用linux系統(tǒng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Linux之操作文件的系統(tǒng)調(diào)用

    Linux之操作文件的系統(tǒng)調(diào)用

    大家好,本篇文章主要講的是Linux之操作文件的系統(tǒng)調(diào)用,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評(píng)論