Browsing articles in "電腦網路"
四月
9
2014

修復OpenSSL CVE-2014-0160資安漏洞後必做工作

OpenSSL的CVE-2014-0160漏洞被揭露之後,我們除了要進行OpenSSL的更新之外,還要避免我們原本的SSL Key在修復前就被偷走的風險,因此建議做以下的防護動作。

更新SSH Host Key
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -b 4096 -t rsa
sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -b 1024 -t dsa

  • -b 是指Key的長度,建議至少設置在2048以上
  • dsa 的長度則一定是1024

更新使用者的key
切換到該使用者之後
ssh-keygen -b 4096 -t rsa

  • -b 是指Key的長度,建議至少設置在2048以上
  • 如果這位使用者原本的key,有存放在另外其它主機的authorized_keys,記得其它主機的authorized_keys也要一併更新

更新網站SSL憑證所使用的Key和CSR
openssl req -new -newkey rsa:4096 -nodes -sha256 -out [NAME].csr -keyout [NAME].key

  • 請將 [NAME] 換成你自己常用的名稱,建議跟原本的名稱一樣,這樣後面可以少做一些修改
  • rsa:4096 是指private key的長度,可以選擇2048, 3072, 4096三種長度
  • -sha256 加上這個參數是用來產生SHA-256的CSR,並且用來產生SHA-2的SSL憑證
  • 記得先備份原本的SSL憑證相關檔案: key, csr, crt和bundle crt這幾個檔案
  • 如果忘記原本csr的內容,可以打開現在csr的檔案,把內容貼到CSR Decoder這個網站去做反解,得到當初填寫的內容
  • 到申請SSL的網站進行re-key,然後把csr貼上去
  • 等待大約5分鐘,就會拿到新的crt
  • 修改Web Server SSL相關的設定,以Apache為例就是修改 /etc/httpd/conf.d/ssl.conf
  • 重新啟動Web Server

四月
8
2014

修復CentOS 6.5 OpenSSL CVE-2014-0160資安漏洞的方法

根據 Heartbleed Bug 的揭露,OpenSSL發生了一個嚴重的資安問題。受到影響的Linux有下列幾項

  • Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4
  • Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11
  • CentOS 6.5, OpenSSL 1.0.1e-15
  • Fedora 18, OpenSSL 1.0.1e-4
  • OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) and 5.4 (OpenSSL 1.0.1c 10 May 2012)
  • FreeBSD 8.4 (OpenSSL 1.0.1e) and 9.1 (OpenSSL 1.0.1c)
  • NetBSD 5.0.2 (OpenSSL 1.0.1e)
  • OpenSUSE 12.2 (OpenSSL 1.0.1c)

阿維自己剛有幾台機器是使用CentOS 6.5架設的,這樣的資安問題當然要趕緊修復,以下就跟大家分享修復的方式

執行 yum update openssl
Installed Packages
Name : openssl
Arch : x86_64
Version : 1.0.1e
Release : 16.el6_5.4
Size : 4.0 M
Repo : installed
From repo : ami-updates
Summary : A general purpose cryptography library with TLS implementation
URL : http://www.openssl.org/
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool
: and shared libraries which provide various cryptographic
: algorithms and protocols.</code>

Available Packages
Name : openssl
Arch : i686
Version : 1.0.1e
Release : 16.el6_5.7
Size : 1.5 M
Repo : updates
Summary : A general purpose cryptography library with TLS implementation
URL : http://www.openssl.org/
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool
: and shared libraries which provide various cryptographic
: algorithms and protocols.

Name : openssl
Arch : x86_64
Version : 1.0.1e
Release : 16.el6_5.7
Size : 1.5 M
Repo : updates
Summary : A general purpose cryptography library with TLS implementation
URL : http://www.openssl.org/
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
: between machines. OpenSSL includes a certificate management tool
: and shared libraries which provide various cryptographic
: algorithms and protocols.
如果沒有更新檔案可以進行更新
可以到這裡下載SRPM,然後自己進行手動編譯更新 http://vault.centos.org/6.5/updates/Source/SPackages/openssl-1.0.1e-16.el6_5.4.0.1.centos.src.rpm
注意! 不是更新完就沒事了,記得要做下面的動作

lsof -n | grep ssl | grep DEL

執行這段指令之後,會列出需要重新啟動的服務,記得將列出的服務全部重新啟動一次。

重新啟動服務之後,再執行一次這段指令,確保所有需要重新啟動的服務都已經完成重新啟動。

1. 建議重新產生SSL Key,避免原本的Key已經外洩造成資安上的漏洞

