Linux အကြံပြုချက်များနှင့် လှည့်ကွက်များ- ဆာဗာ၊ ဖွင့်ပါ။

SSH/RDP/other၊ RTFM/spur မှတဆင့် ကမ္ဘာတစ်ဝှမ်းရှိ မည်သည့်နေရာမှ ၎င်းတို့၏ဆာဗာများသို့ ဝင်ရောက်ခွင့်ဖြင့် ၎င်းတို့ကိုယ်တိုင်၊ ၎င်းတို့၏ချစ်ရသူများကို ပံ့ပိုးပေးရန်လိုအပ်သူများအတွက်။

VPN နှင့် အခြားသော ခေါင်းလောင်းများနှင့် လေချွန်များ မပါဘဲ လက်တွင်ရှိသော မည်သည့်စက်ပစ္စည်းမှ လုပ်ဆောင်ရန် လိုအပ်ပါသည်။

ထို့ကြောင့် သင်သည် ဆာဗာနှင့် အလွန်အကျွံ လေ့ကျင့်ခန်းလုပ်ရန် မလိုအပ်ပါ။

ဤအရာအတွက် သင်လိုအပ်သောအရာအားလုံးဖြစ်သည်။ ခေါက်လက်နှစ်ဖက်ကို ဖြောင့်ဖြောင့်ထားပြီး 5 မိနစ် အလုပ် လုပ်ပါ။

“အရာရာတိုင်းသည် အင်တာနက်ပေါ်တွင်ရှိသည်၊” ဟုတ်ပါတယ် (တောင်မှ ဟာဘရီ) ဒါပေမယ့် တိကျတဲ့ အကောင်အထည်ဖော်မှုတစ်ခုနဲ့ ပတ်သက်လာရင်၊ ဒါက စပြီး...

ဥပမာတစ်ခုအနေဖြင့် Fedora/CentOS ကိုအသုံးပြု၍ လေ့ကျင့်မည်ဖြစ်သော်လည်း ၎င်းသည် အရေးမကြီးပါ။

အဆိုပါ spur သည်ဤကိစ္စအတွက်အစပြုသူနှင့်ကျွမ်းကျင်သူနှစ်ဦးစလုံးအတွက်သင့်လျော်သည်, ထို့ကြောင့်မှတ်ချက်များရှိလိမ့်မည်, ဒါပေမယ့်သူတို့ကတိုတောင်းပါလိမ့်မယ်။

1. ဆာဗာ

  • knock-server ကို install လုပ်ပါ။
    yum/dnf install knock-server

  • ၎င်းကို configure (ဥပမာ ssh တွင်) - /etc/knockd.conf:

    [options]
        UseSyslog
        interface = enp1s0f0
    [SSHopen]
        sequence        = 33333,22222,11111
        seq_timeout     = 5
        tcpflags        = syn
        start_command   = iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        cmd_timeout     = 3600
        stop_command    = iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
    [SSHclose]
        sequence        = 11111,22222,33333
        seq_timeout     = 5
        tcpflags        = syn
        command         = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

    "အဖွင့်" အပိုင်းကို ၁ နာရီအကြာတွင် အလိုအလျောက်ပိတ်ရန် သတ်မှတ်ထားသည်။ မင်းဘယ်တော့မှမသိဘူး...

  • /etc/sysconfig/iptables:

    ...
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 11111 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22222 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 33333 -j ACCEPT
    ...

  • ရှေ့သို့-

    service iptables restart
    service knockd start

  • အတွင်းလှည့်နေသော virtual Windows Server တွင် RDP ကို ​​သင်ထည့်နိုင်သည် (/etc/knockd.conf; သင့်အရသာနှင့် ကိုက်ညီစေရန် အင်တာဖေ့စ်အမည်ကို အစားထိုးပါ)။

    [RDPopen]
        sequence        = 44444,33333,22222
        seq_timeout     = 5
        tcpflags        = syn
        start_command   = iptables -t nat -A PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2
        cmd_timeout     = 3600
        stop_command    = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2
    [RDPclose]
        sequence        = 22222,33333,44444
        seq_timeout     = 5
        tcpflags        = syn
        command         = iptables -t nat -D PREROUTING -s %IP% -i enp1s0f0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.0.2

    ကျွန်ုပ်တို့သည် အမိန့်ဖြင့် ဆာဗာရှိ client ထံမှ ကျွန်ုပ်တို့၏ကန်ချက်အားလုံးကို ခြေရာခံပါသည်။ iptables -S.

