網頁

顯示具有 windows 標籤的文章。 顯示所有文章
顯示具有 windows 標籤的文章。 顯示所有文章

2022年10月11日 星期二

Windows Server 持定目錄繼承權限調整

持定根目錄,例如 D:\ 內的使用者權限包含Everyone ,但建立在 D:\Apache\ 的又不要繼承 D:\ 已有的 Everone 權限時,可採以下設定方式。

做法如下:

  1. 針對調整的目錄利用檔案總管點選該目錄,此時選擇上方功能列內的 共用」後再選取進階安全性設定
  2. 出現階安全性設定」視窗後,停用繼承項目。出現的視窗提示選取 將繼承的權限轉換成此物件中的明確權限
  3. 選擇要移除權限帳號的主體(例如:Everyone),按下確定即可 (不需要勾選最下方可供勾選的項目 "以可從此物作繼承的權限項目取代所有子物件的權限項目(p)")

這樣就設定完成了。如果要重設,可以直接將調整好的目錄刪除後再重新建立該目錄後再重新執行以上流程就可以。

2022年5月12日 星期四

Windows Server 關機按鈕關閉

避免誤按關閉按鈕造成主機關機。

方式一:gpedit.msc 將關機按鈕從清單內直接移除

User Configuration > Administrative Templates > Start Menu and Taskbar. > Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands


方式二:cmd > logoff or shutdown -l

 

相關連結:

2021年11月16日 星期二

透過 private key 免帳密直接登入 SSH

 步驟:

  1. ssh-keygen -t rsa 產生 id_rsa & id_rsa.pub
  2. mv | cat | rename ~/.ssh/id_rsa.pub ~/.ssh/authorized_key
    • 此情境是在伺服器端處理,也可在客戶端產生後將 public key 資訊傳到伺服器端
    • 若有多筆公鑰內文可以附加到 authorized_key 檔案
    • 若 SSH 伺服器是 Window OpenSSH 且登入的帳號是屬於管理者身份。那就要將 id_rsa.pub 內文附加到 C:\ProgramData\ssh\administrators_authorized_keys 檔案內。
  3. id_rsa 傳給客戶端。客戶端將該檔放在 USERPROFILE\.ssh\* 就可以直接透過 SSH 免帳密直接登入使用 (e.g. ssh sftp@192.168.0.2)
  4. id_rsa 透過 puttygen (Tools bar: Conversions item) 轉換成 id_rsa.ppk
    • puttygen Tools Bar : Conversions item
    • Load id_rsa files and choice "Save private key" item
  5. 使用方式
    • 將 id_rsa.ppk 轉給 client 使用。如透過 filezilla client,登入形式採用金鑰,金鑰指向 id_rsa.ppk
    •  id_rsa (不用轉換 ppk ) 直接放到 windows 的使用者目錄內 (如,C:\Users\user_account\.ssh)後,再直接輸入 ssh user_account@IP 即可直接登入遠方主機
  6. 指定使用者產生供使用的 private key
    runas /user:account cmd,開啟視窗後,輸入密碼。以該身份執行以上的程序即可(authorized_keys 檔案放在該登入帳號的 .ssh 目錄內)。

備忘:公鑰與私鑰的製作可以在使用者端或是伺服器端。將公鑰放到伺服器端且將私鑰傳給要連線的客戶端。

相關參考:

 

2021年11月11日 星期四

filezilla server 1.1.0 安裝備忘

新版本 v 1.1.0 舊版本 v 0.9.60_b 的介面差異很大。 

在舊版本已存在的狀態下直接做新版本的安裝會自動透過 filezilla-server-config-converter.exe 自動轉換成新版本所採用的設定檔。轉換上去後,在 passive mode settings 的部份沒有順利轉換上去,需要自行重新設定,其它的部份看來都有正確的轉換。

安裝完畢後進入介面的 configure 項目做以下設定調整:

FTP Server Listeners :
Protocol 的部份全部改成  Require explicit FTP over TLS (port 990 可以關閉)

