Ben's notes

Linux, Unix, network, radio...

User Tools

Site Tools


serial_to_ethernet

Serial<->Ethernet convertor

  • OS: CentOS 6.5
  • Hardware: PC Engines APU

This proof of concept is a serial-to-ethernet converter. It uses one IP-address per serial port, not an IP port.

IP address IP Port serial connection
192.168.100.101 22 ntp2 server
192.168.100.102 22 kvm host
192.168.100.103 22 nas

Configure virtual IP addresses

  • Create /etc/sysconfig/network-scripts/ifcfg-eth0:0
    DEVICE="eth0:0"
    BOOTPROTO="none"
    ONBOOT="yes"
    IPADDR="192.168.100.101"
    NETMASK="255.255.255.0"
  • Create /etc/sysconfig/network-scripts/ifcfg-eth0:1
    DEVICE="eth0:0"
    BOOTPROTO="none"
    ONBOOT="yes"
    IPADDR="192.168.100.102"
    NETMASK="255.255.255.0"
  • Create /etc/sysconfig/network-scripts/ifcfg-eth0:2
    DEVICE="eth0:0"
    BOOTPROTO="none"
    ONBOOT="yes"
    IPADDR="192.168.100.103"
    NETMASK="255.255.255.0"
  • Restart networking
    service network restart

Install and configure dropbear

  • Install dropbear from EPEL repository:
    yum install dropbear
  • Make sure dropbear does not start automaticly
    chkconfig dropbear off
  • Generate host keys.
    /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
    /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
    /usr/bin/dropbearkey -t ecdsa -f /etc/dropbear/dropbear_ecdsa_host_key
  • Configure default OpenSSH daemon to listen only on management port. Edit /etc/ssh/sshd_config
    ListenAddress 192.168.100.99
  • Restart OpenSSH service.
    service sshd restart

Install and configure minicom

  • Install minicom:
    yum install minicom
  • Create NTP2 server config. /etc/minirc.ntp2
    pu port             /dev/ttyUSB0
    pu minit
    pu mreset
    pu mhangup
  • KVM server config. Create /etc/minirc.kvm
    pu port             /dev/ttyUSB1
    pu minit
    pu mreset
    pu mhangup
  • NAS config. Create /etc/minirc.nas
    pu port             /dev/ttyUSB2
    pu minit
    pu mreset
    pu mhangup

Create login script

  • Create /usr/local/bin/serial.sh
    #!/bin/bash
    #disable ctrl-c ctrl-z
    trap '' 2 20
    
    connectto=`echo $SSH_CONNECTION | cut -d " " -f3`
    
    case $connectto in
      192.168.42.27)
    	/usr/bin/minicom ntp2
    	;;
      192.168.42.28)
    	echo "naar 28"
    	;;
      *)
    	echo "Connection problem to $connectto"
    	exit 1
    	;;
    esac
  • Make it executable
    chmod +x /usr/local/bin/serial.sh
  • Add the script to /etc/shells.

Create user

  • Add user serial:
    useradd -G dialout -s /usr/local/bin/serial.sh serial
  • Enter password:
    passwd serial

Start SSH services

You can also start a separate dropbear process per IP address.

  • Start dropbear SSHd services.
    /usr/sbin/dropbear -g -p 192.168.100.101:22 -p 192.168.100.102:22 -p 192.168.100.103:22

Test

  • Log in to the virtual IP addresses with user serial and test serial connections.
serial_to_ethernet.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1