Showing posts with label network engineering. Show all posts
Showing posts with label network engineering. Show all posts

Wednesday, May 19, 2021

Apple MacBook Air M1 for Network Engineers Part 5

Welcome to part 5! If you haven't read parts 1-4, you can find them here:

Part 1 can be found at the link below: 
Apple MacBook Air M1 for Network Engineers Part 1

Part 2 can be found at the link below:

Part 3 can be found at the link below:
Apple MacBook Air M1 for Network Engineers Part 3

Part 4 can be found at the link below:
Apple MacBook Air M1 for Network Engineers Part 4


So how is the M1 working out?

I have been using the M1 as my daily driver for a few months now. It has far exceeded my expectations. The "Instant On" like an iPad still blows me away, battery life is unbelievable, the Retina screen is amazing, memory management is so good I just don't even think about how many applications I have open. 

Recently, I left work, came home, used it for a few hours web browsing, worked on Friday using it for probably 5 hours at three different sites, then Saturday morning I was web browsing and realized that it was at 39% battery! I can't wait until the plague is over and I get to spend 11-14 hours in airports and on planes with it. Oh, wait...

But it's not perfect! The M1 only has two USB-C Thunderbolt ports and the architecture of the M1 only allows a total of two displays - INCLUDING the Retina display. So even if you purchase two USB-C to HDMI adapters you can only drive one monitor. Since I have two 27" monitors in my home office and two 24" monitors at work this was disappointing. 

But, it turns out the two monitor limit does not apply to DisplayLink monitors. StarTech.com makes a USB-A to DisplayLink adapter that has two DisplayPort ports and Gigabit Ethernet. It drives both monitors no problem and I can still use the Retina display for a total of three monitors. You do have to go to the Displaylink Downloads page and install the macOS app. 

USB 3.0 Mini Dock - Dual Monitor USB-A Docking Station with DisplayPort 4K 60Hz Video & Gigabit Ethernet

Of course, being USB-A, you still have to use a USB-C to USB-A adapter. I bought two from Satechi.com that have three USB-A ports and one Gigabit Ethernet adapter. That leaves the second USB-C port available for charging so I can work all day on two monitors and still have two USB-A available and Ethernet. They are very high-quality adapters and I can't recommend them enough. If you sign up at Satechi.com you will get discount coupons in your inbox.

TYPE-C 2-IN-1 USB HUB WITH ETHERNET



In the field, I have been using another Satechi adapter - USB-C ON-THE-GO MULTIPORT ADAPTER. This one has 

  • USB-C PD charging
  • Gigabit Ethernet
  • 4K HDMI, VGA
  • USB-A
  • USB-C data ports
  • micro/SD card readers slots

The USB-C to C cable stashes inside the adapter, a really nice feature and it comes with a second, longer USB-C to C cable. I really like it because I can use the USB-C PD port for charging, use Gigabit Ethernet, an external monitor, and a USB-A device while still having the second USB-C port available. Plus, like the other Satechi adapter, it's very solidly built and feels like it will last even getting banged around in my backpack!



One last accessory that I am loving is an OIKWAN 10ft FTDI USB-C to RJ45 Serial Adapter. I didn't know that you could buy 10' cables but the extra length rocks. Plus, I don't need to put in a dongle just to use a console cable.


I found this Reddit post about USB-Serail chipsets. There is a lot of good information in it.
serial: With reliable macOS M1 support?


At this point, we have a macOS system running Big Sur with a great shell, a great terminal, the development tools needed to automate the network, and a vast collection of dongles! Now we will install and configure the tools that make macOS/Linux so much better than Windows.

