Giter Club home page Giter Club logo

pampy-nfc's Introduction

PAMPy NFC solution

NFC

Instalācija

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/

⚠️ Lūdzu pārliecinieties, ka esat norādījuši derīgu pilno API servera adresi, piemēram: http://127.0.0.1/api/Values/GetValues/

2. Manuāla instalācija
  1. Pirms uzsākšanas, pārliecinies, ka esi VPN tīklā.
  2. Atjaunini sistēmu un tās pakotnes
apt-get -y update
  1. Izpako source kodu
  2. 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
  1. 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
  1. Instalē PC/SC pakotnes
apt-get -y install pcscd pcsc-tools
  1. 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
  1. Instalē jauno PC/SC draiveri
yes | dpkg -i lib/driver/libacsccid1_1.1.8-1~ubuntu18.04.1_amd64.deb
  1. Restartē PC/SC servisu
systemcl restart pcscd
  1. 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
  1. 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

  1. 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
  1. 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
  1. 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
  1. Pievienojam nodelay parametru iekš /usr/share/pam-configs/unix faila AUTH sadaļas aiz katra pam_unix.so.
  2. 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

Konfigurācija

Š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

# ...

Papildus

  • Iekš PAMPy-NFC-main/bin/ mapes atrodas fails ppnfc_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.

pampy-nfc's People

Contributors

richardevcom avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.