更加安全的php.ini配置

修改/etc/php.ini 讓 php 配置更加安全

# 禁用危險的函數
disable_functions = phpinfo, system, exec

# 每個腳本的最大執行時間,單位秒
max_execution_time = 30

#每個腳本解析請求資料的最大時間
max_input_time = 60

#每個腳本可以消耗的最大記憶體(8MB)
memory_limit = 8M

#PHP要接收的POST資料最大大小
post_max_size = 8M

#是否允許HTTP檔上傳
file_uploads = Off

#允許上傳的最大檔大小
upload_max_filesize = 2M

#不將PHP錯誤消息暴露給外部使用者
display_errors = Off

#啟用安全模式
safe_mode = On

#只允許訪問隔離目錄中的可執行檔
safe_mode_exec_dir = php-required-executables-path

#限制外部訪問PHP資源
safe_mode_allowed_env_vars = PHP_

#限制洩露PHP資訊
expose_php = Off

#記錄所有錯誤
log_errors = On

#不為輸入資料註冊全域
register_globals = Off

#最小化允許的php post大小
post_max_size = 1K

#確保PHP重定向正確
cgi.force_redirect = 0

#禁止上傳,除非必要
file_uploads = Off

#啟用SQL安全模式
sql.safe_mode = On

#避免打開遠程文件
allow_url_fopen = Off​

發表於 PHP | 發表迴響

由「電腦名稱」查詢使用的IP

由「電腦名稱」查詢使用的IP

  1. 開始–>執行
  2. 輸入「cmd」
  3. nbtstat -a 「電腦名稱」 -c

由IP位址查出「電腦名稱」:

  1. 開始–>執行
  2. 輸入「cmd」
  3. nbtstat -A 「IP位址」
發表於 未分類 | 發表迴響