Here is a list of the apps that we will be installing:

  • arp-scan - a command-line tool for system discovery and fingerprinting
  • bat - a replacement for cat with colorization
  • cdpr - a Cisco Discovery Protocol daemon
  • Debut WebCam software - Use an inexpensive endoscope on the m1.
  • Docker Desktop for macOS
  • duf - Disk Usage Free an ncurses interface for disk usage
  • exa - a replacement for LS that includes a lot of useful features
  • grepcidr - grep for IP subnets. A must learn tool
  • iPerf3 - An open-source link performance testing tool
  • lft - An alternative to Traceroute. Implements numerous network tracing methods and strategies.
  • lsusb - the Linux List USB tool. Useful when you want to see what USB devices are connected
  • lldp - an lldp daemon for macOS
  • mtr - A network diagnostic tool that combines the functionality of commonly used traceroute and ping programs into a single tool.
  • sipcalc - a terminal-based IP calculator
  • speedtest-cli - a terminal tool that calls the speedtest.net site.
  • tcp traceroute - a part of the IP route2 package from Linux. Useful to be able to use tcp instead of ICMP
  • tldr - cli interface to the website https://tldr.sh. Curated list of man pages with exmaples
  • Watch - Runs command repeatedly, displaying its output and errors
  • shellcheck - Linter for shell scripts
  • sc-im - Display csv files in the terminal. This is great for quickly reviewing csv files


Docker Desktop for macOS

Docker Desktop for Apple Silicon is now available for General Availability. You can download it here.

I recommend that you join the Docker Slack and then watch the docker-desktop-mac channel.

Use this link to get to the Docker Slack instance - https://dockercommunity.slack.com

The community is very active and they have solved a lot of issues.

Docker would require a book to go over, I am just going to show how to install the desktop and provide links to some good reference material.

References


EXA

A modern replacement for ls.
One of the most common tasks is listing files. Why spend your time squinting at black and white text?

exa is an improved file lister with more features and better defaults. It uses colours to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it’s small, 
fast, and just one single binary.

Installation

brew install exa

Examples

List with long, (F) Classify, Tree. 

Classify displays file kind indicators next to file names. 

exa -lFT


exa -lF --group-directories-first


I created an alias for the last command in the .zshrc file.

alias exa1="exa -lFT --group-directories-first"

Now I just have to type "exa1" to execute that long command.


References

Exa Website


fd

A replacement for find. This tool is amazing, the readme on GitHub has a lot of examples.

Features

  • Intuitive syntax: fd PATTERN instead of find -iname '*PATTERN*'.
  • Regular expression (default) and glob-based patterns.
  • Very fast due to parallelized directory traversal.
  • Uses colors to highlight different file types (same as ls).
  • Supports parallel command execution
  • Smart case: the search is case-insensitive by default. It switches to case-sensitive if the pattern contains an uppercase character*.
  • Ignores hidden directories and files, by default.
  • Ignores patterns from your .gitignore, by default.
  • The command name is 50% shorter* than find :-).

Installation

brew install fd

I'm not sure what program set the colors environment variable, it was set before installing fd, but this is what it looks like

echo $LSCOLORS                                                                                                   

Gxfxcxdxbxegedabagacad

fd then uses that to color its output




There is a companion tool called as-tree that you can pipe the output to and display the results in a tree.

brew install as-tree




References


grepcidr

grepcidr can be used to filter a list of IP addresses against one or more Classless Inter-Domain Routing (CIDR) specifications. As with grep, there are options to invert matching and load patterns from a file. grepcidr is capable of efficiently processing large numbers of IPs and networks.

grepcidr has endless uses in network software, including: mail filtering and processing, network security, log analysis, and many custom applications.

For detailed instructions and examples, please see the README file or man page. A couple examples of usage:

    grepcidr 2001:db8::/32 logfile

    grepcidr 66.249.64.0/19 access.log

Installation

brew install grepcidr

LLDP

Git hub repo with documentation

Installation

brew install lldp


LFT

LFT, short for Layer Four Traceroute, is a sort of 'traceroute' that often works much faster (than the commonly-used Van Jacobson method) and goes through many configurations of packet-filters (firewalls). More importantly, LFT implements numerous other features including AS number lookups through several reliable sources, loose source routing, netblock name lookups, et al. What makes LFT unique? LFT is the all-in-one traceroute tool because it can launch a variety of different probes using ICMP, UDP, and TCP protocols, or the RFC1393 trace method.

