#!/bin/sh cmdWhich="/usr/bin/which" cmdMknode="$($cmdWhich mknode 2>/dev/null)" if [ -z "$cmdMknode" ];then cmdMknode="$($cmdWhich mknod)" fi #|-------------------------------| #| "PARAMS" | #| pUser | pGroup | pName | pDir | #|-------------------------------| pServiceInfo="Bakuba Firewall Server By DarkWeb.fr (firewall)" pServiceDoc="man:bakuba firewall(8)" pUser="${pUser:-root}" pGroup="${pGroup:-root}" pName="${pName:-darkwall}" pCacheDir="${pCacheDir:-/var/cache/$pName}" pChrootDir="${pChrootDir:-/srv/darkwall}" # program at : /etc/darksrv/firewall/bin/standalone pFolder="/etc/darkwall" cmdDaemon="LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/ssl/lib:/usr/local/lib $($cmdWhich sh) $pFolder/bin/start" pIdFile="/run/darkwall-standalone.pid" #cmdDaemonFull="$cmdDaemon" pDebugFile="/etc/darkwall/data/debug" #$($cmdWhich sh root) --userspec=$pUser:$pGroup $pChrootDir /bin/sh pParamStart=" " pParamStartDebug="$pParamStart " pStartDebug="$($cmdWhich sh) -c 'echo \\\"in gdb : run $pParamStartDebug\\\";LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH:/usr/local/ssl/lib:/usr/local/lib\" gdb $($cmdWhich sh) $pFolder/bin/start $pParamStart'" pStart="$($cmdWhich sh) -c \"LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/ssl/lib:/usr/local/lib $($cmdWhich sh) $pFolder/bin/start $pParamStart\"" #pStartDebug="$($cmdWhich sh) -c 'echo \\\"in gdb : run $pParamStartDebug\\\";gdb $cmdDaemon $pParamStart'" #pStart="$($cmdWhich sh) -c \"$cmdDaemon $pParamStart\"" pParamStop="" pSystemCtlWants="network-pre.service" pSystemCtlBefore="network-pre.service" pSystemCtlAfter="local-fs.target" pSystemCtlRequires="local-fs.target" pLibFolders="" pLibFolders="$pLibFolders /lib/modules/$(uname -r)" if [ -d "/usr/lib/x86_64-linux-gnu/xtables" ];then pLibFolders="$pLibFolders /usr/lib/x86_64-linux-gnu/xtables" fi if [ -d "/lib/xtables" ];then pLibFolders="$pLibFolders /lib/xtables" fi if [ -d "/usr/lib64/xtables" ];then pLibFolders="$pLibFolders /usr/lib64/xtables" fi if [ -d "/usr/lib/aarch64-linux-gnu/xtables" ];then pLibFolders="$pLibFolders /usr/lib/aarch64-linux-gnu/xtables" fi pLibFolders="$pLibFolders /usr/share/locale" pLibFiles="$($cmdWhich which)" pLibFiles="$pLibFiles $($cmdWhich wget) $($cmdWhich mount) $($cmdWhich umount) $($cmdWhich mv) $($cmdWhich chroot) $($cmdWhich su)" pLibFiles="$pLibFiles $($cmdWhich ip) $($cmdWhich timeout) $($cmdWhich od) $($cmdWhich tee) $($cmdWhich dmidecode)" pLibFiles="$pLibFiles $($cmdWhich expr) $($cmdWhich fold) $($cmdWhich bc) $($cmdWhich ps) $($cmdWhich ping) $($cmdWhich ping6)" pLibFiles="$pLibFiles $($cmdWhich iptables) $($cmdWhich ip6tables) $($cmdWhich brctl) $($cmdWhich modprobe) $($cmdWhich lsmod)" pLibFiles="$pLibFiles $($cmdWhich openssl) $($cmdWhich uptime) $($cmdWhich chgrp) $($cmdWhich awk) $($cmdWhich printf) $($cmdWhich find)" pLibFiles="$pLibFiles $($cmdWhich xargs) $($cmdWhich seq) $($cmdWhich mktemp) $($cmdWhich mkfifo) $cmdMknode $($cmdWhich kill)" pLibFiles="$pLibFiles $($cmdWhich tr) $($cmdWhich cp) $($cmdWhich sed) $($cmdWhich grep) $($cmdWhich md5sum) $($cmdWhich wc) $($cmdWhich ss)" pLibFiles="$pLibFiles $($cmdWhich sort) $($cmdWhich uniq) $( $cmdWhich upnpc 2>/dev/null ) $( $cmdWhich dhclient 2>/dev/null ) $( $cmdWhich ifup 2>/dev/null ) $( $cmdWhich ifdown 2>/dev/null )" pLibFiles="$pLibFiles $($cmdWhich head) $($cmdWhich which) $($cmdWhich base64) $($cmdWhich echo) $($cmdWhich tail) $($cmdWhich shuf) $($cmdWhich sleep) " pLibFiles="$pLibFiles $($cmdWhich runparts) $($cmdWhich host) $($cmdWhich ebtables) $($cmdWhich nft) $($cmdWhich ssh)" pLibFiles="$pLibFiles $($cmdWhich ntpdate-debian) $($cmdWhich ntpdate) $($cmdWhich ntpdig)" pLibFiles="$pLibFiles /sbin/dhclient-script $($cmdWhich dhclient-script) $($cmdWhich run-parts)" pLibFiles="$pLibFiles /bin/sh /usr/bin/sh /bin/dash /bin/bash $cmdWhich " pLibFiles="$pLibFiles $($cmdWhich cksum) " #pLibFiles="$pLibFiles /etc/resolv.conf /etc/passwd /etc/group" pLibFiles="$pLibFiles /etc/localtime /dev/urandom /dev/random /dev/null /dev/kmsg" #pLibFiles="$pLibFiles /etc/localtime /dev" if [ -f "/lib/lsb/init-functions" ];then pLibFiles="$pLibFiles /lib/lsb/init-functions" fi pMountFolders="/proc /sys /etc/iproute2 /etc/ssl /tmp /etc/network /etc/NetworkManager /etc/dhcp" pMountFolders="$pMountFolders /etc/resolv.conf /etc/passwd /etc/group /etc/login.defs /etc/shadow /etc/rpc /etc/gshadow /etc/nsswitch.conf" pMountFolders="$pMountFolders /etc/srvconf /etc/darksh /etc/darkwall /etc/darkcontainer /etc/bakuba /ram /var/node /var/log/node /srv" # pDirStruct : directory squelton of programme pDirStruct="" pDirStruct="$pDirStruct /var/log/firewall /var/run /var/lib/dhcp" #if [ -d "/usr/lib/x86_64-linux-gnu" ];then # usrLib="/usr/lib/x86_64-linux-gnu" #elif [ -d "/usr/lib/i386-linux-gnu" ];then # usrLib="/usr/lib/i386-linux-gnu" #else # usrLib="" #fi #if [ -d "/lib/x86_64-linux-gnu" ];then # lib="/lib/x86_64-linux-gnu" #elif [ -d "/lib/i386-linux-gnu" ];then # lib="/lib/i386-linux-gnu" #else # lib="" #fi #if [ -z "$lib" ];then # shDebugHidden 0 ""$log" lib empty : $lib" #else # shDebugHidden 1 ""$log" check gnutls in /usr/local/lib" # for gnutlsFile in libgnutls-dane.la libgnutls-dane.so libgnutls-dane.so.0 libgnutls-dane.so.0.4.1 libgnutls.la libgnutls.so libgnutls.so.30 libgnutls.so.30.14.8 libgnutlsxx.la libgnutlsxx.so libgnutlsxx.so.28 libgnutlsxx.so.28.1.0;do # if [ -f "/usr/local/lib/$gnutlsFile" ];then # pLibFiles="$pLibFiles /usr/local/lib/$gnutlsFile" # fi # done ## shDebugHidden 1 ""$log" $lib libnss_dns.so.2 libnss_files.so.2" # pLibFiles="$pLibFiles $lib/libnss_dns.so.2 $lib/libnss_files.so.2" # shDebugHidden 1 ""$log" $lib libnss_files.so.2" # pLibFiles="$pLibFiles $lib/libnss_files.so.2" # if [ -f "$lib/libz.so.1" ];then # pLibFiles="$pLibFiles $lib/libz.so.1" # pLibFiles="$pLibFiles /usr/local/lib/libz.a" # pLibFiles="$pLibFiles /usr/local/lib/libz.so" # pLibFiles="$pLibFiles /usr/local/lib/libz.so.1.2.11" # pLibFiles="$pLibFiles /usr/local/lib/pkgconfig/zlib.pc" # fi #fi #user:group:rwx,rwx,rwx:file #pDirUserGroupRight="$pDirUserGroupRight user:group:rwx,rwx,rwx:file" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rw,,:/tmp" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rx,,:$racine/dns/bind/default" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rx,,:$racine/dns/bind/servers/common" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rx,,:$racine/dns/bind/zones" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rx,,:/conf/bind" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rx,,:/etc/bind" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rw,r,r:/etc/bind/ddns.key" #pDirUserGroupRight="$pDirUserGroupRight $pUser:$pGroup:rwx,,:/var/cache/bind" firewallTmpDir="/tmp/firewall" if [ ! -d "$firewallTmpDir" ];then mkdir "$firewallTmpDir" >> /dev/null 2>&1;fi firewallDropDir="$firewallTmpDir/drop" if [ ! -d "$firewallDropDir" ];then mkdir "$firewallDropDir" >> /dev/null 2>&1;fi firewallDrop6Dir="$firewallTmpDir/drop6" if [ ! -d "$firewallDrop6Dir" ];then mkdir "$firewallDrop6Dir" >> /dev/null 2>&1;fi firewallPipe="${firewallPipe:-/ram/bkb/pipeDarkWall}" firewallDataDir="$rootDarkWall/data" ifacesConf="$firewallDataDir/ifaces" rulesLogWriterInput="logWriterInput" rulesLogWriterForward="logWriterForward" rulesLogWriterOutput="logWriterOutput"