Linux 小指令

技術筆記

Change default editor

  • For global
    sudo update-alternatives --config editor
    # 然後選擇數字
    
  • For one user
    select-editor
    

    or in .bashrc

    export EDITOR='vim'
    export VISUAL='vim'
    

Add groups

  • Change main group
    sudo groupadd mynewgroup # Add a new group
    usermod -g groupname username
    groups username
    
  • Add secondary group
    sudo usermod -aG groupname username
    

password policy

SSH

SSH Keep Alive

Client side

~/.ssh/config

Host *
ServerAliveInterval 240

chmod 600 ~/.ssh/config

Server Side

/etc/ssh/sshd_config

ClientAliveInterval 60
ClientAliveCountMax 2

SSH Tunnel

參考 ![](https://i.stack.imgur.com/HbSEM.png =400x)

  • Normal Tunnel (Local Port Forward)
    • 正常情況下,你希望你的封包先過一台機器(Server Side),再用這台機器出去,達到 VPN 的效果,你如果可以直接對這台機器(Server Side) SSH,便可以用正常的 SSH Tunnel
    • 指定碰到 client 的 port 就等於碰到 server 的 port
    • Client
      ssh -L [bind_address:]port:host:hostport user@host_ip
      
  • Reverse Tunnel (Remote Port Forward)
    • 如果你希望封包進入一台無法 SSH 的機器(Server Side),可能是再公司防火牆內的機器,對於開 SSH Session 只能由內往外開,不能由外往內開,這時候就需要先再 Server Side 主動開 Reverse SSH Tunnel,把 port bind 再 Client Side 上的某個 port,再由 client side 戳 localhost 的這個 port
    • Server:
      ssh -R 2222(bind to client port):localhost(server / server 可碰到):22(server port) user@client_ip
      
    • Client:
      nc -v localhost 2222
      
  • Socket Proxy (Dynamic Port Forward)
    • 正常情況下,你希望你的封包先過一台機器(Server Side),再用這台機器出去,達到 VPN 的效果,同時不需要指定碰到 client 的 port 就等於碰到 server 的 port
    • Client
      ssh -D [bind_address:]port user@server_ip
      
    • 參考

ICMP Tunnel

comments powered by Disqus

Related