Official website 

Installation

brew install lft

References



MTR

This is a tool that runs continuously to ping the target and calculate the path like traceroute. There is a lot to this tool besides just pinging and tracerouting. You can save the output in CSV or JSON format, use IPv6 addresses, etc. You can use "man mtr" to open the man page or see the Tecmint.com article in the reference section.

Installation

MTR is part of the Homebrew collection. 

brew install mtr

The first time I ran mtr I got the error below:

┌─[mhubbard@HP8600-4] - [/private/tftpboot] - 
└─[$] mtr -4 199.244.248.19                                                                                 
mtr: Failure to start mtr-packet: Invalid argument

A google search found an issue on the mtr github page. I just had to add "/usr/local/sbin" to the path variable. I included a link in the references on how to do that in case you have the same issue.

How to use mtr

Example to www.vectorusa.com from my home lab. Note that you will need to use sudo with mtr.

┌─[mhubbard@HP8600-4] - [/private/tftpboot] - [2909]
└─[$] sudo mtr -4 www.vectorusa.com
HP8600-4.local (192.168.10.142) -> www.vectorusa.com                                         2021-08-30T19:20:25-0700
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                             Packets               Pings
 Host                                                                      Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.10.254                                                          0.0%    14    4.1   5.7   3.6  25.2   5.6
 2. (waiting for reply)
 3. dtr01hsprca-tge-0-0-0-4.hspr.ca.charter.com                             0.0%    14   18.2  16.8  13.1  33.8   5.1
 4. 024-180-019-029.biz.spectrum.com                                        0.0%    13   14.4  15.6  12.3  26.2   3.5
 5. bbr02atlnga-bue-1.atln.ga.charter.com                                   0.0%    13   13.2  22.0  12.7  80.8  19.4
 6. bbr02chcgil-tge-0-2-0-1.chcg.il.charter.com                             0.0%    13   33.9  19.7  15.5  33.9   5.3
 7. 206.223.123.156                                                         0.0%    13   19.2  27.4  16.6  45.4  10.0
 8. 199.60.103.2                                                            0.0%    13   15.6  17.0  13.8  24.0   3.0


In this example, I added "-b" and "-y 0" to display the AS number and IP address:

┌─[mhubbard@HP8600-4] - [/private/tftpboot] - [2909]
└─[$] sudo mtr -4 -b -y 0 www.vectorusa.com
HP8600-4.local (192.168.10.142) -> www.vectorusa.com                                                2021-08-30T19:34:00-0700
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                                    Packets               Pings
 Host                                                                             Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. AS???    192.168.10.254 (192.168.10.254)                                       0.0%    19    3.7   4.2   3.3   7.8   0.9
 2. (waiting for reply)
 3. AS???    dtr01hsprca-tge-0-0-0-4.hspr.ca.charter.com (96.34.100.96)            0.0%    19   16.0  16.7  13.1  41.3   6.2
 4. AS20115  024-180-019-029.biz.spectrum.com (24.180.19.29)                       0.0%    18   17.4  17.4  13.2  26.2   3.7
 5. AS???    bbr02atlnga-bue-1.atln.ga.charter.com (96.34.3.18)                    0.0%    18   26.9  27.2  12.0  78.8  20.1
 6. AS???    bbr02chcgil-tge-0-2-0-1.chcg.il.charter.com (96.34.3.129)             0.0%    18   18.5  16.9  14.7  19.5   1.4
 7. AS396998 206.223.123.156 (206.223.123.156)                                     0.0%    18   18.6  24.8  15.4  37.6   8.1
 8. AS209242 199.60.103.2 (199.60.103.2)                                           0.0%    18   15.6  16.2  13.9  22.1   2.0


