Icons, billeder brugt til illustration.
Generer adgangskode.
Degenerer adgangskode.
Foreløbig laves en dørstation til Videx. Og denne model af en website er et mix af kode samt anvendeligheden af de enkelte komponenter. Jeg tror at hvis kode, forretnings model samt tydelig forklaring for at producere et produkt er en rød tråd gennem dette website. Kan der laves en skabelon der får produkter hurtigt gennem udvikling. Med andre ord skal enhver kunne producere ud fra dette websites opskrifter.
I sidste ende er en kode idé ikke meget værd, hvis ikke den kan gøres til en forretning, som vi tjener penge på. Men vigtigst er at idé som kode beskyttes. Arbejder på det.
En DNS Server som FreeDNS, gør at man kan bruge navne som vist på billedet. Og ud fra et Domain som man ejer, kan skabe lige så mange navne man vil, ud fra sit Domain navn. Dette er en gratis løsning for at give vor kunder, eller enheder, som kameraer et web navn f.eks. kamera99.doordk.com eller hansi.doordk.com.
adresse1.doordk.com
adresse2.doordk.com
adresse3.doordk.com
adresse4.doordk.com
adresse5.doordk.com
osv.doordk.com
Under menu'en DNS ACME, ses hvordan man laver en secure HTTPS:// adresse med FreeDNS.
Link. FreeDNS https://freedns.afraid.org/På den lange bane, må vi selv have(lave) en DNS server. Og ikke være afhængig af FreeDNS.
uname -m
aplay --list-devices
arecord --list-devices
sudo nano ~/.asoundrc
sudo nano /etc/asound.conf
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:2,0"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:2,0"
}
}
Update Firmware.
Når man forsøger at update Rocken. Går den i ged??.
Løsningen er at update key filen.
Update key.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 9B98116C9AA302C7
sudo apt update && sudo apt upgrade -y && sudo apt autoremove && sudo apt autoclean
sudo timedatectl set-timezone Europe/Copenhagen
sudo nano /etc/hosts
sudo nano /etc/hostname
sudo hostnamectl --static set-hostname rockpi4b
sudo chown -R rock:rock /home/rock
echo "rock:spacewalk" | sudo chpasswd
sudo reboot
wget https://cmake.org/files/v3.29/cmake-3.29.0.tar.gz
tar -xzvf cmake-3.29.0.tar.gz
cd cmake-3.29.0
./bootstrap
make -j$(nproc)
sudo make install
After backup. Clean Up.
cd ~
rm cmake-3.29.0.tar.gz && sudo rm -R cmake-3.29.0
cmake --versionBackup newly Compiled Cmake vesion.
cd ~
tar -czf cmake_bac_3.29.0.tar.gz cmake-3.29.0
sudo apt updatesudo apt install -y build-essential libpython3-dev libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev && \
tar xfz cmake_bac_3.29.0.tar.gz
cd cmake-3.29.0
sudo make install
cmake --version
cd ~
rm cmake_bac_3.29.0.tar.gz && sudo rm -R cmake-3.29.0
alsamixer
sudo alsactl store
aplay /usr/share/sounds/alsa/Front_Center.wav
arecord -D plughw:2,0 --duration=3 test.wav && aplay test.wav
sudo apt install -y libc++-dev curl libcurl4-openssl-dev git socat certbot dnsutils zip unzip cron locales
nano wwan0_sim7600.shMake it exe ready, and run it.
chmod u+x wwan0_sim7600.sh
sudo ./wwan0_sim7600.shIf no output after run. Alles OK. Create a cron job that run every minute. To check if IP addresse has changed?.
sudo crontab -e
* * * * * /home/rock/wwan0_sim7600.sh >> /home/rock/wwan0_sim7600.log 2>&1 &
nano ip_pub.shMake it exe ready, and run it.
chmod u+x ip_pub.sh
sudo ./ip_pub.shIf no output after run. Alles OK. Create a cron job that run every minute. To check if IP addresse has changed?.
sudo crontab -e
* * * * * /home/rock/ip_pub.sh >> /home/rock/ip_pub.log 2>&1 &
sudo systemctl restart cron
sudo systemctl status cron
dig +short -t a doordk.com
dig +short -t a doorbell.doordk.com
dig +short -t a aldersrogade.doordk.com
sudo -i
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "users FreeDns email"
source ~/.bashrc
sudo -i
cd ./acme.sh
export FREEDNS_User="users FreeDns email"
export FREEDNS_Password="password"
./acme.sh --issue --dns dns_freedns -d doorbell.doordk.com --keylength 4096 --force
sudo zip -r ~/acme_doorbell_doordk_com_bak.zip /root/.acme.sh
sudo unzip ~/acme_doorbell_doordk_com_bak.zip -d /
sudo -i
cd .acme.sh
./acme.sh --upgrade --auto-upgrade
./acme.sh --renew-all --force
./acme.sh --renew -d doorbell.doordk.com --force
./acme.sh --showcsr --csr /root/.acme.sh/doorbell.doordk.com/doorbell.doordk.com.csr
mkdir -p /home/rock/certs/doorbell.doordk.com
exit
sudo chown -R -v www-data:www-data /home/rock/certs
sudo chown -R -v www-data /home/rock/certs
sudo chmod -R 775 ~/certs
sudo usermod -a -G www-data rock
cd /home/rock/certs/doorbell.doordk.com
openssl dhparam -out dh.pem 4096
sudo cp dh.pem /home/rock/certs/doorbell.doordk.com
rm dh.pem
sudo nano /root/.acme.sh/account.conf
dig whoami.cloudflare ch txt @1.1.1.1 +short | awk -F'"' '{print $2}'
ping -4 doorbell.doordk.com
tar xfz libserialport_bac.tar.gz
cd libserialport/
sudo make install
cd ~
rm libserialport_bac.tar.gz && sudo rm -R libserialport
SerialClass *serial=NULL;
serial=new SerialClass();
serial->set_port("/dev/ttyUSB2");
if( !serial->Start() ){
std::cout << "error findig port? " << std::endl;
letter = 'x';
}
Når programmet kører tast "a" og Enter for test.
Sender "AT\r" til modemet, og forventer at få svaret "OK".
time_out=3; Giver modemet 3seconds max, Har modemet ikke svaret inden kommer en fejl meddelse "Time OUT????".
ellers "Hurray: expected: OK"
std::string ttyUSB_port="";
std::string ttySIM_port="/dev/ttySIM02";
std::string ret=ExecCmd("ls -l /dev/ttySIM0*");
int pos = ret.find(ttySIM_port);
if( pos > 0 ){
// Copy substring after pos
std::string str = ret.substr(pos + 1);
boost::algorithm::trim(str);
std::vector strs;
boost::split(strs, str , boost::is_any_of("\n"));
if( strs.size() > 0 ){
//std::cout << strs.size() << " str: " << strs[0] << std::endl;
std::vector strs_1;
boost::split(strs_1, strs[0] , boost::is_any_of(" "));
if( strs_1.size() > 0 ){
ttyUSB_port=strs_1[strs_1.size()-1];
boost::algorithm::trim(ttyUSB_port);
ttyUSB_port="/dev/"+ttyUSB_port;
//std::cout << " ttyUSB_port: " << ttyUSB_port << std::endl;
}else{
std::cout << "No serial PORT found" << std::endl;
return 1;
}
}else{
std::cout << "No serial PORT found" << std::endl;
return 1;
}
}else{
std::cout << "No serial PORT found" << std::endl;
return 1;
}
tar xfz boost_1_84_0_bac.tar.gz
sudo apt install -y libssl-dev python-dev libxml2-dev libxslt-dev build-essential nlohmann-json3-dev
cd boost_1_84_0/
sudo ./b2 install threading=multi link=shared
cd ~
rm boost_1_84_0_bac.tar.gz && sudo rm -R boost_1_84_0
wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-arm64-static.tar.xz
tar xvf ffmpeg-git-arm64-static.tar.xz
ls
ls ffmpeg-git-20240629-arm64-static
./ffmpeg-git-20240629-arm64-static/ffmpeg
whereis ffmpeg
sudo rm /usr/bin/ffmpeg
whereis ffprobe
echo $PATH
sudo mv ffmpeg-git-20240629-arm64-static/ffmpeg ffmpeg-git-20240629-arm64-static/ffprobe /usr/local/bin/
whereis ffmpeg
whereis ffprobe
cd ~
sudo rm -R ffmpeg-git-20240629-arm64-static
rm ffmpeg-git-arm64-static.tar.xz
sudo apt install -y libssl-dev python-dev libxml2-dev libxslt-dev build-essential nlohmann-json3-dev
cd ~
git clone https://github.com/cisco/openh264.git
cd openh264
make -j$(nproc)
sudo make install
cd ~
sudo rm -R openh264
sudo apt update && sudo apt dist-upgrade
cd ~
wget https://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-20.2.1.tar.gz
tar xf asterisk-20.2.1.tar.gz
rm asterisk-20.2.1.tar.gz
cd asterisk-20.2.1Get PJLib
wget https://github.com/pjsip/pjproject/archive/refs/tags/2.14.tar.gz
tar xvf 2.14.tar.gz
rm 2.14.tar.gz
nano third-party/pjproject/patches/config_site.hlinie 81 change :
sudo contrib/scripts/install_prereq install
sudo contrib/scripts/get_mp3_source.sh
sudo ./configure
sudo make menuselect~
sudo make -j$(nproc)
sudo make install
sudo make samples
sudo make config
sudo make install-logrotate
sudo ldconfig
sudo systemctl start asterisk
sudo systemctl status asterisk
sudo systemctl enable asterisk
sudo systemctl restart asterisk
sudo systemctl stop asterisk
nano radius.sh
#!/bin/bash
sed -i 's";\[radius\]"\[radius\]"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf
chmod u+x radius.sh
sudo ./radius.sh
sudo systemctl restart asterisk
sudo systemctl start asterisk
sudo systemctl status asterisk
sudo truncate -s 0 /etc/logrotate.d/asterisk
sudo nano /etc/logrotate.d/asterisk
/var/log/asterisk/debug /var/log/asterisk/console /var/log/asterisk/full /var/log/asterisk/messages /var/log/asterisk/*log {
missingok
rotate 15
compress
delaycompress
notifempty
size 2M
create 640 asterisk asterisk
sharedscripts
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null
endscript
}
**********************************************wget https://downloads.digium.com/pub/telephony/codec_opus/asterisk-20.0/x86-64/codec_opus-20.0_current-x86_64.tar.gz
tar -xvzf codec_opus-20.0_current-x86_64.tar.gz
cd codec_opus-20.0_1.3.0-x86_64
sudo cp codec_opus.so /usr/lib/asterisk/modules/
sudo cp format_ogg_opus.so /usr/lib/asterisk/modules/
sudo cp codec_opus_config-en_US.xml /var/lib/asterisk/documentation/thirdparty
cd ~
rm codec_opus-20.0_current-x86_64.tar.gz
sudo rm -R codec_opus-20.0_1.3.0-x86_64
sudo addgroup asterisk
sudo adduser --system --home /var/lib/asterisk --no-create-home --ingroup asterisk --shell /bin/false asterisk
sudo adduser asterisk dialout && sudo adduser asterisk audio
sudo chown -R asterisk:asterisk /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk
sudo mkdir /etc/asterisk/keys
sudo chown asterisk:asterisk /etc/asterisk/keys
sudo cp /home/rock/certs/doorbell.doordk.com/ca.pem /etc/asterisk/keys
sudo cp /home/rock/certs/doorbell.doordk.com/fullchain.pem /etc/asterisk/keys
sudo cp /home/rock/certs/doorbell.doordk.com/key.pem /etc/asterisk/keys
sudo chown asterisk:asterisk /etc/asterisk/keys/fullchain.pem /etc/asterisk/keys/key.pem /etc/asterisk/keys/ca.pem
sudo chmod 600 /etc/asterisk/keys/fullchain.pem /etc/asterisk/keys/key.pem /etc/asterisk/keys/ca.pem
sudo cp /etc/default/asterisk /etc/default/asterisk.bak
sudo nano /etc/default/asteriskuncomment the following two lines:
AST_USER="asterisk" #8
AST_GROUP="asterisk" #9
************************************mkdir sound_asteriskfor codec in g722 g729 gsm sln16 ulaw wav; do
sudo nano /etc/asterisk/pjsip.conf
sudo nano /etc/asterisk/extensions.conf
sudo nano /etc/asterisk/modules.conf
sudo nano /etc/asterisk/rtp.conf
sudo nano /etc/asterisk/logger.conf
cd ~
tar xfz asterisk-20.2.1_bac.tar.gz
cd asterisk-20.2.1
sudo make install
sudo make samples
sudo make config
sudo make install-logrotate
sudo ldconfig
sudo ./radius.sh
sudo systemctl start asterisk
sudo systemctl status asterisk
sudo systemctl enable asterisk
sudo systemctl restart asterisk
sudo systemctl stop asteriskGoTo: if asterisk not can find radiusclient.
cd ~
rm asterisk-20.2.1_bac.tar.gz
cd ~
wget https://blohm.com/wp-content/themes/blohm-child/page-templates/rock/asterisk/files/asterisk_conf_bak.tar.gz
tar xfz asterisk_conf_bak.tar.gz
rm asterisk_conf_bak.tar.gz
sudo cp /etc/asterisk/asterisk.conf /etc/asterisk/asterisk.bak && \
sudo cp /etc/asterisk/cdr.conf /etc/asterisk/cdr.bak && \
sudo cp /etc/asterisk/cel.conf /etc/asterisk/cel.bak && \
sudo cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.bak && \
sudo cp /etc/asterisk/http.conf /etc/asterisk/http.bak && \
sudo cp /etc/asterisk/logger.conf /etc/asterisk/logger.bak && \
sudo cp /etc/asterisk/modules.conf /etc/asterisk/modules.bak && \
sudo cp /etc/asterisk/pjsip.conf /etc/asterisk/pjsip.bak && \
sudo cp /etc/asterisk/rtp.conf /etc/asterisk/rtp.bak
#Deploy asterisk .conf files.
sudo cp /home/rock/asterisk_conf/asterisk.conf /etc/asterisk/asterisk.conf && \
sudo cp /home/rock/asterisk_conf/cdr.conf /etc/asterisk/cdr.conf && \
sudo cp /home/rock/asterisk_conf/cel.conf /etc/asterisk/cel.conf && \
sudo cp /home/rock/asterisk_conf/extensions.conf /etc/asterisk/extensions.conf && \
sudo cp /home/rock/asterisk_conf/http.conf /etc/asterisk/http.conf && \
sudo cp /home/rock/asterisk_conf/logger.conf /etc/asterisk/logger.conf && \
sudo cp /home/rock/asterisk_conf/modules.conf /etc/asterisk/modules.conf && \
sudo cp /home/rock/asterisk_conf/pjsip.conf /etc/asterisk/pjsip.conf && \
sudo cp /home/rock/asterisk_conf/rtp.conf /etc/asterisk/rtp.conf && \
sudo cp /home/rock/asterisk_conf/asterisk /etc/logrotate.d/asterisk && \
sudo cp /home/rock/asterisk_conf/default/asterisk /etc/default/asterisk
#Save asterisk .conf files for later use.
sudo rm -R /home/rock/asterisk_conf && \
mkdir /home/rock/asterisk_conf && \
mkdir /home/rock/asterisk_conf/default && \
sudo cp /etc/asterisk/asterisk.conf /home/rock/asterisk_conf/asterisk.conf && \
sudo cp /etc/asterisk/cdr.conf /home/rock/asterisk_conf/cdr.conf && \
sudo cp /etc/asterisk/cel.conf /home/rock/asterisk_conf/cel.conf && \
sudo cp /etc/asterisk/extensions.conf /home/rock/asterisk_conf/extensions.conf && \
sudo cp /etc/asterisk/http.conf /home/rock/asterisk_conf/http.conf && \
sudo cp /etc/asterisk/logger.conf /home/rock/asterisk_conf/logger.conf && \
sudo cp /etc/asterisk/modules.conf /home/rock/asterisk_conf/modules.conf && \
sudo cp /etc/asterisk/pjsip.conf /home/rock/asterisk_conf/pjsip.conf && \
sudo cp /etc/asterisk/rtp.conf /home/rock/asterisk_conf/rtp.conf && \
sudo cp /etc/logrotate.d/asterisk /home/rock/asterisk_conf/asterisk && \
sudo cp /etc/default/asterisk /home/rock/asterisk_conf/default/asterisk
cd ~
tar -czf asterisk-20.2.1_bac.tar.gz asterisk-20.2.1
sudo systemctl enable asterisk
sudo systemctl start asterisk
sudo systemctl restart asterisk
sudo systemctl status asterisk
sudo systemctl stop asterisk
asterisk -V
sudo asterisk -rvvvvv
sudo systemctl status asterisk
sudo cat /var/log/asterisk/messages
sudo truncate -s 0 /var/log/asterisk/full*
sudo truncate -s 0 /var/log/asterisk/mess*
sudo truncate -s 0 /var/log/asterisk/security*
sudo journalctl -u asterisk.service --since today
sudo asterisk -rx "module reload res_pjsip.so"
sudo asterisk -rvvvvv
core show help
!clear
core set verbose 4
core set debug 4
pjsip set logger on
pjsip set logger off
sudo asterisk -rx "http show status"
sudo asterisk -rx "pjsip show endpoints"
sudo asterisk -rx "pjsip show contacts"
sudo asterisk -rx "core show channels"
sudo asterisk -rx "reload"
sudo asterisk -rx "channel request hangup PJSIP/6051-0000002b"
sudo asterisk -rx "hangup request all"
sudo asterisk -rx "pjsip show endpoints"
GPIO | Input | Output | Notes |
0 | pulled up | OK | outputs PWM signal at boot, must be LOW to enter flashing mode |
1 | TX pin | OK | debug output at boot |
2 | OK | OK | connected to on-board LED, must be left floating or LOW to enter flashing mode |
3 | OK | RX pin | HIGH at boot |
4 | OK | OK | |
5 | OK | OK | outputs PWM signal at boot, strapping pin |
6 | x | x | connected to the integrated SPI flash |
7 | x | x | connected to the integrated SPI flash |
8 | x | x | connected to the integrated SPI flash |
9 | x | x | connected to the integrated SPI flash |
10 | x | x | connected to the integrated SPI flash |
11 | x | x | connected to the integrated SPI flash |
12 | OK | OK | boot fails if pulled high, strapping pin |
13 | OK | OK | |
14 | OK | OK | outputs PWM signal at boot |
15 | OK | OK | outputs PWM signal at boot, strapping pin |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | input only | |
35 | OK | input only | |
36 | OK | input only | |
39 | OK | input only |
Sketch for 4x4.
#include "Arduino.h"
#include <string>
#include <Keypad.h>
const byte ROWS = 4; /* four rows */
const byte COLS = 4; /* four columns */
/* define the symbols on the buttons of the keypads */
char hexaKeys[ROWS][COLS] = {
{'0','1','2','3'},
{'4','5','6','7'},
{'8','9','A','B'},
{'C','D','E','F'}
};
byte rowPins[ROWS] = {13, 12, 14, 27}; /* connect to the row pinouts of the keypad */
byte colPins[COLS] = {26, 25, 33, 32}; /* connect to the column pinouts of the keypad */
/* initialize an instance of class NewKeypad */
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
String getValue(String data, char separator, int index)
{
int found = 0;
int strIndex[] = {0, -1};
int maxIndex = data.length()-1;
for(int i=0; i<=maxIndex && found<=index; i++){
if(data.charAt(i)==separator || i==maxIndex){
found++;
strIndex[0] = strIndex[1]+1;
strIndex[1] = (i == maxIndex) ? i+1 : i;
}
}
return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}
void setup(){
Serial.begin(115200);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
// Check if user sent a new string
if (Serial.available() > 0)
{
String user_string = Serial.readString();
String part01 = getValue(user_string,':',0);
Serial.println(part01);
part01.trim();
if(part01=="reboot"){
ESP.restart();
}
}
}
Link to keypad library for arduino
sudo apt update && sudo apt install -y --no-install-recommends libgl1 libglib2.0-0 libglew-dev
whereis linphonecsh
whereis linphonec
cd ~
mkdir -p ~/linphone-sdk/build/linphone-sdk
cd ~/linphone-sdk/build/linphone-sdk
wget https://blohm.com/wp-content/themes/blohm-child/page-templates/rock/linphone/files/linphone_desktop_bak.tar.gz
tar xfz linphone_desktop_bak.tar.gz
rm linphone_desktop_bak.tar.gz
cd ~
sudo ln -s /home/rock/linphone-sdk/build/linphone-sdk/desktop/bin/linphonec /usr/local/bin/linphonec
sudo ln -s /home/rock/linphone-sdk/build/linphone-sdk/desktop/bin/linphonecsh /usr/local/bin/linphonecsh
sudo mkdir /root/.local/share/linphone
cd ~
tar -czf linphone_desktop_bak.tar.gz desktop
sudo linphonec -v
sudo linphonec
ports sip 5062
soundcard list
soundcard show
soundcard use [number]
webcam list
webcam use [number]
codec list
codec enable [number]
codec disable [number]
vcodec list
vcodec enable [number]
vcodec disable [number]
register sip:username@doorbell.doordk.com sip:doorbell.doordk.com password
sudo cat /root/.linphonerc
sudo linphonec -c /root/.linphonerc#copy to home dir
sudo cat /root/.linphonerc > /home/rock/linphonerc.txt#Give rock rights
sudo chown rock /home/rock/linphonerc.txt
sudo linphonecsh init -a -C -c /root/.linphonerc -d 6 -l /home/rock/linphone_log.txt
sudo linphonecsh -h
sudo linphonecsh init -c ~/.linphonerc
sudo linphonecsh exit
ps aux | pgrep linphonec
wget https://blohm.com/wp-content/themes/blohm-child/page-templates/rock/linphone/files/linphone.cpp
sudo killall -9 linphonec
sudo apt install -y iptables
sudo iptables --flush && sudo iptables --table nat --flush
sudo iptables --delete-chain && sudo iptables --table nat --delete-chain
cd ~
nano reset_iptabeles.sh*********************************
#!/bin/bash
# IPv6
##
## set default policies to let everything in
ip6tables --policy INPUT ACCEPT;
ip6tables --policy OUTPUT ACCEPT;
ip6tables --policy FORWARD ACCEPT;
##
## start fresh
ip6tables -Z; # zero counters
ip6tables -F; # flush (delete) rules
ip6tables -X; # delete all extra chains
# IPv4
##
## set default policies to let everything in
iptables --policy INPUT ACCEPT;
iptables --policy OUTPUT ACCEPT;
iptables --policy FORWARD ACCEPT;
##
## start fresh
iptables -Z; # zero counters
iptables -F; # flush (delete) rules
iptables -X; # delete all extra chains
# delete old configuration, if any
# Flush all the rules in filter and nat tables
iptables --flush
iptables --table nat --flush
# delete all chains that are not in default filter and nat table, if any
iptables --delete-chain
iptables --table nat --delete-chain
chmod u+x reset_iptabeles.sh
sudo ./reset_iptabeles.sh*********************************
sudo apt install -y ufw
sudo ufw disablesudo ufw default allow outgoing && sudo ufw default deny incoming && \
sudo ufw show added
sudo ufw enable
sudo ufw status verbose# only when running
sudo ufw status
sudo ufw status numbered# Reset delete all rules
sudo ufw reset# systemctl commands
sudo systemctl stop ufw
sudo systemctl start ufw
sudo systemctl restart ufw
sudo systemctl status ufw# delete rule
sudo ufw status numbered
sudo ufw delete 2
cd ~
wget -O fail2ban.deb https://github.com/fail2ban/fail2ban/releases/download/1.1.0/fail2ban_1.1.0-1.upstream1_all.deb
sudo dpkg -i fail2ban.deb
sudo apt -f install
sudo systemctl edit --full fail2ban.service
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.0/8 192.168.1.0/24
backend = auto
[sshd]
enabled = true
filter = sshd
port = ssh
banaction = iptables-multiport
bantime = 7200
maxretry = 3
logpath = %(sshd_log)s
[asterisk]
enabled = true
port = 5060,5061
filter = asterisk
banaction = iptables-multiport
#action_ = %(default/action_)s[name=%(__name__)s-tcp, protocol="tcp"]
#%(default/action_)s[name=%(__name__)s-udp, protocol="udp"]
action = %(action_)s
logpath = /var/log/asterisk/messages
findtime = 10800
maxretry = 3
bantime = 604800
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo systemctl status fail2ban
sudo systemctl restart fail2ban
sudo systemctl stop fail2ban
cd ~
mkdir fail2ban_conf
sudo cp /etc/fail2ban/jail.local ~/fail2ban_conf
sudo cp /etc/fail2ban/filter.d/asterisk.conf ~/fail2ban_conf
tar -czf fail2ban_conf_bak.tar.gz fail2ban_conf
cd ~
wget https://blohm.com/wp-content/themes/blohm-child/page-templates/rock/fail2ban/files/fail2ban_conf_bak.tar.gz
tar xfz fail2ban_conf_bak.tar.gz
rm fail2ban_conf_bak.tar.gz
cd ~
sudo cp ~/fail2ban_conf/jail.local /etc/fail2ban/jail.local
sudo cp ~/fail2ban_conf/asterisk.conf /etc/fail2ban/filter.d/asterisk.conf
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
sudo nano /etc/fail2ban/jail.local
rm fail2ban.deb
fail2ban-client --test
sudo cat /var/log/fail2ban.log# clear the log
sudo truncate -s 0 /var/log/fail2ban.log# Fail2ban ships with a command-line tool named fail2ban-client
sudo fail2ban-client version
sudo fail2ban-client -h# check status
sudo fail2ban-client status# status of jail asterisk
sudo fail2ban-client status asterisk# status of jail sshd
sudo fail2ban-client status sshd# Ban an IP address
sudo fail2ban-client set asterisk banip 23.34.45.56# Unlocking an IP address
sudo fail2ban-client set asterisk unbanip 125.124.221.121# To activate a rule, use its name from the configuration file and the command:
sudo fail2ban-client add asterisk# Then start it.
sudo fail2ban-client start asterisk# Asterisk commands
sudo systemctl start asterisk
sudo systemctl restart asterisk
sudo systemctl stop asterisk
sudo systemctl status asterisk
sudo asterisk -rvvvvv
sudo truncate -s 0 /var/log/asterisk/mess*
Under menu'en SIM7600.
Se assignment.
sudo add-apt-repository ppa:ondrej/php
sudo apt update && sudo apt upgrade -y && sudo apt autoremove && sudo apt autoclean
sudo apt install -y unzip php8.4 php8.4-cli php8.4-fpm php-json php-imagick php-phpseclib php8.4-{common,imap,gmp,readline,xml,mysql,gd,zip,bz2,curl,mbstring,intl}
sudo systemctl start php8.4-fpmsudo add-apt-repository ppa:ondrej/php
sudo systemctl enable php8.4-fpm
sudo systemctl status php8.4-fpm
php -vInstall NGINX
sudo apt remove apache2
sudo apt install -y -f nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl reload nginxsudo systemctl status nginx
nginx -v
sudo chown -R www-data:www-data /var/www/html
sudo adduser rock www-data
sudo chmod -R 775 /var/www/html/#Remove
sudo apt-get autoremove nginx
sudo apt-get --purge remove nginx
sudo apt-get autoremove && sudo apt-get autoclean
sudo find / | grep nginx | sudo xargs rm -rf
sudo cp /etc/nginx/sites-enabled/default ~/default.bak
sudo truncate -s 0 /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/sites-enabled/default******************************************
# SSL configuration
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
server_name doorbell.doordk.com;
ssl_certificate /home/rock/certs/doorbell.doordk.com/fullchain.pem;
ssl_certificate_key /home/rock/certs/doorbell.doordk.com/key.pem;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm;
location / {
index index.html index.htm index.php;
try_files $uri $uri.html $uri/ @extensionless-php;
}
# Improve HTTPS performance with session resumption
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Enable server-side protection against BEAST attacks
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384";
# RFC-7919 recommended: https://wiki.mozilla.org/Security/Server_Side_TLS#ffdhe4096
ssl_dhparam /home/rock/certs/doorbell.doordk.com/dh.pem;
ssl_ecdh_curve secp521r1:secp384r1;
# Aditional Security Headers
# ref: https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
# ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
add_header X-Frame-Options DENY always;
# ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
add_header X-Content-Type-Options nosniff always;
# ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
add_header X-Xss-Protection "1; mode=block" always;
# Enable OCSP stapling
# ref. http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /home/rock/certs/doorbell.doordk.com/fullchain.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=300s; # Cloudflare
resolver_timeout 5s;
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
# Required for LE certificate enrollment using certbot
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /var/www/html;
}
location @extensionless-php {
if ( -f $document_root$uri.php ) {
rewrite ^ $uri.php last;
}
return 404;
}
}
******************************************sudo nano /etc/php/8.4/cli/php.ini
sudo nginx -t
sudo systemctl reload nginx
sudo systemctl restart nginx
sudo systemctl status nginx
nano /var/www/html/phpinfo.php******************************************
<?php
phpinfo();
******************************************sudo apt install -y mariadb-server mariadb-client libmariadbd-dev
sudo systemctl start mariadb
sudo systemctl status mariadb
sudo systemctl enable mariadb# Securing mariaDB with mysql_secure_installation command. password: mariaspacewalk
sudo mysql_secure_installationEnter current password for root (enter for none): #Enter
mariadb --versionTest user root.
sudo mysql -u root -p
cd ~
wget https://dlm.mariadb.com/4189321/Connectors/cpp/connector-cpp-1.1.6/mariadb-connector-cpp-1.1.6-ubuntu-focal-aarch64.tar.gz
tar -xvzf mariadb-connector-cpp-*.tar.gz
cd mariadb-connector-cpp-*/sudo rm -f -R /usr/include/mariadb && \
cd ~
sudo rm -R mariadb-connector-cpp*
cd ~
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
unzip phpMyAdmin-latest-all-languages.zip
rm phpMyAdmin-latest-all-languages.zip
sudo mv phpMyAdmin-5.2.2-all-languages /var/www/html/phpmyadmin
sudo chown -R www-data:www-data /var/www/html/phpmyadmin
sudo mysql -u root
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'mariaspacewalk';
FLUSH PRIVILEGES;
EXIT;
nano /var/www/html/mysql_test.php******************************************
<!DOCTYPE html>
<html>
<head><title>Test PHP Connection Script</title>
</head>
<body>
<h3>Welcome to the PHP Connect Test</h3>
<?php
$servername = "localhost";
$username = "phpmyadmin";
$password = "mariaspacewalk";
$dbname = "phpmyadmin";
// Create connection
$mysqli = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
echo "Connected successfully.<br>";
$sql = "SHOW DATABASES;";
// Process the query so that we will save the date of birth
$results = $mysqli->query($sql);
// Fetch Associative array
$row = $results->fetch_all(MYSQLI_ASSOC);
var_dump($row);
// Free result set
$results->free_result();
// Close the connection after using it
$mysqli->close();
?>
</body>
</html>
******************************************sudo nano /var/www/html/phpmyadmin/config.inc.php******************************************
$cfg['LoginCookieValidity'] = 3600*4;
******************************************sudo apt update && sudo apt upgrade
sudo apt -y install libssl-dev openssl libmysqlclient-dev libpq-dev apache2-dev libapr1 libapr1-dev libaprutil1-dev
wget https://pocoproject.org/releases/poco-1.13.3/poco-1.13.3-all.tar.gz
tar xfz poco-1.13.3-all.tar.gz
cd poco-1.13.3-all
./configure --static --shared --no-tests --no-samples
mkdir cmake-build && cd cmake-build
cmake -DBUILD_SHARED_LIBS=OFF ..
cmake --build . --clean-first --parallel $(nproc) --config Release
sudo cmake --build . --target install
cd /home/rock/poco-1.13.3-all/cmake-build
tar -czf ~/poco_lib_bak.tar.gz lib
cd /usr/local/include
sudo tar -czf ~/poco_include_bak.tar.gz Poco
sudo cp poco_lib_bak.tar.gz /usr/local
cd /usr/local
sudo tar xfz poco_lib_bak.tar.gz
sudo rm poco_lib_bak.tar.gz
sudo cp poco_include_bak.tar.gz /usr/local/include
cd /usr/local/include
sudo tar xfz poco_include_bak.tar.gz
sudo rm poco_include_bak.tar.gz
sudo apt remove curl && sudo apt purge curl
cd /usr/local/src && rm -rf curl* && cd ~
sudo apt install -y build-essential libcurl4 openssl libssl-dev libssh-dev zlib1g-dev libbrotli-dev brotli libkrb5-dev libldap2-dev librtmp-dev libpsl-dev libnghttp2-dev
wget https://curl.se/download/curl-8.11.1.tar.gz
tar -xzvf curl-8.11.1.tar.gz
rm curl-8.11.1.tar.gz
cd curl-8.11.1
./configure --with-ssl --with-zlib --with-gssapi --enable-ldap --enable-ldaps --with-libssh --with-nghttp2
make -j$(nproc)
sudo make install && sudo ldconfig
cd ~
ls /usr/local/lib/libcurl*
sudo rm /lib/aarch64-linux-gnu/libcurl.so.4
sudo ldd $(which curl) | grep libcurl
curl -V
sudo ldd $(which curl) | grep libcurl
#!/bin/bash
rm /lib/aarch64-linux-gnu/libcurl.so.4
ln -s /usr/local/lib/libcurl.so.4.8.0 /lib/aarch64-linux-gnu/libcurl.so.4
sh /home/rock/curl_link.sh
lsb_release -asearce -> Windows Store
explorer.exe .Open file explorer.Type..
\\wsl$ .Copy the image to Linux
wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh$
chmod +x pishrink.sh$
sudo ./pishrink.sh disk.img shrink.imgUse Rufus to burn image.
Icons, billeder brugt til illustration.