iptables เทียบเท่า Windows หรือไม่


58

คำถามโง่:

มีเทียบเท่า iptables บน Windows? ฉันสามารถติดตั้งผ่าน cygwin ได้หรือไม่

คำถามจริง: ฉันจะทำให้ Windows ประสบความสำเร็จได้อย่างไรฉันสามารถทำอะไรได้บ้างผ่าน iptables แค่มองหาฟังก์ชั่นไฟร์วอลล์ขั้นพื้นฐาน (เช่นการปิดกั้นที่อยู่ IP บางอย่าง)


6
ไม่มีคำถามแบบโง่
มาร์คเฮนเดอร์สัน

4
แน่นอนว่ามันมีคำถามแบบใบ้นี่ไม่ใช่แค่คำถามเดียว
ภารกิจ

คำตอบ:


37

วิธีหนึ่งจะอยู่กับnetshคำสั่ง:


8
+1 - netsh advfirewallเป็นกฎจำเป็นอย่างยิ่งที่จะเรียนรู้สำหรับทุกคนที่เขียนสคริปต์ความปลอดภัยที่เกี่ยวข้องกับ Windows Server
Mark Henderson

ไม่netsh advfirewallURL ที่สนับสนุนหรือเพียงแค่ที่อยู่ IP?
Parker

เพียงแค่ที่อยู่ IP และแม้ว่ามันจะสามารถกรองตามการปฏิบัติการส่งหรือรับการรับส่งข้อมูลเครือข่ายหรือข้อมูลประจำตัวโฆษณาของผู้ใช้ / กลุ่ม / คอมพิวเตอร์ที่เกี่ยวข้อง สำหรับการกรอง URL คุณต้องการค้นหาพร็อกซีการกรองบางประเภท
James Sneeringer

6

ด้านล่างมาจาก: https://support.microsoft.com/en-us/kb/947709

ตัวอย่างที่ 1: เปิดใช้งานโปรแกรม

คำสั่งเก่าคำสั่งใหม่

netsh firewall add allowedprogram C:\MyApp\MyApp.exe "My Application" ENABLE    
netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=Domain   netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name="My Application" mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=ALL  

รันคำสั่งต่อไปนี้:

netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain

netsh advfirewall firewall add rule name="My Application" dir=in action=allow program="C:\MyApp\MyApp.exe" enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=private

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีเพิ่มกฎไฟร์วอลล์ให้เรียกใช้คำสั่งต่อไปนี้:

netsh advfirewall firewall add rule ?

ตัวอย่างที่ 2: เปิดใช้งานพอร์ต

คำสั่งเก่าคำสั่งใหม่

netsh firewall add portopening TCP 80 "Open Port 80"    
netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีเพิ่มกฎไฟร์วอลล์ให้เรียกใช้คำสั่งต่อไปนี้:

netsh advfirewall firewall add rule ?

ตัวอย่างที่ 3: ลบโปรแกรมหรือพอร์ตที่เปิดใช้งาน

คำสั่งเก่าคำสั่งใหม่

netsh firewall delete allowedprogram C:\MyApp\MyApp.exe netsh advfirewall firewall delete rule name=rule name program="C:\MyApp\MyApp.exe"
delete portopening protocol=UDP port=500    netsh advfirewall firewall delete rule name=rule name protocol=udp localport=500

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการลบกฎไฟร์วอลล์ให้เรียกใช้คำสั่งต่อไปนี้:

netsh advfirewall firewall delete rule ?

ตัวอย่างที่ 4: กำหนดการตั้งค่า ICMP

คำสั่งเก่าคำสั่งใหม่

netsh firewall set icmpsetting 8    netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
netsh firewall set icmpsetting type=ALL mode=enable netsh advfirewall firewall add rule name="All ICMP V4" protocol=icmpv4:any,any dir=in action=allow
netsh firewall set icmpsetting 13 disable all   netsh advfirewall firewall add rule name="Block Type 13 ICMP V4" protocol=icmpv4:13,any dir=in action=block

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดการตั้งค่า ICMP ให้เรียกใช้คำสั่งต่อไปนี้:

netsh advfirewall firewall add rule ?

ตัวอย่างที่ 5: ตั้งค่าการบันทึก

คำสั่งเก่าคำสั่งใหม่ netsh firewall set logging %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 ENABLE ENABLE เรียกใช้คำสั่งต่อไปนี้:

netsh advfirewall set currentprofile logging filename %systemroot%\system32\LogFiles\Firewall\pfirewall.log

