2017年9月30日 星期六

電腦-Linux-ssh內建sftp的log

電腦-Linux-ssh內建sftp的log
開啟ssh server內建sftp的log紀錄

修改/etc/ssh/sshd_config
Subsystem   sftp   /usr/libexec/openssh/sftp-server
改為
Subsystem   sftp  /usr/libexec/openssh/sftp-server -l INFO -f AUTH

說明:
-l INFO 是要記錄的細節
-f AUTH 是在 rsyslog 內要使用的設定

編輯 /etc/rsyslog.conf
增加
auth.*    /var/log/sftp.log

說明:
auth 對應到 -f AUTH
.* 代表所有事件

記錄存放位置
/var/log/sftp.log

記下 openssh 中 sftp的log

2017年5月24日 星期三

電腦-Linux-CentOS系統更新及修補

CentOS系統更新及修補

即時或定期更新系統是減少漏洞和增加安全性的作法,
關於安全漏洞的通報可以參考底下的網站:
行政院國家資通安全會報技術服務中心
https://www.nccst.nat.gov.tw/Vulnerability?lang=zh
TWCERT/CC 台灣電腦網路危機處理暨協調中心
http://www.cert.org.tw/
國際CERT
https://www.kb.cert.org/vuls/
RedHat CVE
https://access.redhat.com/security/security-updates/#/cve
根據公告的嚴重性來做更新。
也可以定期對系統進行弱點掃描,確保系統更新是否正確。

CentOS安裝完成後,系統已安裝好yum更新套件庫設定,
主要設定檔:/etc/yum.repos.d/CentOS-Base.repo
已設定以下更新套件庫。
base
extras
updates
分別會更新系統已安裝的程式。包含kernel、系統、應用程式等。


更新
1.先執行yum check-update檢查系統可更新的程式。

2.如要更新系統所有已安裝的程式,執行 yum update
   如針對單一程式更新,在update後面加入程式名稱
   如yum update openssl

3.yum info
列出所有程式的資訊
如針對單一程式相關資訊,在info後面加入程式名稱
如yum info openssl


4.更新程式不一定要重開機,要看更新程式項目。
   但更新kernel需要重新開機,才會生效。
#通常核心需要升級的原因,大多是因為加入硬體週邊的支援、運作效能的最佳化、減少核心的檔案大小,或是增加新的功能。
kernel 4.0之後連更新核心也不用重新開機。
#yum update不更新kernel方法
vim /etc/yum.conf
在[main]當中加入
exclude=kernel kernel-source

5.執行更新前可於相同環境進行測試。
 (如在vm下可以覆制一台相同機器使用)


==============
yum更新指令
yum check-update
檢查系統可更新的程式

yum update
更新系統所有已安裝的程式
如針對單一程式更新,在update後面加入程式名稱
如yum update openssl

yum list updates
列出所有可以更新的程式

yum info
列出所有程式的資訊
如針對單一程式相關資訊,在info後面加入程式名稱
如yum info openssl

yum info updates
列出所有可以更新的程式資訊

2017年2月15日 星期三

電腦-windows取得特定日期時間

在windows作相關檔案,目錄整理時都需要使用時間判斷,將相關批次檔紀錄。

1.需要上個月份,可參考  The Will Will Web 如何在 Batch 檔取得系統的日期、時間欄位 (第三版) 的內容。

2.需要特定時間,可參考 在Windows裡擷取前一天日期的指令碼
 
   使用 VBScript 功能,在電腦 %tmp% 的目錄中,產生 tmp.vbs,
   其內容是 wscript.echo dateadd("d", -1, date),代表1天前的數字
   echo wscript.echo dateadd("d", -1, date) > %tmp%\tmp.vbs

   接下來從 tmp.vbs,分別得到 年、月、日 等三個變數 %y%、%m%、%d%
    for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i
    for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j
    for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k
 
   dateadd("d",-1,date) -n,要幾天前的數字
   改成 dateadd("m",-1,date),-n 要幾月前的數字

   擷取當天的日期
    for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do set y=%%i
    for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do set m=%%j
    for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do set d=%%k
    或
    for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do set dd=%%i%%j%%k



2017年2月14日 星期二

電腦-windows 系統環境變數

windows 系統環境變數

Windows永久變更系統環境變數的話,可修改註冊表(registry)的參數內容。
修改目前使用者環境變數:
HKEY_CURRENT_USER\Environment

修改系統環境變數:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]
REM 設定環境變數TEST為%PATH%的內容
reg add "HKEY_CURRENT_USER/Environment" /v TEST /t REG_EXPAND_SZ /d "%PATH%" /f
REM 設定環境變數TEST為%PATH%
reg add "HKEY_CURRENT_USER/Environment" /v TEST /t REG_EXPAND_SZ /d ^%PATH^% /f
REM 刪除環境變數TEST
reg delete "HKEY_CURRENT_USER/Environment" /v TEST /f

