SMF - Just Installed!
Цитироватьecho -e # ключ -e в комманде echo включает отображение "backslash escapes"; например \n - переход на следующую строку, \t -табуляция
echo -n # ключ -n в команде echo сигнализирует, что после вывода информации не нужно переходить на следующую строку.
echo -en # в нашем случае поможет раскрасить вывод текста.
Цитироватьtput sgr0 Возврат цвета в "нормальное" состояние
\033[0m все атрибуты по умолчанию
\033[1m жирный шрифт (интенсивный цвет)
\033[2m полу яркий цвет (тёмно-серый, независимо от цвета)
\033[4m подчеркивание
\033[5m мигающий
\033[7m реверсия (знаки приобретают цвет фона, а фон -- цвет знаков)
\033[22m установить нормальную интенсивность
\033[24m отменить подчеркивание
\033[25m отменить мигание
\033[27m отменить реверсию
\033[30 чёрный цвет знаков
\033[31 красный цвет знаков
\033[32 зелёный цвет знаков
\033[33 желтый цвет знаков
\033[34 синий цвет знаков
\033[35 фиолетовый цвет знаков
\033[36 цвет морской волны знаков
\033[37 серый цвет знаков
\033[40 чёрный цвет фона
\033[41 красный цвет фона
\033[42 зелёный цвет фона
\033[43 желтый цвет фона
\033[44 синий цвет фона
\033[45 фиолетовый цвет фона
\033[46 цвет морской волны фона
\033[47 серый цвет фона
Цитироватьblack 30 40 \033[30m \033[40m
red 31 41 \033[31m \033[41m
green 32 42 \033[32m \033[42m
yellow 33 43 \033[33m \033[43m
blue 34 44 \033[34m \033[44m
magenta 35 45 \033[35m \033[45m
cyan 36 46 \033[36m \033[46m
grey 37 47 \033[37m \033[47m
#!/bin/sh
#
# скрипт выводит на экран сообщение с использованием цвета
#
echo -en "\033[37;1;41m Внимание \033[0m"
#!/bin/sh
#
# скрипт запускает копию командного интерпретатора sh
# с цветным приглашением
#
export PS1="\[\033[1;30m\][\[\033[0m\]\t\[\033[1;30m\];\
\[\033[0m\]\W\[\033[1;30m\]]\[\033[36;1m\]|\[\033[0m\] "
echo "Now runing a new copy of shell width color prompt"
echo -en "use \033[1;36mexit\033[0m command or"
echo -e "\033[1;36m^D\033[0m to return back"
sh
#
RED='\033[0;31m' # ${RED}
GREEN='\033[0;32m' # ${GREEN}
#!/bin/sh
# echo подсветка
# echo color
# Скрипт выводит на экран список меню
clear # Очистка экрана
#Памятка, Таблица цветов и фонов
#Цвет код код фона
#black 30 40 \033[30m \033[40m
#red 31 41 \033[31m \033[41m
#green 32 42 \033[32m \033[42m
#yellow 33 43 \033[33m \033[43m
#blue 34 44 \033[34m \033[44m
#magenta 35 45 \033[35m \033[45m
#cyan 36 46 \033[36m \033[46m
#white 37 47 \033[37m \033[47m
# Дополнительные свойства для текта:
BOLD='\033[1m' # ${BOLD} # жирный шрифт (интенсивный цвет)
DBOLD='\033[2m' # ${DBOLD} # полу яркий цвет (тёмно-серый, независимо от цвета)
NBOLD='\033[22m' # ${NBOLD} # установить нормальную интенсивность
UNDERLINE='\033[4m' # ${UNDERLINE} # подчеркивание
NUNDERLINE='\033[4m' # ${NUNDERLINE} # отменить подчеркивание
BLINK='\033[5m' # ${BLINK} # мигающий
NBLINK='\033[5m' # ${NBLINK} # отменить мигание
INVERSE='\033[7m' # ${INVERSE} # реверсия (знаки приобретают цвет фона, а фон -- цвет знаков)
NINVERSE='\033[7m' # ${NINVERSE} # отменить реверсию
BREAK='\033[m' # ${BREAK} # все атрибуты по умолчанию
NORMAL='\033[0m' # ${NORMAL} # все атрибуты по умолчанию
# Цвет текста:
BLACK='\033[0;30m' # ${BLACK} # чёрный цвет знаков
RED='\033[0;31m' # ${RED} # красный цвет знаков
GREEN='\033[0;32m' # ${GREEN} # зелёный цвет знаков
YELLOW='\033[0;33m' # ${YELLOW} # желтый цвет знаков
BLUE='\033[0;34m' # ${BLUE} # синий цвет знаков
MAGENTA='\033[0;35m' # ${MAGENTA} # фиолетовый цвет знаков
CYAN='\033[0;36m' # ${CYAN} # цвет морской волны знаков
GRAY='\033[0;37m' # ${GRAY} # серый цвет знаков
# Цветом текста (жирным) (bold) :
DEF='\033[0;39m' # ${DEF}
DGRAY='\033[1;30m' # ${DGRAY}
LRED='\033[1;31m' # ${LRED}
LGREEN='\033[1;32m' # ${LGREEN}
LYELLOW='\033[1;33m' # ${LYELLOW}
LBLUE='\033[1;34m' # ${LBLUE}
LMAGENTA='\033[1;35m' # ${LMAGENTA}
LCYAN='\033[1;36m' # ${LCYAN}
WHITE='\033[1;37m' # ${WHITE}
# Цвет фона
BGBLACK='\033[40m' # ${BGBLACK}
BGRED='\033[41m' # ${BGRED}
BGGREEN='\033[42m' # ${BGGREEN}
BGBROWN='\033[43m' # ${BGBROWN}
BGBLUE='\033[44m' # ${BGBLUE}
BGMAGENTA='\033[45m' # ${BGMAGENTA}
BGCYAN='\033[46m' # ${BGCYAN}
BGGRAY='\033[47m' # ${BGGRAY}
BGDEF='\033[49m' # ${BGDEF}
tput sgr0 # Возврат цвета в "нормальное" состояние
#Начало меню
echo ""
echo -n " "
echo -e "${BOLD}${BGMAGENTA}${LGREEN} Меню DNS323 ${NORMAL}"
echo ""
echo -en "${LYELLOW} 1 ${LGREEN} Комманды для удобной работы в telnet ${GRAY}(Выполнить?)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 2 ${LGREEN} Пути к папкам & Изменение прав доступа ${GRAY}(Комманды)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 3 ${LGREEN} Transmission (${GREEN}Start${NORMAL}, ${LRED}Stop${NORMAL}, ${CYAN}Upgrade${NORMAL}) ${GRAY}(Меню)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 4 ${LGREEN} Копирование (cp & rsync) ${GRAY}(Комманды)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 5 ${LGREEN} Создание ссылки на файл или папку ${GRAY}(Комманды)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 6 ${LGREEN} Установка из fun-plug & IPKG ${GRAY}(Комманды)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 7 ${LGREEN} Показать Трафик (${LYELLOW} n${LGREEN}load) ${GRAY}(Выполнить?)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 8 ${LGREEN} Диспетчер задач (${LYELLOW} h${LGREEN}top) ${GRAY}(Выполнить?)${NORMAL}\n"
echo ""
echo -en "${LYELLOW} 9 ${LGREEN} Midnight Commander (${LYELLOW} m${LGREEN}c) ${GRAY}(Выполнить?)${NORMAL}\n"
echo ""
echo -en "${LMAGENTA} q ${LGREEN} Выход ${NORMAL}\n"
echo ""
echo "(Введите пожалуйта номер пункта, чтобы выполнить комманды этого пункта, любой другой ввод, Выход)"
echo ""
tput sgr0
#!/bin/bash
DATE=$(date +%Y-%m-%d-t-%H-%M-%S)
if [[ $1 = --help ]]; then
echo USAGE:
echo './zip.sh /<fromdir> <to-subdir> - subdir will be not zipped'
echo './zip.sh /<fromdir> /<to-dir> - zipping <fromdir> to /<full_path_to_dir>'
else
arch_fld=$1
#if [$arch_fld = '--help']; then
if ! [ -z $1 ] && ! [ -z $2 ] ; then
for folder in $arch_fld/*
do
if [[ $2 = /* ]]; then
if ! `file $folder | grep -i -P $2'|'$RECYCLE.BIN'|System' > /dev/null 2>&1`; then
save_path=${folder//$arch_fld/$2"/"$DATE}
echo -'*Achiving folder - ' $folder ' to '$save_path'.zip *-'
7z a -tzip -ssw -mx7 "$save_path.zip" "$folder"
fi
else
if ! `file $folder | grep -i -P $2'|'$RECYCLE.BIN'|System' > /dev/null 2>&1`; then
save_path=${folder//$arch_fld/$arch_fld"/"$2"/"$DATE}
echo -'*Achiving folder - ' $folder ' to '$save_path'.zip *-'
7z a -tzip -ssw -mx7 "$save_path.zip" "$folder"
fi
fi
done
else
echo Not enouth parametrs! Try --help
fi
Match Group administrators
AuthorizedKeysFile .ssh\administrators_authorized_keys
ssh-keygen
rsync /root/.ssh/id_rsa.pub sshuser@winserver:/cygdrive/%USERPROFILE%/.ssh/authorized_keys
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Add-WindowsCapability –Online
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Add-WindowsCapability -Name OpenSSH.Server~~~~0.0.1.0 -Online -Source c:\FOD
Invoke-WebRequest https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.9.1.0p1-Beta/OpenSSH-Win64-v8.9.1.0.msi -OutFile $HOME\Downloads\OpenSSH-Win64-v8.9.1.0.msi -UseBasicParsing
msiexec /i c:\users\root\downloads\OpenSSH-Win64-v8.9.1.0.msi
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
netstat -na| find ":22"
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
start-process notepad C:\Programdata\ssh\sshd_config
DenyUsers winitpro\admin@192.168.1.10
DenyUsers corp\*
AllowGroups winitpro\sshadmins
AllowGroups sshadmins
DenyGroups Administrators
ЦитироватьPubkeyAuthentication yesВы можете изменить стандартный SSH порт TCP/22, на котором принимает подключения OpenSSH в конфигурационном файле sshd_config в директиве Port.
PasswordAuthentication yes
restart-service sshd
ЦитироватьGSSAPIAuthentication yesПосле этого можно прозрачно подключать к SSH сервер с Windows компьютера в домене из сессии доменного подключается. В этом случае пароль пользователя не указывается и выполняется SSO аутентификация через Kerberos:
Цитироватьadmin@win10tst C:\Users\admin>В командной строке вы можете выполнять различные команды, запускать скрипты и программы.
powershell.exe
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String –Force
/system clock set time-zone-autodetect=no time-zone-name=Europe/Moscow
/system ntp client set enabled=yes servers=0.ru.pool.ntp.org,1.ru.pool.ntp.org
/interface bridge add name=IKE2-loopback
/ip address add address=10.0.100.1/24 interface=IKE2-loopback network=10.0.100.0
/ip pool add name="IKE2" ranges=10.0.100.100-10.0.100.200
/certificate
add name=CA.cloud-life.site country=RU state=MO \
locality="Moscow region" organization=Cloud-life \
common-name=CA.cloud-life.site subject-alt-name=IP:66.66.66.66 \
key-size=2048 days-valid=3650 trusted=yes \
key-usage=digital-signature,key-encipherment,data-encipherment,key-cert-sign,crl-sign
sign CA.cloud-life.site
add name=ikev2@cloud-life.site country=RU state=MO locality="Moscow region" \
organization=Cloud-life common-name=ikev2@cloud-life.site subject-alt-name=DNS:cloud-life.site \
key-size=2048 days-valid=3560 trusted=yes key-usage=tls-server
sign ikev2@cloud-life.site ca=CA.cloud-life.site
add name=~clienttemplate@cloud-life.site country=RU state=MO locality="Moscow region" \
organization=Cloud-life common-name=~client-template@cloud-life.site \
subject-alt-name=email:~clienttemplate@cloud-life.site key-size=2048 days-valid=3650 \
trusted=yes key-usage=tls-client
add copy-from=~clienttemplate@cloud-life.site name=s2s@cloud-life.site \
common-name=s2s@cloud-life.site subject-alt-name=email:s2s@cloud-life.site
sign s2s@cloud-life.site ca=CA.cloud-life.site
add copy-from=~clienttemplate@cloud-life.site name=client-1@cloud-life.site \
common-name=client-1@cloud-life.site subject-alt-name=email:client-1@cloud-life.site
sign client-1@cloud-life.site ca=CA.cloud-life.site
add copy-from=~clienttemplate@cloud-life.site name=client-2@cloud-life.site \
common-name=client-2@cloud-life.site subject-alt-name=email:client-2@cloud-life.site
sign client-2@cloud-life.site ca=CA.cloud-life.site
/certificate export-certificate CA.cloud-life.site type=pem
/certificate export-certificate ikev2@cloud-life.site type=pem export-passphrase=passwordforexport
/certificate export-certificate s2s@cloud-life.site type=pem export-passphrase=passwordforexport
/certificate export-certificate client-1@cloud-life.site type=pkcs12 export-passphrase=passwordforexport
/certificate export-certificate client-2@cloud-life.site type=pkcs12 export-passphrase=passwordforexport
/ip firewall filter
add action=accept chain=input comment="IKE2 - Accept UDP 500,4500 IPSec" \
dst-address=66.66.66.66 dst-port=500,4500 protocol=udp place-before=0
add action=accept chain=input comment="IKE2 - Accept IPSec-esp" dst-address=\
66.66.66.66 protocol=ipsec-esp place-before=0
add action=accept chain=input comment="Accept - In Ipsec" ipsec-policy=\
in,ipsec src-address=10.0.100.0/24 place-before=0
add action=accept chain=forward comment=\
"Accept - All Traffic from VPN to ANY" dst-address=192.168.0.0/22 \
ipsec-policy=in,ipsec src-address=10.0.100.0/24 place-before=0
add action=accept chain=forward comment=\
"Accept - All Traffic from VPN to ANY" dst-address=0.0.0.0/0 \
ipsec-policy=in,ipsec src-address=10.0.100.0/24 place-before=0
/ip firewall mangle
add action=change-mss chain=forward dst-address=10.0.100.0/24 ipsec-policy=\
in,ipsec new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=\
!0-1360 place-before=0
/ip firewall nat
add action=masquerade chain=srcnat comment="ike2 masq non ipsec" \
ipsec-policy=out,none out-interface-list="WAN interfaces" place-before=0
add action=masquerade chain=srcnat comment="ike2 masq non ipsec" \
ipsec-policy=out,none out-interface-list="WAN interfaces" src-address=\
10.0.100.0/24 place-before=0
add action=src-nat chain=srcnat comment="ike2 masq non ipsec" ipsec-policy=\
out,none out-interface=WAN src-address=10.0.100.0/24 to-addresses=\
66.66.66.66 place-before=0
/ip ipsec policy group
add name="clients"
add name="s2s
/ip ipsec profile
add dh-group=modp2048,modp1536,modp1024 enc-algorithm=aes-256,aes-192,aes-128 \
hash-algorithm=sha256 name="cloud-life.site"
/ip ipsec peer
add exchange-mode=ike2 local-address=66.66.66.66 name=\
"peer VPN" passive=yes profile="cloud-life.site"
/ip ipsec proposal
add auth-algorithms=sha512,sha256,sha1 enc-algorithms="aes-256-cbc,aes-256-ctr\
,aes-256-gcm,aes-192-ctr,aes-192-gcm,aes-128-cbc,aes-128-ctr,aes-128-gcm" \
lifetime=8h name="cloud-life.site" pfs-group=none
/ip ipsec mode-config
add address-pool=IKE2 address-prefix-length=32 name=clients.cloud-life.site split-include=\
0.0.0.0/0 static-dns=10.0.100.1 system-dns=no
add address=10.0.100.2 name=s2s.cloud-life.site split-include=10.0.100.1 static-dns=10.0.100.1 \
system-dns=no
/ip ipsec identity
add auth-method=digital-signature certificate=ikev2@cloud-life.site \
generate-policy=port-strict match-by=certificate mode-config=clients.cloud-life.site \
peer="peer VPN" policy-template-group="clients" \
remote-certificate=client-1@cloud-life.site remote-id=user-fqdn:client-1@cloud-life.site
add auth-method=digital-signature certificate=ikev2@cloud-life.site \
generate-policy=port-strict match-by=certificate mode-config=clients.cloud-life.site \
peer="peer VPN" policy-template-group="clients" \
remote-certificate=client-2@cloud-life.site remote-id=user-fqdn:client-2@cloud-life.site
add auth-method=digital-signature certificate=ikev2@cloud-life.site \
generate-policy=port-strict match-by=certificate mode-config=s2s.cloud-life.site \
peer="peer VPN" policy-template-group="s2s" \
remote-certificate=s2s@cloud-life.site remote-id=user-fqdn:s2s@cloud-life.site
/ip ipsec policy
add dst-address=10.0.100.2/32 group=s2s proposal=cloud-life.site src-address=10.0.100.1/32 template=yes
add dst-address=10.0.100.0/24 group=clients proposal=cloud-life.site src-address=0.0.0.0/0 template=yes
/interface gre add local-address=10.0.100.1 name="IKEv2-GRE-Tunnel" remote-address=10.0.100.2
/ip route add distance=1 dst-address=10.10.10.0/24 gateway="IKEv2-GRE-Tunnel"
# Проверка
Get-VMHost | SELECT -Property EnableEnhancedSessionMode
# Включение
Set-VMHost -EnableEnhancedSessionMode $True -Passthru
# Просмотр включенных пакетов интеграций у ВМ с именем Win10
Get-VMIntegrationService -VMName 'Win10'
# Включение гостевого пакета интеграции
Enable-VMIntegrationService -VMName "Win10" -Name "Guest Service Interface"
# Включение на всех виртуальных машинах
Get-VM | Enable-VMIntegrationService -Name "Guest Service Interface"
/system ntp client set enabled=yes servers=0.ru.pool.ntp.org,1.ru.pool.ntp.org
/certificate add name=tmpl-cloud-CA country="RU" state="MO" locality="ODN" organization="Cloud-life" unit="IT" common-name="cloud-CA" key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign
/certificate sign tmpl-cloud-CA ca-crl-host=127.0.0.1 name="cloud-CA"
/certificate add name=OVPN-SRV country="RU" state="MO" locality="ODN" organization="Cloud-life" unit="IT" common-name="srv-OVPN" key-size=4096 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign OVPN ca="cloud-CA" name="srv-OVPN"
/certificate add name=templ-CL country="RU" state="MO" locality="ODN" organization="Cloud-life" unit="IT" common-name="client-vpn-templ" key-size=4096 days-valid=365 key-usage=tls-client
/certificate add name=user1 copy-from="templ-CL" common-name="test-client-ovpn-1"
/certificate sign user1 ca="cloud-CA" name="test-client-ovpn-1"
certificate issued-revoke %cert-name%
/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.254
/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool
dns=192.168.100.1 use-ipv6=no
/ppp aaa set accounting=yes
/ppp secret add name=test-user-1 password=P@ssword1 service=ovpn profile=OVPN_server
/ppp secret add name=test-user-2 password=P@ssword2 service=ovpn profile=OVPN_server
/interface ovpn-server server set auth=sha1 cipher=blowfish128 default-profile=OVPN_server mode=ip netmask=24 require-client-certificate=yes certificate=srv-OVPN enabled=yes
/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.254
/interface bridge add name=OVPN_bridge arp=enabled
/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool bridge=OVPN_bridge
/ppp aaa set accounting=yes
/ppp secret add name=test-user-1 password=P@ssword1 service=ovpn profile=OVPN_server
/ppp secret add name=test-user-2 password=P@ssword2 service=ovpn profile=OVPN_server
/interface ovpn-server server set auth=sha1 cipher=blowfish128 default-profile=OVPN_server mode=ethernet netmask=24 require-client-certificate=yes certificate=srv-OVPN enabled=yes
/certificate export-certificate cloud-CA export-passphrase=""
/certificate export-certificate test-client-ovpn-1 export-passphrase=private-key-password1
/certificate export-certificate test-client-ovpn-2 export-passphrase=private-key-password2
client
dev tun
dev tap
dev-node MyTap
proto tcp
remote ovpn.my.domain 1194
resolv-retry infinite
nobind
persist-key
persist-tun
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
ca cert_export_test-CA.crt
cert cert_export_test-client-ovpn-1.crt
key cert_export_test-client-ovpn-1.key
--auth-user-pass user-pwd.txt
remote-cert-tls server
;tls-auth ta.key 1
;cipher x
;comp-lzo
verb 3
;mute 20
route 192.168.88.0 255.255.255.0
route-delay 5
redirect-gateway def1
/certificate import file-name=cert_export_test-CA.crt passphrase=""
/certificate import file-name=cert_export_test-client-ovpn-1.crt passphrase=""
/certificate import file-name=cert_export_test-client-ovpn-1.key passphrase=private-key-password1
/interface ovpn-client add name=OVPN_client connect-to={ovpn.my.domain|xxx.xxx.xxx.xxx} port=1194 mode={ip|ethernet} user=test-user-1 password=P@ssword1 profile=default certificate=cert_32 auth=sha1 cipher=blowfish128 add-default-route={no|yes} disabled=no
apt update
apt upgrade
apt install chrony
timedatectl set-timezone Europe/Moscow
systemctl enable chrony
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save
apt install mariadb-server
systemctl enable mariadb
systemctl start mariadb
mysqladmin -u root password
mysql -uroot -p
CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY 'nextcloud';
\q
export PHP_VER=8.1
apt search --names-only '^php[.0-9]{3}$'
apt install php php-fpm php-common php-zip php-xml php-intl php-gd php-mysql php-mbstring php-curl php-imagick
apt install php${PHP_VER}-fpm php${PHP_VER}-common php${PHP_VER}-zip php${PHP_VER}-xml php${PHP_VER}-intl php${PHP_VER}-gd php${PHP_VER}-mysql php${PHP_VER}-mbstring php${PHP_VER}-curl php${PHP_VER}-imagick php${PHP_VER}-gmp php${PHP_VER}-bcmath libmagickcore-6.q16-6-extra
vi /etc/php/${PHP_VER}/fpm/pool.d/www.conf
Цитироватьenv[PATH] = /usr/local/bin:/usr/bin:/bin
Цитироватьopcache.enable_cli=1
opcache.interned_strings_buffer=32
opcache.revalidate_freq=1
sed -i 's/;opcache.enable=.*/opcache.enable=1/' /etc/php/8.3/fpm/php.ini
sed -i 's/;opcache.enable_cli=.*/opcache.enable_cli=1/' /etc/php/8.3/fpm/php.ini
sed -i 's/;opcache.memory_consumption=.*/opcache.memory_consumption=128/' /etc/php/8.3/fpm/php.ini
sed -i 's/;opcache.interned_strings_buffer=.*/opcache.interned_strings_buffer=8/' /etc/php/8.3/fpm/php.ini
sed -i 's/;opcache.max_accelerated_files=.*/opcache.max_accelerated_files=10000/' /etc/php/8.3/fpm/php.ini
systemctl enable php${PHP_VER}-fpm
systemctl restart php${PHP_VER}-fpm
apt install nginx
vi /etc/nginx/sites-enabled/nextcloud.conf
server {
listen 80;
listen 443 ssl;
server_name nextcloud.yourdomain.com;
if ($scheme = 'http') {
return 301 https://$host$request_uri;
}
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
root /var/www/nextcloud;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
client_max_body_size 10G;
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 = /core/templates/403.php;
error_page 404 = /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location ^~ /.well-known {
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location = /.well-known/webfinger { return 301 /index.php/.well-known/webfinger; }
location = /.well-known/nodeinfo { return 301 /index.php/.well-known/nodeinfo; }
location ^~ /.well-known{ return 301 /index.php/$uri; }
try_files $uri $uri/ =404;
}
location / {
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
if ($request_method = OPTIONS) {
return 301 $scheme://$server_name/remote.php/webdav/;
}
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires modified +30d;
access_log off;
}
}
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
openssl req -new -x509 -days 1461 -nodes -out cert.pem -keyout cert.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=nextcloud.yourdomain.com/CN=nextcloud"
systemctl stop apache2
systemctl disable apache2
nginx -t
systemctl restart nginx
systemctl enable nginx
apt install unzip
apt install imagemagick
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
mv nextcloud /var/www
chown -R www-data:www-data /var/www/nextcloud
sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
vi /etc/php/${PHP_VER}/fpm/php.ini
memory_limit = 512M
systemctl restart php${PHP_VER}-fpm
Цитироватьdnf install php-<название модуля>
apt install php-gmp php-bcmath
systemctl restart php${PHP_VER}-fpm
apt install redis-server php-redis
systemctl restart php${PHP_VER}-fpm
vi /var/www/nextcloud/config/config.php
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
),
apt install memcached php-memcached
systemctl enable memcached
systemctl restart php${PHP_VER}-fpm
vi /var/www/nextcloud/config/config.php
'memcache.local' => '\\OC\\Memcache\\Memcached',
'memcache.distributed' => '\\OC\\Memcache\\Memcached',
'memcached_servers' =>
array (
0 =>
array (
0 => 'localhost',
1 => 11211,
),
),
vi /var/www/nextcloud/config/config.php
'default_phone_region' => 'RU',
sudo -u www-data php /var/www/nextcloud/occ user:add admin
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin
sc config webclient start= auto
net start webclient
net use <Буква диска>: https://<путь до nextcloud>/remote.php/webdav /user:user password
net use N: https://nextcloud.yourdomain.com/remote.php/webdav /user:admin password
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" /v FileSizeLimitInBytes /t REG_DWORD /d 4294967295 /f
apt install davfs2
yum install davfs2
mount -t davfs -o noexec https://nextcloud.yourdomain.com/remote.php/webdav /mnt
vi /etc/fstab
https://nextcloud.yourdomain.com/remote.php/webdav/ /mnt davfs user,rw,_netdev 0 0
vi /etc/davfs2/secrets
/mnt user password
mount -a
apt update
apt upgrade -y
apt install chrony -y
systemctl enable chrony
timedatectl set-timezone Europe/Moscow
timedatectl list-timezones
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
iptables -I INPUT -p tcp --dport 8082 -j ACCEPT
apt install iptables-persistent -y
netfilter-persistent save
apt install memcached libmemcached-dev -y
vi /etc/memcached.conf
Цитировать-m 512
systemctl restart memcached
systemctl enable memcached
apt install python3 python3-setuptools python3-pip libmysqlclient-dev -y
pip3 install --timeout=3600 django==3.2.* Pillow pylibmc captcha jinja2 sqlalchemy==1.4.3 django-pylibmc django-simple-captcha python3-ldap mysqlclient pycryptodome==3.12.0 cffi==1.14.0
apt install mariadb-server -y
mysqladmin -u root password
mysql -uroot -p
systemctl enable mariadb
useradd seafile -r
mkdir -p /opt/seafile/bin
wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_9.0.10_x86-64.tar.gz
tar zxf seafile-server_*.tar.gz -C /opt/seafile/bin --strip-components 1
chown -R seafile:seafile /opt/seafile
su seafile
cd /opt/seafile/bin
./setup-seafile-mysql.sh
vi /opt/seafile/conf/gunicorn.conf.py
Цитироватьbind = "0.0.0.0:8000"
vi /opt/seafile/conf/seahub_settings.py
CACHES = {
'default': {
'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
'LOCATION': '127.0.0.1:11211',
},
}
/opt/seafile/bin/seafile.sh start
/opt/seafile/bin/seahub.sh start
ЦитироватьSeahub is started
Done.
/opt/seafile/bin/seahub.sh stop
/opt/seafile/bin/seafile.sh stop
exit
systemctl edit --full --force seafile
[Unit]
Description=Seafile Service
After=network.target
[Service]
User=seafile
Group=seafile
Type=forking
ExecStart=/opt/seafile/bin/seafile.sh start
ExecStop=/opt/seafile/bin/seafile.sh stop
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
systemctl edit --full --force seahub
[Unit]
Description=Seahub Service
After=network.target
[Service]
User=seafile
Group=seafile
Type=forking
ExecStart=/opt/seafile/bin/seahub.sh start
ExecStop=/opt/seafile/bin/seahub.sh stop
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl enable seafile seahub
systemctl start seafile seahub
systemctl status seafile seahub