By train
Surabaya is connected by rail from Jakarta, Semarang and Yogyakarta with many stop points in between (http://www.infoka.kereta-...). It is possible to travel to the region from Bali with an all-in "train" ticket that also covers the necessary bus and ferry portions.
The popular star tourist attraction of Bromo-Tengger-Semeru National Park is sadly not part of the Indonesian rail network.
By ship
Ferries ply the route between Gilimanuk, Bali and Banyuwangi every 20 min, 24 hr a day. The crossing itself takes about 30 min, although embarking and disembarking can take much longer.
Surabaya is a major national and international port city and virtually every major coastal city in Indonesia is connected to it in some way. Check the national passenger ship operator Pelni (http://www.pelni.com/for) detailed information.