CentOS vsftpd FTP Server 安裝設定

  1. 安裝 vsftpd
    yum install vsftpd
  2. 編輯 vsftpd 設定檔
    vi /etc/vsftpd/vsftpd.conf
    伺服器環境有關的設定:
    use_localtime=YES
    connect_from_port_20=YES
    listen=YES #使用 stand alone 方式啟動 vsftpd
    ftpd_banner=文字說明
    banner_file=/path/file #指定純文字檔作為使用者登入伺服器時所顯示的歡迎訊息connect_timeout=60
    data_connection_timeout=300
    idle_session_timeout=300 

    max_clients=10 #設定同一時間,最多有多少 client
    max_per_ip=3 #同一個 IP 同一時間可允許多少連線
    local_max_rate=1000000 #限制實體用戶的下載流量,單位是 bytes/second

    pasv_enable=YES
    pasv_min_port=65400
    pasv_max_port=65410
    #使用 65400 到 65410 這 11 個 port 來進行被動式連線模式的連接

    anonymous_enable=NO #不允許 anonymous 登入我們的 vsftpd 主機

    ascii_download_enable=YES #如果設定為 YES ,那麼 client 就優先 (預設) 使用 ASCII 格式下載檔案
    ascii_upload_enable=YES #與上一個設定類似,只是這個設定針對上傳

    tcp_wrappers=YES #如為 YES 可以設定 /etc/hosts.allow 與 /etc/hosts.deny
    xferlog_enable=YES #使用者上傳與下載檔案都會被紀錄起來xferlog_file=/var/log/xferlog #如果上一個 xferlog_enable=YES 的話,這裡就可以設定登錄檔的檔名
    xferlog_std_format=NO #是否設定為 wu ftp 相同的登錄檔格式

    dual_log_enable=YES,
    vsftpd_log_file=/var/log/vsftpd.log
    nopriv_user=nobody #預設以 nobody 作為此一服務執行者的權限,入侵者僅能取得 nobody 的權限

    pam_service_name=vsftpd #這個是 pam 模組的名稱,放置在 /etc/pam.d/vsftpd

    實體用戶相關的資訊:
    local_enable=YES #支援本地端的實體用戶登入
    write_enable=YES
    local_umask=002 #建立新目錄與檔案的權限

    userlist_enable=YES #藉助 vsftpd 的抵擋機制來處理某些不受歡迎的帳號
    userlist_deny=YES #當 userlist_enable=YES 時才會生效的設定
    userlist_file=/etc/vsftpd/user_list #若上面 userlist_deny=YES 時,則這個檔案就有用處了!在這個檔案內的帳號都無法使用 vsftpd

    chroot_local_user=YES #是否要將使用者限制在自己的家目錄之內
    chroot_list_enable=YES #是否啟用 chroot 寫入列表的功能
    chroot_list_file=/etc/vsftpd.chroot_list #如果 chroot_list_enable=YES 那麼就可以設定這個項目

  3. /etc/pam.d/vsftpd
    vsftpd 使用 PAM 模組時的相關設定檔
    主要用來作為身份認證之用,還有一些使用者身份的抵擋功能,也是透過這個檔案來達成的。
    vi /etc/pam.d/vsftpd
  4. /etc/vsftpd/ftpusers
    與上一個檔案有關係,也就是 PAM 模組 (/etc/pam.d/vsftpd) 所指定的那個無法登入的使用者設定檔啊! 這個檔案的設定很簡單,你只要將『不想讓他登入 FTP 的帳號』寫入這個檔案即可。
    vi /etc/vsftpd/ftpusers
  5. 建立限制系統帳號登入的檔案
    /etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 這個檔案的設定所影響的
    /etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所設定
    /etc/vsftpd/user_list
    這個檔案是否能夠生效與 vsftpd.conf 內的 『 userlist_enable, userlist_deny 參數有關
    /etc/vsftpd/chroot_list
    這個檔案要生效與 vsftpd.conf 內的『 chroot_list_enable, chroot_list_file 』參數有關,檔案預設是不存在的,必須要手動自行建立。 

    這兩個檔案的內容是一樣的哩~並且這兩個檔案必須要存在才行。請參考 /etc/passwd 設定檔, 然後將 UID 小於 500 的帳號名稱同時寫到這兩個檔案內一行一個帳號!

  6. /usr/sbin/vsftpd
    這就是 vsftpd 的主要執行檔
  7. /var/ftp/
    vsftpd 的預設匿名者登入的根目錄
  8. 啟動 vsftpd
    service vsftpd start
    netstat -tulnp| grep 21
    chkconfig vsftpd on
  9. 防火牆設定:
    vi /etc/sysconfig/iptables
    加入 iptables 的規則
    iptables -A INPUT -i eth0 -p tcp –dport 20:21 -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp –dport 65400:65410 -j ACCEPT 

    vi /etc/sysconfig/iptables-config
    IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"# 加入模組即可!兩個模組中間有空白鍵隔開!

    /etc/init.d/iptables restart #重新啟動 iptables

  10. 常見問題:
    1.如果在 Client 端上面發現無法連線成功
    iptables 防火牆的規則當中,是否開放了 client 端的 port 21
    2.如果 Client 無法上傳檔案
    vi /etc/vsftpd/vsftpd.conf 加上這個設定『write_enable=YES』
  11. 加入 /var/log/vsftpd.log 的支援
    vi /etc/vsftpd/vsftpd.conf
    加入
    dual_log_enable=YES
    vsftpd_log_file=/var/log/vsftpd.log/etc/init.d/vsftpd restart
  12. 查看Log記錄:
    vi /var/log/vsftpd.log
    vi /var/log/messages
    vi /var/log/xferlog
發表於 Linux, Server | 發表迴響

IIS 7.5 + PHP5 + MySQL + SQLSRV 3.0

Server環境: Windows server 2008 R2 sp1 x64

  1. 安裝 Microsoft SQL Server 2012 Native Client x64
  2. 安裝 dotNetFramework_4_Full_x86_x64.exe
  3. 安裝 ODBC:mysql-connector-odbc-5.1.11-winx64.msi (非必要)

MySQL安裝:

  1. 安裝mysql-installer-community-5.5.27.2.msi