2. လူယုတ်မာလမ်းညွှန်

knockd.conf-

Mana တွင် အရာအားလုံးပါဝင်သည် (ဒါပေမယ့် ဒါက မမှန်ကန်ပါ)၊ ဒါပေမယ့် ခေါက်လိုက်ရတာကတော့ မက်ဆေ့ချ်နဲ့ အတော်လေးကို တွန့်တိုတတ်တဲ့ သူငယ်ချင်းမို့လို့ အရမ်းသတိထားဖို့ လိုပါတယ်။

  • ဗားရှင်း
    Fedora/CentOS repositories တွင် ယနေ့အတွက် နောက်ဆုံးအခေါက်သည် 0.63 ဖြစ်သည်။ ဘယ်သူက UDP ကိုလိုချင်လဲ - 0.70 packets ကိုရှာပါ။
  • interface ကို
    မူရင်း Fedora/CentOS ဖွဲ့စည်းမှုပုံစံတွင် ဤစာကြောင်း ပျောက်ဆုံး. လက်ဖြင့်ထည့်ပါ၊ မဟုတ်ပါက အလုပ်မဖြစ်ပါ။
  • ခဏပွဲရပ်ခြင်း
    ဒီမှာ မင်းရဲ့ အရသာကို ရွေးချယ်လို့ရတယ်။ client သည် ကန်ချက်အားလုံးအတွက် အချိန်အလုံအလောက်ရှိရန် လိုအပ်သည် - နှင့် port scanner bot သည် ပျက်သွားလိမ့်မည် (နှင့် 146% သည် scan လုပ်လိမ့်မည်)။
  • start/stop/command
    command တစ်ခုရှိလျှင် command နှစ်ခုရှိလျှင် start_command+stop_command။
    အမှားလုပ်မိပါက နှုတ်ဆိတ်နေမည်ဖြစ်သော်လည်း အလုပ်မဖြစ်ပါ။
  • ပရိုတို
    သီအိုရီအရ UDP ကိုသုံးနိုင်သည်။ လက်တွေ့မှာတော့ ငါ tcp နဲ့ udp ရောစပ်ပြီး ဘာလီကမ်းခြေက ဖောက်သည်က ပဉ္စမအကြိမ်သာ တံခါးဖွင့်နိုင်ခဲ့တယ်။ အကြောင်းမှာ TCP သည် လိုအပ်ချိန်တွင် ရောက်ရှိလာသော်လည်း UDP သည် အမှန်မဟုတ်ပေ။ ဒါပေမယ့် ဒါက အရသာရှိပြန်တယ်။
  • အစဉ်အတိုင်းလိုက်ခြင်း
    သွယ်ဝိုက်သော ကောက်နှုတ်ချက်မှာ အစီအမံများ မဖြတ်တောက်သင့်ပေ... မည်ကဲ့သို့ ထားရမည်နည်း။

ဥပမာ၊ ဤသည်-

open: 11111,22222,33333
close: 22222,11111,33333

ကန်သွင်းခြင်းဖြင့် 11111 ဖွင့်လှစ် 22222 တွင် နောက်ထပ်ကန်မည့်အချိန်ကို စောင့်ပါမည်။ သို့သော် ဤ (22222) ကန်ပြီးနောက် ၎င်းသည် စတင်အလုပ်လုပ်မည်ဖြစ်သည်။ ပိတ် အရာအားလုံးပျက်လိမ့်မည်။ ဒါက ဖောက်သည်ရဲ့ နှောင့်နှေးမှုအပေါ်မှာလည်း မူတည်ပါတယ်။ ဒီလိုအရာ ©။

