SELinux 中 Apache HTTP 詳解

在使用CentOS時(shí)多多少少會(huì)涉及SELinux允睹,尤其是針對(duì)Web服務(wù),大部分的做法是關(guān)閉SELinux幌氮,正確的做法是設(shè)置好SELiunx缭受,可以防范網(wǎng)站攻擊風(fēng)險(xiǎn)。

本文參照官方SELinux文檔整理

1. Apache HTTP服務(wù)和SELinux

當(dāng)SELinux啟動(dòng)该互,Apache HTTP服務(wù)(httpd)默認(rèn)運(yùn)行在受限模式下米者。運(yùn)行的進(jìn)程只能在設(shè)定好的域domains內(nèi)運(yùn)行,并與其他受限進(jìn)程分開(kāi)宇智。如果一個(gè)受限進(jìn)程被攻擊蔓搞,依靠SELinux策略policy配置,攻擊者訪問(wèn)的資源和可能的損失都會(huì)被限制随橘。
接下來(lái)演示一下:

  1. 運(yùn)行getenforce命令確認(rèn)SELinux的運(yùn)行在enforcing強(qiáng)制模式下:
~]# getenforce 
Enforcing
  1. 查看httpd的狀態(tài)喂分,確認(rèn)服務(wù)正在運(yùn)行:
~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-11-05 17:13:09 CST; 43min ago
  1. 查看httpd進(jìn)程是否關(guān)聯(lián)了SELinux context(上下文):
~]# ps -eZ | grep httpd
system_u:system_r:httpd_t:s0     30275 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     30276 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     30277 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     30278 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     30279 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     30280 ?        00:00:00 httpd

通過(guò)ps命令的-Z參數(shù)可以查看進(jìn)城SELinux上下文狀態(tài)。
SELinux 上下文與httpd進(jìn)程關(guān)聯(lián)內(nèi)容為机蔗,system_u:system_r:httpd_t:s0蒲祈。其中httpd_t是SELinux的類(lèi)型type。這個(gè)類(lèi)型定義了一個(gè)進(jìn)程域domain和一個(gè)文件類(lèi)型type萝嘁。
當(dāng)前httpd進(jìn)程運(yùn)行在httpd_thttpd_t中梆掸。

SELinux策略policy定義了在受限域(如httpd_t)中運(yùn)行的進(jìn)程,如何與文件牙言、其他進(jìn)程和系統(tǒng)進(jìn)行交互沥潭。

文件必須被正確標(biāo)記label,以通過(guò)httpd訪問(wèn)它們嬉挡。比如:httpd可以讀取標(biāo)記為httpd_sys_content_t類(lèi)型的文件钝鸽,但是不能進(jìn)行寫(xiě)入操作,即便是文件加入了寫(xiě)入權(quán)限庞钢,如下:

~]# ls -Z /var/www/html/index.html
-rw-rw-rw-. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html

SELinux的布爾型設(shè)置boolean必須啟動(dòng)拔恰,以便允許確定的行為,比如基括,允許腳本網(wǎng)絡(luò)訪問(wèn)颜懊,允許httpd訪問(wèn)NFSCIFS卷,或者httpd允許執(zhí)行CGI腳本风皿。

2. Apache HTTP端口與SELinux端口

當(dāng)/etc/httpd/conf/httpd.conf文件配置完河爹,httpd監(jiān)聽(tīng)一個(gè)或多個(gè)端口,比如80,443,448,8080,8009或者8443等等桐款。
必須使用semanage port命令添加新的端口到SELinux策略配置中咸这。
下面演示使用新的httpd端口后,必須添加SELinux端口策略魔眨,否側(cè)httpd無(wú)法啟動(dòng)媳维。

  1. 確認(rèn)httpd服務(wù)沒(méi)有運(yùn)行
~]# systemctl stop httpd
~]# systemctl status httpd.service 
 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
  1. 使用semanage工具查看當(dāng)前關(guān)于httpd的監(jiān)聽(tīng)端口:
~]# semanage port -l | grep -w http_port_t
http_port_t  tcp  80, 81, 443, 488, 8008, 8009, 8443, 9000
  1. 編輯/etc/httpd/conf/httpd.conf文件,修改Listen的端口號(hào)為12345遏暴,可以確認(rèn)12345端口不再SELinux策略policy配置中:
