... สวัสดีครับ วันนี้ผมจะมาพูดถึงเรื่อง network ที่ทุกๆที่ มักมีท่าแปลกๆให้ access เข้าระบบ แบบนั้นแบบนี้ก็ว่ากันไป "เพื่อความเหมาะสม" ทาง security หรืออะไรก็ตามแต่ และสิ่งที่ตามมาคือทีม infra หรือ developer อย่างเราๆ นี่สิทำงานยาก เ_ี่ยๆ ..
... เรื่องมีอยู่ว่า.. "ย้ำนะครัช ว่านี่เหตุการณ์สมมติ" ใครที่คิดเยอะ! ขอผ่านได้เลยครับ...
... มี server อยู่บน aws แต่มีบาง account หรือ vpc หรือ subnet ที่ไม่ให้เชื่อมต่อ internet หรือทำการ remote เข้าไปใน zone พิเศษได้ พูดง่ายๆคือ ไม่ยอมให้ ssh remote กันง่ายๆ ไม่ยอมให้ client รีโมทตรงๆ ต้องผ่านสักอย่างมาก่อน จะ vpn ,Bastion host หรือ proxy หรืออะไรก็ได้ แต่ห้ามรีโมตตรงๆ .. ทางทีมได้ทำการปรึกษากัน และก็ได้ข้อตกลงว่า หากจะ remote ssh ไปล่ะก็ ให้ผ่าน proxy เท่านั้น เพราะขาที่เป็น aws จะ allow ให้เฉพาะ Proxy มันจะคร่าวๆดังภาพ
โอเคร เราลองมา test กัน ในที่นี้ผมจะ สมมติ ให้
VM-Proxy 10.11.0.11 คือ Proxy (Squid proxy)
EC2 172.31.31.213 คือ Private ip ที่เราอยาก ssh ไป
และ กำหนดให้ VM-Proxy สามารถไปหา EC2 ได้(มันต่อ Private Link)
- เริ่ม Install Squid Proxy ( Centos7 )
$> yum update -y
$> yum install squid
$> systemctl start squid
$> systemctl enable squid
- edit config squid
$> vi /etc/squid/squid.conf
เพิ่ม
acl internet src 10.109.10.101 # <== จะ Allow ให้ ip ไหนใช้ proxy ได้บ้าง เพิ่มบรรทัดนี้ พวกนี้ อันนี้เป็น ip เครื่องผมคนเดียวก็ใส่ /32 ไป
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
และ
acl SSL_ports port 443
acl SSL_ports port 22 #ssh <== ตรงนี้
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 22 # ssh/sftp <== กับตรงนี้
จากนั้น ก็ Restart service
$> service squid restart
เป็นอันเสร็จสิ้น
จากนั้นลอง ssh ด้วย command
$> ssh -oProxyCommand='nc -X connect -x 10.11.0.11:3128 %h %p' ubuntu@172.31.31.213
เหตุการณ์ทั้งหมด เป็นเรื่องสมมติ หวังว่าหลายๆท่านจะนำไปประยุกต์ใช้งานได้ครับ
Top comments (0)