日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

OpenBSD.Nginx.MySQL.PHP環(huán)境搭建手冊(v2)

 HiLinz 2010-12-11
OpenBSD.Nginx.MySQL.PHP環(huán)境搭建手冊(v2)

ChinaUnix網(wǎng)友:young_king

前言

感謝ChinaUnix以及ChinaUnix論壇中的眾多高手,在這里學到了很多!

本手冊是O.N.M.P.系列的第二版,在第一版手冊中,只是簡單的說明了O.N.M.P.環(huán)境的基本搭建方法,并沒有過多的考慮到生產(chǎn)系統(tǒng)適用的情況。第二版將作較大的修正,以使得本手冊可以對生產(chǎn)環(huán)境的搭建起到有益的參考作用。

本人水平有限,手冊中出現(xiàn)紕漏在所難免,您若在生產(chǎn)實際中應(yīng)用時發(fā)現(xiàn)有什么問題,或者有什么更好的建議,請移步至ChinaUnix論壇的BSD版,或至偶的個人博客(http://onmp.),跟帖進行指正。希望在大家的共同努力下,能夠把本手冊盡量做到完美!

本手冊以在OpenBSD 4.4環(huán)境下搭建Nginx、MySQL、PHP環(huán)境為例進行講解。按照慣例,root權(quán)限。

一、OpenBSD的安裝及注意事項

OpenBSD
的安裝這里就不多說了,主要是安裝時系統(tǒng)組件的選擇、分區(qū)和系統(tǒng)服務(wù)的部分。對于系統(tǒng)組件部分,作為生產(chǎn)系統(tǒng)來說,偶并不推薦安裝 comp44.tgz這個組件。因為comp44.tgz實際就是編譯器,不裝這個,可以在很大程度上避免安裝一些非授權(quán)的軟件,從而提高遠程主機的安全性。如果真的需要安裝什么軟件,也可以在非重要的機器上進行編譯,然后使用PSFTP等軟件上傳到遠程主機上使用。關(guān)于PSFTP軟件的使用,二樓有詳細的介紹。

系統(tǒng)分區(qū)時,推薦將/usr、/usr/local、/var、/var/mysql/var/mail、/var/log、/var/nginx等分區(qū)單獨分出來,也就是說,進行比較細致的分區(qū),防止某個目錄中的文件膨脹占滿整個分區(qū)導致的死鎖等問題。假定你有一個80G的硬盤,一個分區(qū)示例在下面:
/
200M
(swap)
1G
/tmp
200M
/usr
500M
/usr/local
200M
/var
100M
/var/mysql
10G
/var/mail
100M
/var/log
5G~10G
/home
200M
/var/nginx
剩余空間


至于系統(tǒng)服務(wù)部分,建議所有的服務(wù)都選擇“n”,亦即不隨系統(tǒng)啟動。

二、系統(tǒng)性能調(diào)優(yōu)

對于多核的機器,使用bsd.mp這個核心。
mv /bsd /obsd
mv /bsd.mp /bsd


/etc/fstab調(diào)優(yōu)
vi /etc/fstab


在文件系統(tǒng)描述符部分,加入"noatime""softdep"。示例如下:
/dev/wd0a / ffs rw,noatime,softdep 1 1
/dev/wd0l /home ffs rw,nodev,nosuid,noatime,softdep 1 2
/dev/wd0d /tmp ffs rw,nodev,nosuid,noatime,softdep 1 2
/dev/wd0e /usr ffs rw,nodev,noatime,softdep 1 2
/dev/wd0f /usr/local ffs rw,nodev,noatime,softdep 1 2
/dev/wd0g /var ffs rw,nodev,nosuid,noatime,softdep 1 2
/dev/wd0i /var/log ffs rw,nodev,nosuid,noatime,softdep 1 2
/dev/wd0j /var/mail ffs rw,nodev,nosuid,noatime,softdep 1 2
/dev/wd0h /var/mysql ffs rw,nodev,nosuid,noatime,softdep 1 2
/dev/wd0k /var/nginx ffs rw,nodev,nosuid,noatime,softdep 1 2


友情提醒:softdep是一種非同步的文件系統(tǒng),意外掉電可能造成數(shù)據(jù)的遺失/損壞,生產(chǎn)系統(tǒng)請謹慎使用!

改完后保存退出,reboot,看能不能正常啟動。

一般情況下是沒有問題的,個別機器或虛擬機可能會因為兼容性的緣故,無法啟動。那么就把根目錄的softdep拿掉,其他目錄保留,仍然會有作用。

更多關(guān)于OpenBSD環(huán)境下磁盤性能調(diào)優(yōu)的內(nèi)容,請參看偶博客的文章,地址在下面:
http://blog./u2/81136/showart_1841280.html

、/etc/sysctl.conf調(diào)優(yōu)
vi /etc/sysctl.conf


跳到最后,加入下面的內(nèi)容:
# 增大文件系統(tǒng)緩存到1M
kern.maxvnodes=131072

#
允許最多65536個進程
kern.maxproc=65536

#
同時最多打開65536個文件
kern.maxfiles=65536

#
并發(fā)連接最大65536
kern.somaxconn=65536

#
保留的最少連接數(shù)
kern.sominconn=256
kern.maxclusters=32768

#
增大TCP接收/發(fā)送緩存到64K
net.inet.tcp.recvspace=65536
net.inet.tcp.sendspace=65536

#
增大UDP接收/發(fā)送緩存到64K
net.inet.udp.recvspace=65536
net.inet.udp.sendspace=65536
注意:虛擬機測試只加最上面一行kern.maxvnodes=65536即可,其他的不必加了,否則會有各種問題。獨立機器的可以加上。

保存退出,reboot。不能正常啟動的就把除kern.maxvnodes以外的數(shù)字調(diào)小或者禁用再試。

三、OpenBSD.Nginx.MySQL.PHP軟件環(huán)境的安裝

OpenBSD
環(huán)境下軟件的安裝是非常簡單的,因為在官方的ftp中提供了已經(jīng)編譯好的二進制包,需要安裝的軟件都在ftp中,從ftp中安裝即可。

小提示:如果你機器比較多,你可以把需要安裝的軟件包都down回來,其他機器再來這里安裝,速度會非??欤?/em>
export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.4/packages/i386/

pkg_add mysql-server php5-fastcgi php5-gd-5.2.6-no_x11 phpMyAdmin lighttpd-1.4.19p3 nginx pecl-APC



以偶的1M ADSL小水管為例,大約也就二十分鐘左右就安裝完畢了!真的是非???!和其他系統(tǒng)的wget源碼、./configure && make && make install...所需要的時間相比,效率是非常高!而且,由于OpenBSD默認采用比較高的安全策略,裝上的環(huán)境安全性也比其他系統(tǒng)要高!

等所需的軟件都安裝完成后,按提示作鏈接并創(chuàng)建PHP臨時工作目錄:
ln -s /var/www/conf/modules.sample/php5.conf /var/www/conf/modules
ln -fs /var/www/conf/php5.sample/apc.ini /var/www/conf/php5/apc.ini
ln -fs /var/www/conf/php5.sample/gd.ini /var/www/conf/php5/gd.ini
ln -fs /var/www/conf/php5.sample/mbstring.ini /var/www/conf/php5/mbstring.ini
ln -fs /var/www/conf/php5.sample/mcrypt.ini /var/www/conf/php5/mcrypt.ini
ln -fs /var/www/conf/php5.sample/mysql.ini /var/www/conf/php5/mysql.ini
mkdir /var/nginx/sesstmp
chmod 0777 /var/nginx/sesstmp


pkg_info
檢查一下系統(tǒng)中安裝了些什么軟件包:



可以看到,所需的軟件包和依賴的包都安裝好了!

四、Nginx配置
Nginx配置文件的修改

修改nginx的默認配置文件:
vi /etc/nginx/nginx.conf


按下面的內(nèi)容修改Nginx的配置文件。蘭色表示需要手動修改的內(nèi)容紅色表示增加的內(nèi)容
#user  nobody;

#
指定子進程數(shù),酌情修改
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

#
最多可打開文件數(shù)
worker_rlimit_nofile 8196;

events {
    #
最大并發(fā)數(shù)
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #
關(guān)掉錯誤日志
    error_log       /dev/null crit;
    #
如果需要錯誤日志,就用下面這行替換上面這行
    #error_log     /var/log/nginx/error.log  notice;

    #
定義日志格式,對日志使用緩存,避免頻繁的磁盤I/O操作
    access_log   /var/log/nginx/access.log combined buffer=1m;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;

    keepalive_timeout  10;


    #
對靜態(tài)文件和可壓縮文件啟用壓縮,以節(jié)約網(wǎng)絡(luò)帶寬,提高訪問速度
    gzip              on;
    gzip_min_length   1k;
    gzip_buffers      4 8k;
    gzip_http_version 1.1;
    gzip_comp_level   3;
    gzip_types        text/html text/css text/xml text/plain application/x-javascript application/xml application/pdf application/x-perl application/x-tcl application/msword application/rtf application/vnd.ms-excel application/vnd.ms-powerpoint application/vnd.wap.xhtml+xml image/x-ms-bmp;
    gzip_disable      "MSIE [1-6] \.";
    gzip_vary         on;


    #
定義輸出緩存大小
    output_buffers   4 32k;

    #
最大允許可上傳文件大小
    client_max_body_size 20m;

    #
定義一個叫“myzone”的記錄區(qū),總?cè)萘繛?10M
    #
和下面的limit_conn一起限制單個IP的并發(fā)連接數(shù)為10
    limit_zone myzone $binary_remote_addr  10m;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /var/nginx/html;
            index  index.php index.html index.htm;
            limit_conn  myzone 10;
        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {
            root   /var/nginx/html;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

        #
在瀏覽器本地暫存圖片和靜態(tài)文件,不記錄日志,以節(jié)約機器資源
        location ~* \.(gif|png|jpg|jpeg|bmp|css|js|swf)$
        {
            root           /var/nginx/html;
            access_log     off;
            expires        max;
        }


        #
在瀏覽器中輸入http://.xxx/status可以看到Nginx的運行信息
        #
需要密碼認證,不記錄日志,限制IP訪問
        location ~ /status
        {
            auth_basic  "O.N.M.P.";
            auth_basic_user_file password;
            stub_status on;
            access_log   off;
            allow 192.168.0.0/24;
            deny all;
        }

    }

}