修改後不會立即生效。


批次檔(batch)的設定環境變數
set patch=新增變數內容;%PATH%(原有變數內容)
修改的環境變數內容僅止於執行的批次檔。

參考資料:
修改Windows系統環境變數
修改環境變數
批次檔BAT中應用Windows的36個環境變數

%ALLUSERSPROFILE%:All Users設定檔的資料夾位置。
%APPDATA%:目前使用者的Application Data資料夾位置。
%CD%:目前的工作資料夾。
%CLIENTNAME%:目前使用者的NETBIOS電腦名稱。
%CMDCMDLINE%:處理目前命令提示字元視窗命令的cmd.exe的完整路徑。
%CMDEXTVERSION%:目前Command Processor Extensions的版本。
%CommonProgramFiles%:Common Files資料夾的路徑。
%COMPUTERNAME%:電腦名稱。
%COMSPEC%::命令提示字元視窗的解譯程式路徑,通常與%CMDCMDLINE%相同。
%DATE%:目前的系統日期。
%ERRORLEVEL%:最近執行過的命令的錯誤碼;非零的值表示發生過的錯誤碼。
%HomeDrive%:使用者目錄的磁碟機。
%HomePath%:使用者家目錄。
%HOMESHARE%:目前使用者共用資料夾的網路路徑。
%LOGONSEVER%:目前使用者所登入的網路控制器名稱。
%NUMBER_OF_PROCESSORS%:電腦的處理器數量。
%OS%:作業系統名稱,其值固定為Windows_NT。
%Path%:執行檔的搜尋路徑。
%PATHEXT%:作業系統是為執行檔的副檔名。
%PROCESSOR_ARCHITECTURE%:處理器的架構名稱,例如x86。
%PROCESSOR_IDENTFIER%:說明處理器的文字(不一定會有此環境變數)。
%PROCESSOR_LEVEL%:處理器的model number。
%PROCESSOR_REVISION%:處理器的revision number。
%ProgramFiles%:應用程式目錄,預設是C:\Program Files。
%PROMPT%:目前解譯程式的命令提示字串。
%RANDOM%:顯示0到32767之間的十進位整數亂數。
%SESSIONNAME%:連上終端伺服器的session names。
%SystemDrive%:系統磁碟機,預設是C:。
%SystemRoot%:系統根目錄,預設是C:\WINNT或C:\WINDOWS。
%SystemDirectory%:系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32。
%Temp%、%Tmp%:暫存檔目錄。
%TIME%:目前的系統時間。
%UserDomain%:包含使用者帳號的網域名稱,或者電腦名稱。
%UserName%:使用者帳號名稱。
%USERPROFILE%:目前使用者的設定檔路徑。
%WinDir%:Windows目錄,預設是C:\WINNT或C:\WINDOWS。

系統存取環境變數的順序

1.Autoexec.bat
2.系統變數
3.使用者變數
也就是說,相同變數名稱同時經由上述三種方式設定之後,
在『使用者變數』所設定的變數值,會蓋過在『系統變數』或『Autoexec.bat』所設定的值;
而在『系統變數』所設定的值,會蓋過在『Autoexec.bat』所設定的值。

Windows系統內建的常見環境變數

以下環境變數可以在『檔案總管』使用,或在DOS視窗以echo指令顯示其值;
%SystemDrive%:系統磁碟機,預設是C:
%SystemRoot%:系統根目錄,預設是C:\WINNT或C:\WINDOWS
%SystemDirectory%:系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32
%WinDir%:Windows目錄,預設是C:\WINNT或C:\WINDOWS
%ProgramFiles%:應用程式目錄,預設是C:\Program Files
%Temp%、%Tmp%:暫存檔目錄 %HomeDrive%:使用者目錄的磁碟機
%HomePath%:使用者家目錄

以下的環境變數只能在DOS視窗以echo指令顯示其值:
%OS%:作業系統名稱,其值固定為Windows_NT
%UserDomain%:包含使用者帳號的網域名稱,或者電腦名稱
%UserName%:使用者帳號名稱

電腦-windows 定時校時設定。

windows client 端校時設定批次檔

=====
@echo off

REM 停止 Windows Time 服務
net stop w32time

REM 變更預設 Time Server (GUI 介面下拉 NTP Server 選單第一個內容)
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 0 /t REG_SZ /d "tick.stdtime.gov.tw" /f

REM 設定 NTP Server (可設定多組)
w32tm /config /syncfromflags:manual /manualpeerlist:"tick.stdtime.gov.tw,0x1 watch.stdtime.gov.tw,0x1"

REM 設定每 3600 秒校時一次
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 3600 /f

REM 啟動 Windows Time 服務
net start w32time

REM 開機自動啟動 Windows Time 服務
sc config w32time start= auto