Passive mode:
需要自行重新設定

Security:
Provide a X.509 certificate,憑證的產生方式已沒有內建,可利用 openssl 自行產生。或者直接採用 filezilla server 所提供的憑證 “Use a self-signed X.509 certificate” 來做使用。先前舊版本的憑證可以透過 filezilla server 自已提供的功能產生,但它的做法會將 RSA PRIVATE KEY、CERTIFICATE 放在同一個檔案,如果要照舊那就產生的 key and crt 的內容合併在一起即可。

設定檔備份:
新版本設定檔的部份調整放到 C:\Windows\System32\config\systemprofile\AppData\Local\filezilla-server

Daemon 執行身份調整 (e.g. account_ftp user):預設安裝時會將設定檔放到上面所指定的位置。於系統服務將該 daemon 切換執行身份後會在新設定的身份的  C:\New_User\AppData\Local\filezilla-server\* 新增 filezilla server 的設定檔案。將 \filezilla-server\* 目錄賦予相關使用者寫入的權限後再將目錄內已存在的相關設定檔直接刪除再由原來已設定完成(C:\Windows\.....)的設定檔案複製過來。重新啟動 filezilla server 服務。這不確定有沒有其它更簡便的切換方式,爾後再確認。

版本更新方式:下載新版本後(e.g. 1.5.0 version),直接點選執行檔。重新按介面提示重新安裝一次。但更新後它的 daemon 於系統服務內的登入身份會轉換到執行更新時的帳號身份。若採不同身份執行特定 deamon 的做法時,記得將身份切換回所要指定的身份。

Logging:
先新增 ftp_log.txt 後再到介面內將 File path 指向這個檔案;log output 選用 To file.

目前使用狀況:
使用起來都OK。但 client 連線使用完畢做切斷的動作會出現以下訊息。這在舊版本沒有出現。
GnuTLS error -110 in gnutls_record_recv: The TLS connection was non-properly terminated.
Client did not properly shut down TLS connection
Control channel closed with error from source 0. Reason: ECONNABORTED - Connection aborted.
Session 1 ended with error from source 0. Reason: ECONNABORTED - Connection aborted.

note : 此問題已於 1.4 版本修正

FTPstats GUI-based FileZilla log parser : 待找
 

2021年11月2日 星期二

批次壓縮檔案與建立目錄內檔案清單

 zip.bat

rem 使用方式:檔案拖拉到此批次檔案即可
rem 此機制會自動在檔案名稱後加入副檔名名稱, 如 .pdf.zip。再利用批次重新命名修改即可
@echo off
set "a=%ProgramFiles%\7-zip\7z.exe"
for %%a in (%*) do if exist "%%~a\" (
        "%a%" a -tzip "%%~a.zip" "%%~a\*" -mx7
        ) else (
        "%a%" a -tzip "%%~a.zip" "%%~a" -mx7
        )

 list.bat 

rem 列出檔案名稱並依照檔名排序
rem 使用方式:檔案拖拉到此批次檔案即可
dir /b /on > list.txt

2021年3月9日 星期二

SFTP 安裝@ Windows

步驟 

@windows

應用程式內新增 OpenSSH伺服器

@powershell

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

Get-NetFirewallRule -Name *ssh* //檢視規則

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 //調整規則

調整 ssh_config 檔案 (%programdata%\ssh) & restart sshd

Port 22
ForceCommand internal-sftp //強制僅使用 sftp connections
Subsystem    sftp    sftp-server.exe -d "C:\Data_SFTP\"
ChrootDirectory C:\Data_SFTP //指定連線到特定目錄

AllowUsers sftpuser //加強管理
AllowGroups sshusers //加強管理

Logging //Windows OpenSSH 預設會記錄在事件檢視器。若要調整為記錄於檔案內需做以下調整。

SyslogFacility AUTH | LOCAL0 //AUTH 記錄在事件檢視器;LOCAL0 記錄在檔案
LogLevel INFO | VERBOSE | Debug3  (視需求)