Using TCP or UDP instead of ICMP

sudo mtr --tcp -b -y 0 www.vectorusa.com
sudo mtr --udp -b -y 0 www.vectorusa.com


References




tldr

brew install tldr


┌─[mhubbard@HP8600-4] - [~/.ssh] - [3255]
└─[$] tldr mtr                                                                                                                        [20:34:50]

mtr

Matt's Traceroute: combined traceroute and ping tool.
More information: <https://bitwizard.nl/mtr>.

- Traceroute to a host and continuously ping all intermediary hops:
    mtr host

- Disable IP address and host name mapping:
    mtr -n host

- Generate output after pinging each hop 10 times:
    mtr -w host

- Force IP IPv4 or IPV6:
    mtr -4 host

- Wait for a given time (in seconds) before sending another packet to the same hop:
    mtr -i seconds host



Shellcheck


Installation

brew install shellcheck

To demonstrate the power of shell scripting, here is a shell script I found on Stackexchange.com that parses ifconfig and outputs:
  • Network Service
  • Interface Name
  • MAC address
  • IPv4 address 
of any active interface.

In this example, I had wifi and a USB-C Ethernet adapter connected.

bash networkservice.sh                                                                                                                                 [10:32:38]
Wi-Fi, en0, 50:ed:3c:22:be:32, 192.168.10.148
USB 10/100/1000 LAN, en11, 00:e0:4c:68:0a:0d, 10.10.100.2

If you want to include the IPv6 address, modify awk '/inet /{print $2}' and remove the space after inet.

Here is the script. Paste it into sublime text and then save it in a directory on your path. I created a folder - /Users/mhubbard/bin, to save tools in.

#!/bin/bash

while read -r line; do
    sname=$(echo "$line" | awk -F  "(, )|(: )|[)]" '{print $2}')
    sdev=$(echo "$line" | awk -F  "(, )|(: )|[)]" '{print $4}')
    #echo "Current service: $sname, $sdev, $currentservice"
    if [ -n "$sdev" ]; then
        ifout="$(ifconfig "$sdev" 2>/dev/null)"
        echo "$ifout" | grep 'status: active' > /dev/null 2>&1
        rc="$?"
        if [ "$rc" -eq 0 ]; then
            currentservice="$sname"
            currentdevice="$sdev"
            currentmac=$(echo "$ifout" | awk '/ether/{print $2}')
            currentIP=$(echo "$ifout" | awk '/inet /{print $2}')

            # may have multiple active devices, so echo it here
            echo "$currentservice, $currentdevice, $currentmac, $currentIP"
        fi
    fi
done <<< "$(networksetup -listnetworkserviceorder | grep 'Hardware Port')"

if [ -z "$currentservice" ]; then
    >&2 echo "Could not find current service"
    exit 1
fi


References


Debut WebCam software

I bought an inexpensive endoscope off of eBay for about $15.00. On Linux, it worked with the built-in Cheese webcam software. On the Mac I couldn't figure out how to get Facetime to work with it so I had to do some research. 

After I connected the endoscope, I ran lsusb (list USB) that I installed using "brew install lsusb" and it listed the following for the camera:

lsusb                                                                                                                                                              
Bus 001 Device 001: ID 2109:0817 VIA Labs, Inc. USB3.0 Hub
Bus 001 Device 003: ID 0bda:8153 Realtek Semiconductor Corp. USB 10/100/1000 LAN  Serial: 000001
Bus 001 Device 002: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 004: ID 1e4e:0110 Etron Technology, Inc. USB2.0 Camera

So I knew that the M1 recognized the device. I searched for Etron Technology and found the company website. They had software so I downloaded it. But, I never install software from from the Internet without running it through VirusTotal.com. 17 AV vendors found Potentially Unwanted Programs (PUPs) in the Etron software.

