https://github.com/zezav-cz/NetworkClock
Server app for time shearing
https://github.com/zezav-cz/NetworkClock
csharp security time
Last synced: 9 months ago
JSON representation
Server app for time shearing
- Host: GitHub
- URL: https://github.com/zezav-cz/NetworkClock
- Owner: dvojak-cz
- Created: 2022-04-09T12:52:26.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-06-28T15:49:56.000Z (about 4 years ago)
- Last Synced: 2024-12-04T21:20:11.545Z (over 1 year ago)
- Topics: csharp, security, time
- Language: C#
- Homepage:
- Size: 14.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NetworkClock
NetworkClock je servrová aplikace pro sdílení času po síti. Serverová část má možnost zobrazit systémový čas ve vybraném formátu a změnit systémový čas.
Aplikace reaguje na `GET` `HTTP` request, kde poskytuje serverový systémový čas. Request může obsahovat volitelným parametrem `format`, kde může klient nastavit požadovaný formát odpovědi.
Specifikaci dotazu neleznete v `Server/Documentation/Endpoints/GetTimeReqest.yaml`
Aby aplikace spávně běžela, pak na systému nesmí běžet žádný deamon, který synchornizuje čas.
## Instalace a používání (docker)
Všechy ukázané příkazy jsou prováděny "root" složce řešení - tam, kde se nachází tento soubor.
```
# docker build -t network_clock .
# docker run -it --rm --privileged -- network_clock
```
## Instalace a používání (lokálně)
Všechy ukázané příkazy jsou prováděny "root" složce řešení - tam, kde se nachází tento soubor.
### Potřebné prerekvizity
- DLL: `WhiteListCaps.so`
- Toto DLL musí být při spuštění aplikace nalezitelné operačnímsystémem (například v `/etc/lib`)
```
$ make -C TimeChanger/src/ WhiteListCaps.so
# cp TimeChanger/src/WhiteListCaps.so /usr/lib/
# chmod 755 /usr/lib/WhiteListCaps.so
```
- Konfigurační soubor: `/etc/NetworkClock.json`
```
# cp Server/config.json /etc/NetworkClock.json
# chmod 644 /etc/NetworkClock.json
```
V konfiguračním souboru musí být specifikovaná cesta na aplikaci _ChangeTime_
- Spustitelná aplikace: `ChangeTime`
```
$ make -C TimeChanger/src/ ChangeTime
# chmod +x TimeChanger/src/SetSUID.sh
# TimeChanger/src/SetSUID.sh #Nastavý potřebná práva
```
### Vytvoření a spuštění aplikace
```
dotnet run --configuration Release --project Server/
```
---
## Klient
Server reahuje na `GET HTTP` požadavky. Příjmá parametr format, který určuje požadovaný formát odpovědi. Jako klient lze využí nástroj `curl`
Příklady požadavků:
```
$ curl 'http://localhost:'
$ curl 'http://localhost:?format='
```
## Upozornění
Před kompilací a spuštěním aplikace si zkontrolujte, že máte správně nastavenou volací konveci DLLka, které bude aplikace importovat. Nastavení volací konvence je v `Server/Program.cs` - `line 9`