安裝PHP for Windows:
下載 php-5.3.17-nts-Win32-VC9-x86.msi:http://windows.php.net/download/
安裝 php-5.3.17-nts-Win32-VC9-x86.msi,選擇 fastcgi 安裝到 C:\PHP\

1. 這是php的安裝包,單純安裝並不能運行php,還需要伺服器(IIS、Apache等)的支援。

2. nts,也就是None-Thread Safe即非執行緒安全,在執行時不進行執行緒(thread)安全檢查反之,Thread Safe就是執行緒安全,執行時會進行執行緒(thread)安全檢查,以防止有新要求就啟動新執行緒的 CGI 執行方式耗盡系統資源。

PHP的兩種執行方式:ISAPI和FastCGI。

FastCGI執行方式是以單一執行緒來執行操作,所以不需要進行執行緒的安全檢查,除去執行緒安全檢查的防護反而可以提高執行效率,所以,如果是以 FastCGI(無論搭配 IIS 6 或 IIS 7)執行 PHP,都建議下載、執行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip 套件)。

而執行緒安全檢查正是為ISAPI方式的PHP準備的,因為有許多php模組都不是執行緒安全的,所以需要使用Thread Safe的PHP。

3. win32 指這是個32位元Windows平臺上運行的。

4. VC9 提示這是用Visual Studio 2008 編譯器編譯的,通常建議使用IIS 伺服器來架設(VC6的建議使用Apache)。
5. X86 提示此版本在X86架構系統上運行。

安裝SQLSRV30:
下載 SQLSRV30:
http://www.microsoft.com/en-us/download/details.aspx?id=20098

  1. 安裝 SQLSRV30 到 C:\PHP\ext
  2. 設定 C:\PHP\php.ini 檔
    extension_dir = "c:\PHP\ext"
    [PHP_MSSQL]
    extension=php_sqlsrv_53_ts.dll
    extension=php_sqlsrv_53_nts.dll

    [PHP_PDO_MSSQL]
    extension=php_pdo_sqlsrv_53_ts.dll
    extension=php_pdo_sqlsrv_53_nts.dll 

    register_globals = Off
    allow_url_fopen = Off
    magic_quotes_gpc = On
    short_open_tag = On
    #safe_mode = On

發表於 Server, 未分類 | 發表迴響

bps 流量單位換算

bps 是 bit per second 的縮寫,意思是「位元/秒」

bit,常以「b」表示。電腦傳輸資料的最小單位,也就是「0」或「1」
bit,位元,常以「b」 表示。
Byte,位元組,8 bit = 1  Byte,以「B」表示。
Kilo Byte,一千位元組,常以「KB」表示,1024 B   = 1 KB
Mega Byte,百萬位元組,常以「MB」表示,1024 KB  = 1 MB
Giga Byte,十億位元組,常以「GB」表示,1024 MB  = 1 GB

換算乙太網路速度規範: 10Mbps, 100Mbps, 1000Mbps.
10Mbps    =    1280 KB/s  =    1.25 MB/s
100Mbps    =   12800 KB/s  =   12.50 MB/s
1000Mbps    =  128000 KB/s  =  125.00 MB/s  (1Gbps)

發表於 未分類 | 發表迴響

LAMP安裝

  1. yum –y update
  2. shutdown –r now
  3. 設定iptables
  4. 時間校正
    yum –y install ntp 安裝ntp套件
    ntpdate –u time.stdtime.gov.tw ; /sbin/hwclock -w 校正系統時間,並同步寫入bios
  5. 安裝apache、php、mysql
    yum –y install httpd php mysql mysql-server php-mysql php-gd php-mbstring php-mcrypt
  6. Apache設定
    vi /etc/httpd/conf/httpd.conf 將ServerTokens 的OS改為Prod
    chkconfig httpd on 加入啟動列表
    service httpd start 啟動apache
  7. Mysql設定
    vi /etc/my.cnf
    [mysqld]裡加入
    default-character-set = utf8再加入
    [mysql]
    default-character-set = utf8 

    chkconfig mysqld on 加入啟動列表
    service mysqld start 啟動mysql
    mysqladmin –u root password ‘YourPassowrd’ 更改root密碼