~]# vim /etc/httpd/conf/httpd.conf
---
#Listen 12.34.56.78:80
Listen 12345
---
  1. 再次啟動(dòng)httpd查看結(jié)果:
~]# systemctl start httpd
Job for httpd.service failed because the control process exited with error code. 
See "systemctl status httpd.service" and "journalctl -xe" for details.

~]# ausearch -m avc -c httpd
type=AVC msg=audit(1541420299.439:1731): avc:  
denied  { name_bind } for  pid=51139 comm="httpd" src=12345 
scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 
tclass=tcp_socket

httpd服務(wù)無(wú)法啟動(dòng)
使用ausearch命令查看SELinux相關(guān)日志
日志顯示SELinux已經(jīng)拒絕(denied)啟動(dòng)httpd服務(wù)

  1. 現(xiàn)在允許httpd監(jiān)聽(tīng)12345端口
~]# semanage port -a -t http_port_t -p tcp 12345
~]# semanage port -l | grep httpd
http_port_t  tcp  12345, 80, 81, 443, 488, 8008, 8009, 8443, 9000
  1. 再次啟動(dòng)httpd服務(wù)侄刽,可以看到添加端口后,服務(wù)正常啟動(dòng)了
~]# systemctl start httpd.service

為了保證能正常訪問(wèn)朋凉,還需要在防火墻中添加端口12345

~]# firewall-cmd --permanent --add-port=12345/tcp
~]# firewall-cmd --reload
  1. 至此可以發(fā)現(xiàn)SELinux中對(duì)于端口的限制策略州丹。

注意:
a. semanage port 刪除端口,使用 -d參數(shù)即可
semanage port -d -t http_port_t -p tcp 12345
b. firewall-cmd刪除端口杂彭,使用--remove-port參數(shù)
firewall-cmd --permanent --remove-port=12345/tcp
firewall-cmd --reload

3. 類(lèi)型上下文(TYPES)

在SELinux的默認(rèn)策略targeted中墓毒,高級(jí)進(jìn)程隔離的主要權(quán)限控制方法是使用類(lèi)型強(qiáng)制Type EnForcement
所有文件和進(jìn)程都使用類(lèi)型type標(biāo)簽label來(lái)標(biāo)記:為進(jìn)程定義一個(gè)SELinux域domain類(lèi)型盖灸,為文件定義一個(gè)SELinux類(lèi)型type蚁鳖。
SELinux策略規(guī)則定義了類(lèi)型如何互相訪問(wèn),域是不是正在訪問(wèn)一個(gè)類(lèi)型赁炎,或者一個(gè)域訪問(wèn)其他的域醉箕。
只有在指定SELinux策略規(guī)則允許訪問(wèn)時(shí),才能訪問(wèn)讥裤。

參照下面例子在/var/www/html/目錄中創(chuàng)建一個(gè)新文件己英,顯示當(dāng)前文件是繼承了父目錄/var/www/html/目錄下的httpd_sys_content_t類(lèi)型:

  1. 查看/var/www/html/目錄的SELinux上下文context
~]# ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

可以看到當(dāng)前目錄使用的是httpd_sys_content_t類(lèi)型
所有的類(lèi)型上下文都用_t結(jié)尾

  1. 創(chuàng)建一個(gè)新文件再次驗(yàn)證文件的類(lèi)型上下文:
~]# touch /var/www/html/myfile1
~]# ls -Z /var/www/html/myfile1
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/myfile1

可以看到文件的類(lèi)型上下文被標(biāo)記為httpd_sys_content_t厢破,說(shuō)明這是繼承了父目錄的類(lèi)型上下文摩泪。

使用httpd_sys_content_t類(lèi)型见坑,那么SELinux允許httpd讀取當(dāng)前文件,但不允許寫(xiě)操作熊楼,即便是給文件加入了寫(xiě)權(quán)限。
SELinux策略定義了運(yùn)行在httpd_t域中的進(jìn)程可以讀寫(xiě)的類(lèi)型,這有助于防止進(jìn)程訪問(wèn)其他進(jìn)程使用的文件。

例如:httpd能訪問(wèn)標(biāo)記為httpd_sys_content_t類(lèi)型的文件合瓢,但是默認(rèn)情況下不能訪問(wèn)標(biāo)記為samba_share_t類(lèi)型的文件晴楔。
同樣税弃,在用戶主目錄中的文件被標(biāo)記為user_home_t類(lèi)型:默認(rèn)在用戶目錄中,不允許httpd讀取或?qū)懭胛募?/p>