其他的部分請酌情修改。

運行下面的命令生成查看Nginx運行狀態(tài)的密碼文件:

htpasswd -c /etc/nginx/password webadmin

按提示輸入兩遍密碼即可。

在查看status的時候,輸入用戶名webadmin(見上面這行)和密碼就能夠看到Nginx的運行數(shù)據(jù)了。

Nginx
能夠流行和它的高負載能力是分不開的,在追求性能表現(xiàn)的場合,推薦使用Nginx+PHP-fastcgi的組合以獲得強健的性能表現(xiàn)。而對于那些重視安全性的場合來說,可能OpenBSD內(nèi)核集成的Apache更合適。OpenBSD下搭建Apache、MySQLPHP環(huán)境的詳細內(nèi)容請參見偶的另篇博文,地址在下面:
http://blog./u2/81136/showart_1860332.html
當然,你也可以利用Nginx內(nèi)置的負載均衡功能,在前端分配訪問流量,后端由Apache來運行PHP環(huán)境。Nginx負載均衡的配置可以去Nginx的主頁參看相關(guān)內(nèi)容,地址:http://wiki./Main。
下面為一個Nginx負載均衡的示例:

http {
upstream myproject {
ip_hash;
server 192.168.1.1:80;
server 192.168.1.2:80;
server 192.168.1.3:80;
server 192.168.1.4:80;
}

server {
listen 80;
server_name www.;
location / {
proxy_pass http://myproject;
}
}
}
網(wǎng)絡(luò)拓撲示意圖如下:


Nginx日志截斷

OpenBSD
默認每天00:00會執(zhí)行/etc/daily.local腳本中的內(nèi)容,我們只需要把Nginx日志截斷的命令加入到這個文件中即可。

vi /etc/daily.local


加入下面的內(nèi)容:
#!/bin/sh
#
Nginx日志進行截斷和壓縮,以節(jié)約log分區(qū)空間
#
在張宴的基礎(chǔ)上修改,感謝!
mkdir -p /var/log/nginx/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv /var/log/nginx/access.log /var/log/nginx/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access.$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /var/run/nginx.pid`
sleep 1
gzip /var/log/nginx/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access.$(date -d "yesterday" +"%Y%m%d").log


保存退出,為/etc/daily.local加上執(zhí)行權(quán)限:
chmod 0755 /etc/daily.local


其他需要每天運行的命令也都可以加在這個腳本里面,各位自行處理。

五、MySQLphpMyAdmin的配置
、MySQL的配置

安全起見,MySQL需要運行在自己的daemon下:
vi /etc/login.conf


跳到最后,加入MySQL所需的修改:
mysql:\
        :openfiles-cur=2048:\
        :openfiles-max=4096:\
        :tc=daemon:


使修改生效:
cap_mkdb /etc/login.conf
初始化MySQL數(shù)據(jù)庫:
/usr/local/bin/mysql_install_db


MySQL
自帶了幾個配置文件,在/usr/local/share/mysql目錄中,可以拷貝為/etc/my.cnf使用。關(guān)于MySQL的配置和優(yōu)化等內(nèi)容,可以自行Google,這里不再贅述。
MySQL安全須知

1
、不要用root身份運行數(shù)據(jù)庫或PHP應(yīng)用。并且,最好是數(shù)據(jù)庫名和數(shù)據(jù)庫用戶名不同,以提高安全性。

例如,域名為example.net,則數(shù)據(jù)庫名設(shè)為abcxyz,數(shù)據(jù)庫用戶名設(shè)為xyzabc??傊?,關(guān)聯(lián)度越低越好,數(shù)據(jù)庫名和數(shù)據(jù)庫用戶名越復(fù)雜越難猜測越好。

2
、控制權(quán)限的分配,PHP應(yīng)用僅給予必要的權(quán)限。

例如,安裝/升級Discuz!PHPWind論壇程序,僅需要下圖所示的權(quán)限即可:



在安裝/升級完畢后,還可以把CREATEALTER、DROP權(quán)限去掉,不會影響論壇程序的運行,而且提高了安全性!
phpMyAdmin的配置

由于OpenBSD中的phpMyAdmin默認是安裝在/var/www/phpMyAdmin目錄中的,直接使用Nginx是無法訪問的,我們需要把它拷貝到Nginx目錄下,這樣就可以通過瀏覽器來管理MySQL數(shù)據(jù)庫了。
mkdir /var/nginx/html/pma/
cp -rf /var/www/phpMyAdmin/* /var/nginx/html/pma/



修改phpMyAdmin的配置文件,使之可用。
vi +17 /var/nginx/html/pma/config.inc.php


將下面這行修改成:
$cfg['blowfish_secret'] = 'a'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!*/

(僅是加入了字母a而已)

保存退出。
小提示:

1
、上面新建了/var/nginx/html/pma目錄來保存phpMyAdmin的文件,目錄名很簡單。你可以用一個更復(fù)雜的目錄名來代替,例如:pma2YAY5jRpfFfLXQVm這樣的目錄名,以防止黑客利用字典攻擊等方法滲透你的phpMyAdmin!

2
你還可以在Nginx的配置文件中,將/var/nginx/html/pma配置成某個虛擬主機的根目錄,并限定可以訪問這個虛擬主機的IP。這樣,就可以在很大程度上提高數(shù)據(jù)庫的安全性了!一個配置示例在下面:
location / {
    allow   192.168.0.0/24;
    deny    all;
}


3
、假如平時只是偶爾用到phpMyAdmin,你還可以在用完后刪除/var/nginx/html/pma目錄,需要用的時候再拷貝過去。

4
、你還可以將以上方法結(jié)合起來靈活使用,既建立一個無法被猜測的目錄名,又限制IP訪問,這樣你的系統(tǒng)被黑的機會就會小了很多!
六、強化PHP的安全

OpenBSD
軟件包中的PHP已經(jīng)自帶了suhosin這個補丁,可以在很大程度上提高PHP腳本的安全。本節(jié)主要討論在php.ini文件中進行相關(guān)的設(shè)置,進一步提升安全性。具體來說,就是禁用某些危險函數(shù)和啟用PHP安全模式。

偶一般是把對PHP的所有修改都放在一個單獨的文件中進行,包括對PHP參數(shù)以及擴展模塊的修改,都放在這個文件中一并處理,這樣查找、修改和管理會方便許多:
vi /var/www/conf/php5/addphp.ini


加入下面的內(nèi)容:
; 禁止動態(tài)加載模塊
enable_dl = Off

;
隱藏PHP信息
expose_php = Off

;
限定可訪問目錄
open_basedir = /var/nginx/html/

;
設(shè)定session暫存目錄
session.save_path=/var/nginx/sesstmp

;
設(shè)定PHP上傳文件的臨時目錄
upload_tmp_dir=/var/nginx/tmp

;
禁用危險函數(shù)(注意下面的內(nèi)容應(yīng)該是一行,編排的原因分成了多行)
disable_functions = phpinfo,com,shell,exec,system,passthru,error_log,
stream_socket_server,putenv,ini_alter,ini_restore,ini_set,dl,openlog,
syslog,readlink,symlink,link,leak,fsockopen,pfsockopen,proc_open,
popepassthru,escapeshellcmd,escapeshellarg,chroot,scandir,chgrp,chown,
shell_exec,proc_get_status,popen,shmop_close,shmop_delete,shmop_open,
shmop_read,shmop_size,shmop_write

;
啟用PHP的安全模式
; PHP
在安全模式下運行是用性能換安全。據(jù)簡單測試,性能下降到50%左右,各位請酌情使用
;
啟用安全模式后,某些程序可能受到影響。例如,Discuz!將無法上傳附件
safe_mode = On

; pecl-APC
只使用16M的共享內(nèi)存用以加速PHP程序的運行
apc.shm_size=16M


保存退出。

七、強化SSH的安全
、SSH配置文件的修改
vi /etc/ssh/sshd_config


跳到最后,加入下面的部分:
# 使用高位端口,防止黑客掃描22端口??蛇x范圍1024~65535,推薦32768~65535。
Port 58937

#
登錄時間控制在30秒內(nèi)
LoginGraceTime 30

#
不允許root遠程直接登錄
PermitRootLogin no
StrictModes yes

#
最多允許三次錯誤
MaxAuthTries 3

#
最多允許三個SSH線程
MaxSessions 3

#
使用SSH協(xié)議2
Protocol 2

#
不使用密碼認證
PasswordAuthentication no

#
使用KEY的方式認證
PubkeyAuthentication yes

# KEY
文件存放位置
AuthorizedKeysFile      .ssh/authorized_keys


、使用KEY進行驗證

關(guān)于使用PuTTY進行KEY驗證的方法,請參見偶的另一篇博文,地址:
http://blog./u2/81136/showart_1860332.html

、按需啟動SSH

我們只在必要的時候啟動sshd服務(wù),用完即停止,不給黑客掃描的機會。輸入下面的命令:
crontab -e


跳到最后,輸入下面的內(nèi)容(中間的空白部分為Tab):
# 每天的10:30啟動sshd服務(wù)
30      10      *       *       *       /usr/sbin/sshd

# 10:35
即停止sshd服務(wù),也就是說,你只有五分鐘的時間可以登錄進系統(tǒng)
35      10      *       *       *       kill `cat /var/run/sshd.pid`


保存退出。

上面的時間請酌情修改。sshd服務(wù)啟動的時間盡量不要太長,5~10分鐘應(yīng)該夠了!

、一點安全小常識
1私鑰請一定保存在安全的地方,不要保存在本地計算機上,并加上足夠強度的“保護碼”;

2
本地計算機不要保存遠程主機的“指紋”,用一次確認一次(遠程主機的指紋保存在注冊表的HKEY_CURRENT_USER\Software\SimonTatham\PuTTY項下,可以手動刪除);

3
、不要使用DSA密鑰,據(jù)說有漏洞的;

4
、不要在公用計算機上連接遠程主機,有鍵盤記錄器、木馬什么的就麻煩了;

5
、多個遠程主機不要使用相同的公鑰,最好是使用各自的公鑰、私鑰;

6
、少用,最好是不用無線網(wǎng)絡(luò),加密強度太差,容易被破解;

7
、M$系統(tǒng)下的病毒、木馬太多了,推薦客戶端轉(zhuǎn)換到Linux/UNIX環(huán)境,安全性更高,而且仍然有PuTTY及工具可用;

8
、注意清除本地機器上不必要保留的文件(例如私鑰、公鑰、主機RSA指紋、C:\Documents and Settings\Administrator目錄下的文件等等)。

八、啟用Packet Filter防火墻

Packet Filter
是非常優(yōu)秀的包過濾防火墻,OpenBSD核心已經(jīng)集成了Packet Filter防火墻,不過默認并沒有啟用,下面我們來啟用Packet Filter的強大功能!
vi /etc/pf.conf


跳到最后,加入下面的內(nèi)容:
# 宏定義
#
請把下面的fxp0換成你自己用的外網(wǎng)網(wǎng)卡,不知道的可以輸入ipconfig查看
ext_if="fxp0"

#
指定可以使用SSH登錄的IP,支持CIDR
admin_add="192.168.0.0/24"

#
指定SSH端口。
#
注意,如果在/etc/ssh/sshd_config文件中更改了SSH端口號,這里的也需要同樣修改。否則連不上了不要怪偶沒有提醒!
ssh_port="58937"

#
維持一個持久的表,里面存放的是對本機發(fā)動DDoS攻擊的IP
table <badhosts> persist

#
選項設(shè)定
set require-order yes
set block-policy drop
set optimization aggressive
set loginterface none
set skip on lo0

# TCP
參數(shù)設(shè)定
set timeout {interval 3,frag 10}
set timeout {tcp.first 10,tcp.opening 2,tcp.established 600,tcp.closing 20,tcp.finwait 10,tcp.closed 10}

# UDP
、ICMP及其它參數(shù)設(shè)定
set timeout {udp.first 20,udp.single 10,udp.multiple 10}
set timeout {icmp.first 10,icmp.error 5}
set timeout {other.first 20,other.single 10,other.multiple 20}
set timeout {adaptive.start 0,adaptive.end 0}

#
允許最多有65536個連接
set limit { states 65535, frags 200, src-nodes 65536, tables 65536, table-entries 1048576 }

#
包整形
scrub in all
scrub out all

#
阻止所有不匹配的包和從DDoS主機來的包
block quick from <badhosts>
block return
block in all
block out all

#
防止IP欺騙
antispoof quick for {lo0,$ext_if}

#
允許本機訪問其他機器
pass out quick on $ext_if inet from $ext_if to any flags S/SA keep state

#
允許IPv4地址的客戶機訪問本地80www)端口,發(fā)起過快連接(DDoS)的主機加入阻止列表。注意是一行,下同
pass in quick on $ext_if inet proto tcp from any to $ext_if port 80 flags S/SA synproxy state (source-track rule,max-src-nodes 200,max-src-states 100,max-src-conn 100,max-src-conn-rate 1000/10,overload <badhosts> flush global )

#
允許IPv6地址的客戶機訪問本地80www)端口,發(fā)起過快連接(DDoS)的主機加入阻止列表
pass in quick on $ext_if inet6 proto tcp from any to $ext_if port 80 flags S/SA synproxy state (source-track rule,max-src-nodes 200,max-src-states 100,max-src-conn 100,max-src-conn-rate 1000/10,overload <badhosts> flush global )

#
允許管理IP遠程連接本機SSH端口
pass in quick on $ext_if inet proto tcp from $admin_add to $ext_if port $ssh_port flags S/SA synproxy state


保存退出。

修改系統(tǒng)配置,使得開機啟用PF防火墻:
vi /etc/rc.conf.local


跳到最后,加入下面這行:
pf=YES

保存退出。

九、系統(tǒng)啟動腳本的修改

修改系統(tǒng)啟動腳本,使得MySQL、PHP(fastcgi)Nginx可以在系統(tǒng)啟動的時候自動啟動,免去手動啟動的麻煩。
vi /etc/rc.local


跳到最后,加入下面的內(nèi)容:
# 啟動時校時。這行也可以加在/etc/daily.local文件的最前面,每天零點自動校時
rdate -n 210.72.145.44
# Start MySQL
if [ -x /usr/local/bin/mysqld_safe ] ; then
   echo -n 'Starting MySQL...'
   su -c mysql root -c '/usr/local/bin/mysqld_safe >/dev/null 2>&1 &'
   echo "DONE"
fi
# Start php-fastcgi
if [ -x /usr/local/bin/spawn-fcgi ] ; then
   echo -n 'Starting php-fastcgi...'
   /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u www -f /usr/local/bin/php-fastcgi > /var/run/fcgi.pid
   echo "DONE"
fi
# Start nginx
if [ -x /usr/local/sbin/nginx ] ; then
   echo -n 'Starting nginx...'
   /usr/local/sbin/nginx
   echo "DONE"
fi


保存退出。
reboot
重啟,啟動后輸入top看看,O.N.M.P.環(huán)境已經(jīng)搭建好了!



  系統(tǒng)啟動后,還要把MySQL自帶的測試數(shù)據(jù)庫和匿名用戶刪除,防止被黑客利用。默認情況下,新安裝的MySQL數(shù)據(jù)庫,root密碼為空!同樣需要第一時間進行設(shè)置,此處不再贅敘。

寫在最后
  其實,系統(tǒng)的安全是個整體工程,并不是用上了OpenBSD這個最安全的操作系統(tǒng)就算萬事OK,還有很多事情要做。
  更多的是需要在日常工作中積累經(jīng)驗,多分析系統(tǒng)整體的運行情況,多關(guān)注網(wǎng)絡(luò)安全方面的內(nèi)容,這樣才能盡可能的打造安全的運維環(huán)境。本手冊只是起到拋磚引玉的作用,希望能吸引更多的人來關(guān)注系統(tǒng)安全,希望有更多的人能用上OpenBSD這個主動安全的操作系統(tǒng),希望能推動OpenBSD在國內(nèi)的更多普及。如此,則幸甚!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多