โปรเจ็กต์นี้ประกอบด้วยชุดเครื่องมือคอนโซลสำหรับเชื่อมต่อและให้บริการอุปกรณ์โดยใช้โปรโตคอล MikroTik RouterOS MAC-Telnet นี่เป็นโปรโตคอลเครือข่ายที่เป็นกรรมสิทธิ์ซึ่งใช้โดยอุปกรณ์ MikroTik RouterOS เพื่อให้การเข้าถึงแบบเชลล์ไปยังอุปกรณ์ของตน แม้ว่าอุปกรณ์จะไม่ได้กำหนดค่าด้วยที่อยู่ IP ก็ตาม
โปรโตคอลจะขึ้นอยู่กับการส่งและรับแพ็กเก็ตการออกอากาศ udp ดังนั้นจึง ไม่ปลอดภัย ไม่ว่าด้วยวิธีใดก็ตาม ควรใช้เป็นวิธีสุดท้ายในการกำหนดค่าอุปกรณ์ที่ไม่มีที่อยู่ IP หรือในสภาพแวดล้อมเครือข่ายที่ปลอดภัย
นอกจากไคลเอนต์และเซิร์ฟเวอร์แล้ว โปรเจ็กต์นี้ยังมีเครื่องมือ Ping ที่สามารถใช้ในการ Ping อุปกรณ์ RouterOS โดยใช้ที่อยู่ MAC และเครื่องมือ MNDP ที่สามารถใช้เพื่อค้นหาอุปกรณ์ RouterOS และ MAC-Telnet บนเครือข่ายท้องถิ่น .
ขณะนี้ไคลเอนต์และเซิร์ฟเวอร์ MAC-Telnet รองรับการตรวจสอบสิทธิ์ EC-SRP ใหม่ซึ่งจำเป็นหลังจากที่ Mikrotik ลบการสนับสนุนสำหรับการตรวจสอบสิทธิ์ MD5 ใน RouterOS v6.43 และส่งต่อ การรองรับการใช้การตรวจสอบสิทธิ์ MD5 แบบเก่ายังคงสามารถทำได้ผ่านการแฟล็กบรรทัดคำสั่งเพื่อความเข้ากันได้แบบย้อนหลัง
ด้วยการตรวจสอบสิทธิ์ EC-SRP ใหม่ ขณะนี้เซิร์ฟเวอร์ MAC-Telnet รองรับการแฮชรหัสผ่านสำหรับไฟล์ผู้ใช้ ซึ่งหมายความว่าเซิร์ฟเวอร์สามารถจัดเก็บรหัสผ่านที่แฮชไว้ในไฟล์ แทนที่จะเป็นรหัสผ่านแบบธรรมดา หากต้องการเพิ่ม/อัปเดตผู้ใช้ด้วยการสนับสนุนรหัสผ่านที่แฮชใหม่ ให้ใช้แฟล็ก -a
พร้อมกับคำสั่ง mactelnetd
คุณยังสามารถแสดงรายการผู้ใช้ด้วยแฟล็ก -l
หรือลบผู้ใช้ออกจากไฟล์ผู้ใช้ด้วย -d
หมายเหตุ: คำสั่งเหล่านี้สามารถใช้ได้ในขณะที่เซิร์ฟเวอร์กำลังทำงานเพื่ออัพเดตฐานข้อมูลผู้ใช้โดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์
เคล็ดลับ
หากคุณต้องการเฉพาะเครื่องมือไคลเอนต์ mactelnet
และไม่ต้องการเซิร์ฟเวอร์ mactelnetd
เมื่อทำการคอมไพล์จากแหล่งที่มา คุณสามารถเพิ่มแฟล็ก --without-mactelnetd
ให้กับคำสั่ง ./configure
configure ก่อนที่จะทำการคอมไพล์
ghcr.io/haakonnessjoen/mac-telnet
มีโปรแกรมรุ่นล่าสุดทั้งสี่โปรแกรม:
docker run -it --rm --net=host haakonn/mactelnet mactelnet …
docker run -it --rm --net=host haakonn/mactelnet macping …
docker run -it --rm --net=host haakonn/mactelnet mndp …
docker run -it --rm --net=host haakonn/mactelnet mactelnetd …
โปรดทราบว่า Docker รันคอนเทนเนอร์บนเครือข่ายภายในแบบแยกตามค่าเริ่มต้น --net=host
สั่งให้ Docker ให้การเข้าถึงโดยตรง mactelnet
ไปยังอินเทอร์เฟซเครือข่ายของเครื่องโฮสต์
ดูการใช้งานเพิ่มเติม
ในการติดตั้งการพึ่งพา:
yum -y install wget automake gettext gettext-devel libbsd-devel gcc make
ดาวน์โหลด tarball ต้นฉบับ แยก คอมไพล์และติดตั้ง:
wget http://github.com/haakonnessjoen/MAC-Telnet/tarball/master -O mactelnet.tar.gz
tar zxvf mactelnet.tar.gz
cd haakonness*/
./autogen.sh
make all install
โดยปกติแล้วรุ่นล่าสุดจะมีอยู่ใน Debian และ Ubuntu เวอร์ชันล่าสุด คุณสามารถติดตั้งได้ด้วย apt install mactelnet-client
หรือ apt install mactelnet-server
หากต้องการติดตั้งสาขา master
ล่าสุด จาก source ให้ใช้คำแนะนำต่อไปนี้:
apt-get install build-essential autopoint automake autoconf libbsd-dev libssl-dev gettext
ดาวน์โหลด tarball ต้นฉบับ แยก คอมไพล์และติดตั้ง:
wget http://github.com/haakonnessjoen/MAC-Telnet/tarball/master -O mactelnet.tar.gz
tar zxvf mactelnet.tar.gz
cd haakonness*/
./autogen.sh
make all install
การขึ้นต่อกัน: clang (gcc หรือคล้ายกัน), automake, autoconf
ในการติดตั้งการพึ่งพาบน FreeBSD:
pkg install automake autoconf gettext-tools
ดาวน์โหลด tarball ต้นฉบับ แยก คอมไพล์และติดตั้ง:
wget http://github.com/haakonnessjoen/MAC-Telnet/tarball/master -O mactelnet.tar.gz
tar zxvf mactelnet.tar.gz
cd haakonness*/
./autogen.sh
./configure LDFLAGS=" -L/usr/local/lib"
gmake all install
ดาวน์โหลด tarball ต้นฉบับและแตกไฟล์:
wget http://github.com/haakonnessjoen/MAC-Telnet/tarball/master -O mactelnet.tar.gz
tar zxvf mactelnet.tar.gz
cd haakonness*/
ติดตั้งการพึ่งพา
brew install gettext autoconf automake libtool openssl pkg-config
ตั้งค่าสภาพแวดล้อมการสร้าง คอมไพล์ และติดตั้ง:
export GETTEXT_PATH=$(brew --prefix gettext)
export OPENSSL_PATH=$(brew --prefix openssl)
export PATH="${GETTEXT_PATH}/bin:${OPENSSL_PATH}/bin:$PATH"
export LDFLAGS="-L${GETTEXT_PATH}/lib"
export CPPFLAGS="-I${GETTEXT_PATH}/include -I${OPENSSL_PATH}/include"
export CRYPTO_CFLAGS="-I${OPENSSL_PATH}/include"
export CRYPTO_LIBS="-L${OPENSSL_PATH}/lib ${OPENSSL_PATH}/lib/libcrypto.3.dylib"
./autogen.sh
make all install
# mactelnet -h
Usage: mactelnet [-h] [-n] [-a ] [-A] [-t ] [-u ] [-p ] [-U ] | -l [-B] [-t ]
Parameters:
MAC MAC-Address of the RouterOS/mactelnetd device. Use mndp to
discover it.
identity The identity/name of your destination device. Uses
MNDP protocol to find it.
-l List/Search for routers nearby (MNDP). You may use -t to set timeout.
-B Batch mode. Use computer readable output (CSV), for use with -l.
-n Do not use broadcast packets. Less insecure but requires
root privileges.
-a Use specified path instead of the default: ~/.mactelnet for autologin config file.
-A Disable autologin feature.
-t Amount of seconds to wait for a response on each interface.
-u Specify username on command line.
-p Specify password on command line.
-U Drop privileges to this user. Used in conjunction with -n
for security.
-q Quiet mode.
-o Force old MD5 authentication method.
-h This help.
ตัวอย่างการใช้ข้อมูลประจำตัว:
$ mactelnet main-router
Searching for 'main-router'...found
Login: admin
Password:
Connecting to d4:ca:6d:12:47:13...done
ตัวอย่างการใช้ที่อยู่ Mac:
$ mactelnet 0:c:42:43:58:a5
Login: admin
Password:
Connecting to 0:c:42:43:58:a5...done
MMM MMM KKK TTTTTTTTTTT KKK
MMMM MMMM KKK TTTTTTTTTTT KKK
MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK
MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK
MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK
MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK
MikroTik RouterOS 6.49 (c) 1999-2021 http://www.mikrotik.com/
[admin@Mikrotik] >
คุณสามารถใช้เครื่องมือ "คาดหวัง" ที่รู้จักกันดีเพื่อสร้างบทสนทนาอัตโนมัติ / สคริปต์ผ่าน mactelnet!
# mactelnet -l
# macping -h
Usage: macping [-h] [-c ] [-s ]
Parameters:
MAC MAC-Address of the RouterOS/mactelnetd device.
-s Specify size of ping packet.
-c Number of packets to send. (0 = for ever)
-h This help.
ตัวอย่าง:
# macping 0:c:42:43:58:a5
0:c:42:43:58:a5 56 byte, ping time 1.17 ms
0:c:42:43:58:a5 56 byte, ping time 1.07 ms
0:c:42:43:58:a5 56 byte, ping time 1.20 ms
0:c:42:43:58:a5 56 byte, ping time 0.65 ms
0:c:42:43:58:a5 56 byte, ping time 1.19 ms
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.65/1.06/1.20 ms
หรือเพื่อใช้ในการเขียนสคริปต์ทุบตี:
# macping 0:c:42:43:58:a5 -c 2 >/dev/null 2>&1 || ( echo "No answer for 2 pings" | mail -s "router down" [email protected] )