1. Automātiskā instalācija
Uzstādiet wget
un palaidiet šo attālināto instalācijas skriptu:
(varat arī saglabāt savā tīklā un palaist to no sava tīkla)
# Lejupielādēt cURL
sudo apt install curl
# Lejupielādēt instalācijas failu
sudo wget https://github.com/richardevcom/PAMPy-NFC/blob/main/setup/install.sh
# Palaist instalācijas failu (obligāti jānorāda API servera adrese -u argumentam)
sudo bash install.sh -u http://server_ip/api/
http://127.0.0.1/api/Values/GetValues/
2. Manuāla instalācija
- Pirms uzsākšanas, pārliecinies, ka esi VPN tīklā.
- Atjaunini sistēmu un tās pakotnes
apt-get -y update
- Izpako source kodu
- Izmantojot Git
apt-get -y install git
git clone https://github.com/richardevcom/PAMPy-NFC.git ppnfc
cd ppnfc # Neaizmirstam obligāti pāriet uz risinājuma mapi
- Manuāli izpako lejupielādēto arhīva failu
wget https://github.com/richardevcom/PAMPy-NFC/archive/refs/tags/v1.3.6.zip
tar -xf main.tar.gz
cd PAMPy-NFC-main # Neaizmirstam obligāti pāriet uz risinājuma mapi
- Instalē PC/SC pakotnes
apt-get -y install pcscd pcsc-tools
- Atiestati/nobloķē noklusējuma PC/SC draiverus pievienojot šīs rindiņas faila beigās
nano /etc/modprobe.d/blacklist.conf
blacklist nfc
blacklist pn533
blacklist pn533_usb
- Instalē jauno PC/SC draiveri
yes | dpkg -i lib/driver/libacsccid1_1.1.8-1~ubuntu18.04.1_amd64.deb
- Restartē PC/SC servisu
systemcl restart pcscd
- Uzstādam nepieciešamo Python3 bibliotēku
apt-get -y install python3 python3-pip python3-pyscard python3-evdev python3-serial python3-filelock python3-psutil python3-cryptography python3-xdo python3-setproctitle python3-requests python3-xlib
- Kopējam
ppnfc_config.py
konfigurācijas failu un rediģējam to
cp conf/ppnfc_config.py /etc/ppnfc_config.py
nano /etc/ppnfc_config.py
Nomainam API adresi api_endpoint = "http://127.0.0.1/api/"
uz jums nepieciešamo
- Izvietojam pārējos risinājuma failus
yes | cp -rf bin/scripts/* /usr/local/bin &>/dev/null
yes | cp -rf conf/services/*.service /lib/systemd/system &>/dev/null
yes | cp -rf conf/ppnfc_pam.config /usr/share/pam-configs &>/dev/null
yes | cp -rf conf/ppnfc_config.py /etc/ &>/dev/null
yes | cp -rf bin/theme/Login.qml /usr/share/sddm/themes/breeze/ &>/dev/null
yes | cp -rf bin/theme/Main.qml /usr/share/sddm/themes/breeze/ &>/dev/null
yes | cp -rf bin/theme/Debug.qml /usr/share/sddm/themes/breeze/components/ &>/dev/null
- Piešķiram minimāli nepieciešamās atļaujas failu palaišanai
chown -R root:root /usr/local/bin/ppnfc_* &>/dev/null
chown -R root:root /lib/systemd/system/ppnfc_* &>/dev/null
chown -R root:root /etc/ppnfc_config.py &>/dev/null
chmod +x /usr/local/bin/ppnfc_* &>/dev/null
chmod +x /lib/systemd/system/ppnfc_* &>/dev/null
chmod +x /etc/ppnfc_config.py &>/dev/null
- Iestatam un palaižam risinājuma servisus
systemctl enable ppnfc_server &>/dev/null
systemctl start ppnfc_server &>/dev/null
systemctl enable ppnfc_keyboard_wedge &>/dev/null
systemctl start ppnfc_keyboard_wedge &>/dev/null
systemctl enable ppnfc_auto_send_enter_at_login &>/dev/null
systemctl start ppnfc_auto_send_enter_at_login &>/dev/null
- Pievienojam
nodelay
parametru iekš/usr/share/pam-configs/unix
failaAUTH
sadaļas aiz katrapam_unix.so
. - Konfigurējam PAM rediģējot
/etc/pam.d/common-auth
failu un norādot šo risinājumu kā otro autorizācijas posmā
auth [success=3 default=ignore] pam_unix.so nodelay nullok_secure
auth [success=2 default=ignore] pam_exec.so quiet /usr/local/bin/ppnfc_pam.py
auth [success=1 default=ignore] pam_sss.so use_first_pass
Šis risinājums izmanto /etc/ppnfc_config.py
Python3 failu kā konfigurācijas failu, lai pārrakstītu jeb kuras noklusējuma vērtības iekš ppnfc_server.py
servera faila.
nano /etc/ppnfc_config.py
# General - skatiet failus iekš /usr/local/bin - lai redzētu, kādus mainīgos varat rediģēt šajā konfigurācijā.
logout_action = 'logout' # `logout` vai `lock` - izlogot vai slēgt sesiju?
# API (attālināts API serviss)
api_endpoint = "http://127.0.0.1/api/Values/GetValues/" # API avota pamata URL adrese
api_request_timeout = 10 # (n) laiks sekundēs, pēc kura pārtaukt API pieprasījumu
# HTTP
http_read_every = 0.2 # nolasīt HTTP pieprasījumu ik (n) sekundes
http_uid_not_sent_inactive_timeout = 1 # (n) laiks sekundēs, pēc kura pātraukt gaidīt lietotāja ID iesūtīšanu
# PCSC
pcsc_read_every = 0.2 # nolasīt NFC lasītāju ik (n) sekundes
pcsc_read_timeout = 0.2 # (n) laiks sekundēs, pēc kura pārtraukt gaidīt NFC lasījumu
# ...
- Iekš
PAMPy-NFC-main/bin/
mapes atrodas failsppnfc_usb_reset
- tas ir paredzēts gadījumā, ja NFC lasītājs "uzkaras", vai pašrocīgi izslēdzas. - Risinājums ir izveidots uz SiRFIDaL bāzes.
- Šis risinājums atbalsta Ubuntu/Kubuntu 18* versiju. Teorētiski tai ir jādarbojas arī uz 20* versijām, tomēr tā nav pilnībā notestēta uz tām.