[Linux] SSH Login Hook 自動發信通知

Intro 可以利用/etc/pam.d/下檔案的 hook 效果去觸發執行外部 Shell script file,而 Shell 中去抓取登入者資訊並寄送 email,以達到 SSH Login 自動發信通知 作法 先撰寫建立好 Shell script file 作為發送信件程式: $ vim /etc/ssh/login-notify.sh #!/bin/sh # Change these two lines: sender="sender-address@example.com" recepient="notify-address@example.org" if [ "$PAM_TYPE" != "close_session" ]; then host="`hostname`" subject="SSH Login: […]

[Network] Linux Telnet & Netcat (nc) – 測試TCP/UDP工具

Intro Netcat (nc) Telnet Telnet 簡單用於測試TCP連線 $ telnet www.example.com 80 GET /path/to/file.html HTTP/1.1 Host: www.example.com Connection: close Netcat (nc) TCP/UDP讀寫工具,測試UDP利器 在埠25建立內容未加工過的連接(類似telnet): $ nc mail.server.net 25 利用零模式I/O(參數 -z)檢查192.168.0.1的UDP埠(參數 -u)80-90是否開啟: $ nc -vzu 192.168.0.1 80-81 測試UDP,透過發送訊息 $ nc -vu example.com 443 Connection […]

[Linux][Swap] 虛擬記憶體分頁Swap指南

Intro Wiki – 分頁Swap 常見的應用情境如開發環境要做套件安裝如PHP Composer,則可以利用暫時設定檔案Swap的方式解決。 基本用法 查看Swap狀態: swapon -s 卸載Swap: # Partition swapoff /dev/hdb2 # File swapoff /swapfile 透過Partition分割 透過檔案增加 主要透過swapon與swapoff指令來操作設定分頁,利用實體所在硬碟分割區中的檔案提供Swap。 先建立一個想要配給Swap容量的檔案於硬碟分割區,可以透過fallocate指令: fallocate -l 2G /swapfile 格式化此檔案為Swap file: chmod 600 /swapfile mkswap /swapfile swapon /swapfile 確認查看或設定自動掛載 完成後可以使用swapon -s指令確認查看,另外如要自動掛載則可以於/etc/fstab加入設定: /swapfile […]

[SFTP] Linux SFTP Server Guide – 建置SFTP服務

Intro Server使用工具:OpenSSH 設定SFTP服務主要會限制User僅限使用SFTP以及路徑限制。 安裝與設定 設定/etc/ssh/sshd_config: # 開啟internal-sftp Subsystem,將會限制僅使用SFTP而非SSH (反註解原本設定) Subsystem sftp internal-sftp 在設定Match條件,可以使用group為條件: Match group sftp_only ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 設定完成並重啟服務後,新增user至指定group(範例為sftp_only),並將ChrootDirectory(範例為/home/%u)目錄所有者設定為root,即能使user登入SFTP 應用上,可另外加設定Match條件,ChrootDirectory也可以設定固定為如/srv,使用者即不需要家目錄 進階 使用者與群組指令 # 新增群組 groupadd sftp_only # 新增使用者,如為固定ChrootDirectory則可不設家目錄-m useradd -s /bin/false -G sftp_only username […]

[Linux] SSH Manual – SSH 使用指南

HostKeyAlgorithms | KexAlgorithms | FingerprintHash Intro RFC4252 – The Secure Shell (SSH) Authentication Protocol SSH – OpenBSD manual page server ssh_config — OpenSSH SSH client configuration files ssh $ ssh user@host.com ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D […]

[Network] Fail2ban 指南 – 搭配 SSH/Nginx (DDoS、Request Limit)

Outline SSH 設定方針 Nginx 防禦設定方針 Access log Error log by limit_req_zone 進階 Fail2ban log 設定 Email Notifications Intro Fail2ban – Manuals 架構 Fail2ban 是依照設定檔執行過濾,原始設定檔路徑: /etc/fail2ban/jail.conf 如要修改新增可以複製建立成local的設定檔名稱,如有此檔會以此檔優先: /etc/fail2ban/jail.local /etc/fail2ban/jail.d/* Ubuntu Fail2ban 0.9 版本中可以找到預設的/etc/fail2ban/jail.d/defaults-debian.conf,內容是對[sshd]做enabled = true。 所以安裝好後預設即會開啟SSH保護(預設port為22) [過濾器名稱]會對應到/etc/fail2ban/filter.d/過濾器名稱.conf。 參數解析 官方文件 – Options […]