iptables

/etc/sysconfig/iptables မှာဆိုရင်၊

*nat
:PREROUTING ACCEPT [0:0]

၎င်းသည် ကျွန်ုပ်တို့ကို အမှန်တကယ် အနှောက်အယှက်မဖြစ်စေပါ၊ ထို့ကြောင့် ဤနေရာတွင်-

*filter
:INPUT ACCEPT [0:0]
...
-A INPUT -j REJECT --reject-with icmp-host-prohibited

အနှောင့်အယှက်ပေးသည်။

INPUT ကွင်းဆက်၏အဆုံးတွင် စည်းမျဉ်းများကို ခေါက်ထားသောကြောင့်၊ ကျွန်ုပ်တို့သည် ငြင်းပယ်ခံရမည်ဖြစ်ပါသည်။

ဤငြင်းဆိုမှုကို ပိတ်လိုက်ခြင်းသည် ကားကို လေအားလုံးကို ဖွင့်ပေးခြင်းဖြစ်သည်။

iptables မှာ ပျောက်မသွားစေရန် ဘာတွေကို အရင်ထည့်ရမလဲ (ဒီလိုပါ။ လူထု အကြံပြုချက်) ပိုရိုးရှင်းအောင် လုပ်ကြပါစို့။

  • ပုံသေ CentOS/Fedora တွင် ပဌမ စည်းကမ်းချက် (“တားမြစ်ထားသည်ကို ခွင့်မပြု”) ကို ဆန့်ကျင်ဘက်ဖြင့် အစားထိုးမည်၊
  • နောက်ဆုံးစည်းမျဉ်းကို ကျွန်ုပ်တို့ ဖယ်ရှားခဲ့သည်။

ရလဒ်သည်-

*filter
:INPUT DROP [0:0]
...
#-A INPUT -j REJECT --reject-with icmp-host-prohibited

DROP အစား သင် ငြင်းပယ်နိုင်သည်၊ သို့သော် DROP သည် ဘော့တ်များအတွက် ပိုပျော်စရာကောင်းပါလိမ့်မည်။

3. Client

သင်သည် မည်သည့်ကမ်းခြေမှသာမက မည်သည့်စက်ပစ္စည်းမှလည်း လုပ်ဆောင်ရန် လိုအပ်သောကြောင့် ဤနေရာသည် စိတ်ဝင်စားစရာအကောင်းဆုံး (ကျွန်တော့်အမြင်) ဖြစ်သည်။

မူအရ၊ ဖောက်သည်များစွာကို စာရင်းပြုစုထားသည်။ က်ဘ်ဆိုက် ပရောဂျက်၊ သို့သော်၎င်းသည် "အရာအားလုံးအင်တာနက်ပေါ်ရှိ" စီးရီးတစ်ခုတည်းမှဖြစ်သည်။ ထို့ကြောင့်၊ ကျွန်ုပ်သည် ဤနေရာနှင့် ယခုတွင် ကျွန်ုပ်၏လက်ချောင်းထိပ်တွင် လုပ်ဆောင်နေသောအရာကို စာရင်းပြုစုပါမည်။

ကလိုင်းယင့်ကိုရွေးချယ်သည့်အခါ၊ ပက်ကတ်များကြားတွင် နှောင့်နှေးမှုရွေးချယ်မှုကို ပံ့ပိုးပေးကြောင်း သေချာစေရန်လိုအပ်ပါသည်။ ဟုတ်ပါသည်၊ ကမ်းခြေများနှင့် 100 megabits အကြား ခြားနားချက်များ ရှိသည်

