По первому вопросу:
https://help.ubuntu.com/community/Internet/ConnectionSharing
или через GUI
https://help.ubuntu.com/community/Firestarter
По второму вопросу:
Сервер: На Ubuntu поднимаете сервер: Система=>Параметры>Удаленный рабочий стол
Клиент: Vinagre: Приложение>Интернет>Просмотр удаленных рабочих столов
Или подключаетесь к серверу через любой из множества VNC клиентов.
http://ru.wikipedia.org/wiki/Virtual_Network_Computing
(список в конеце. Некоторые уже имеются в репозиториях Ubuntu)
А в качестве сервера используете x11vnc из репозитория.
Клиент/сервер RDP: Приложение>Интернет>Клиент терминального сервера