The search also took me to the Logitech website for a package called "Capture". I found this in the description of Capture "Our webcams are USB Video Class (UVC) devices and driver support is built into Microsoft Windows 10 and macOS." So the endoscope must be a UVC device and the Mac has support built in.  

Back to the search and I found an application that is free for personal use and worked fine. It's called Debut and you can download it Debut webcam software. Virus Total reported 0 issues for Debut.

The resolution of the endoscope is listed as 640x480 so it's pretty bad. I checked eBay tonight and found a couple endoscopes that claim 720P and 1600 x 1200 for about $25. They also say the work with macOS so they must be UVC also. They also come with wifi adapters so that they work with Android and IOS phones. The 1600x1200 resolution would be much better than the 640x480 on the $15 endoscope I bought.

I can hear you asking "Why does a network engineer need an endoscope?". Well, I dropped a brand new Cisco 10Gb Single Mode Fiber SFP and it went down the channel of the two post rack. There were several APC UPS units and batteries all way to the bottom of the rack so there was no way to reach in and recover it. I had a claw type tool in my truck but I couldn't see that far down the channel to get the SFP. 

Luckily, I had spare SFPs and was able to come back after I got the endoscope. It has LEDs in it and I was able to use the endoscope to guide the claw to the SFP.  Tonight I used the endoscope to guide a 1/4" socket onto a nut on the ice maker on my freezer. But that's a story for another day. 

I was really more interested in explaining LSUSB and how to look at the USB devices that the M1 recognizes. 


sc-im

From the git repo:
Spreadsheet Calculator Improvised, aka sc-im, is an ncurses based, vim-like spreadsheet calculator.

Some of the features of sc-im

  • Vim movements commands for editing cell content.
  • UNDO / REDO.
  • 65.536 rows and 702 columns supported. (The number of rows can be expanded to 1.048.576 if wished).
  • CSV / TAB delimited / XLSX file import and export. ODS import. Markdown export.
  • Key-mappings.
  • Autobackup.
  • Direct color support - specifing the RGB values, screen colors can be customized by user, even at runtime.
  • Colorize cells or give them format such as bold, italic or underline.
  • Wide character support. The following alphabets are supported: English, Spanish, French, Italian, German, Portuguese, Russian, Ukrainian, Greek, Turkish, Czech, Japanese, Chinese.
  • Sort of rows.
  • Filter of rows.
  • Subtotals.
  • Cell shifting.
  • Clipboard support.
  • GNUPlot interaction.
  • Scripting support with LUA. Also with triggers and c dynamic linked modules.
  • Implement external functions in the language you prefer and use them in SC-IM.
  • Use SC-IM as a non-interactive calculator, reading its input from an external script.


This is a great utility for network engineers. I hate having to open Excel or Libre Calc just to grab some data from a csv file that was created for deployment. With sc-im I don't have to leave the terminal.

Here is a screenshot from a template I created for configuring several sites:



Installation

brew install sc-im

Once it's installed simply run

sc-im <file name>

in the case above:

sc-im rc-parks-idf_info.csv

Exiting sc-im

sc-im uses vim key bindings by default. They are listed on the github README. 

To quit, type ":q" and press enter

For reference, on Ubuntu, sc-im can open xlsx files.

An alias to view csv files.

If you just need to view a csv file with a limited number of columns, this alias works great


alias csv='ls *.csv | pbcopy ; sed s/,/,:/g $(pbpaste) | column -t -s: | sed s/,//g | cut -c-180'

Here is output of the alias in action:

csv                                                                                                                                                             [21:34:29]
column: line too long
Name                  IP             Site #  Name
voip-museum-g430      10.90.80.50    03      Museum
Voip-uoc-g450         10.80.152.5    05      Utilities Opration Center
voip-RPUgw-g430       10.80.30.50    06      RPU Gateway
voip-pucm-g450        10.80.138.50   07      Orange Square
voip-casa-g430        10.80.196.50   08      UOC-CRC
voip-SpringsSub-g430  10.80.160.50   09      UOC Springs Substation

