phptimedate
⑴ 如何用PacketFence安裝配置NAC
作為網路的管理者和維護者,我們都想擁有一套健全的網路控制機制,如採用NAC(網路接入控制)方案。一個有效的NAC方案,對威脅具有極大的免疫性。但是由於NAC技術含量高,其價格也不菲,它已經成為許多廠商的重要利潤來源。那有沒有開源的NAC可以給我們選擇呢?
我們的回答是肯定的,開源NAC正在如火如荼地發展著。PacketFence是開源NAC中的佼佼者,它可靠、容易配置,且構建於未修改的開源代碼之上(Fedora, LAMP, Perl, and Snort)。PacketFence的設計目的是要在不同種類的環境中運行,並且它使用了「不可知廠商隔離」( vendor-agnostic isolation)技術,其中包括DHCP范圍改變和ARP高速緩存處理技術(「被動」模式)等。選購NAC非商業類不可嗎?非也!
PacketFence是開源團體對NAC提交的完美答卷。作為開源團體的一個堅定的支持者,筆者知道它勢必要成為一個有趣塌戚的項目,不過筆者在安裝PacketFence時也並非一帆風順。其中一部分困難來源於筆者反對在所推薦的環境中安裝PacketFence。為什麼筆者要反對呢?因為推薦的環境過時,如Fedora 4。
不過,筆者還是謹慎為妙,在Ubuntu 6.06伺服器中做出了最合乎邏輯的選擇。因此,請讀者注意:這種安裝是完全通過命令行方式完成的,而且有許多命令團森陵需要運行。
一、最重要的事情
1、安裝Ubuntu Server 6.06 LTS
你需要做的第一件事情是安裝Ubuntu Server 6.06 LTS。好消息是對這個版本的支持直至2001年,所以你不必擔心在安全漏洞出現時沒有補丁可打。一旦你下載了ISO鏡像文件,請用K3B(或其它類似的工具)來刻錄光碟。下面的工作就是准備安裝伺服器了。(注意:這是一個純文本的安裝。)
因為你要使用Ubuntu,所以你將會大量地使用sudo命令。這里將不可能存在root口令,不過你為所創建的用戶(在安裝期間創建的)所創建的口令也就是你要用的口令。但在筆者用Ubuntu和sudo時,總是創建一個root 口令,因為在進行某些應用程序的安裝時(或在配置Mysql時)它會省去不少問題。為此,請運行sudo passwd命令,並輸入新的「root」口令。一旦完成,你就可以大展拳腳了。
2、以SSH方式登錄
下面你要做的事情是通過SSH設置遠程管理。如果你需要遠程管理這個伺服器,你可能就需要安裝這個功能。為此,運行下面的這個命令:sudo apt-get install ssh openssh-server。筆者經常進行這種安裝(通過SSH)的一個主要原因是因為筆者需要搜索一些東西的話,就不必反復地在機器之間切換。既然安裝了SSH,下面就到這台可以訪問網路計算機上,通過SSH登錄到Ubuntu伺服器上。現在你可以繼續閱讀這篇文章,同時進行安裝。
二、准備軟體安裝:對源的處理
我們要使用apt-get命令來安裝軟體。為此,你必須首先編輯源以便能夠找到恰當的軟體包。為此,執行下面的命令:
備份你的原始源列表:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.BACKUP
現在你必須瀏覽源列表,並去掉sources.list文件中所列示的所有項目的注釋。請轉向/etc/apt,打開sources.list文件,清除所有的「#」,以去掉對所有源的注釋。或者你可以運行下面的命令:
sudo sed -i -e "s/# deb/deb/g" /etc/apt/sources.list
現在我們必須用下面的命令更新apt源:
sudo apt-get update
在你開始安裝應用程序之前的最後一步是:你必須能夠從源進行編譯。默認情況下,Ubuntu 6.06是不能這樣做的。因此,為了讓伺服器能夠做這個操作,請執行這個命令:
sudo apt-get install build-essential
在這步完成之後,你就可以准備安裝了。
三、安裝Snort
你應該做的春胡第一件事情是安裝一個入侵檢測系統。由於Snort是Linux中的標准軟體包(這也是PacketFence所建議的),我們將使用這個工具。請執行這個命令:
sudo apt-get install snort
在你繼續進行之前,你需要確保在系統啟動期間Snort不會啟動(否則,PacketFence不會啟動)。為此,使用update-rc命令:su update-rc.d –f snort remove。這樣Snort就從rc.d 運行列表中清除了。
四、安裝並啟動MySQL
為什麼要安裝MySQL呢?因為PacketFences使用一個資料庫,你必須注意安裝MySQL的一些細節問題。
首先,用命令sudo apt-get install mysql-server安裝MySQL。這個問題不太容易處理。因為筆者喜歡用一個「root」口令。運行「sudo passwd」命令,並輸入兩次「root」口令。現在你可以用pseudo-root用戶身份登錄了。你需要做的是改變MySQL的口令。默認情況下,這個口令保持空白。這是不安全的,而且PacketFence要求你擁有一個MySQL口令。因此請運行mysql -u root –p命令(目前沒有什麼口令。你現在應該在mysql>命令提示符下。現在輸入命令:
SET PASSWORD FOR root@localhost=PASSWORD(』NEWPASSWORD』);
這里的NEWPASSWORD就是你將要用於root MySQL用戶的新口令。好了,經過一翻周折,現在MySQL已經啟動。
五、安裝Apache和php
在這個階段,你需要做的第一件事情是安裝Apache和所有必要的模塊,下面是具體步驟:
sudo apt-get install apache2 libapache2-mod-proxy-html
此命令安裝了Apache和代理模塊。接下來安裝PHP:
sudo apt-get install libapache2-mod-php5 php-pear php5-mysql php5-gd
此命令會安裝PHP所必需的所有方面。
現在你必須要做的是停止Apache伺服器並防止其在啟動時運行。首先運行如下的命令:
sudo /etc/init.d/apache2 stop
要阻止Apache的運行,請運行:sudo update-rc.d -f apache2 remove命令,用以從rc.d運行列表中清除Apache。
六、Perl 及其模塊
其實,有大量的Perl模塊可以安裝。為此,請運行如下的命令:
sudo apt-get install perl-suid libterm-readkey-perl libconfig-inifiles-perl libnet-netmask-perl
sudo apt-get install libparse-recdescent-perl libnet-rawip-perl libtimedate-perl libwww-perl
現在Perl已經准備好了。
該請出我們主角了:
七、安裝PacketFence
最後要安裝的就是PacketFence應用程序自身了。我們不能使用apt-get進行安裝。你必須下載源代碼,並解壓,然後安裝。你可以用wget應用程序下載最穩定的版本。如果你沒有wget,也許需要通過sudo apt-get install wget命令安裝它。其下載將來自Sourceforge。目前(筆者寫此文時)PacketFence最新版本的下載地址是:http://downloads.sourceforge.net/packetfence/packetfence-1.6.2.tar.gz,因此,請執行如下的命令:
sudo cd /usr/local/
sudo wget
http://downloads.sourceforge.net/packetfence/packetfence-1.6.2.tar.gz
用如下命令解開tar文件:
sudo tar xvzf PacketFence-1.6.2.tar.gz
這就會創建/usr/local/pf目錄。請切換到Pf目錄,並執行下面的命令以啟動安裝程序:
sudo ./installer.pl
現在你基本上解決了安裝問題。默認的安裝方式就可以工作。一定要記住你的MySQL root用戶口令。還有要允許PacketFence的安裝程序為你創建必要的資料庫。筆者曾多次用phpMyAdmin創建資料庫,結果卻發現PacketFence系統不能為資料庫創建必需的表了。
在你進行最後的步驟之前,為安全起見,你可能需要創建一個SSL證書。為此,運行如下的命令:
cd /tmp
openssl req -new > PacketFence.csr
openssl rsa -in privkey.pem -out server.key
openssl x509 -in PacketFence.csr -out server.crt -req signkey
server.key -days 365
mv server.crt /usr/local/pf/conf/ssl/
mv server.key /usr/local/pf/conf/ssl/
rm -f PacketFence.csr privkey.pem
這就會為你的機器安裝一個唯一的證書。
一旦你完成了安裝,你就要運行configurator.pl來完成安裝。配置程序(configurator)基本上會設置你想要運行的系統類型。在你運行它時,將提供如下的內容:
1. 測試模式
2. 注冊
3. 檢測
4. 注冊與檢測
5. 注冊、檢測、掃描
6. 基於會話的認證
筆者建議首先在測試模式中運行系統。請你回答問題以完成安裝。
八、別忘了幾處修改
在完成過程中,筆者碰到的一個問題是PacketFence啟動過程不能找到Apache啟動過程,因為它是在查找/usr/bin/httpd instead of /usr/bin/apache2,這是在一個Ubuntu伺服器中所安裝的。要改變之,你必須在pf.conf中增加一個[service]項目。在你喜歡的編輯器中打開/usr/local/pf/conf/pf.conf文件,並且在文件的末尾增加下面的幾行:
[services]
httpd=/usr/sbin/apache2
現在,打開文件/usr/local/pf/conf/templates/httpd.conf,並添加下面的內容:
ServerRoot /usr/lib/apache2
然後,修改下面的行:LoadMole php4_mole moles/libphp4.so
變為:
LoadMole php4_mole /usr/lib/apache2/moles/libphp4.so
還有其它行需要修改。因為我們是在Ubuntu上安裝的Apache,所以必要的模塊必須反映/usr/lib/apache2/mole結構。遍歷整個/usr/local/pf/conf/templates/httpd.conf文件,改變其模塊的路徑以反映這點。你還需要去掉php5模塊這一行(大約在第79行)的注釋。
九、啟動PacketFence
你可以通過運行命令/usr/local/pf/bin/start首先來測試一下以確信PacketFence正在正常啟動。你應該僅看到如下的信息:
Checking configuration sanity...
service|command
config files|start
iptables|start
httpd|start
pfmon|start
pfdetect|start
snort|start
現在,用下面的命令來終止PacketFence系統:
/usr/local/pf/bin/stop
一旦你知道它正在正常啟動,就可以修改安裝,這樣PacketFence啟動過程就安裝了,並且rc.d系統也知道這一點。為此,需要執行下面的命令:
sudo cp /usr/local/pf/PacketFence.init /etc/init.d/PacketFence
sudo chmod 755 /etc/init.d/PacketFence
sudo update-rc.d PacketFence defaults
下一步,用下面的命令重新啟動系統:
sudo /etc/init.d/PacketFence start
然後你應該已經正常啟動完畢。
十、登錄
到此為止,基本大功告成。現在,我們啟動瀏覽器並將它指向PacketFence伺服器的IP地址,並在其中添加埠1443。也就是https://192.168.1.29:1443。注意,這是安全的HTTP。你會看到一個登錄屏幕,其中你需要輸入管理員的名稱(默認即是admin)和你為管理員創建的口令。
這就是你最後進行所有工作的地方。從這現在開始,你所做的就是指向什麼並單擊它了。
十一、安裝體驗:不輕松的過程
這樣說來,PacketFence的安裝過程富有挑戰性,可謂是筆者以前從未遇到。有人可能要問「這值得嗎?」有一句話說得好,「預防勝於治療」。PacketFence出現是開源領域也可以說是網路安全世界中的一件大事。這個工具本身又比較大,筆者相信它很快將流行起來。但願本文能為你安裝這個系統提供一些幫助。
後面,筆者將與你一起討論如何運用PacketFence來保護你的網路。
⑵ javascript 背景text顯示中文亂碼
設置ContentType為utf8,把涉及的頁面文件和腳本文信顫件都用utf8格式保存,另外如衡坦蔽果ajax方式從遠程取了數據,取的數據也要以utf8格式發送。
總咐州之亂碼肯定就是編碼不統一導致的。
⑶ 計算器上的鍵的使用方法
「MU」:mark-upandmark-down,計算利率和稅率。
MU」的用法如下:
1、加法:A+BMU,計算公式為:100+A÷B×100。
2、減法:A-BMU,通常用於計算變化率。計算公式為:(A-B)÷B×100。
3、乘法:A×BMU,通含盯常用於計算標記。計算公式為:A+A×B%。
4、除法:A÷BMU,通常用於計算標價。計算公式為:A÷(1-B%)。當再次按下MU鍵時,獲得利潤值,公式為:A÷(1-B%)-A。
(3)phptimedate擴展閱讀:
計算器功能按鍵使用介紹:
(1)「AC」或「CA」嫌鋒:全部清除,將輸入計算器的所有內容清除為0。
(2)「C」或「CE」:撤銷鍵可清除上一步中輸入的內容。例如,如果錯誤地將「1+2」輸入為「1+3」,則按「C」,然後輸入「2」。
(3)「M+」:讓計算器在進行加法運算時記住加法運算。
(4)「M-」:在進行減法計算時,讓計算器記住減法。
(5)「MR」:記憶調用,讀取記憶鍵,用於顯示當時的計算結果。
(6)「MC」:清除內存,刪除通過存儲鍵保存的內容。
(7)「MRC」:「MR」和「MC」合並。按兩次是「MR」相關的功能,再按兩次是「MC」相關的功能。例如,計算「1*2-2*3」,按以下順序操作:1*2,M+,2*3,M-,MR。
(8)「GT」:總和,總值鍵,按芹老晌等號後獲得的總數的總和。例如,「10*2+5*5」按以下順序操作:10*2=,5*5=GT。
⑷ 關於PHP的MKTIME問題
echo(date('Y-m-d h:i:s',$timedate)); 這句有問題
'Y-m-d h:i:s' 中的h是12 小時至的 你應該把它改成'Y-m-d H:i:s' 這樣就對了
⑸ dokuwiki 系統時間如何 更改
名稱 : date
使用許可權 : 所有使用者
使用方式 :
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
說明 :
date 可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號後接數個標記,其中可用的標記列表如下 :
時間方面 :
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鍾(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..61)
%T : 直接顯示時間 (24 小時制)
%X : 相當於 %H:%M:%S
%Z : 顯示時區
日期方面 :
%a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的磨悉信第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最後兩位數字 (00.99)
%Y : 完整年份 (0000..9999)
若是不以加號作為開頭,則表示要設定時間,而時間格式為 MMDDhhmm[[CC]YY][.ss],其中 MM 為月份,DD 為日,hh 為小時,mm 為分鍾,CC 為年份前兩位數字,YY 為年份後兩位數字,ss 為秒數
把計 :
-d datestr : 顯示 datestr 中所設定的時間 (非系統時間)
--help : 顯示輔助訊息
-s datestr : 將系統時間設為 datestr 中所設定的時間
-u : 顯示目前的格林威治時間
--version : 顯示版本編號
例子 :
顯示時間後跳行,再顯示目前日期 :
date +%T%n%D
顯示月份與日數 :
date +%B %d
顯示日期與設定時間(12:34:56) :
date --date 12:34:56
注意 :
當你不希望出現無意義的 0 時(比如說 1999/03/07),則可以在標記中插入 - 符號,比如說 date +%-H:%-M:%-S 會把時分秒中無意義的 0 給去掉,像是原本的 08:09:04 會變為 8:9:4。另外,只有取瞎輪得許可權者(比如說 root)才能設定系統時間。
當你以 root 身分更改了系統時間之後,陸唯請記得以 clock -w 來將系統時間寫入 CMOS 中,這樣下次重新開機時系統時間才會持續抱持最新的正確值。
⑹ 在一些網頁中可以看到::離XX的生日還有X天。這個究竟是怎樣做的給代碼我!!
調出來的是生日慧啟嗎?用什麼寫???asp、php、.net……?
如果是asp,可以用下面的方法:
birthday為從資料庫里讀的的生日,
dn離生日多少天
dn=datediff('d',date(),birthday),可以用datediff
datediff說明:
DateDiff 函數用於判斷在兩個日期之間存在的指定時間間隔的數目。例如可以使用 DateDiff 計算兩個日期相差的天數,或者當天到當年最後一天之間的星期數。
要計算 date1 和 date2 相差的天數,可以使用「一年的日數」(「y」)或「日」(「d」)。當 interval 為「一周的日數」(返碧談「w」)時,DateDiff 返回兩個日期之間的星期數。如果 date1 是星期一,則 DateDiff 計算到 date2 之前星期一的數目。漏碰此結果包含 date2 而不包含 date1。如果 interval 是「周」(「ww」),則 DateDiff 函數返回日歷表中兩個日期之間的星期數。函數計算 date1 和 date2 之間星期日的數目。如果 date2 是星期日,DateDiff 將計算 date2,但即使 date1 是星期日,也不會計算 date1。
如果 date1 晚於 date2,則 DateDiff 函數返回負數。
firstdayofweek 參數會對使用「w」和「ww」間隔符號的計算產生影響。
如果 date1 或 date2 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date1 或 date2 被包括在引號 (" ") 中並且省略年份,則在代碼中每次計算 date1 或 date2 表達式時,將插入當前年份。這樣就可以編寫適用於不同年份的程序代碼。
在 interval 為「年」(「yyyy」)時,比較 12 月 31 日和來年的 1 月 1 日,雖然實際上只相差一天,DateDiff 返回 1 表示相差一個年份。
下面的示例利用 DateDiff 函數顯示今天與給定日期之間間隔天數:
Function DiffADate(theDate)
DiffADate = "從當天開始的天數:" & DateDiff("d", Now, theDate)
End Function
⑺ php網站計數器程序,顯示「您是本站的第XXX位訪問者」
創建一個資料庫表
表名:table_counter
欄位:number
int(10)
1.顯示統計數據
$sql
=
"SELECT
*
FROM
table_counter";
2.每次刷新頁面
執行sql
$sql
=
"UPDATE
table_counter
SET
number=
number+
1";
如果要做的精確一點
在加一個表
table_visit
欄位:ip
1更次刷新取得遊客$ip;
2.取得$ip後.查詢
table_vist
.
如果存在則不更新table_counter.
如果不存在,則更新table_vist
,更新語句同上.並把$ip插入table_visit
如果還需要做的更人性化一點.設置一個時間間隔,比如說10分鍾.$diff
=
600;
在table_visit再加上一個欄位
datetime
:int(10)(時間戳).記錄遊客訪問時間.
1更次刷新取得遊客$ip
和
時間$date
=
time();
2.查詢
table_vist
.
$sql
=
"SELECT
*
FROM
table_vist
WHERE
ip
=
'$ip'";
3.如果不存在.則把$ip和$date插入表table_vist.
$sql
=
"INSERT
INTO
table_vist
SET
ip
=
'$ip',timedate=$date";
並更新table_counter;
4.如果存在,則判斷該條查詢結果的timedate
和
現在時間$date,的差值.和
$diff比較
少於則不做任何操作.
大於則更新table_vist
。$sql
=
"UPDATE
table_vist
SET
timedate
=
$date
WHERE
ip
=
'$ip'";
並更新table_visit;