//針對特定的 group 限制(系統內新增 sftponly group,並設定指定受限帳號)
Match Group sftponly
       ChrootDirectory C:\Apache2\htdocs
       ForceCommand internal-sftp
       X11Forwarding no
       AllowTcpForwarding no
 
//針對指定帳號登到指定目錄
Match User sftp_user
       ChrootDirectory C:\Apache2\htdocs\sftp_user
       ForceCommand internal-sftp
       X11Forwarding no
       AllowTcpForwarding no


參考資料

2020年11月20日 星期五

youtube-dl

基本上也是因為新聞才注意到此工具。基本上類似這類的工具不少,透過一些線上平台的服務使用就有相同的功能,使用上只要在平台頁面內貼上要下載的網址就可以下載。有些安裝在電腦內的付費版本軟體則有額外再提供轉檔等功能 (如,MP4 轉 MP3)。但這些功能 youtube-dl 也都有提供,且它也不僅只有支援 youtube 平台,它所支援的影音平台眾多。

簡單的註記使用方式:

下載: 

youtube-dl webiste , windows UI Portable

 外掛(有轉檔需求才需要):

ffmpeg, ffmpeg windows (ffmpeg-N-99931-ge3081d6f4f-win64-gpl-shared-vulkan 39.2MB ,不是很明白不同版本的差異,我是找容量最小的版本使用)

設定方式(@ windows): 

將下載的檔案放到指定的位址。設定作業系統內的環境變數,Path 路徑指定到程式放的位置。

軟體更新:

youtube-dl -U

使用範例:

youtube-dl <url> (自動會取最佳畫質)
youtube-dl <url> -F (看看有那些格式可以下載)
youtube-dl <url> -f 22+140 (指定要的格式與聲音下載 ; 數字由 -F 所呈現的資訊決定)
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' <url> (直接讓程式決定自動下載最佳所指定的影片+聲音 ; Download best mp4 format available or any other best if no mp4 available)
youtube-dl -x --audio-format mp3 <url> (直接抓取 mp3)
youtube-dl -x --audio-format mp3 --embed-thumbnail --add-metadata <url> (轉檔成mp3並加入縮圖與影片資訊)
youtube-dl -f mp4 <playlist-url>  (下載整份影片清單)
youtube-dl <url1> <url2> <url3> (下載多個指定的影片)
youtube-dl -f best -a list.txt (按檔案內的清單下載)
youtube-dl -f best <url>
youtube-dl -f 'bestvideo+bestaudio/bestvideo+bestaudio' --merge-output-format mp4 <url>
youtube-dl -f 'bestvideo[ext=webm]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 <url>
youtube-dl -f 'bestvideo+bestaudio[ext=m4a]' --merge-output-format mp4 <url>

下載 facebook 不開放社團內影片 youtube-dl --username=your account email --password=yourpassword https://www.facebook.com/video_URL

111.02.18 不知為什麼採上以上方式會出現 This video is only avaliable for registered user. 但確認登入的帳密是有效的。後來改用 cookie 的方式來抓取

cookie 的方式:

1. export cookie txt files (e.g. firefox export cookie puglin),保留 facebook cookie 即可。

2. youtube-dl --cookies C:\Temp\cookie.txt <facebook video url>

ffmpeg 影片切割
ffmpeg -ss 00:00:30.0 -i input.mp4 -c copy -to 00:01:30.0 output.mp4 (起訖時間;訖的時間由起開始計算)

教學參考:

  1. How to Install Youtube-DL on Windows
  2. youtube-dl Format Selection 
  3. 用 youtube-dl 優雅下載 YouTube 影片 
  4. Youtube-dl濃縮教學筆記 
  5. shell - youtube-dl DASH視頻和音頻,無需人工干預即可獲得最高質量  
  6. 影音剪輯 / 使用 ffmpeg 分割影片 (指定開始及結束時間或固定時間長度分割)
  7. FFmpeg无损快速切割视频方法 
  8. 懶人剪影片法(使用終端機指令)