2. 修復之後也可以到 http://filippo.io/Heartbleed/ 這個網站進行檢測

3. 建議繼續閱讀 修復CentOS 6.5 OpenSSL CVE-2014-0160資安漏洞後必做工作 來保障主機的安全

八月
26
2013

AWS EC2 Micro instance ErrorException: proc_open(): fork failed – Cannot allocate memory in phar的解決方法

今天在AWS EC2 micro上面執行composer update的時候跳出了下面的錯誤訊息

PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/S
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 990, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(990): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(832): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(797): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(731): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 990

Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfon
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 990, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(990): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Conso
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Conso
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Conso
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/co

google了一下,很多人都說AWS EC2 micro instance遇到這個問題是無解必須把等級往上升一等才能解決,我不信邪,一樣在micro的機器上面做以下的修改

vi /etc/php.ini
把原本的 memory_limit=128M 改成 memory_limit=256M

然後重新啟動apache,再執行一次composer update就可以正常了,到目前為止composer都運作的很順利沒有遇到任何的問題

八月
12
2013

如何在AWS EC2上面安裝Zend OPcache加速PHP

之前分享如何在AWS EC2上面安裝PHP-APC加速器,有網友留言說可以試試PHP5.5內建的OPcache試試看。我想要試試看OPcache的威力但目前暫時還不想要升級到PHP5.5。好在remi這個源裡面有提供OPcache可以讓我們安裝,下面就跟大家分享一下如何在AWS EC2上面安裝OPcache。

1. 安裝remi repo
首先我們一樣要在AWS EC2中安裝remi這個源,如果你還沒有安裝過,可以參考如何在AWS EC2上面安裝PHP-APC加速器這篇文章的步驟一。

 

2. 安裝OPcache加速器
指令只有一行

sudo yum install php-pecl-zendopcache

 

3. 設定OPcache
安裝完OPcache之後,我們必須針對設定檔進行一些設定,設定的參數我是參考使用Zend Opcache加速PHP這篇文章

sudo vi /etc/php.d/opcache.ini

然後根據我參考的那篇文章,做以下的設定調整

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

 

4. 關閉PHP-APC
如果之前有安裝PHP-APC加速器,但是不想要移除,可以使用下面的方法來關閉

sudo vi /etc/php.d/apc.ini

extension = apc.so這行最前面加上 ; (分號)註解掉;或者是把apc.enable_opcode_cache改成0(數字零)這樣就可以關閉APC了

 

5. 最後記得重新啟動Apache

sudo service httpd restart

 

6. 確認Zend OPcache是否安裝成功

[[email protected]_jp ~]$ php -v
PHP 5.4.17 (cli) (built: Jul 12 2013 21:18:57)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.2, Copyright (c) 1999-2013, by Zend Technologies

當然也可以寫一個phpinfo的頁面來看,不過記得看完之後要把這個檔案刪掉,避免主機上的資訊洩漏。

七月
29
2013

如何在AWS EC2上面安裝PHP-APC加速器

最近把PHP升級到5.4之後,原本很習慣使用eAccelerator就沒有repo可以安裝使用。比較了一下之後,發現APC還蠻多人推薦的,因此就決定用它了。

1. 安裝remi repo
在安裝APC加速器之前,我們必須要先安裝remi 這個repo
如果你跟我一樣所使用的AMI是Amazon Linux AMI x64,請使用下面的指令安裝remi

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6.rpm

如果你所使用的是RHEL x64,請同時安裝EPEL這個repo

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

安裝完畢之後,我們必須要啟用remi這個repo

sudo vim /etc/yum.repos.d/remi.repo

把enabled改成1,我習慣也會把remi的權重調整一下,在enabled之前加上這一行

priority=1

 

2. 安裝APC加速器
2-1 連同APC管理介面一起安裝的指令

sudo yum install apc-panel

2-2 只單純安裝APC加速器

sudo yum install php-pear php-pecl-apc

這樣就完成安裝了

 

3. 設定APC加速器管理的存取權限
如果在第二步你選擇只安裝APC加速器,那麼可以跳過這個步驟,直接到步驟四

sudo vi /etc/httpd/conf.d/apc-panel.conf

加入我們允許存取的IP

# # APC Control Panel
Alias /apc-panel /usr/share/apc-panel

<Directory /usr/share/apc-panel>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     Require local
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
     Allow from 加入你允許存取的IP
   </IfModule>
</Directory>

 

4. 重新啟動Apache

sudo service httpd restart

這樣就完成了PHP-APC加速器的安裝,如果你有安裝APC管理介面,那麼可以在 http://你的ip或domain/apc-panel 看到APC相關的資訊

頁次:«1234567...83»