發表於 Server | 發表迴響

Hyper-V Server2008 R2 SP1 安裝CentOS 6.2網卡配置

  1. 先下載 Linux Integration Services Version v3.2 for Hyper-V
    http://www.microsoft.com/download/en/details.aspx?id=28188
  2. 啟動 vm 前先掛載 Linux Integration Services Version v3.2 iso 檔
  3. mount /dev/cdrom /media
  4. cd /media
  5. sh install.sh
    Installing the Linux Integration Services for Microsoft Hyper-V…
    Preparing…                ###########################################[100%]
    1:kmod-microsoft-hyper-v ########################################### [100%]
    Preparing…                ########################################### [100%]
    1:microsoft-hyper-v      ########################################### [100%]
    Saving old initramfs
    Installing new initramfs
    Linux Integration Services for Hyper-V has been installed. Please reboot your system.
  6. reboot 重新啟動 vm
  7. 建立 /etc/sysconfig/network-scripts/ifcfg-eth0 設定檔
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
  8. 建立 /etc/sysconfig/network 設定檔
    NETWORKING=yes
  9. ifconfig -a 查看網路介面組態
發表於 Hyper-V | 發表迴響

Hyper-V Server 2008 R2 安裝及遠端管理

安裝 Hyper-V Server 2008 R2 SP1,請插入安裝光碟並將主機 BIOS 開機順序調整為 光碟機優先:

  1. 選擇安裝過程以及後續的操作介面語系,請選擇 【我的語言是 中文(繁體) (台灣)】
  2. 選擇時間及貨幣格式還有鍵盤或輸入法後,按下 【下一步】
  3. 按下 【立即安裝】 鍵 。
  4. 請勾選 【我接受授權合約】 項目後,按下 【下一步】 鍵。
  5. 選擇 【自訂 (進階)】 項目。於磁碟分割視窗中選擇欲安裝 Hyper-V 的硬碟後,按下 【下一步】 鍵。開始進行安裝程序,安裝過程中總共會重新啟動二次。
  6. 安裝完畢後,由於目前管理者帳號沒有密碼,因此請您登入時要輸入密碼,當所輸入的管理密碼不符合複雜性密碼原則時,會彈出提示視窗,符合複雜性密碼原則才會顯示設定成功。
  7. 登入後您會看到一個 【命令提示字元】 以及 【Server Configuration tool (Sconfig.cmd)】 視窗。

了解 Hyper-V Server 2008 R2 預設開啟 Port 號
Hyper-V Server 2008 R2 可以稱得上是 「Server Core 精簡版」,差別在於它 「無法新增其它功能及角色」 以及 「不支援 Application Failover」 ,另外關於硬體裝置支援部份 Hyper-V Server 已經包含了 Windows Server Driver Model,因此只要是 Windows Server 2008 R2 能抓到的硬體裝置,Hyper-V Server 2008 R2 也抓得到。

以下為 Hyper-V Server 2008 R2 安裝後預設會開啟的 Port 號以及功能說明:

  • TCP 135、49153、49154、UDP 5355: svchost.exe (Windows Services 的主機處理程序)
  • TCP 139、445、47001、UDP 137、138: System (NT Kernel & System)
  • TCP 2179: vmms.exe (虛擬機器管理服務)
  • TCP 49152: wininit.exe (Windows 啟動應用程式)
  • TCP 49155: lsass.exe (Local Security Authority Process)
  • TCP 49156: services.exe (服務及控制站應用程式)

可配合指令 netstat –nao 以及工作管理員進行查詢

預設情況下 Hyper-V Server 會開啟防火牆功能 BlockInbound, AllowOutbound (所以預設無法 Ping 到 Host)。

變更 Hyper-V Server 電腦名稱

請於 Hyper-V Server 的【Server Configuration tool (Sconfig.cmd)】選單視窗中進行操作

鍵入 【2】 選擇電腦名稱項目,輸入My-HyperV改變電腦名稱後必須要重新啟動主機才會套用生效