注意事項: 

  1. 下載Youtube音樂或影片合法嗎?
  2. MP3音樂檔案下載是否違法?
  3. [法律授權] 我可以在自己的網站上使用那支影片嗎? Youtube、Vimeo、Vine,Instgram
  4. 你以為的 YouTube 無版權音樂竟然侵權?讓創作者苦惱的著作權問題
  5. 鏈結youTube影片不構成侵害著作權 ?
  6. 盜版線上看,不下載不犯法? 
  7. 【法律白話文運動】線上的盜版影片違反著作權法,那我線上追劇有沒有違法? 


2020年7月17日 星期五

MySQL 多版本並存 @ Windows

同主機內多版本 MySQL並存安裝方式:

下載 MySQL instraller ,點選並執行它。安裝過程參考附圖。過程中要注意的事項如下:
  1. 由於是要同主機多版本並存使用,所以 installer 的第一個頁面要選擇 Cancel後,再點選 Add 按鈕 (圖二)。
  2. port 衝突的問題,記得預設 port 號要更改。
  3.  Authentication Method 更動,主要是考量到版本相容性而已。
附圖參考:



















相關參考:

2019年12月8日 星期日

Apache 頻寬限制

Apache2.4 版本已內建頻寬限制模組。將 mod_ratelimit.so 啟動即可。

範例:針對特定目錄限速

LoadModule ratelimit_module modules/mod_ratelimit.so

<Directory "C:/Apache2/htdocs/download">
    SetOutputFilter RATE_LIMIT
    #1000kb/s
    SetEnv rate-limit 1000
</Directory>

相關資料

2019年4月17日 星期三

伺服器重新開機自動發送信件提醒

伺服器重新開機自動發送信件提醒,一直以來都是利用 PHP 再加上作業系統的工作排程來逹成這件事,但不是每一台主機都有 PHP 的環境。

找一下資料,在 Windows 主機上也可以透過 Powershell 的腳本來完成這件事,實作方式直接參考相關資料連結即可。

腳本如下,將紅色字體的地方修改成符合自己的環境,再將此文字檔另存為 EmailScript.PS1。透過系統的工作排程器讓主機重新開機後自動執行這個檔案。這樣就可以了。

Powershell 腳本如下:
$SmtpClient = new-object system.net.mail.smtpClient

$MailMessage = New-Object system.net.mail.mailmessage

$SmtpClient.Host = "SMTP.YOURcompany.com"

$mailmessage.from = ("DoNotReply_ToThisEmail@ YOURcompany.com ")

$mailmessage.To.add("Person@ YOURcompany.com , Person2@ YOURcompany.com, …… ")

$mailmessage.Subject = "Alert Subject"

$mailmessage.Body = "Alert Body with Instruction to recipients"

$smtpclient.Send($mailmessage)
工作排程器設定方式:
Program/script:設定為 C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe

Add arguments(optional):設定為 -NoProfile -Executionpolicy bypass -file "Path to your file.ps1" 

相關資料:

2018年11月16日 星期五

OpenJDK 相關資料

Orcale 對於 JAVA/JRE 的支援,做了些變動。 針對個人用途的 Oracle Java SE 8 公開更新至少會一直提供到 2020 年底為止。業務、商業或生產用途的 Oracle Java SE 8 若未取得商業授權,將會無法使用 2019 年 1 月之後發行的公開更新。

於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。

AWS釋出免費OpenJDK Amazon Corretto,免費安全更新至2023年。

這試著重新部署主機上原有的服務,將 Orcale JRE 試著改變成 OpenJDK Amazon Corretto,但會出現以下狀況,原已佈署到服務內的 Tomcat 服務,主機重新啟動是無法自動執行 Tomcat,但透過 /tomcat/bin/startup.bat 可以正常執行。後來查一下,看來應是 Tomcat 與 JRE 所選用的位元版本不一致所導致的,細節可操考這頁的說明