Sunday, March 14, 2021

Apple MacBook Air M1 for Network Engineers Part 1

Parts 2 -5 are now published. You can find them 

I haven't used a Mac as a daily driver for a few years. I switched over to Ubuntu when I started working on my python, Git, and dev skills for the Cisco Devnet program. Ubuntu is a great platform for dev work because there are so many free, open-source tools and it will run on almost any hardware from a Raspberry Pi to a maxed-out desktop. 

But I had to have a new Mac once the ARM-based Apple Silicon Macs were announced! Battery life was the biggest factor but I also wanted the instant-on, iPad-like performance of the Apple Silicon. It makes me smile every time I open the lid and it is just ready to go. Add in Touch-ID, Retina display, and the Big Sur version of macOS and it made the money jump right out of my wallet!

I hadn't used Big Sur since my current MacBook is a 2012 MacBook Pro, so I had some research to do. Luckily there are plenty of YouTube videos with tips on setting up the new M1 Macs and on the new features of Big Sur.  

Some videos to get you started:

Some useful webpages

Search for emails in Mail on Mac - If you decide to use Apple Mail, this is useful.


I also used a few podcasts:

  • Mac Geek Gab
  • Mac Power Users
  • Automators

to get up to speed. 

They are two different kinds of podcasts. Mac Geek Gab focuses on "Cool Stuff Found" which is hardware/software that works with the Mac and "Quick Tips" which are tips on using IOS and macOS.

Mac Power Users is a podcast on getting maximum productivity out of macOS. I don't use most of the software that they recommend. Most of the software is subscription-based and it gets out of control fast. But, they offer a lot of productivity tips for macOS itself and I find the podcast worth my time to listen to.

One quick tip for wireless:

Hold down the option key while clicking on the wifi icon to get additional information on the connection. It's great to be able to see the channel, MCS, RSSI, Noise Floor, transmit rate, and Phy Mode instantly.



One quick tip for Bluetooth:

If you are having trouble with Bluetooth devices you can try resetting the Bluetooth module. Simply press the Shift + Option keys, then click on the Bluetooth icon in the menu bar. You will see an option to "Reset the Bluetooth module". Click on it and the Bluetooth will be reset. 

You won't have to re-pair the devices, this just resets the Bluetooth module. 


As you can see, you can factory reset all connected Apple devices or remove all devices.

TIP: If you need to save a file to a system location such as an nmap script to "/usr/loca/share/nmap/scripts", you can press shift+cmd+g" to open a "go to folder" dialog.  Type the path into the dialog. Tab completion is supported.





Initial Setup

Apple has a startup script that did a good job of getting me logged in and working. But I learned a lot from the videos and podcasts so I did some customizing.

Preferences

If you are moving from Windows or Linux, macOS has some defaults that you will probably want to change. The first thing I did was use the System Preferences app to fix them. On macOS, you move the mouse to the top left of the screen and click on the Apple icon to open system preferences.


Change the view to Organize alphabetically


On the View menu, select "Organize Alphabetically" instead of the default "Organize by Categories".


Now preferences will look like this:




You can also hide any icons that you are sure you won't need. On the View menu, click Customize. Checkmarks will appear on each icon. Uncheck any that you don't want to see.


General Category

Show scroll bars:

    Always


This turns the scroll bars on all the time. The default is to hide them until you click into a window in Finder. I find that very annoying.


Apple ID

    iCloud Drive, options - turn off Desktop & Documents


If you don't do this and you are on-site with no Internet service your files will not be available




Security & Privacy


General

You can set a message that will show on the lock screen. I do this in case a customer doesn't know it's mine and sees it in the data center.

  • Click the lock in the lower left and enter your password. 
  • Put a check in the box next to "Show a message when the screen is locked.
  • Click on the drop-down "Set Lock Message..."

  • Enter your message and click OK.
  • Click the lock again to lock the General settings



Firewall

