Dydaktyka:
FeedbackTo jest stara wersja strony!
Do zajęć zdalnych koniecznie musicie mieć do dyspozycji:
+:c++ -pthread --std=c++2a l4_z1_lambda.cpp
1)nc
/ncat
/netcat
/socat
netstat
/ss
Dodatkowo warto zainstalować:
man
)gdb
(debugger)valgrind
(narzędzie znajdujące błędy zarządzania pamięcią)strace
(narzędzie wyświetlające i tłumaczące wywołania systemowe)wireshark
# tl;dr (czyli dla osób które chcą gotowe polecenia i nie chce im się czytać dalej) wget http://www.cs.put.poznan.pl/jkonczak/pub/sk2/sk2-vpn-ca.crt sudo openvpn --dev tap --client --ca sk2-vpn-ca.crt --auth-user-pass --daemon --remote ipv4.jprofesorek.mooo.com x11vnc -quiet -nopw -forever -display :0 & sleep 5 ip -4 addr show dev tap0
W trakcie zajęć wykorzystywany będzie OpenVPN. Należy zainstalować odpowiednią paczkę (zwykle o nazwie openvpn
) w systemie z którego będzie udostępniany ekran.
Uwaga: VPN jest skonfigurowany tak, by była łączność między wszystkimi podłączonym osobami, co będzie wykorzystywane w trakcie zajęć, ale niesie za sobą dość oczywiste konsekwencje bezpieczeństwa.
Do uruchomienia VPNa potrzebny jest:
ipv4.jprofesorek.mooo.com
,device tap
theExampleUsername someIncorrectPassword
Uwaga: plikz hasłem musi mieć uprawnienia zabraniające odczyt komukolwiek poza bieżącym użytkownikiem (do ustawienia uprawnień można użyć np. chmod go-rwx userPass.txt
)
Polecenie uruchamiające VPNa, należy je uruchamiać z roota (wybierz jedno):
openvpn --dev tap --client --ca /somewhere/sk2-vpn-ca.crt --auth-user-pass /somewhere/userPass.txt --remote ipv4.jprofesorek.mooo.com
Uwaga 1: można pominąć nazwę pliku /somewhere/userPass.txt
, wtedy program pyta o nazwę użytkownika / hasło.
Uwaga 2: można dodać opcję --daemon
, która przenosi program w tło. Bez tej opcji program openvpn zajmuje konsolę (a zamknięcie okna z konsolą przerywa połączenie).
client remote ipv4.jprofesorek.mooo.com dev tap ca /somewhere/sk2-vpn-ca.crt auth-user-pass /somewhere/userPass.txt #daemon
następnie uruchom polecenie:
openvpn --config sk2-vpn.ovpn
network-manager-openvpn-gnome
).
Sprawdzenie czy wszystko poszło dobrze: po wykonaniu wybranej z komend, w wynikach komendy ip address
powinien pojawić się interfejs tap0
z adresem IP z sieci 10.0.9.0/24. Dodatkowo powinna działać komenda ping 10.0.9.1
.
Dla zainteresowanych konfiguracja serwera
Przykładowe polecenie używa serwer x11vnc aby udostępnić bieżącą sesję graficzną.
Możecie oczywiście użyć dowolnego innego serwera VNC, np. TigerVNC, który pozwala zarówno udostępnić bieżącą sesję (np. x0vncserver --SecurityTypes None
) jak i stworzyć nową wirtualną sesję Xów (bez konieczności wykorzystania Xvfb).
Udostępnienie całej sesji graficznej:
x11vnc -forever -display :0 &
Oczywiście normalnie VNC pozwala na kontrolę myszy i klawiatury. W x11vnc
można dodać opcję -viewonly
żeby pozwolić tylko na podglądanie ekranu.
Inne przydatne opcje to -quiet
która zmniejsza gadatliwość standardowego wyjścia i -nopw
która pomija komunikat że serwer nie jest chroniony hasłem.
Można poeksperymentować z udostępnieniem części ekranu (poniższe polecenia wymagają zainstalowania xwininfo
do wyboru okna).
Udostępnienie jednego okna (nie udostępnia innych okien, np. oknien dialogowych czy okien menu):
x11vnc -forever -id pick -connect :0
Udostępnienie obszar jednego okna (uwaga: jeśli je coś zasłoni, x11vnc przesyła to co je zasłoniło):
x11vnc -forever -sid pick -connect :0
Udostępnienie jednej aplikacji (uwaga: u mnie nie działało prawidłowo):
x11vnc -appshare -id pick -connect :0
Aby sprawdzić czy VNC działa prawidłowo, należy spróbować połączyć się do (z innego komputera) np. poleceniem
vncviewer <ip lub nazwa domenowa>
Po uruchomieniu VPN i VNC należy na początku zajęć przesłać do prowadzącego swój adres IP z sieci 10.0.9.0/24.
Edytor VisualStudio Code pozwala udostępniać bieżąco edytowany projekt przy użyciu rozszerzenia Live Share.
Uwaga: Osoby korzystające z tej metody powinny:
socat udp-l:daytime,fork exec:date & socat tcp-l:daytime,fork exec:date &
--std=c++2a
, to znaczy że jest dość stary; sugeruję zaktualizować, ale jeśli działa z --std=c++1z
, to na potrzeby zajęć wystarczy