Hyper-V Server 設定固定 IP 位址

請於 Hyper-V Server 的【Server Configuration tool (Sconfig.cmd)】選單視窗中進行操作

  1. 鍵入 【8】 選擇網路設定項目
  2. 清單中會出現偵測到的網路卡清單,若有多片網卡請依索引 ID 進行選擇,本實作為鍵入 【0】 選擇網卡
  3. 依序鍵入相關資訊 【1 > S > 192.168.1.100 > 255.255.255.0 > 192.168.1.1】 ,也就是設定靜態 IP 位址、子網路遮罩、預設閘道
  4. 依序鍵入相關資訊 【2 > 8.8.8.8 > 168.95.1.1】 ,也就是設定 DNS 伺服器位址
  5. 設定完成後鍵入 【4】 離開設定選單

新增 Hyper-V Server 本機系統管理員帳號

  1. 鍵入 【3】 選擇新增本機系統管理員項目
  2. 輸入新建立的且加入本機系統管理員群組 Administrators 的成員帳號 power
  3. 帳號輸入完畢後會跳出視窗,請您設定二次該管理帳號的密碼
  4. 另一個管理帳號建立完成後,請切換至命令提示字元使用 【net user 帳號名稱】 指令,便可以查看帳號資訊
  5. 新建立的管理帳號權限確認無誤後,將預設的管理帳號 Administrator 進行「停用」的動作,請輸入 【net user Administrator /ACTIVE:NO】 指令即可,接著再次查看帳號資訊您會看到 帳戶使用中 的欄位由 【Yes -> No】

啟動 Hyper-V Server 遠端桌面功能

開啟 Hyper-V Server 的遠端桌面功能,以便後續進行遠端維護 (例如 下指令開啟防火牆允許某個協定及 Port 號能通過…等):

  1. 鍵入 【7】 選擇遠端桌面項目
  2. 依序鍵入相關資訊 【E > 1】 ,也就是採用較安全的方式來連結遠端桌面服務,啟用後 Hyper-V Server 將開啟 TCP 協定 Port 3389 (svchost.exe – Windows Services 的主機處理程序)

Hyper-V Server 開啟遠端管理功能

開啟相關的遠端管理功能,以便我們稍後在 Windows 7 能透過 RSAT 遠端伺服器管理工具進行管理的動作:

  1. 鍵入 【4】 選擇設定遠端管理項目
  2. 鍵入 【1】 以允許 MMC 遠端管理,此舉將會使 Hyper-V Server 開啟 TCP 協定 Port 49157 (svchost.exe – Windows Services 的主機處理程序)
  3. 鍵入 【2】 以啟用 Windows PowerShell 功能,當功能啟用完畢後會彈出提示視窗請您重新啟動主機
  4. 重新啟動完畢後請鍵入 【4 > 3】 允許伺服管理員遠端管理,此舉將會使 Hyper-V Server 開啟 TCP 協定 Port 5985 (System – NT Kernel & System) ,若您只是想使用 Hyper-V 管理員進行管理的話,此選項可不用開啟
  5. 最後請鍵入 【5】 返回 Server Configuration tool 主功能表

Windows 7 安裝 RSAT 遠端伺服器管理工具

於 Windows 7 主機中建立與剛才 Hyper-V Server 相同的管理帳號及密碼後進行登入,登入後您應該可以於 Windows 7 使用 【預設共用 C$】 方式連接至 Hyper-V Server,如果 Windows 7 主機的登入帳號與 Hyper-V Server 上不同則會跳出帳號密碼驗證視窗

//192.168.1.100/c$

//My-HyperV/c$

接著請下載安裝 [Windows 7 SP1 - RSAT 遠端伺服器管理工具]

安裝好 RSAT 後預設並不會自動出現於系統管理工具中,您必須要至 【開始 > 控制台 > 程式集 > 開啟或關閉 Windows 功能】 才能進行開啟,請勾選 【伺服器管理員】 及角色管理工具下的 【Hyper-V 工具】 項目

Windows 7 設定遠端管理事項