REM 網路存在時啟用 Windows Time 服務,網路不存在時停止 Windows Time 服務
sc triggerinfo w32time start/networkon stop/networkoff

======
參考資料:

2017年2月13日 星期一

電腦-windows 硬碟空間整理清除

windows 硬碟定期整理清除,保持可用空間。

1.windows更新時會存放下載安裝檔的位置
C:\Windows\SoftwareDistribution\Download
先停用相關服務
Background Intelligent Transfer Service
Cryptographic Services
Windows Update

2.刪除Window更新記錄
C:\Windows\SoftwareDistribution\DataStore\logs
C:\Windows\SoftwareDistribution\DataStore\DataStore.edb
先停用Windows Update服務

參考資料:
硬碟空間又不夠了
刪除Window更新記錄
Windows 7 如何刪除更新 (Windows Update) 留下的檔案 ?

2017年1月22日 星期日

電腦-Redmine中文亂碼

電腦-Redmine中文亂碼

將 MySQL匯出,轉換成 utf8 再匯入回去

1. 匯出資料
mysqldump --uroot -p redmine > redmine.sql

2. 使用 sed 手動將 latin1_swedish_ci 取代成 utf8_general_ci
sed -i 's/latin1_swedish_ci/utf8_general_ci/g' redmine.sql

3. 使用 sed 手動將 latin1 取代成 utf8
sed -i 's/latin1/utf8/g' redmine.sql

4. 匯入 utf-8 的資料
mysql -uroot -p redmine < redmine.sql

資料來源:
Install Redmine with Apache on Debian 6

2017年1月9日 星期一

電腦 Windows-手動設定更新wsus主機(2)

使用cmd,讓client與WSUS更新
將以下內容存成wsus-update.cmd,在client上以系統管理者執行。
WUServer、WUStatusServer請更換成WSUS Server的IP
======
@echo on
net stop wuauserv
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f

REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /d "http://192.168.1.1:8530" /t REG_SZ /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /d "http://192.168.1.1:8530" /t REG_SZ /f

REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /d "00000001" /t REG_DWORD /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /d "00000000" /t REG_DWORD /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "AUOptions" /d "00000002" /t REG_DWORD /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "ScheduledInstallDay" /d "00000000" /t REG_DWORD /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "ScheduledInstallTime" /d "00000003" /t REG_DWORD /f

net start wuauserv
wuauclt /resetauthorization /detectnows
wuauclt /detectnow
wuauclt /reportnow

pause
======

參數說明:
數值名稱:NoAutoUpdate
數值資料:0 或 1
0: 啓用自動更新(預設)。
1: 禁用自動更新。
註冊表數值類型:Reg_DWORD

數值名稱:AUOptions
數值資料:1 到 4
1: 自動更新中的“保持我的電腦最新”已被禁用。
2: 提醒下載和安裝。
3: 自動下載並提醒安裝。
4: 自動下載並自動執行計劃的安裝。
註冊表數值類型:Reg_DWORD

數值名稱:ScheduledInstallDay
數值資料:0 到 7
0: 每天。
1 到 7:一周的每一天,從周日 (1) 到周六 (7)。
註冊表數值類型:Reg_DWORD

數值名稱:ScheduledInstallTime
數值資料:n,其中 n 以 24 小時形式表示的一天中的時間 (0-23)。
註冊表數值類型:Reg_DWORD

數值名稱:UseWUServer
數值資料:將此值設置爲 1,則自動更新將使用正運行軟體更新服務而不是 Windows 更新的伺服器。
註冊表數值類型:Reg_DWORD

數值名稱:RescheduleWaitTime
數值資料:m,其中 m 等於從自動更新啓動之後到它開始安裝已經錯過計劃時間的安裝之前要等待的時間(以分鐘爲單位,1-60 代表 1 分鐘到 60 分鐘)。
註冊表數值類型:Reg_DWORD
注意:用戶端更新爲 SUS SP1 用戶端版本或更高版本後,此設置僅影響用戶端行爲。

數值名稱:NoAutoRebootWithLoggedOnUsers
數值資料:Reg_DWORD:0 (false) 或 1 (true)。如果設置爲 1,當有登錄用戶時,自動更新不會自動重新啓動電腦。
註冊表數值類型:Reg_DWORD


電腦 Windows-手動設定更新wsus主機(1)

Windows-手動設定更新wsus主機

未加入網域的電腦可以使用gpedit.msc 本機群組原則設定更新主機


本機群組原則>電腦設定>系統管理範本>Windows 元件>Windows Update
設定自動更新
指定內部網路更新位置

http://192.168.1.1:8530
更新服務位置及統計伺服器輸入相同即可

執行 gpupdate /force

WSUS 用戶端相關指令
wuauclt /detectnow  
讓用戶端立即至WSUS連線

wuauclt /reportnow
讓用戶端立即回報更新狀態