下面列出了一些關(guān)于httpd的類(lèi)型幔翰,不同的類(lèi)型允許靈活的配置和訪問(wèn):

httpd_sys_content_t
這個(gè)類(lèi)型針對(duì)靜態(tài)web內(nèi)容,比如靜態(tài)網(wǎng)站使用的.html文件做修。
標(biāo)記為這種類(lèi)型的文件蔗坯,httpd可以讀取訪問(wèn)步悠,并且可以執(zhí)行腳本答姥。
默認(rèn)情況下,標(biāo)有此類(lèi)型的文件和目錄不能被httpd或其他進(jìn)程寫(xiě)入或修改尚粘。
需要注意的是,默認(rèn)情況下敲长,在/var/www/html/目錄中創(chuàng)建或復(fù)制的文件都用httpd_sys_content_t類(lèi)型標(biāo)記。

httpd_sys_script_exec_t
如果希望httpd執(zhí)行的腳本泽铛,使用這種類(lèi)型。
這種類(lèi)型通常用于/var/www/cgi-bin/目錄中的通用網(wǎng)關(guān)接口(CGI)腳本辑鲤。
默認(rèn)情況下,SELinux策略阻止httpd執(zhí)行CGI腳本月褥。為了實(shí)現(xiàn)這一點(diǎn)弛随,使用httpd_sys_script_exec_t類(lèi)型標(biāo)記腳本宁赤,并啟用httpd_enable_cgi布爾值舀透。
httpd_sys_script_exec_t標(biāo)記的腳本在httpd_sys_script_t域中運(yùn)行時(shí)被httpd執(zhí)行愕够。
httpd_sys_script_t域可以訪問(wèn)其他系統(tǒng)域挚躯,比如postgresql_tmysqld_t

httpd_sys_rw_content_t
標(biāo)記為這種類(lèi)型的文件可以由標(biāo)記為httpd_sys_script_exec_t類(lèi)型的腳本寫(xiě)入感挥,但不能被標(biāo)記為任何其他類(lèi)型的腳本修改。
標(biāo)記為httpd_sys_rw_content_t類(lèi)型來(lái)標(biāo)記文件越败,將由具有httpd_sys_script_exec_t類(lèi)型的腳本讀取和寫(xiě)入触幼。

httpd_sys_ra_content_t
標(biāo)記為這種類(lèi)型的文件可以由標(biāo)記為httpd_sys_script_exec_t類(lèi)型的腳本追加寫(xiě)入,但不能由標(biāo)記為任何其他類(lèi)型的腳本修改究飞。
使用httpd_sys_ra_content_t類(lèi)型來(lái)標(biāo)記的文件置谦,將由標(biāo)有httpd_sys_script_exec_t類(lèi)型的腳本讀取并追加到這些文件中。

httpd_unconfined_script_exec_t
標(biāo)記為這種類(lèi)型的腳本亿傅,意味著腳本不受限媒峡,運(yùn)行在沒(méi)有SELinux保護(hù)的情況下。
在無(wú)可奈何的情況下葵擎,針對(duì)對(duì)復(fù)雜腳本使用此類(lèi)型谅阿。
換個(gè)角度來(lái)說(shuō),最好使用這種類(lèi)型酬滤,而不是對(duì)httpd或整個(gè)系統(tǒng)禁用SELinux保護(hù)签餐。

4. 修改SELinux上下文context

a. 臨時(shí)修改上下文

可以通過(guò)使用chcon命令修改文件和目錄的類(lèi)型上下文。chcon的修改模式是臨時(shí)的盯串,當(dāng)系統(tǒng)重新標(biāo)記relabel或者執(zhí)行restorecon命令時(shí)就會(huì)失效氯檐。
SELinux策略控制用戶是否能夠修改指定文件的SELinux上下文。
接下來(lái)演示嘴脾,創(chuàng)建一個(gè)新的目錄/my/website/index.html文件供httpd使用男摧,并且設(shè)置標(biāo)簽允許httpd訪問(wèn):

  1. 在根目錄下,創(chuàng)建一個(gè)新的目錄译打,查看當(dāng)前目錄的上下文狀態(tài):