請先準備好由 [John Howard] 所撰寫的遠端管理簡易設定工具 [Hyper-V Remote Management Configuration Utility],接著請使用 【以系統管理員身份執行】 開啟 【命令提示字元】,執行如下相關指令:

  1. 鍵入 【winrm quickconfig】 指令,若與 Hyper-V Server 連接的網路卡處於 【公用網路】,此指令將會執行失敗。
  2. 鍵入 【winrm set winrm/config/client @{TrustedHosts="My-HyperV"}】 指令,將 Hyper-V Server 加入至信任主機清單中
  3. 鍵入 【netsh advfirewall firewall set rule group="遠端磁碟區管理" new enable=yes】 指令,屆時才可存取 Hyper-V Server 的 【磁碟管理】 項目
  4. 下載 HVRemote.wsf 簡易設定工具並切換至存放的資料夾下,鍵入 【cscript hvremote.wsf /AnonDCOM:grant /mmc:enable】 指令,以便給予 Anonymous Logon 具備遠端存取的權限,並開啟防火牆 MMC 例外規則
  5. 如果您登入的 Windows 7 主機的使用者帳號與 Hyper-V Server 上不同時,則您需要鍵入 【cmdkey /add:My-HyperV /user:power/pass:123456】 指令,指定將要存取 Hyper-V Server 的帳號及密碼存放於 Windows 7 電腦中 ,才可以進行稍後的遠端管理作業

Hyper-V Server 允許遠端伺服器管理工具設定

請由 Windows 7 主機將 HVRemote.wsf 設定工具,透過預設共用 C$ 存放 Hyper-V Server 中的 【C:\Tools】 資料夾內,接著執行相關指令:

  1. 切換至存取 HVRemote.wsf 設定工具資料夾下cd C:\Tools ,鍵入 【cscript hvremote.wsf /add:power】 指令,以授權使用者帳號遠端存取相關權限。
  2. 鍵入 【REG ADD HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Settings /v AllowRemoteRPC /t reg_dword /d 1】 指令,否則 Windows 7 主機屆時遠端存取 裝置管理員 時將會發生錯誤
  3. 鍵入 netsh advfirewall firewall set rule group="遠端磁碟區管理" new enable=yes】 指令,以允許 Windows 7 主機屆時能存取 磁碟管理
  4. 設定完成後請 【重新啟動】 Hyper-V Server 主機,以便相關設定套用生效

Windows 7 使用伺服器管理員進行遠端管理

當 Hyper-V Server 重新啟動完畢後,此時 Windows 7 便可以使用伺服器管理員進行遠端管理作業,開啟 【伺服器管理員】 後輸入遠端電腦主機名稱 (也就是遠端的 Hyper-V Server),此次實作為輸入 【My-HyperV】 輸入完畢後按下 【確定】 鍵,當連結成功後便可以使用伺服器管理員進行管理作業

若無法進行遠端管理的話,您可以使用下列指令將 Hyper-V Server 的防火牆關閉
netsh advfirewall set allprofiles state on/off】
然後在遠端管理作業【設定】→【具有進階安全性的Windows防火牆【連線安全性規則】新增規則【豁免驗證】中加入您的電腦

發表於 Hyper-V | 發表迴響

Postfix 郵件 Log 分析工具 pflogsumm

安裝
yum -y install postfix-pflogsumm

分析今天
pflogsumm -d today /var/log/maillog

分析昨天
pflogsumm -d yesterday /var/log/maillog

分析全部
pflogsumm /var/log/maillog

分析多檔
pflogsumm /var/log/maillog /var/log/maillog.1

分析 postfix今天的 maillog,並且寄信通知
pflogsumm -d today /var/log/mailllog | mail -s ‘郵件主旨’ user@localhost
ex.
pflogsumm -d today /var/log/mailllog | mail -s ‘Postfix Maillog Report’ user@yahoo.com.tw

 

發表於 Linux | 發表迴響

DNS正解vs反解

正解是 網址—>IP 反解是 IP —> 網址

更多相簿 | 發表迴響