ये कà¥?या है जानकार आपके à¤à¥€ पसीने छà¥?ट ज
สารบัญ:
- Open Port คืออะไร
- ตรวจสอบ Open Ports ด้วย
nmap
- ตรวจสอบ Open Ports ด้วย
netcat
- ตรวจสอบ Open Ports โดยใช้ Bash Pseudo Device
- ข้อสรุป
ไม่ว่าคุณกำลังแก้ไขปัญหาการเชื่อมต่อเครือข่ายหรือการกำหนดค่าไฟร์วอลล์สิ่งแรกที่ควรตรวจสอบคือพอร์ตใดที่เปิดอยู่บนระบบของคุณ
บทความนี้จะอธิบายวิธีการต่างๆเพื่อค้นหาว่าพอร์ตใดบ้างที่เปิดออกสู่ภายนอกบนระบบ Linux ของคุณ
Open Port คืออะไร
พอร์ตการรับฟังเป็นพอร์ตเครือข่ายที่แอปพลิเคชันรับฟัง คุณสามารถรับรายการพอร์ตการฟังบนระบบของคุณโดยการสอบถามเครือข่ายสแต็กด้วยคำสั่งเช่น
ss
,
netstat
หรือ
lsof
พอร์ตการรับฟังแต่ละพอร์ตสามารถเปิดหรือปิด (กรอง) โดยใช้ไฟร์วอลล์
โดยทั่วไปแล้วพอร์ตเปิดคือพอร์ตเครือข่ายที่รับแพ็คเก็ตขาเข้าจากสถานที่ห่างไกล
ตัวอย่างเช่นหากคุณใช้งานเว็บเซิร์ฟเวอร์ที่ฟังพอร์ต
80
และ
443
และพอร์ตเหล่านั้นเปิดในไฟร์วอลล์ของคุณทุกคน (ยกเว้น IPS ที่ถูกบล็อก) จะสามารถเข้าถึงเว็บไซต์ที่โฮสต์บนเว็บเซิร์ฟเวอร์ของคุณโดยใช้เบราว์เซอร์ของเขา ในกรณีนี้ทั้ง
80
และ
443
เป็นพอร์ตเปิด
พอร์ตแบบเปิดอาจมีความเสี่ยงด้านความปลอดภัยเนื่องจากผู้โจมตีสามารถใช้ช่องโหว่เพื่อเปิดช่องโหว่หรือทำการโจมตีประเภทอื่นได้ คุณควรเปิดเผยเฉพาะพอร์ตที่จำเป็นสำหรับการใช้งานแอปพลิเคชันของคุณและปิดพอร์ตอื่น ๆ ทั้งหมด
ตรวจสอบ Open Ports ด้วย
nmap
Nmap เป็นเครื่องมือสแกนเครือข่ายที่ทรงพลังที่สามารถสแกนโฮสต์เดี่ยวและเครือข่ายขนาดใหญ่ได้ ส่วนใหญ่จะใช้สำหรับการตรวจสอบความปลอดภัยและการทดสอบการเจาะ
หากเป็นไปได้ควรใช้
nmap
เป็นเครื่องมือแรกในการสแกนพอร์ต นอกจากการสแกนพอร์ต
nmap
ยังสามารถตรวจจับที่อยู่ Mac, ประเภท OS, รุ่นเคอร์เนลและอีกมากมาย
คำสั่งต่อไปนี้ที่ออกจากคอนโซลจะกำหนดว่าพอร์ตใดที่จะรับฟังการเชื่อมต่อ TCP จากเครือข่าย:
sudo nmap -sT -p- 10.10.8.8
-sT
บอก
nmap
ให้สแกนหาพอร์ต TCP และ
-p-
เพื่อสแกนหาพอร์ตทั้งหมด 65535 หาก
-p-
ไม่ได้ใช้
nmap
จะสแกนพอร์ต 1, 000 พอร์ตเท่านั้น
Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
เอาต์พุตด้านบนแสดงว่ามีการเปิดเฉพาะพอร์ต
22
,
80
และ
8069
บนระบบเป้าหมาย
ในการสแกนหาพอร์ต UDP ให้ใช้
-sU
แทน
-sT
:
sudo nmap -sU -p- 10.10.8.8
สำหรับข้อมูลเพิ่มเติมไปที่หน้า man nmap และอ่านเกี่ยวกับตัวเลือกอันทรงพลังอื่น ๆ ของเครื่องมือนี้
ตรวจสอบ Open Ports ด้วย
netcat
Netcat (หรือ
nc
) เป็นเครื่องมือบรรทัดคำสั่งที่สามารถอ่านและเขียนข้อมูลผ่านการเชื่อมต่อเครือข่ายโดยใช้โปรโตคอล TCP หรือ UDP
ด้วย
netcat
คุณสามารถสแกนพอร์ตเดียวหรือช่วงพอร์ต
ตัวอย่างเช่นการสแกนหาพอร์ต TCP แบบเปิดบนเครื่องระยะไกลที่มีที่อยู่ IP
10.10.8.8
ในช่วง
20-80
คุณจะใช้คำสั่งต่อไปนี้:
nc -z -v 10.10.8.8 20-80
อ็อพชัน
-z
บอกให้
nc
สแกนเฉพาะพอร์ตที่เปิดอยู่โดยไม่ส่งข้อมูลใด ๆ และ
-v
สำหรับข้อมูล verbose เพิ่มเติม
ผลลัพธ์จะมีลักษณะดังนี้:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
ในการสแกนหาพอร์ต UDP ผ่านตัวเลือก
-u
ไปที่คำสั่ง
nc
:
nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
ตรวจสอบ Open Ports โดยใช้ Bash Pseudo Device
อีกวิธีในการตรวจสอบว่าพอร์ตที่เปิดหรือปิดบางพอร์ตนั้นใช้อุปกรณ์ Bash shell
/dev/tcp/..
หรือ
/dev/udp/..
pseudo
เมื่อดำเนินการคำสั่งบนอุปกรณ์หลอก
/dev/$PROTOCOL/$HOST/$IP
Bash จะเปิดการเชื่อมต่อ TCP หรือ UDP ไปยังโฮสต์ที่ระบุบนพอร์ตที่ระบุ
คำสั่ง if.else ต่อไปนี้จะตรวจสอบว่าพอร์ต
443
บน
kernel.org
เปิดอยู่หรือไม่:
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
Port is open
รหัสด้านบนทำงานอย่างไร
การหมดเวลาเริ่มต้นเมื่อเชื่อมต่อพอร์ตโดยใช้อุปกรณ์หลอกมีขนาดใหญ่มากดังนั้นเราจึงใช้คำสั่ง
timeout
เพื่อฆ่าคำสั่งทดสอบหลังจาก 5 วินาที หากการเชื่อมต่อถูกสร้างขึ้นเพื่อ
kernel.org
พอร์ต
443
คำสั่งทดสอบจะกลับมาจริง
คุณยังสามารถใช้ for for loop เพื่อตรวจสอบช่วงพอร์ต:
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
ผลลัพธ์จะมีลักษณะดังนี้:
port 22 is open port 80 is open
ข้อสรุป
เราได้แสดงเครื่องมือหลายอย่างที่คุณสามารถใช้เพื่อสแกนหาพอร์ตที่เปิดอยู่ นอกจากนี้ยังมียูทิลิตี้และวิธีการอื่น ๆ เพื่อตรวจสอบพอร์ตที่เปิดอยู่ตัวอย่างเช่นคุณสามารถใช้โมดูล
socket
Python,
curl
,
telnet
หรือ
wget
สายผลิตภัณฑ์ของ ColorQube ของซีร็อกซ์ ได้แก่ ผลิตภัณฑ์มัลติฟังก์ชั่น 8700 / X (การทำสำเนา / แฟกซ์ / พิมพ์ / สแกน) มูลค่า 2,799 เหรียญสหรัฐฯ (ณ วันที่ 12/05/2012) ออกแบบมาเพื่อการใช้งานขององค์กรในกลุ่มทำงานที่วุ่นวาย แต่ไม่ใช่เลเซอร์ เทคโนโลยี ColorQube ใช้บล็อคดินสอเขียนทึบเหมือนปากกาพรินเตอร์แทนที่จะเป็นหมึกเหลวของเครื่องพิมพ์อิงค์เจ็ตหรืออนุภาคผงหมึกเครื่องพิมพ์ของเครื่องพิมพ์เลเซอร์ ผลที่ได้คือไม่ยุ่งเหยิงเอะอะและสนุกมากเลื่อนตลับหมึกลงรางน้อยของพวกเขา ด้วยหมึกที่ด้านบนเหมือนกับเครื่องพิมพ์เล
ColorQube 8700 / X น้ำหนัก 90 ปอนด์และแข็งแรงทนทาน สร้างขึ้น มาพร้อมกับหน่วยความจำ 1GB (ไม่สามารถอัพเกรดได้) รวมถึงฮาร์ดไดรฟ์ขนาด 80GB สำหรับจัดเก็บงาน - ความจำเป็นในการจัดเตรียมงานพิมพ์ที่มีความปลอดภัยสำหรับเวิร์กกรุ๊ปขนาดใหญ่
วิธีการตรวจสอบ Hard Disk Health ใน Windows 10/8/7 โดยใช้ WMIc
คุณสามารถใช้ Hard Disk Health ซอฟต์แวร์ตรวจสอบและวิเคราะห์หรือเครื่องมือ WMIC ในตัวตรวจสอบสุขภาพฮาร์ดไดรฟ์ของคุณโดยใช้คำสั่งสถานะการรับข้อความจาก DiskDrive
วิธีการตรวจสอบ firefox, chrome และ ie history จากที่เดียว
เรียนรู้วิธีตรวจสอบประวัติ Firefox, Chrome และ Internet Explorer (IE) อย่างรวดเร็วและง่ายดายจากที่เดียว