netsh advfirewall set currentprofile logging maxfilesize 4096
netsh advfirewall set currentprofile logging droppedconnections enable

netsh advfirewall set currentprofile logging allowedconnections enable

สำหรับข้อมูลเพิ่มเติมให้รันคำสั่งต่อไปนี้:

netsh advfirewall set currentprofile ?

หากคุณต้องการตั้งค่าการบันทึกสำหรับรายละเอียดโดยเฉพาะอย่างยิ่งการใช้ตัวเลือกต่อไปนี้แทน "currentprofile" ตัวเลือก:
domainprofile
privateprofile
Publicprofile

ตัวอย่างที่ 6: เปิดใช้งาน Windows Firewall

คำสั่งเก่าคำสั่งใหม่

netsh firewall set opmode ENABLE    netsh advfirewall set currentprofile state on
netsh firewall set opmode mode=ENABLE exceptions=enable 

รันคำสั่งต่อไปนี้:

Netsh advfirewall set currentprofile state on 

netsh advfirewall set currentprofile firewallpolicy blockinboundalways,allowoutbound
netsh firewall set opmode mode=enable exceptions=disable profile=domain 

รันคำสั่งต่อไปนี้:

Netsh advfirewall set domainprofile state on 

netsh advfirewall set domainprofile firewallpolicy blockinbound,allowoutbound
netsh firewall set opmode mode=enable profile=ALL   Run the following commands:

netsh advfirewall set domainprofile state on 

netsh advfirewall set privateprofile state on

สำหรับข้อมูลเพิ่มเติมให้รันคำสั่งต่อไปนี้:

netsh advfirewall set currentprofile ?

หากคุณต้องการตั้งค่าสถานะไฟร์วอลล์สำหรับโพรไฟล์เฉพาะให้ใช้หนึ่งในตัวเลือกต่อไปนี้แทนตัวเลือก "currentprofile":
Domainprofile
Privateprofile Publicprofile

ตัวอย่างที่ 7: คืนค่าเริ่มต้นของนโยบาย

คำสั่งเก่าคำสั่งใหม่

netsh firewall reset
netsh advfirewall reset

สำหรับข้อมูลเพิ่มเติมให้เรียกใช้คำสั่งต่อไปนี้: netsh advfirewall reset? ตัวอย่างที่ 8: เปิดใช้งานบริการเฉพาะ

คำสั่งเก่าคำสั่งใหม่ชุดบริการไฟร์วอลล์ไฟร์วอลล์ netsh FileAndPrint กลุ่มชุดไฟร์วอลล์ advfirewall ของไฟร์วอลล์ netsh = "การแชร์ไฟล์และเครื่องพิมพ์" ใหม่เปิดใช้งาน = ใช่บริการชุดไฟร์วอลล์ netsh RemoteDesktop เปิดใช้งานกลุ่มกฎไฟร์วอลล์ชุด netsh advfirewall = "เดสก์ท็อประยะไกล" บริการ RemoteDesktop เปิดใช้งาน profile = ALL เรียกใช้คำสั่งต่อไปนี้:

กลุ่มกฎชุดไฟร์วอลล์ advfirewall ของ netsh = เปิดใช้งานเดสก์ท็อประยะไกลใหม่ = ใช่โปรไฟล์ = โดเมน

กลุ่มกฎชุดไฟร์วอลล์ advfirewall ของ netsh = เปิดใช้งานเดสก์ท็อประยะไกลใหม่ = ใช่โปรไฟล์ = ส่วนตัว


3
คุณอาจต้องการทำงานกับการจัดรูปแบบ ขณะนี้มันน่ากลัวในการอ่านเชิญ downvotes
Gerald Schneider


4

WIPFWดูมีความเป็นไปได้สูงโดยเฉพาะอย่างยิ่งถ้าหากคุณสร้างกฎการสร้าง iptables


3

มีไฟร์วอลล์ในตัวใน XP, Server 2003 และรุ่นที่ใหม่กว่า

มันมี APIซึ่งคุณสามารถเปลี่ยนแปลงเปิดใช้งานและปิดใช้งานกฎโดยทางโปรแกรม


1
ฉันต้องการสิ่งที่ฉันสามารถเข้าถึงได้ทางโปรแกรม - เพิ่มที่อยู่ IP ไปยังไฟร์วอลล์จากภายในสคริปต์หรือโมดูลซอฟต์แวร์
Aaron F.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.