Skip to main content

Posts

Showing posts from December, 2016

How to setup 2FA On Linux SSH Login

  This is a simple setup guide to enabling Two Factor Authentication (2FA) on Linux SSH login. I this article I wont go deep into setup and issues that I have faced when implementing this. First thing is first Update your system first. I have used Ubuntu 20.04 and it is always up to date. To enable 2FA you need to install google authenticator modules sudo apt install libpam-google-authenticator Configuration for PAM and SSHD Add the the following line to /etc/pam.d/sshd and After adding this line please restart the sshd services.  auth required pam_google_authenticator.so Go to /etc/ssh/sshd_config and check if the following line exist. Default value will be "no" so change it to "yes" to activate.  ChallengeResponseAuthentication yes Configuration for Authenticator In the terminal run google authenticator command It will ask few things to acknowledge by user. Details you can see from the below video. Once this part is done you are ready to use the 2FA in ubuntu. T

What is Charlieplexing?

When you use microcontrollers and you are out of PIN's to connect some LED's for status or when you want to drive a binary clock with few pins left in microcontroller, there is a way that can solve this issue. Its called charlieplexing and if you know multiplexing you will have some idea of how it works. I will do an example using Arduino for demonstration. Charlieplexing is a method to drive multiple LED's with few pins available in your microcontroller. Here is the formula to calculate how many LEDs can be drive from N number of pins. Number of LED's = No. of PINS available ( No. of PINS available - 1) For example you have only 3 pins left in Arduino and you want to know how many LED's can be drive. Number of LED's = 3(3-1) Number of LED's = 3(2) Number of LED's = 6 So from 3 PINS you can drive 6 LED's. Since arduino have tri-state output (INPUT, HIGH and LOW) its easy to drive the LED's using this method. how leds are connect

TCP communication from NEOWAY M590E- Successful

Some of the GSM/GPRS chips do not support HTTP services and since the modems are controlled via AT commands, the AT command sets are very limited to HTTP commands in NEOWAY M590E. The only option to communicate with any cloud based or locally hosted server was using TCP protocol. I have used HTTP services in many of my projects and experiments, it is easy and with few lines of code can manage an HTTP requests. For weeks i have been struggling with TCP request and every time it fails to connect or sometimes data is sent but from server side there is no new data fetched. Basically TCP is transport layer in OSI model and HTTP is in application layer. TCP will do a socket based connection to servers predefined port. For example  test.com:8989. what i mean is it needs a listener to listen to port that you define or open to use. After weeks of reading articles and AT command sets thoroughly, finally i managed to handle a TCP request from modem. But still it fails sometimes or unable to