CNN model for more than 3 channels input
A CNN does not care about the starting number of channels. It can be one, three, 20, or anything really. Here's a simple example in the python library Keras for how you might start out a CNN with 20 channels, assuming your images are 100x100. Obviously these numbers can be changed to whatever your problem needs.

from keras.layers import Input, Conv2D

# Assumes images are 100x100 with 20 channels
inputs = Input(shape=(100, 100, 20))

# First convolution will take in the 20 channels and output 32 channels
x = Conv2D(32, strides=(2, 2), activation='relu')(inputs)

# Second convolution will take in the 32 channels and output 64 channels
x = Conv2D(64, strides=(2, 2), activation='relu')(x)

...