~]# mkdir -p /my/website
~]# ls -dZ /my
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /my

可以看到默認(rèn)新建的目錄的類(lèi)型上下文是default_t

  1. 使用chcon命令修改/my/目錄及子目錄的類(lèi)型上下文:
~]# chcon -R -t httpd_sys_content_t /my/
~]# ls -dZ /my
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /my
~]# ls -Z /my
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 website

可以看到/my/目錄和子目錄/website的類(lèi)型上下文都修改為httpd_sys_content_t
chcon命令的-R參數(shù)是遞歸全部子目錄和文件
chcon命令的-t參數(shù)是添加一個(gè)類(lèi)型

  1. 創(chuàng)建一個(gè)新文件耗拓,查看文件的類(lèi)型上下文:
~]# touch /my/website/index.html
~]# ls -Z /my/website/index.html 
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /my/website/index.html

可以看到,新建文件自動(dòng)繼承了奏司,所在文件夾的類(lèi)型上下文

b. 永久修改上下文

使用semanage fcontext命令是創(chuàng)建一個(gè)標(biāo)簽乔询,并在重新標(biāo)記,配合restorecon命令使用韵洋。
步驟:先使用semanage fcontext修改文件上下文的配置竿刁,然后運(yùn)行restorecon,讀取文件的上下文配置搪缨,并且允許修改標(biāo)簽食拜。
接下來(lái)還是使用上面的例子來(lái)演示,創(chuàng)建一個(gè)新的目錄/my/website/index.html文件供httpd使用副编,并且設(shè)置標(biāo)簽允許httpd訪問(wèn):

  1. 在根目錄下负甸,創(chuàng)建一個(gè)新的目錄,查看當(dāng)前目錄的上下文狀態(tài):
~]# mkdir -p /my/website
~]# ls -dZ /my
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /my
  1. 使用semanage fcontext命令修改類(lèi)型上下文:
~]# semanage fcontext -a -t httpd_sys_content_t "/my(/.*)?"
~]# ls -dZ /my
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /my

可以看到使用semanage fcontext命令后,文件夾的類(lèi)型上下文并沒(méi)有發(fā)生變化呻待。

  1. 創(chuàng)建一個(gè)新的文件:
~]# touch /my/website/index.html
~]# ls -Z /my/website/index.html 
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 /my/website/index.html

新建的文件index.html類(lèi)型上下文也沒(méi)有發(fā)生改變

  1. 接下來(lái)使用restorecon命令重新讀取文件上下文配置:
~]# restorecon -R -v /my/
restorecon reset /my context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /my/website context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /my/website/index.html context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0

至此打月,可以看到文件夾和文件的類(lèi)型上下文都變?yōu)?code>httpd_sys_content_t。
restorecon命令的-R參數(shù)是遞歸全部子目錄和文件
restorecon命令的-v參數(shù)是顯示修改的標(biāo)記

5.布爾值設(shè)置boolean

SELinux是在系統(tǒng)底層運(yùn)行蚕捉。服務(wù)以多種方式運(yùn)行奏篙,可以通過(guò)使用布爾值來(lái)實(shí)現(xiàn)如何運(yùn)行指定的服務(wù)。布爾值設(shè)置允許在運(yùn)行時(shí)更改SELinux策略的部分內(nèi)容迫淹,而不需要了解如何編寫(xiě)SELinux的策略秘通。布爾值是實(shí)時(shí)更新的,例如允許服務(wù)訪問(wèn)NFS卷敛熬,而無(wú)需重新加載或重新編譯SELinux策略充易。

修改布爾值的狀態(tài)很簡(jiǎn)單,只需通過(guò)setsebool命令即可荸型。比如:啟動(dòng)httpd_anon_write布爾值,輸入下面的命令:

~]# setsebool httpd_anon_write on

關(guān)閉一個(gè)布爾值同樣使用setsebool命令炸茧,僅僅是在onoff之間切換:

~]# setsebool httpd_anon_write off

需要注意
如果想永久修改布爾值瑞妇,需要在setsebool命令后加入-P參數(shù)。
一旦加入-P參數(shù)梭冠,則系統(tǒng)重啟后依然有效辕狰。

下面列出與httpd相關(guān)的部分布爾值:

