Kemarin, saya mengirim pertanyaan di sini tapi saya pikir tidak cukup jelas dalam kata-kata saya. BTW, Pertanyaan ini bukan duplikat.
Saya memiliki AWS VPC Setup seperti di bawah ini.
TUJUAN / MASALAH : SSH ke Server A dari internet. Dan itu tidak berfungsi.
Server A adalah dalam subnet pribadi dan karenanya saya ingin mengaktifkan iptables NATing pada instance NAT saya sehingga saya dapat ssh ke SErver A langsung dari internet
Saya menjalankan perintah di bawah ini pada contoh NAT:
NAT# iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 10.0.1.243:22
Penerusan IP diaktifkan pada instance NAT:
NAT# sysctl -p
net.ipv4.ip_forward = 1
MASQUERADE dijalankan dengan instance NAT:
NAT# iptables -t nat -vnL POSTROUTING
Chain POSTROUTING (policy ACCEPT 6 packets, 312 bytes)
pkts bytes target prot opt in out source destination
199 16466 MASQUERADE all -- * eth0 10.0.0.0/16 0.0.0.0/0
Grup Keamanan AWS dikonfigurasikan dengan baik untuk memungkinkan berbagai akses yang diperlukan untuk test case ini.
Penyelesaian masalah:
Saya bisa telnet dari NAT ke Server A di port 22. Jadi aksesnya bagus.
Ketika saya menjalankan telnet 54.213.116.251 2222
laptop saya, saya melihat entri di bawah di tcpdump di NAT:
NAT# tcpdump -n -i eth0 dst 10.0.1.243 and port 22
09:59:13.738316 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S], seq 1868541786, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
09:59:16.737009 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S], seq 1868541786, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
09:59:22.775567 IP xxx.xxx.xxx.xxx.51709 > 10.0.1.243.ssh: Flags [S], seq 1868541786, win 8192, options [mss 1460,nop,nop,sackOK], length 0
Jadi itu berarti iptables mengarahkan paket ke 10.0.1.243
. (BTW, xxx.xxx.xxx.xxx
adalah alamat ip publik laptop saya)
Tetapi ketika saya menjalankan tcpdump di Server A, saya tidak melihat apa pun yang berasal dari 10.0.0.54
alamat IP Internal / Privat NAT ( Dan saya pikir ini masalahnya ):
Server A# tcpdump -n src 10.0.0.54
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
Tetapi jika saya telnet dari NAT instance ke Server A, saya melihat hal-hal bagus di tcpdump di Server A ( Ini artinya, PREROUTING
Aturan saya secara keseluruhan tidak berfungsi seperti yang diharapkan ):
Server A# tcpdump -n src 10.0.0.54
05:01:47.500080 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [S], seq 2862522431, win 14600, options [mss 1460,sackOK,TS val 3013083 ecr 0,nop,wscale 7], length 0
05:01:47.501601 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [.], ack 760676524, win 115, options [nop,nop,TS val 3013083 ecr 12074896], length 0
05:01:47.535720 IP 10.0.0.54.44627 > 10.0.1.243.ssh: Flags [.], ack 22, win 115, options [nop,nop,TS val 3013092 ecr 12074928], length 0
Kesimpulan:
Dari output tcpdump di NAT, Tampaknya Iptables meneruskan paket saya dengan baik.
dari TCP dump di Server A, saya memiliki konektivitas yang baik dari NAT ke Server A.
Tetapi dalam End-to-end, saya tidak dapat terhubung ke server A dari laptop saya.
( BTW, saya tahu terowongan SSH dan hal-hal bagus lainnya. Tapi saya hanya ingin Iptables membantu saya dengan ini. )
Disabled
untuk contoh NAT.