目前 Amazon Corretto 僅提供 64bit 版本。後來直接重新下載 tomcat 64bit 版本,直接將 64bit 版本內的 /bin/* 直接覆蓋到 32bit 版本內 (保留 catalina.bat, setclasspath.bat, catalina.bat ) 後就可以正常運作了。

相關資料:

2018年9月21日 星期五

代理伺服器後的 Web Server 要取得 Client IP 的作法

這有一台主機是前端是透過 reverse proxy (squid) 代理,而這樣的方式若 Web Server 不做額外的調整時,所看到的連線記錄都會是 Proxy Server IP。如果要取得 Client IP 時,Apache就要做以下調整。

這是以 Apache2.4 windows server 為範例:

編輯 Conf/httpd.conf 檔案,內容如下:

啟用 LoadModule remoteip_module modules/mod_remoteip.so

將 LogFormat 所有出現 %h 改成 %a
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

改成 
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %b" common
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
(如果是直接在 $h 後加入 $a 那就會同時記錄proxy IP 與 client IP)
加入 
#To get Cient IP behide the Proxy
<IfModule mod_remoteip.c>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy Your Proxy IP
</IfModule>

因為主機的使用量還蠻大的,所以主機有額外採用 rotatelogs 的機制,但很奇怪的是採用 TransferLog 的方式就不能記錄到 Client IP,記錄的 IP 還是 Proxy IP,但在 error.log 就有記錄到連線的 Client IP。後來將 TransferLog 改採 CustomLog 的方式後就可以正確的記錄 Client IP。

我在這卡了很久,一直不明白為什麼沒有記錄到 Client IP ,在後來才發現這個現象,只要將 TransferLog 的機制改成 CustomLog 後就可以解決這個問題。

修改方式如下:
TransferLog "|X:/Apache2/bin/rotatelogs.exe X:/Apache2/logs/access_%Y%m%d.log 2592000 common"
改成 
CustomLog "|X:/Apache2/bin/rotatelogs.exe X:/Apache2/logs/access_%Y%m%d.log 2592000" common

相關資料:

2018年6月29日 星期五

JAVA8 支援更新問題

館內購買的資料庫,有些系統所採用的架構是 Tomcat、JAVA8。

Orcale 對於 JAVA/JRE 的支援,做了些變動。 針對個人用途的 Oracle Java SE 8 公開更新至少會一直提供到 2020 年底為止。業務、商業或生產用途的 Oracle Java SE 8 若未取得商業授權,將會無法使用 2019 年 1 月之後發行的公開更新。

於 2018.11要釋出的 JAVA11 (LTS)版本,它的免費支援也僅提供六個用。取得商業支援的話,不管是採用 JAVA8/JRE8 或 JAVA11/JRE11皆可支援到 2025年。

未來系統可以朝向以下方向調整:
  1. 系統改採 OpenJDK 架構
  2. 系統直接改採廠商所提供的主機使用
  3. 取得 Oracle 商業授權
後續進展 107.11.16
  1. AWS釋出免費OpenJDK Amazon Corretto,免費安全更新至2023年 
  2. Amazon Corretto

相關連結:

2018年6月14日 星期四

Server 2008 R2 64bit 磁碟清理工具

有一台主機的 C:/ 容量不足,才發現原來 Server 2008 R2 64bit 預設是沒有磁碟清理工具。若要使用需做以下處理。
  • 第一種方式:
將以下檔案,複製一份到指定的位址內。

C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe

C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_zh-tw_1d4e095896ea82e5\cleanmgr.exe.mui

Cleanmgr.exe 複製到 %systemroot%\System32中。
Cleanmgr.exe.mui 複製到 %systemroot%\System32\zh-TW中。
  • 第二種方式:
採用安裝"桌面體驗" 的方式進行安裝也是可以的。

相關資料 
  1. 如何在Windows Server 2008 R2沒有磁碟清理工具的情況下使用系統提供的磁碟清理工具
  2. windows 2008 r2新增 磁碟清理功能
  3. C槽滿了,磁碟清理術 ( c:\windows\logs\CBS\ 、 \SoftwareDistribution\Download 、\TEMP )