布爾值 說(shuō)明
httpd_anon_write 當(dāng)被禁用時(shí),這個(gè)布爾值允許httpd只能讀取標(biāo)記為public_content_rw_t類(lèi)型的文件控漠。啟用此布爾值允許httpd寫(xiě)入標(biāo)記為public_content_rw_t類(lèi)型的文件蔓倍,例如包含公共文件傳輸服務(wù)文件的公共目錄。
httpd_mod_auth_ntlm_winbind 啟用此布爾值允許使用httpd中的mod_auth_ntlm_winbind模塊訪問(wèn)NTLM和Winbind身份驗(yàn)證機(jī)制盐捷。
httpd_mod_auth_pam 啟用此布爾值允許使用httpd中的mod_auth_pam模塊訪問(wèn)PAM身份驗(yàn)證機(jī)制偶翅。
httpd_sys_script_anon_write 這個(gè)布爾值定義是否允許HTTP腳本對(duì)標(biāo)記為public_content_rw_t類(lèi)型的文件進(jìn)行寫(xiě)訪問(wèn),就像在公共文件傳輸服務(wù)中使用的那樣碉渡。
httpd_builtin_scripting 這個(gè)布爾定義了對(duì)httpd腳本的訪問(wèn)聚谁。PHP內(nèi)容通常需要啟用這個(gè)布爾值。
httpd_can_network_connect 當(dāng)禁用此布爾值時(shí)滞诺,將阻止HTTP腳本和模塊啟動(dòng)到網(wǎng)絡(luò)或遠(yuǎn)程端口的連接形导。啟用此布爾值以允許此訪問(wèn)。
httpd_can_network_connect_db 當(dāng)禁用此布爾值時(shí)习霹,將阻止HTTP腳本和模塊啟動(dòng)到數(shù)據(jù)庫(kù)服務(wù)器的連接朵耕。啟用此布爾值以允許此訪問(wèn)。
httpd_can_network_relay 當(dāng)httpd用作正向或反向代理時(shí)淋叶,啟用此布爾值阎曹。
httpd_can_sendmail 當(dāng)禁用此布爾值時(shí),將阻止HTTP模塊發(fā)送郵件。如果在httpd中發(fā)現(xiàn)漏洞芬膝,這可以防止垃圾郵件攻擊望门。啟用此布爾值以允許HTTP模塊發(fā)送郵件。
httpd_dbus_avahi 當(dāng)被禁用時(shí)锰霜,這個(gè)布爾值拒絕httpd通過(guò)總線訪問(wèn)avahi服務(wù)筹误。啟用此布爾值以允許此訪問(wèn)。
httpd_enable_cgi 當(dāng)禁用此布爾值時(shí)癣缅,將阻止httpd執(zhí)行CGI腳本厨剪。啟用此布爾值以允許httpd執(zhí)行CGI腳本(CGI腳本必須用httpd_sys_script_exec_t類(lèi)型標(biāo)記)。
httpd_enable_ftp_server 啟用此布爾值允許httpd在FTP端口上偵聽(tīng)并充當(dāng)FTP服務(wù)器友存。
httpd_enable_homedirs 當(dāng)禁用此布爾值時(shí)祷膳,將阻止httpd訪問(wèn)用戶主目錄。啟用此布爾值以允許httpd訪問(wèn)用戶主目錄;例如屡立,/home/*/中的內(nèi)容直晨。
httpd_execmem 當(dāng)啟用時(shí),這個(gè)布爾值允許httpd執(zhí)行需要可執(zhí)行和可寫(xiě)的內(nèi)存地址的程序膨俐。從安全角度來(lái)看勇皇,不建議啟用這個(gè)布爾值,因?yàn)樗鼫p少了對(duì)緩沖區(qū)溢出的保護(hù)焚刺,但是某些模塊和應(yīng)用程序(如Java和Mono應(yīng)用程序)需要這個(gè)特權(quán)敛摘。
httpd_ssi_exec 這個(gè)布爾值定義web頁(yè)面中的服務(wù)器端包含(SSI)元素是否可以執(zhí)行。
httpd_tty_comm 此布爾值定義是否允許httpd訪問(wèn)控制終端乳愉。通常不需要這種訪問(wèn)兄淫,但是在配置SSL證書(shū)文件等情況下,顯示和處理密碼提示需要終端訪問(wèn)蔓姚。
httpd_unified 啟用后捕虽,此布爾值允許httpd_t完全訪問(wèn)所有httpd類(lèi)型(即執(zhí)行、讀取或?qū)懭雜ys_content_t)坡脐。禁用時(shí)薯鳍,在只讀、可寫(xiě)或可執(zhí)行的web內(nèi)容之間存在分離挨措。禁用此布爾值可以確保額外的安全級(jí)別挖滤,但增加了管理開(kāi)銷(xiāo),即必須根據(jù)每個(gè)腳本和其他web內(nèi)容各自具有的文件訪問(wèn)權(quán)限分別標(biāo)記腳本和其他web內(nèi)容浅役。
httpd_use_cifs 啟用此布爾值以允許httpd訪問(wèn)標(biāo)記為cifs_t類(lèi)型的CIFS卷上的文件斩松,例如使用Samba掛載的文件系統(tǒng)。
httpd_use_nfs 啟用此布爾值以允許httpd訪問(wèn)標(biāo)為nfs_t類(lèi)型的NFS卷上的文件觉既,例如使用NFS掛載的文件系統(tǒng)惧盹。

提示:
可以使用getsebool -a命令獲取全部的布爾值

~]$ getsebool -a | grep service_name

使用下面的命令查詢(xún)具體布爾值的說(shuō)明:

~]$ sepolicy booleans -b boolean_name

需要安裝policycoreutils-devel軟件包乳幸,才能使用sepolicy命令。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钧椰,一起剝皮案震驚了整個(gè)濱河市粹断,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嫡霞,老刑警劉巖瓶埋,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诊沪,居然都是意外死亡养筒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)端姚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)晕粪,“玉大人,你說(shuō)我怎么就攤上這事渐裸∥紫妫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵昏鹃,是天一觀的道長(zhǎng)剩膘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)盆顾,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任畏梆,我火速辦了婚禮您宪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奠涌。我一直安慰自己宪巨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布溜畅。 她就那樣靜靜地躺著捏卓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慈格。 梳的紋絲不亂的頭發(fā)上怠晴,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音浴捆,去河邊找鬼蒜田。 笑死,一個(gè)胖子當(dāng)著我的面吹牛选泻,可吹牛的內(nèi)容都是我干的冲粤。 我是一名探鬼主播美莫,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼梯捕!你這毒婦竟也來(lái)了厢呵?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤傀顾,失蹤者是張志新(化名)和其女友劉穎襟铭,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體锣笨,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝌矛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了错英。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片入撒。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖椭岩,靈堂內(nèi)的尸體忽然破棺而出茅逮,到底是詐尸還是另有隱情,我是刑警寧澤判哥,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布献雅,位于F島的核電站,受9級(jí)特大地震影響塌计,放射性物質(zhì)發(fā)生泄漏挺身。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一锌仅、第九天 我趴在偏房一處隱蔽的房頂上張望章钾。 院中可真熱鬧,春花似錦热芹、人聲如沸贱傀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)府寒。三九已至,卻和暖如春报腔,著一層夾襖步出監(jiān)牢的瞬間株搔,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工纯蛾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邪狞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓茅撞,卻偏偏與公主長(zhǎng)得像帆卓,于是被迫代替她去往敵國(guó)和親巨朦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1剑令、第八章 Samba服務(wù)器2糊啡、第八章 NFS服務(wù)器3、第十章 Linux下DNS服務(wù)器配站點(diǎn)吁津,域名解析概念命令:...
    哈熝少主閱讀 3,731評(píng)論 0 10
  • 基礎(chǔ)命令 為了在 sudo 中設(shè)置權(quán)限提升棚蓄,您需要編輯 sudoers 文件。 你不應(yīng)該直接編輯文件碍脏,而是使用:s...
    米開(kāi)朗基樂(lè)閱讀 1,907評(píng)論 0 5
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理梭依,服務(wù)發(fā)現(xiàn),斷路器典尾,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • 防火墻的概念iptables的簡(jiǎn)介iptables命令網(wǎng)絡(luò)防火墻NATfirewalld服務(wù) 一役拴、防火墻的概念 (...
    哈嘍別樣閱讀 1,823評(píng)論 0 1
  • 一、用戶帳號(hào)和環(huán)境……………………………………………………………. 2 二钾埂、系統(tǒng)訪問(wèn)認(rèn)證和授權(quán)…………………………...
    大福技術(shù)閱讀 5,957評(píng)論 0 5