yum -y install java
yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps
2013年11月20日 星期三
CentOS system-config 工具清單
system-config-authentication
system-config-network-tui
system-config-date
system-config-printer
system-config-display
system-config-securitylevel
system-config-kdump
system-config-securitylevel-tui
system-config-keyboard
system-config-selinux
system-config-language
system-config-services
system-config-lvm
system-config-soundcard
system-config-network
system-config-time
system-config-network-cmd
system-config-users
system-config-network-gui
system-config-network-tui
system-config-date
system-config-printer
system-config-display
system-config-securitylevel
system-config-kdump
system-config-securitylevel-tui
system-config-keyboard
system-config-selinux
system-config-language
system-config-services
system-config-lvm
system-config-soundcard
system-config-network
system-config-time
system-config-network-cmd
system-config-users
system-config-network-gui
Tomcat6 Alias Directory 筆記
編輯 /usr/share/tomcat6/conf/server.xml
在 <Host>中加入
<context docbase="/usr/share/tomcat6/webapps/ROOT/test" path="/t"> </context>
在 <Host>中加入
<context docbase="/usr/share/tomcat6/webapps/ROOT/test" path="/t"> </context>
2013年11月15日 星期五
CentOS 6.3 安裝 Monitorx
安裝 RPMforge
見 http://wiki.centos.org/zh-tw/AdditionalResources/Repositories/RPMForge
安裝相關套件
yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple httpd
下載、安裝 monitorix
wget http://www.monitorix.org/monitorix-3.3.0-1.noarch.rpm
rpm -ivh monitorix-3.3.0-1.noarch.rpm
修改設定檔
/etc/monitorix.conf
開啟服務
chkconfig monitorx on
service monitorix start
測試
http://localhost:8080/monitorix
見 http://wiki.centos.org/zh-tw/AdditionalResources/Repositories/RPMForge
安裝相關套件
yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple httpd
下載、安裝 monitorix
wget http://www.monitorix.org/monitorix-3.3.0-1.noarch.rpm
rpm -ivh monitorix-3.3.0-1.noarch.rpm
修改設定檔
/etc/monitorix.conf
開啟服務
chkconfig monitorx on
service monitorix start
測試
http://localhost:8080/monitorix
2013年11月13日 星期三
ZFS 筆記
mkdir /zfs
dd if=/dev/zero of=/zfs/zfs-1.dat bs=1024k count=100
dd if=/dev/zero of=/zfs/zfs-2.dat bs=1024k count=100
zpool create test /zfs/zfs-1.dat /zfs/zfs-2.dat
mkdir /test/n1
mkdir /test/n2
zfs create test/n1 (zfs create -o mountpoint=/n1 test/n1)
zfs create test/n2 (zfs create -o mountpoint=/n2 test/n2)
dd if=/dev/zero of=/zfs/zfs-1.dat bs=1024k count=100
dd if=/dev/zero of=/zfs/zfs-2.dat bs=1024k count=100
zpool create test /zfs/zfs-1.dat /zfs/zfs-2.dat
mkdir /test/n1
mkdir /test/n2
zfs create test/n1 (zfs create -o mountpoint=/n1 test/n1)
zfs create test/n2 (zfs create -o mountpoint=/n2 test/n2)
IIS appcmd 指令筆記(2012)
查詢指令
appcmd list app
appcmd list apppool
appcmd list backup
appcmd list site
備份還原
appcmd add backup MyBackup
appcmd restore backup MyBackup
備份檔路徑:%windir%\system32\inetsrv\backup
Site 維護
appcmd add site /name:MySite /bindings:http://*:80 /physicalpath:”d:\MySitePath”
appcmd delete site "MySite"
App 維護
appcmd add app /site.name:"MySite" /path:/MyApp /physicalpath:"d:\MySitePath\MyApp"
appcmd delete app "MySite/MyApp"
appcmd list app
appcmd list apppool
appcmd list backup
appcmd list site
備份還原
appcmd add backup MyBackup
appcmd restore backup MyBackup
備份檔路徑:%windir%\system32\inetsrv\backup
Site 維護
appcmd add site /name:MySite /bindings:http://*:80 /physicalpath:”d:\MySitePath”
appcmd delete site "MySite"
App 維護
appcmd add app /site.name:"MySite" /path:/MyApp /physicalpath:"d:\MySitePath\MyApp"
appcmd delete app "MySite/MyApp"
2013年11月5日 星期二
PHP Functions、Class Methods、Variables 名稱大小寫
PHP Functions Case Non-sensitive
Class Methods Case Non-sensitive
Variables Case sensitive
Class Methods Case Non-sensitive
Variables Case sensitive
2013年10月23日 星期三
CentOS 6.3/4 安裝 ZFS
yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-2.el6.noarch.rpm
yum update
yum install dkms gcc make kernel-devel perl
yum install spl zfs
chkconfig zfs on
reboot
yum update
yum install dkms gcc make kernel-devel perl
yum install spl zfs
chkconfig zfs on
reboot
2013年10月22日 星期二
BASH Script 系統變數
$n 表示第 n 個參數,$0 為 shell script 檔名
$# 命令行參數的個數
$0 目前程序的名稱
$? 上一個命令或函數的返回碼
$* 以"參數1 參數2 ... " 形式保存所有參數
$@ 以"參數1" "參數2" ... 形式保存所有參數
$$ 目前程序的PID
$! 最後一個在背景執行的程式的 process number
$- 傳遞給 shell 旗標 (flag)。
$# 命令行參數的個數
$0 目前程序的名稱
$? 上一個命令或函數的返回碼
$* 以"參數1 參數2 ... " 形式保存所有參數
$@ 以"參數1" "參數2" ... 形式保存所有參數
$$ 目前程序的PID
$! 最後一個在背景執行的程式的 process number
$- 傳遞給 shell 旗標 (flag)。
BASH 字串操作
字串中的一部份字串
${var:n1:n2}
由左自右找到最後一個符合fo的將之後的顯示出來,*表示fo左邊可以有任意字元
${var##*fo}
由左自右找到第一個符合fo的將之後的顯示出來
${var#*fo}
由右自左找到最後一個符合fo的將之後的顯示出來
${var%%*fo}
由右自左找到第一個符合fo的將之後的顯示出來
${var%*fo}
字串長度
${#var}
var!=null,則傳回var;否則 word
${var:-word}
var!=null,回傳var;否則設定變數值為 word,回傳變數值
${var:=word}
var!=null,回傳var;否則顯示「var: message」,並中斷目前的命令或 script。
${var:?message}
var!=null,回傳 word
${var:+word}
${var:n1:n2}
由左自右找到最後一個符合fo的將之後的顯示出來,*表示fo左邊可以有任意字元
${var##*fo}
由左自右找到第一個符合fo的將之後的顯示出來
${var#*fo}
由右自左找到最後一個符合fo的將之後的顯示出來
${var%%*fo}
由右自左找到第一個符合fo的將之後的顯示出來
${var%*fo}
字串長度
${#var}
var!=null,則傳回var;否則 word
${var:-word}
var!=null,回傳var;否則設定變數值為 word,回傳變數值
${var:=word}
var!=null,回傳var;否則顯示「var: message」,並中斷目前的命令或 script。
${var:?message}
var!=null,回傳 word
${var:+word}
2013年10月18日 星期五
BASH ARRAY 筆記
宣告方法
array=(a1 a2)
array=({1..10} {20,21} [20]=a)
${array[*]} 陣列中所有元素
${!array[*]} 陣列中所有元素指標
${#array[*]} 陣列中元素數目
${#array[0]} # Length of item zero
${#array[@]} 陣列中有幾筆資料
輸出 方式
echo ${array[0]}
array=(a1 a2)
array=({1..10} {20,21} [20]=a)
${array[*]} 陣列中所有元素
${!array[*]} 陣列中所有元素指標
${#array[*]} 陣列中元素數目
${#array[0]} # Length of item zero
${#array[@]} 陣列中有幾筆資料
輸出 方式
echo ${array[0]}
2013年10月9日 星期三
MySQL insert where 範例
create table a (i1 int, i2 int);
insert into a(i1,i2) select 1,2 from dual;
insert into a(i1,i2) select 1,2 from dual where 1=2;
insert into a(i1,i2) select 1,2 from dual;
insert into a(i1,i2) select 1,2 from dual where 1=2;
2013年10月8日 星期二
Apace .htaccess範例
<files "a_*.php">
order allow,deny
allow from all
Authname "For Members"
Authtype Basic
AuthUserFile "/web/.htpasswd"
require valid-user
</files>
<files "main.php">
order allow,deny
allow from all
Authname "For Members"
Authtype Basic
AuthUserFile "/web/wifi/.htpasswd"
require valid-user
</files>
order allow,deny
allow from all
Authname "For Members"
Authtype Basic
AuthUserFile "/web/.htpasswd"
require valid-user
</files>
<files "main.php">
allow from all
Authname "For Members"
Authtype Basic
AuthUserFile "/web/wifi/.htpasswd"
require valid-user
</files>
使用 PHP產生 Apache .htpasswd 檔案
$password = crypt($_REQUEST['password'], base64_encode($_REQUEST['password']));
file_put_contents('.htpasswd', sprintf("%s:$password", $_REQUEST['userid']));
2013年10月7日 星期一
2013年9月30日 星期一
PHP-檢查 MAC格式是否正確
// 檢查 MAC 是否正確 正確回傳1
function check_mac($mac){
$mac = strtr($mac, '-', ':');
return ereg("([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}$)",$mac);
}
function check_mac($mac){
$mac = strtr($mac, '-', ':');
return ereg("([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}):([[:xdigit:]]{2}$)",$mac);
}
PHP-將字串中重覆的空白去除
function mrim($value){
$s = '';
for($i=0; $i $t = (trim($value[$i])=='') ? $t + 1 : 0;
if($t<2 .="$value[$i];<br" s=""> }
return $s;
}2>
$s = '';
for($i=0; $i
if($t<2 .="$value[$i];<br" s=""> }
return $s;
}2>
Windows Server 2012 GUI 切換
伺服器以 Server 含 GUI 模式安裝
使用 PowerShell 將 Server Core 介面切換為 GUI 介面
Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart
以 Server Core 模式安裝
使用 Cmdlet Get-WindowsImage -ImagePath\install.wim 判斷「Server 含 GUI」映像 (例如 SERVERDATACENTER 而非 SERVERDATACENTERCORE) 的索引編號
執行 Install-WindowsFeature Server-Gui-Mgmt-Infra, Server-Gui-Shell –Restart –Source wim:\install.wim:
如果要使用 Windows Update (而非 WIM 檔案) 做為來源
Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart
使用 PowerShell 將 GUI 介面切換為 Server Core 介面
Uninstall-WindowsFeature Server-Gui-Mgmt-Infra -restart,將伺服器切回 Server Core 模式 (需要重新啟動)
使用 PowerShell 將 Server Core 介面切換為 GUI 介面
Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart
以 Server Core 模式安裝
使用 Cmdlet Get-WindowsImage -ImagePath
執行 Install-WindowsFeature Server-Gui-Mgmt-Infra, Server-Gui-Shell –Restart –Source wim:
2013年9月13日 星期五
2013年8月31日 星期六
Windows Server 2012 重複資料刪除功能
Windows PowerShell 輸入以下指令來安裝重複資料刪除功能:
Import-Module ServerManager
Add-WindowsFeature -name FS-Data-Deduplication
Import-Module Deduplication
Import-Module ServerManager
Add-WindowsFeature -name FS-Data-Deduplication
Import-Module Deduplication
PHP 標準輸出/輸入/STDIN /STOOUT
$fp = fopen("php://stdin", "r");
$fp2 = fopen("php://stdout", "w");
while (!feof($fp)) {
$buffer = fgets($fp);
fputs($fp2, "input:$buffer");
}
fclose($fp);
fclose($fp2);
echo "exit";
?>
$fp2 = fopen("php://stdout", "w");
while (!feof($fp)) {
$buffer = fgets($fp);
fputs($fp2, "input:$buffer");
}
fclose($fp);
fclose($fp2);
echo "exit";
?>
/etc/network/interface 範例
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
bond-slaves none
bond-mode active-backup
bond-miimon 100
bond-fail-over-mac 1
auto vlan5
iface vlan5 inet manual
vlan_raw_device bond0
iface lo inet loopback
auto eth0
iface eth0 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
bond-slaves none
bond-mode active-backup
bond-miimon 100
bond-fail-over-mac 1
auto vlan5
iface vlan5 inet manual
vlan_raw_device bond0
auto eth2:1
iface eth2:1 inet static
address 192.168.9.101
netmask 255.255.0.0
network 192.168.0.0
broadcast 192.168.255.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.1
2013年8月30日 星期五
PHP Radius認證範例
$username = 'test';
$password = 'test';
$radserver = '192.168.6.4';
$radport = 1812;
$sharedsecret = '1234567890';
$res = radius_auth_open();
echo "$res
\n";
while(1){
if (!radius_add_server($res, $radserver, $radport, $sharedsecret, 3, 3)) break;
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) break;
// if (!radius_put_string($res, RADIUS_NAS_IDENTIFIER, isset($HTTP_HOST) ? $HTTP_HOST : 'localhost')) break;
// if (!radius_put_int($res, RADIUS_SERVICE_TYPE, RADIUS_FRAMED)) break;
// if (!radius_put_int($res, RADIUS_FRAMED_PROTOCOL, RADIUS_PPP)) break;
// if (!radius_put_string($res, RADIUS_CALLING_STATION_ID, isset($REMOTE_HOST) ? $REMOTE_HOST : '127.0.0.1') == -1) break;
if (!radius_put_string($res, RADIUS_USER_NAME, $username)) break;
if (!radius_put_string($res, RADIUS_USER_PASSWORD, $password)) break;
$req = radius_send_request($res);
if (!$req) break;
if($req== RADIUS_ACCESS_ACCEPT) echo "ok";
else echo "fail";
exit();
}
echo 'RadiusError:' . radius_strerror($res);
?>
參考文件
http://sophie.zarb.org/distrib/Mandriva/cooker/x86_64/rpms/php-radius/files/10
http://php.net/manual/en/radius.constants.attributes.php
$password = 'test';
$radserver = '192.168.6.4';
$radport = 1812;
$sharedsecret = '1234567890';
$res = radius_auth_open();
echo "$res
\n";
while(1){
if (!radius_add_server($res, $radserver, $radport, $sharedsecret, 3, 3)) break;
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) break;
// if (!radius_put_string($res, RADIUS_NAS_IDENTIFIER, isset($HTTP_HOST) ? $HTTP_HOST : 'localhost')) break;
// if (!radius_put_int($res, RADIUS_SERVICE_TYPE, RADIUS_FRAMED)) break;
// if (!radius_put_int($res, RADIUS_FRAMED_PROTOCOL, RADIUS_PPP)) break;
// if (!radius_put_string($res, RADIUS_CALLING_STATION_ID, isset($REMOTE_HOST) ? $REMOTE_HOST : '127.0.0.1') == -1) break;
if (!radius_put_string($res, RADIUS_USER_NAME, $username)) break;
if (!radius_put_string($res, RADIUS_USER_PASSWORD, $password)) break;
$req = radius_send_request($res);
if (!$req) break;
if($req== RADIUS_ACCESS_ACCEPT) echo "ok";
else echo "fail";
exit();
}
echo 'RadiusError:' . radius_strerror($res);
?>
參考文件
http://sophie.zarb.org/distrib/Mandriva/cooker/x86_64/rpms/php-radius/files/10
http://php.net/manual/en/radius.constants.attributes.php
CentOS release 6.3 安裝 php radius 套件
yum install php-pear
yum install php-devel
yum install gcc
pear channel-update pear.php.net
pecl install radius
echo extension=radius.so > /etc/php.d/radius.ini
yum install php-devel
yum install gcc
pear channel-update pear.php.net
pecl install radius
echo extension=radius.so > /etc/php.d/radius.ini
2013年6月28日 星期五
windows 下將所有目錄個別壓縮
for /f "delims=*" %a IN ('dir /a:d /b') do "C:\Program Files\7-Zip\7z" a %a.zip %a
for /d %a IN (*) do "C:\Program Files\7-Zip\7z" a "%a".zip "%a"
for /d %a IN (*) do "C:\Program Files\7-Zip\7z" a "%a".zip "%a"
Windows 系統環境變數
%ALLUSERSPROFILE% C:\Documents and Settings\All Users
%APPDATA% C:\Documents and Settings\{username} \Application Data
%COMPUTERNAME% {computername}
%COMSPEC% C:\Windows\System32\cmd.exe
%HOMEDRIVE% C:
%HOMEPATH% \Documents and Settings\{username}
%PATH% C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem
%PATHEXT% .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH
%PROGRAMFILES% Directory containing program files
%PROMPT% Code for current command prompt format. Code is usually $P$G
%SYSTEMDRIVE% The drive containing the Windows root directory
%SYSTEMROOT% The Windows root directory
%TEMP% and %TMP% C:\DOCUME~1\{username}\LOCALS~1\Temp
%USERNAME% {username}
%USERPROFILE% C:\Documents and Settings\{username}
%WINDIR% C:\Windows
%DATE% 當前日期
%TIME% 目前時間
%CD% 目前目錄
%ERRORLEVEL% 錯誤碼
%RANDOM% Random number between 0 and 32767
%APPDATA% C:\Documents and Settings\{username} \Application Data
%COMPUTERNAME% {computername}
%COMSPEC% C:\Windows\System32\cmd.exe
%HOMEDRIVE% C:
%HOMEPATH% \Documents and Settings\{username}
%PATH% C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem
%PATHEXT% .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH
%PROGRAMFILES% Directory containing program files
%PROMPT% Code for current command prompt format. Code is usually $P$G
%SYSTEMDRIVE% The drive containing the Windows root directory
%SYSTEMROOT% The Windows root directory
%TEMP% and %TMP% C:\DOCUME~1\{username}\LOCALS~1\Temp
%USERNAME% {username}
%USERPROFILE% C:\Documents and Settings\{username}
%WINDIR% C:\Windows
%DATE% 當前日期
%TIME% 目前時間
%CD% 目前目錄
%ERRORLEVEL% 錯誤碼
%RANDOM% Random number between 0 and 32767
2013年5月23日 星期四
MySQL Unix timestamp 相關函式
FROM_UNIXTIME() Format UNIX timestamp as a date
UNIX_TIMESTAMP() Return a UNIX timestamp
UNIX_TIMESTAMP() Return a UNIX timestamp
MySQL IP LONG 轉換函式
INET_ATON() Return the numeric value of an IP address
INET_NTOA() Return the IP address from a numeric value
INET_NTOA() Return the IP address from a numeric value
2013年5月20日 星期一
CentOS 安裝 SOP
韌體更新
BIOS 的安全設置
GRUB / LILO 的密碼
更新軟體套件
yum update
TCP_WRAPPERS 阻止所有的主機連線
編輯 /etc/hosts.deny 加入
ALL: ALL@ALL, PARANOID
停用、反安裝不用的服務
acpid,apmd,atd,autofs,avahi-daemon,bluetooth,cpuspeed,cups,firstboot,gpm,haldaemon,hidd,hplip,ip6tables,isdn,lm_sensors,messagebus,nfslock,pcscd,portmap,rpcgssd,rpcidmapd,yum-updatesd,
修改系統 RunLevel
id:3:initdefault:
禁止 Control-Alt-Delete 鍵盤 重新啟動
編輯 /etc/inittab"
將 ca::ctrlaltdel:/sbin/shutdown -t3 -r now
改為:
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
執行:
/sbin/init q
限制 "/etc/rc.d/init.d" 存取權限
chmod -R 700 /etc/rc.d/init.d/*
隱藏系統資訊
編輯 /etc/rc.d/rc.local" 檔,最後一行加入
cat /dev/null > /etc/issue > /etc/issue.net
執行
mv /etc/issue /etc/issue.bak
mv /etc/issue.net /etc/issue.net.bak
修改DNS相關設定
編輯 /etc/host.conf,加入
order bind,hosts
multi on
nospoof on
設定本地時間及每天自動校對時間
yum -y install ntp
vi /etc/cron.daily/ntpdate.sh
#!/bin/sh
ntpdate -s watch.stdtime.gov.tw
chmod 755 /etc/cron.daily/ntpdate.sh
更新 Locate DB
updatedb
修改密碼相關設定
1.確認沒有空密碼
grep '^[^:]*::' /etc/passwd
2.限制密碼最短長度為 6
編輯 /etc/login.defs
修改 PASS_MIN_LEN 5 為 PASS_MIN_LEN 6
設定自動登出系統
編輯 /etc/profile ,添加這行
export TMOUT=300
清除歷史 Shell logging Bash
編輯 /etc/skel/.bash_logout ,添加這行
rm -f $HOME/.bash_history
封鎖 root 密碼
修改 /etc/shadow 的第二欄位將內容改成 *
設定 sudo
設定限制群組 wheel可以 sudo 不用再鍵入密碼就可變成 root 並開啟 sudo log 功能
yum install sudo
visudo
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL //預設值
%wheel ALL=(ALL) NOPASSWD: ALL //修改後
#Sudo log //並加入如下二行
Host_Alias SERVER = 127.0.0.1 //指定本機 IP
Defaults@SERVER log_year, logfile=/var/log/sudo.log //指定 log 格式及路徑設定 sudo log 二種格式 (log_host、log_year)寫入 /var/log/sudo.log 內容的差異
新增管理帳號及加入 wheel 群組
=============================================================================
取消普通用戶的控制臺使用許可權
rm -f /etc/security/console.apps/要消除的程式名
修改 /etc/services 權限,防止未經許可的刪除或添加服務
chattr +i /etc/services
不允許從不同的控制臺進行 root 登入
修改 /etc/securetty
化解外來 SYN 攻擊
編輯 /etc/rc.d/rc.local 加入以下設定,
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#降低 syn重試次數
echo 1 > /proc/sys/net/ipv4/tcp_syn_retries
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
#加大syn_backlog (消耗記憶體)
echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_backlog
BIOS 的安全設置
GRUB / LILO 的密碼
更新軟體套件
yum update
TCP_WRAPPERS 阻止所有的主機連線
編輯 /etc/hosts.deny 加入
ALL: ALL@ALL, PARANOID
停用、反安裝不用的服務
acpid,apmd,atd,autofs,avahi-daemon,bluetooth,cpuspeed,cups,firstboot,gpm,haldaemon,hidd,hplip,ip6tables,isdn,lm_sensors,messagebus,nfslock,pcscd,portmap,rpcgssd,rpcidmapd,yum-updatesd,
修改系統 RunLevel
id:3:initdefault:
禁止 Control-Alt-Delete 鍵盤 重新啟動
編輯 /etc/inittab"
將 ca::ctrlaltdel:/sbin/shutdown -t3 -r now
改為:
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
執行:
/sbin/init q
限制 "/etc/rc.d/init.d" 存取權限
chmod -R 700 /etc/rc.d/init.d/*
隱藏系統資訊
編輯 /etc/rc.d/rc.local" 檔,最後一行加入
cat /dev/null > /etc/issue > /etc/issue.net
執行
mv /etc/issue /etc/issue.bak
mv /etc/issue.net /etc/issue.net.bak
修改DNS相關設定
編輯 /etc/host.conf,加入
order bind,hosts
multi on
nospoof on
設定本地時間及每天自動校對時間
yum -y install ntp
vi /etc/cron.daily/ntpdate.sh
#!/bin/sh
ntpdate -s watch.stdtime.gov.tw
chmod 755 /etc/cron.daily/ntpdate.sh
更新 Locate DB
updatedb
修改密碼相關設定
1.確認沒有空密碼
grep '^[^:]*::' /etc/passwd
2.限制密碼最短長度為 6
編輯 /etc/login.defs
修改 PASS_MIN_LEN 5 為 PASS_MIN_LEN 6
設定自動登出系統
編輯 /etc/profile ,添加這行
export TMOUT=300
清除歷史 Shell logging Bash
編輯 /etc/skel/.bash_logout ,添加這行
rm -f $HOME/.bash_history
封鎖 root 密碼
修改 /etc/shadow 的第二欄位將內容改成 *
設定 sudo
設定限制群組 wheel可以 sudo 不用再鍵入密碼就可變成 root 並開啟 sudo log 功能
yum install sudo
visudo
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL //預設值
%wheel ALL=(ALL) NOPASSWD: ALL //修改後
#Sudo log //並加入如下二行
Host_Alias SERVER = 127.0.0.1 //指定本機 IP
Defaults@SERVER log_year, logfile=/var/log/sudo.log //指定 log 格式及路徑設定 sudo log 二種格式 (log_host、log_year)寫入 /var/log/sudo.log 內容的差異
新增管理帳號及加入 wheel 群組
=============================================================================
取消普通用戶的控制臺使用許可權
rm -f /etc/security/console.apps/要消除的程式名
修改 /etc/services 權限,防止未經許可的刪除或添加服務
chattr +i /etc/services
不允許從不同的控制臺進行 root 登入
修改 /etc/securetty
化解外來 SYN 攻擊
編輯 /etc/rc.d/rc.local 加入以下設定,
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#降低 syn重試次數
echo 1 > /proc/sys/net/ipv4/tcp_syn_retries
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
#加大syn_backlog (消耗記憶體)
echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_backlog
2013年5月17日 星期五
使用 openssl 利用 gmail smtp 寄件範例
openssl s_client -connect smtp.gmail.com:587 -starttls smtp -crlf
ehlo
250-mx.google.com at your service, [xx.xx.xx.xx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
auth login
334 VXNlcm5hbWU6
base64 email
334 UGFzc3dvcmQ6
base64 password
235 2.7.0 Accepted
mail from:
250 2.1.0 OK fr1sm9516362pbb.26 - gsmtp
rcpt to:
250 2.1.5 OK fr1sm9516362pbb.26 - gsmtp
data
354 Go ahead fr1sm9516362pbb.26 - gsmtp
test
.
250 2.0.0 OK 1368765135 fr1sm9516362pbb.26 - gsmtp
quit
其它:
產生 auth plain
printf "\0account@gmail.com\0password" | base64
產生 auth login
echo account@gmail.com |base64
echo password |base64
參考資料
http://www.fehcom.de/qmail/smtpauth.html
ehlo
250-mx.google.com at your service, [xx.xx.xx.xx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
auth login
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 2.7.0 Accepted
mail from:
250 2.1.0 OK fr1sm9516362pbb.26 - gsmtp
rcpt to:
250 2.1.5 OK fr1sm9516362pbb.26 - gsmtp
data
354 Go ahead fr1sm9516362pbb.26 - gsmtp
test
.
250 2.0.0 OK 1368765135 fr1sm9516362pbb.26 - gsmtp
quit
其它:
產生 auth plain
printf "\0account@gmail.com\0password" | base64
產生 auth login
echo account@gmail.com |base64
echo password |base64
參考資料
http://www.fehcom.de/qmail/smtpauth.html
2013年3月26日 星期二
Proxmox VE 安裝 rsync
安裝相關軟體
apt-get dist-upgrade
apt-get update
apt-get install xinetd
apt-get install rsyncd
編輯 /etc/xinetd.d/rsync 內容如下
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
編輯
/etc/rsyncd.conf
/etc/rsyncd.secrets
設定 xinetd 開機執行
update-rc.d xinetd enable
apt-get dist-upgrade
apt-get update
apt-get install xinetd
apt-get install rsyncd
編輯 /etc/xinetd.d/rsync 內容如下
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
編輯
/etc/rsyncd.conf
/etc/rsyncd.secrets
設定 xinetd 開機執行
update-rc.d xinetd enable
2013年3月1日 星期五
使用UNIX date 指令轉換 時間 timestamp 表示方法
date +%s -d "2013-03-01 12:12:11"
date -d @1362129131 +'%F %H:%M:%S'
date -d @1362129131 +'%F %H:%M:%S'
2013年2月27日 星期三
LEAF 使用 modules.tgz 載入自訂模組
#!/bin/sh MODULES="" diskfile=/var/lib/lrpkg/pkgpath.disks MODPKG_NAME=modules.tgz TMPDIR=/tmp [ "$MODULES" = "" ] && exit while read i do echo "search $i" mount tmpfs -t tmpfs /lib/modules dev=$(echo $i|awk '{print $1}') type=$(echo $i|awk '{print $2}') mountdir=$TMPDIR/$dev mkdir -p $mountdir mount $dev $mountdir cd /lib/modules [ -f $mountdir/modules.tgz ] && tar zxf /$mountdir/modules.tgz ln -s /lib/modules `uname -r` cd $OLDPWD [ -f /lib/modules/modules.dep ] && for I in $MODULES; do modprobe $I; done umount /lib/modules umount $mountdir done < $diskfile
2013年2月18日 星期一
SMTP 使用NC範例
#!/bin/bash
/root/mail_raid_message.sh | nc smtp.server 25 2>&1 >/dev/null
mail_raid_message.sh 內容如下
#!/bin/bash
HELO=smtp.server
FROM=""
TO=""
DATE=$(date '+%a, %d %b %Y %H:%M:%S %z')
echo $DATE
echo "HELO $HELO"
echo "MAIL FROM:$FROM"
echo "RCPT TO:$TO"
echo "DATA"
sleep 1
echo "From:$FROM"
echo "To:$TO"
echo "Date:$DATE"
echo "Subject:$DATE"
echo "mail message"
echo "."
sleep 1
echo "QUIT"
/root/mail_raid_message.sh | nc smtp.server 25 2>&1 >/dev/null
mail_raid_message.sh 內容如下
#!/bin/bash
HELO=smtp.server
FROM="
TO="
DATE=$(date '+%a, %d %b %Y %H:%M:%S %z')
echo $DATE
echo "HELO $HELO"
echo "MAIL FROM:$FROM"
echo "RCPT TO:$TO"
echo "DATA"
sleep 1
echo "From:$FROM"
echo "To:$TO"
echo "Date:$DATE"
echo "Subject:$DATE
echo "mail message"
echo "."
sleep 1
echo "QUIT"
2013年1月30日 星期三
Shell Script 中捉取 MySQL 資料庫中的指定記錄值
使用 -N 及 -s 參數
範例
mysql -u network -pnetwork network -e "select * from ip" -N -s
範例
mysql -u network -pnetwork network -e "select * from ip" -N -s
訂閱:
文章 (Atom)