119: Nerede benim telnet’im
ESX, default olarak yüksek güvenlik profilinde kurulur ve telnet client kullanılabilir değildir. Telnet yıllardan beri (plain text yapısından dolayı) bir numaralı güvenlik riski olarak değerlendirildiğinden, bu durum anlaşılabilir. Zaten telnet’i çift yönlü bir iletişim aracı olarak kullanan halen var mıdır bilinmez. Aslında telnet’ten tek beklentimiz, port erişim kontrolü yapmaktır.
Eğer benim gibi firewall’u bol bir ortamda çalışıyorsanız, bu tip kontrollere sıklıkla ihtiyaç duyuyorsunuz demektir. Bu noktada alabileceğimiz iki adet aksiyon var. Birincisi, ESX üzerinde telnet client’i aktive etmek. Bunu vSphere Client aracılığı ile yapabiliriz. Bu işlemi gerçekleştirirken sadece telnet client’ı aktive etmekle kalmaz, ESX üzerinde 23 numaralı portu da açmış oluruz.
Ancak ikinci yöntem çok daha estetik ve gereksiz işlemler yapmamıza gerek yok. Sadece yapmak istediğimizi yapacak (ne eksik ne fazla) bir python scripti işimizi görecektir. Bunun için uygun bir klasör altında bir dosya oluştururuz (adına tcptest diyelim) ve bu dosyaya aşağıdaki scripti kaydederiz.
#!/usr/bin/python import sys import telnetlib import socket PORT = "" argc = len(sys.argv) if argc == 3 : PORT = sys.argv[2] elif argc < 2 or argc > 3: print "usage %s host <port> \n" % sys.argv[0] sys.exit() HOST = sys.argv[1] try: tn = telnetlib.Telnet(HOST,PORT) except socket.error, (errno, strerror): print " SockerError( %s ) %s\n" % (errno, strerror) sys.exit() print tn.read_until("\n ",5) print "connection succeeded\n" tn.close() sys.exit()
Dosyayı kaydettikten sonra execute hakkını vermemiz gerekir. Sonrasında komutu çalıştırabiliriz. Başarılı olma durumunda karşı taraftan aldığı cevabın ilk satırını yazacaktır.
- chmod 755 tcptest
- ./tcptest anotherESXserver 902
[root@ESX01 SCRIPTS]# ./tcptest ESX02 902
220 VMware Authentication Daemon Version 1.10: SSL Required, ServerDaemonProtocol:SOAP, MKSDisplayProtocol:VNC , VMXARGS supported
connection succeeded…