By default the firewall is disabled. You should enable it.
    

    Firewall
        Click - Turn On Firewall





    

Trackpad

    Point & Click

  • A lot of Mac users check the "Tap to Click" option. I tried it and didn't like it. You should give it a shot, maybe it will work for you.
  • Click - Set to Firm


    


More Gestures

        Click the More Gestures tab and enable App Expose. I used the Swipe down with four fingers gesture.


 App Expose is used to show all windows of an application on the screen. 


I found that in the Mission Control preference panel you can setup "Application Windows" to use different keys. I set the CMD key on the right side to show the application windows. I like that better than the four-finger swipe.




Display

Night Shift will change the display color slightly towards to warmer end of the spectrum. This is supposed to help you relax when using the laptop at night.  I have it set to run from sunset to sunrise. When it activates, a checkmark will appear in the "Turn on Until Sunrise" box.


Desktop

    Apple, Colors

    I'm going for maximum battery life and minimum distraction so I set the desktop to solid black. One interesting side effect is that I use a DisplayLink monitor in the field. While setting it up I thought it wasn't working. After some time troubleshooting, I realized that with no apps moved to it I was looking at the black desktop and it was working! Just a heads up.





    Screen Savers - set up Hot Corners 

        If you hold down the Option key while selecting a corner in Preferences then the corner isn't active unless you also hold down the Option key. I use the Apple icon a lot and this prevents me from showing the desktop when I meant to show the icon.

        


        Top Left - Option+Desktop

        Bottom Left - Mission Control

        Top Right - Notification Center

        Bottom Right - Launchpad




Accessibility

I like to be able to move windows with the trackpad so I enable dragging.
    Pointer Control, Trackpad Options
          Enable Dragging - three-finger drag




Dock and Menu Bar

I like the dock to be smaller than the default and to auto-hide. I also like to have the menu bar at the top auto-hide. This is a personal preference and I find that most people don't like it. It's worth trying.

    Put a check in Magnification. Adjust the slider to suit. I like about 60%
    Under Position on Screen, select Left.
    Put a check in Automatically hide and show the Dock
    Menu Bar - Check Automatically hide and show the menu bar
 



Do Not Disturb

In keeping with the minimum distraction, maximum productivity theme I want quick access to the Do Not Disturb options.

    Put a check in Show in Menu Bar and select Always



 
Keyboard Brightness
  Put a check in Show in Menu Bar




 Battery
   Put a check in Show Percentage




 Clock 
    Most users won't want my clock settings. I prefer 24-hour format so that there is no confusion between 06:00AM and 6:00PM. I am also fanatical about using a stopwatch and I want to see seconds. It drives me crazy that on the iPhone the clock app has no option to display seconds. 

    If anyone is interested, it takes me on average 29 seconds from when I turn the ignition off until I am pumping gas at Costco. I have done 27 seconds, and occasionally 30 seconds. (Update - Costco now has the Tap to Pay on the pumps. It has cut 5 seconds off my time.)

    Finally, with my ADHD I can lose all track of time and work on a task for far too long, so the Mac announces the time every 15 minutes.
   
       Put a check in Use 24 hour clock
       Put a check in Flash the time separators
       Put a check in Display the time with seconds
       Put a check in Announce the time



Dock

    Apple includes a lot of apps on the dock. I find that I don't use many of the built-in apps so I removed the ones I don't expect to use. To do that:

    Right-click, select Options, Remove from Dock.


View menu

   Switch to the Finder app. In the Menu Bar, click on View 

    Put a check in use stacks. This organizes the files on the desktop into neat folders. You can uncheck to quickly go back to showing individual files.

     Click on Show Path bar, and show status bar

Customize the toolbar

While in the view menu, click on Customize Toolbars...

I added "Get Info" to the bar and changed "Show" to text and Icon.



Finder

With Finder as the active app, click Finder, Preferences in the menu bar. Click the Advanced tab and put a check in "Show all file extensions in Finder". This prevents a malicious file from hiding its true extension.



