ฉันมีนักเทียบท่า Mysql ทำงานใน Linode โดยใช้ dockerfile ต่อไปนี้:
รุ่น: '3'
บริการ:
mysql8:
รูป: mysql:8.0.23
คำสั่ง: --default-authentication-plugin=mysql_native_password
ชื่อคอนเทนเนอร์: mysql8
cap_add:
- SYS_NICE
สิ่งแวดล้อม:
MYSQL_ROOT_PASSWORD: แรมโบ้
ปริมาณ:
- /opt/mysql/data:/var/lib/mysql
พอร์ต:
- 3306:3306
ฉันสามารถเชื่อมต่อได้โดย:
(1) ssh ลงในเครื่อง Linode แล้วใช้: mysql -h 127.0.0.1
(2) เชื่อมต่อโดยตรงจากแล็ปท็อปของฉันกับเซิร์ฟเวอร์ MySQL ในเซิร์ฟเวอร์ Linode: mysql -h 45.79.101.138
สิ่งที่ฉันต้องการคืออนุญาตการเข้าถึงภายในพอร์ต 3306 ความหมาย (1) แต่ไม่อนุญาต (2)
ฉันลองด้วย:
iptables -A INPUT -p tcp --dport 3306 -s 172.0.0.1 -j ยอมรับ
iptables -A อินพุต -p tcp --dport 3306 -j DROP
แต่ฉันยังสามารถเชื่อมต่อจากแล็ปท็อปและจากภายในได้
ถ้าฉันเพิ่งตก ฉันก็ไม่สามารถเชื่อมต่อจากภายในหรือแล็ปท็อปของฉัน
iptables -A อินพุต -p tcp --dport 3306 -j DROP
IPTables ของฉันมีลักษณะดังนี้:
# สร้างโดย iptables-save v1.8.4 เมื่อวันศุกร์ที่ 15 ตุลาคม 21:58:42 น. 2564
*กรอง
: ยอมรับอินพุต [3222:286906]
:ทิ้งไปข้างหน้า [0:0]
: ยอมรับเอาต์พุต [4089:439672]
:นักเทียบท่า - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:นักเทียบท่า-ผู้ใช้ - [0:0]
-อินพุต -s 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j ยอมรับ
-อินพุต -p tcp -m tcp --dport 3306 -j DROP
-A ไปข้างหน้า -j นักเทียบท่า-ผู้ใช้
-A ส่งต่อ -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ไปข้างหน้า -o นักเทียบท่า 0 -j นักเทียบท่า
-A ไปข้างหน้า -i docker0 ! -o นักเทียบท่า 0 -j ยอมรับ
-A ไปข้างหน้า -i docker0 -o docker0 -j ยอมรับ
-A FORWARD -o br-bbc39200a6b6 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ส่งต่อ -o br-bbc39200a6b6 -j นักเทียบท่า
-ไปข้างหน้า -i br-bbc39200a6b6 ! -o br-bbc39200a6b6 -j ยอมรับ
-A ไปข้างหน้า -i br-bbc39200a6b6 -o br-bbc39200a6b6 -j ยอมรับ
-A FORWARD -o br-595c99b571cb -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ส่งต่อ -o br-595c99b571cb -j นักเทียบท่า
-ไปข้างหน้า -i br-595c99b571cb ! -o br-595c99b571cb -j ยอมรับ
-A ไปข้างหน้า -i br-595c99b571cb -o br-595c99b571cb -j ยอมรับ
-นักเทียบท่า -d 172.19.0.2/32 ! -i br-595c99b571cb -o br-595c99b571cb -p tcp -m tcp --dport 3306 -j ยอมรับ
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-bbc39200a6b6 ! -o br-bbc39200a6b6 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-595c99b571cb ! -o br-595c99b571cb -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j ผลตอบแทน
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-bbc39200a6b6 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-595c99b571cb -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ผลตอบแทน
-A นักเทียบท่า-ผู้ใช้ -j ผลตอบแทน
ให้สัญญา
# เสร็จสิ้นเมื่อ ศ. 15 ต.ค. 21:58:42 น. 2564
# สร้างโดย iptables-save v1.8.4 เมื่อวันศุกร์ที่ 15 ตุลาคม 21:58:42 น. 2564
*แนท
: ยอมรับ [1297:65663]
: ยอมรับอินพุต [1297:65663]
: ยอมรับเอาต์พุต [12:720]
:หลังยอมรับ [16:940]
:นักเทียบท่า - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A เอาท์พุท ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A โพสต์ -s 172.17.0.0/16 ! -o docker0 -j สวมหน้ากาก
-A โพสต์ -s 172.18.0.0/16 ! -o br-bbc39200a6b6 -j สวมหน้ากาก
-A โพสต์ -s 172.19.0.0/16 ! -o br-595c99b571cb -j สวมหน้ากาก
-A POSTROUTING -s 172.19.0.2/32 -d 172.19.0.2/32 -p tcp -m tcp --dport 3306 -j MASQUERADE
-A นักเทียบท่า -i นักเทียบท่า 0 -j ผลตอบแทน
-นักเทียบท่า -i br-bbc39200a6b6 -j ผลตอบแทน
-นักเทียบท่า -i br-595c99b571cb -j ผลตอบแทน
- นักเทียบท่า ! -i br-595c99b571cb -p tcp -m tcp --dport 3306 -j DNAT --to-ปลายทาง 172.19.0.2:3306
ให้สัญญา
# เสร็จสิ้นเมื่อ ศ. 15 ต.ค. 21:58:42 น. 2564
ความคิดใด ๆ ที่ชื่นชม