ဟုတ်တယ်၊ ဖောက်သည်ကို စနစ်ထည့်သွင်းသည့်အခါ၊ သင်သည် နှောင့်နှေးမှုကို သင်ကိုယ်တိုင် ရွေးချယ်ရန် လိုအပ်သည်။ အချိန်ကုန်လွန်းသည် - ဘော့တ်များသည် တိုက်ခိုက်လိမ့်မည်၊ အလွန်နည်းသည် - သုံးစွဲသူသည် အချိန်ရှိမည်မဟုတ်ပါ။ ကြန့်ကြာလွန်းသည် - သုံးစွဲသူသည် အချိန်မီ မလုပ်ဆောင်နိုင် သို့မဟုတ် လူမိုက်များ၏ ပဋိပက္ခဖြစ်မည် (“ထွတ်ခ်များ” ကိုကြည့်ပါ) အလွန်နည်းသည် - ပက်ကတ်များသည် အင်တာနက်ပေါ်တွင် ပျောက်ဆုံးသွားလိမ့်မည်။

timeout=5s ဖြင့်၊ delay=100..500ms သည် လုံးဝအလုပ်လုပ်နိုင်သော ရွေးချယ်မှုတစ်ခုဖြစ်သည်။

Windows ကို

ဘယ်လောက်ပဲ ရယ်စရာကောင်းနေပါစေ၊ ဒါဟာ Google အတွက် အသေးအဖွဲမဟုတ်တဲ့ ဒီပလက်ဖောင်းအတွက် ပြတ်သားတဲ့ ဖောက်သည်ပါ။ CLI သည် နှောင့်နှေးခြင်း၊ TCP - နှင့် ဦးလေးမပါဘဲ ပံ့ပိုးပေးသည့်အရာ။

တနည်းအားဖြင့် သင်ကြိုးစားနိုင်ပါတယ်။ ဒါက. ငါ့ Google သည် ကိတ်မုန့်မဟုတ်ပေ။

Linux ကို

အရာအားလုံးသည် ဤနေရာတွင် ရိုးရှင်းပါသည်။

dnf install knock -y
knock -d <delay> <dst_ip> 11111 22222 33333

MacOS

အလွယ်ဆုံးနည်းလမ်းမှာ homebrew မှ port ကိုတပ်ဆင်ရန်ဖြစ်သည်
brew install knock
နှင့် ကဲ့သို့သော command များအတွက် လိုအပ်သော batch ဖိုင်များကို ဆွဲပါ။

#!bin/sh
knock -d <delay> <dst_ip> 11111 22222 33333

iOS ကို

အလုပ်ရွေးချယ်မှုမှာ KnockOnD (စတိုးဆိုင်မှ အခမဲ့) ဖြစ်သည်။

အန်းဒရွိုက်

"ဆိပ်ကမ်းများပေါ်တွင်ခေါက်" ကြော်ငြာမဟုတ်ပေမယ့် အလုပ်ဖြစ်ရုံပါပဲ။ ပြီးတော့ developer တွေက တော်တော်လေး တုံ့ပြန်ပါတယ်။

Habre တွင် PS အမှတ်အသားပြုပါ၊ သေချာပါတယ်၊ တစ်နေ့နေ့မှာ ဘုရားသခင်က သူ့ကို ကောင်းချီးပေးပါစေ...

UPD1: ကျေးဇူးတင်ပါတယ်။ လူကောင်းတစ်ဦးထံ တွေ့တယ်။ အလုပ်လုပ်သော client Windows အောက်မှာ။
UPD2: နောက်တစ်ခု လူကောင်း iptables ၏အဆုံးတွင် စည်းမျဉ်းအသစ်များချခြင်းသည် အမြဲတမ်းအသုံးမဝင်ကြောင်း ကျွန်ုပ်အား သတိပေးခဲ့သည်။ ဒါပေမယ့် - အဲဒါမူတည်တယ်။

source: www.habr.com

မှတ်ချက် Add