นี่คือสคริปต์สร้างกฎ iptables:
#!/bin/sh
FWVER=0.01
#
# ask1368071 Smythies 2021.10.08 เวอร์ชั่น:0.01
# ดูที่นี่:
# https://askubuntu.com/questions/1368071/iptables-that-only-allow-incoming-traffic-to-openssh-and-block-all-other-traffic
# เรียกใช้เป็น sudo บน s19
# รายการบันทึกใช้สำหรับแต่ละแพ็กเก็ต ssh ใหม่เท่านั้น ดูเหมือนว่าไม่มีเหตุผลที่จะบันทึกทุกแพ็กเก็ต ssh แต่ก็สามารถทำได้
#
echo "กำลังโหลดรุ่นชุดกฎ ask1368071 $FWVER..\n"
# ตำแหน่งของโปรแกรม iptables
#
IPTABLES=/sbin/iptables
#การตั้งค่าอินเทอร์เฟซและที่อยู่ภายนอกและภายในสำหรับเครือข่าย
#
# ตั้งค่าสำหรับคอมพิวเตอร์ Smythies s19 (สำหรับการทดสอบ) แก้ไขสำหรับคอมพิวเตอร์ของ ask1368071
EXTIF="br0"
EXTIP="192.168.111.136"
เครือข่าย="192.168.111.0/24"
จักรวาล="0.0.0.0/0"
# ล้างการกำหนดค่าใด ๆ ก่อนหน้านี้
#ระวังตรงนี้ ฉันสามารถทำได้ใน s19 แต่ไม่รู้
#เกี่ยวกับคอมพิวเตอร์ของไนเจล
#
echo " กำลังล้างกฎที่มีอยู่และตั้งค่านโยบายเริ่มต้น.."
$IPTABLES -P อินพุตลดลง
$IPTABLES -F อินพุต
$IPTABLES -P ยอมรับเอาต์พุต
$IPTABLES -F เอาต์พุต
$IPTABLES -P ยอมรับไปข้างหน้า
$IPTABLES -F ส่งต่อ
$IPTABLES -t แนท -F
# ลบเชนที่ผู้ใช้กำหนด
$IPTABLES -X
# รีเซ็ตตัวนับ IPTABLES ทั้งหมด
$IPTABLES -Z
# Smythies: แม้ว่าการอ้างอิงของฉันจะไม่มี แต่ฉันคิดว่าสิ่งนี้จำเป็น
$IPTABLES -t แนท -Z
# อินเทอร์เฟซย้อนกลับถูกต้อง
#
$IPTABLES -A อินพุต -i lo -s $UNIVERSE -d $UNIVERSE -j ยอมรับ
# อนุญาตให้ทราฟฟิกที่เกี่ยวข้องกลับมาที่เซิร์ฟเวอร์
# (ไนเจลไม่ได้ขอสิ่งนี้ แต่ฉันคิดว่ามันจำเป็น)
$IPTABLES -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m state --state ESTABLISHED,RELATED -j ยอมรับ
# อนุญาตและบันทึกการเชื่อมต่อ SSH ใหม่
#
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW -p tcp -s $UNIVERSE -d $EXTIP --dport 22 -j LOG --log-prefix "ssh traffic:" --log-ข้อมูลระดับ
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW -p tcp -s $UNIVERSE -d $EXTIP --dport 22 -j ยอมรับ
#ห้ามทำอย่างอื่นเด็ดขาด
# นอกจากนี้ยังอาจใช้นโยบายเริ่มต้นที่นี่ แต่บางครั้งก็ต้องการกฎการบันทึกด้วย
#
$IPTABLES -A INPUT -i $EXTIF -j LOG --log-prefix "blockd traffic:" --log ข้อมูลระดับ
$IPTABLES -A อินพุต -i $EXTIF -j DROP
# เสร็จแล้ว.
#
echo ask1368071 กฎชุดเวอร์ชัน $FWVER เสร็จแล้ว
นี่คือรายการหลังจากเริ่มเซสชัน ssh ใหม่แล้ว:
doug@s19:~/iptables/misc$ sudo iptables -xvnL
Chain INPUT (นโยบาย DROP 0 แพ็คเก็ต, 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
0 0 ยอมรับทั้งหมด -- จริง * 0.0.0.0/0 0.0.0.0/0
66 5465 ยอมรับทั้งหมด -- br0 * 0.0.0.0/0 192.168.111.136 สถานะ ที่เกี่ยวข้อง ก่อตั้ง
1 52 LOG tcp -- br0 * 0.0.0.0/0 192.168.111.136 state NEW tcp dpt:22 LOG flags 0 level 6 prefix "ssh traffic:"
1 52 ยอมรับ tcp -- br0 * 0.0.0.0/0 192.168.111.136 สถานะ ใหม่ tcp dpt:22
18 1382 LOG ทั้งหมด -- br0 * 0.0.0.0/0 0.0.0.0/0 LOG แฟล็ก 0 คำนำหน้าระดับ 6 "ทราฟฟิกที่ถูกบล็อก:"
18 1382 วางทั้งหมด -- br0 * 0.0.0.0/0 0.0.0.0/0
เชน FORWARD (นโยบายยอมรับ 0 แพ็กเก็ต 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
Chain OUTPUT (นโยบายยอมรับ 56 แพ็กเก็ต, 8793 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
นี่คือรายการบันทึกบางส่วน อ๊ะ ฉันได้จับส่วนแบ่งแซมบ้าของฉันแล้ว:
8 ต.ค. 08:07:15 น. เคอร์เนล s19: [249075.860342] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53951 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:16 น. เคอร์เนล s19: [249076.878329] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53957 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:17 น. เคอร์เนล s19: [249077.896198] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53959 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:18 เคอร์เนล s19: [249078.914012] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53960 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:19 น. เคอร์เนล s19: [249079.931823] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53961 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:20 เคอร์เนล s19: [249080.934176] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53962 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:20 เคอร์เนล s19: [249081.115999] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=ff:ff:ff:ff:ff:ff:80:7d:3a:19:ea:59:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=336 TOS=0x00 PREC=0x00 TTL=128 ID=0 PROTO=UDP SPT=68 DPT=67 LEN=316
8 ต.ค. 08:07:20 เคอร์เนล s19: [249081.132297] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=ff:ff:ff:ff:ff:ff:80:7d:3a:19:ea:59:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=336 TOS=0x00 PREC=0x00 TTL=128 ID=1 PROTO=UDP SPT=68 DPT=67 LEN=316
8 ต.ค. 08:07:21 เคอร์เนล s19: [249081.936134] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53964 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:22 น. เคอร์เนล s19: [249082.938594] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53965 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:23 น. เคอร์เนล s19: [249083.956556] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53966 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:24 เคอร์เนล s19: [249084.958914] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=41 TOS=0x00 PREC=0x00 TTL=128 ID=53967 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=8209 RES=0x00 ACK URGP=0
8 ต.ค. 08:07:25 น. เคอร์เนล s19: [249085.976907] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=40 TOS=0x00 PREC=0x00 TTL=128 ID=53968 DF PROTO=TCP SPT=50044 DPT=445 WINDOW=0 RES=0x00 ACK RST URGP=0
8 ต.ค. 08:07:25 น. เคอร์เนล s19: [249085.981353] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53969 DF PROTO=TCP SPT=61348 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:26 น. เคอร์เนล s19: [249086.985732] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53970 DF PROTO=TCP SPT=61348 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:28 น. เคอร์เนล s19: [249089.005970] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53971 DF PROTO=TCP SPT=61348 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:32 น. เคอร์เนล s19: [249093.012998] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53973 DF PROTO=TCP SPT=61348 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:35 น. เคอร์เนล s19: [249096.205252] การรับส่งข้อมูล ssh:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53974 DF PROTO=TCP SPT=61351 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
8 ตุลาคม 08:07:40 น. s19 systemd[1]: เริ่มเซสชัน 222 ของผู้ใช้ doug
8 ต.ค. 08:07:40 เคอร์เนล s19: [249101.031397] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53989 DF PROTO=TCP SPT=61348 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:46 เคอร์เนล s19: [249107.046666] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53997 DF PROTO=TCP SPT=61352 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:47 น. เคอร์เนล s19: [249108.061299] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53998 DF PROTO=TCP SPT=61352 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:49 น. เคอร์เนล s19: [249110.065547] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=53999 DF PROTO=TCP SPT=61352 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:07:53 น. เคอร์เนล s19: [249114.090375] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=54001 DF PROTO=TCP SPT=61352 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0
8 ต.ค. 08:08:01 เคอร์เนล s19: [249122.092377] การรับส่งข้อมูลที่ถูกบล็อก:IN=br0 OUT= MAC=3c:7c:3f:0d:99:83:04:d4:c4:93:f4:55:08:00 SRC=192.168.111.122 DST=192.168.111.136 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=54021 DF PROTO=TCP SPT=61352 DPT=445 WINDOW=64240 RES=0x00 SYN URGP=0