One tip for Finder. In the Toolbar, there is a Group tool. If you have mixed file types in a folder it's very convenient to group by Application.



Tips on sorting in Finder


Safari

Keyboard shortcuts and gestures in Safari on Mac

Open Safari Preferences

General

    Uncheck Open "Safe" files after downloading. This a personal OpSec issue. I don't like for files that I download from the Internet to be opened automatically.

    New windows open with: Empty Page - I don't like to wait for a new window to load a page that I probably won't be using.

    New tabs open with: Empty Page





    Advanced

  •         Put a check in Show Develop menu in the menu bar.
  •         Put a check in Show Full Website Address



Extensions

I haven't used Safari as my daily driver before but I'm going to give it a go on the M1 since it's highly optimized for ARM and should give me the best battery life. I can see that I will have to give up some extensions that I am used to on Firefox like vertical tabs, UBlock Origin, Ghostery, etc. but if I get 12 hours of battery life it's a good trade-off.

To install extensions, click Safari in the menu bar, then Safari extensions... to locate extensions for Safari. Similar to Chrome, Firefox, and Edge, Safari extensions are now in the App Store. 


Grammarly

This is a grammar-checking extension. There are versions for Chrome, Firefox, Safari. You will have to create a free account and login to start using Grammarly. I highly recommend it. If you pay for a subscription you can run Grammarly in Microsoft apps.


LastPass 

Open Safari and click the link below to go to the Logmein download site.

How do I install the Safari app extension on my mac

  • Download the lastpass.dmg file.
  • Double click on the dmg, when it opens, drag it into the applications folder.
  • Double click to start it and log in.
  • Back in Safari.
  • Preferences, Extensions, enable the lastpass extension.


Buffer

This is an extension that lets you tweet from Safari. I find it handy when I find an info sec site that I want to share.

Open the App Store, click on Catagories, Safari Extensions. In the search bar enter buffer. You will see Buffer: Social Media Composer.

Click on Get, Install.


Activity monitor 

    Add a column for architecture. This lets you see which apps are running native and which are still Intel.



 

Time Machine

macOS includes a decent backup application called Time Machine. Since network engineers tend to install a lot of software from Github and other Internet locations, having a full backup is important. There are 3rd party tools like Carbon Copy Cloner and SuperDuper that have a lot more features. At the time of this blog (4-15-2021) SuperDuper hadn't been updated to work with the M1. 

I downloaded the Carbon Copy Cloner trial and it worked with the M1. The Caveat is that it can't make a bootable back. The work around is to install Big Sur manually and then restore. I think for the short term I'm going to stick with Time Machine. The snap shot feature of Carbon Copy Cloner shoulds good but I'm not sure I need it.

At a minimum, you should get Time Machine setup.

Also, I still use a Windows laptop when I'm at the office. If it got crypto locked all of my Dropbox and Goggle Drive files would get overwritten with encrypted versions. Having an offline backup is a necessity if you interact with Windows.

I bought a Elecife M.2 NVME PCIe SATA NGFF SSD Enclosure and a Western Digital 1TB WD Blue SN550 NVMe drive to hold the backups. The enclosure is very nice, tool-free, and lightweight. Not like the old days of using a 2.5" spinning hard drive in an external enclosure. 

As soon as I connected it, Time Machine opened and asked if I wanted to use it. After that, it does a backup every hour and saves weekly and monthly backups. I don't carry the drive with me so I don't do the hourly. I usually just connected it in the evening and let it do one or two backups. 

The NVME is so fast that the backups only take a few minutes.  

I noticed that my .zshrc file wasn't visible in the backup. Use "shift+cmd+." to show hidden files. 

Reference

Back up your Mac with Time Machine


Wrap Up

That does it for the basic setup of the OS. In the next post, I will dive into installing the tools a network engineer needs.

You can find Part Two here
You can find Part Three here