ISPConfig Perfect Multiserver-ի կարգավորում Ubuntu 20.04-ում և Debian 10-ում
Այս էջում
- 1. Նախնական նշում
2. Հիմնական սերվերի տեղադրում
- 2.1 Կազմաձևեք հոսթի անունը և հոսթերը
- 2.2 Հեռավոր MySQL օգտվողների կարգավորում մեր ստրուկ սերվերների համար
- 2.3 Firewall-ի կարգավորում
Այս ձեռնարկը ձեզ կտանի ձեր սեփական ISPConfig 3 բազմասերվերի կարգավորումը վահանակի, համացանցի, DNS-ի, փոստի և վեբ փոստի համար նախատեսված հատուկ սերվերների միջոցով: Ե՛վ DNS-ը, և՛ փոստի սերվերը կունենան հայելային սերվեր՝ ավելորդության համար: Դրանից հետո հեշտությամբ կարող եք ավելացնել որոշակի տեսակի ավելի շատ սերվերներ:
ISPConfig-ի պաշտոնական ավտոմատ տեղադրիչը կօգտագործվի սերվերները կարգավորելու համար: Debian 10-ը կօգտագործվի որպես օպերացիոն համակարգ։ Ուղեցույցը փորձարկվել է նաև Ubuntu 20.04.2-ով:
Ավտո-տեղադրողի մասին ավելին կարող եք կարդալ այստեղ:
1. Նախնական նշում
Սրանք կլինեն այն հոսթները, որոնք մենք տեղադրում ենք.
host FQDN IP
panel panel.example.com 10.0.64.12
web01 web01.example.com 10.0.64.13
mx1 mx1.example.com 10.0.64.14
mx2 mx2.example.com 10.0.64.15
ns1 ns1.example.com 10.0.64.16
ns2 ns2.example.com 10.0.64.17
webmail webmail.example.com 10.0.64.18
Մենք կօգտագործենք հոսթների անունների, IP հասցեների և IP միջակայքերի օրինակներ: Համոզվեք, որ դրանք համապատասխանաբար փոխեք ձեր հրամաններում/կոնֆիգուրացիաներում:
Բոլոր սերվերները գտնվում են նույն մասնավոր ցանցում, բայց ունեն իրենց սեփական հանրային IP-ն: Եթե ձեր սերվերները չունեն ընդհանուր տեղական ցանց, օգտագործեք նրանց հանրային IPv4 հասցեները:
Նախքան սերվերի տեղադրումը սկսելը, ստեղծեք A և վերջնական AAAA գրառում, որը ցույց է տալիս ձեր սերվերի հանրային IP հասցեն: Օրինակ, եթե հոսթի անունը panel.example.com է, իսկ հանրային IP-ն՝ 11.22.33.44, դուք պետք է ստեղծեք A գրառում panel.example.com-ի համար՝ մատնանշելով 11.22.33.44: Յուրաքանչյուր սերվեր պետք է ունենա իր հանրային IP-ն և հոսթի անունը:
2. Հիմնական սերվերի տեղադրում
Մուտք գործեք որպես root կամ run
su -
դառնալ ձեր սերվերի հիմնական օգտվողը, նախքան շարունակելը: ԿԱՐԵՎՈՐ. Դուք պետք է օգտագործեք «su -» և ոչ միայն «su», այլապես ձեր PATH փոփոխականը սխալ է սահմանվել Debian-ի կողմից:
2.1 Կազմաձևեք հոսթի անունը և հոսթերը
Ձեր սերվերի հոսթի անունը պետք է լինի ենթադոմեյն, ինչպիսին է «panel.example.com»: Մի օգտագործեք տիրույթի անուն առանց ենթադոմեյնի մասի, ինչպիսին է «example.com»-ը որպես հոսթի անուն, քանի որ դա հետագայում խնդիրներ կառաջացնի ձեր փոստի տեղադրման հետ: Նախ, դուք պետք է ստուգեք հոսթի անունը /etc/hosts-ում և անհրաժեշտության դեպքում փոխեք այն: Տողը պետք է լինի՝ «IP հասցե - բացատ - լրիվ հոսթի անունը ներառյալ տիրույթը - բացատ - ենթադոմեյնի մաս»: Մեր hostname panel.example.com-ի համար ֆայլը պետք է այսպիսի տեսք ունենա (որոշ տողեր կարող են տարբեր լինել, այն կարող է տարբերվել ըստ հոստինգի մատակարարի).
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
# This line should be changed on every node to the correct servername:
127.0.1.1 panel.example.com panel
# These lines are the same on every node:
10.0.64.12 panel.example.com panel
10.0.64.13 web01.example.com web01
10.0.64.14 mx1.example.com mx1
10.0.64.15 mx2.example.com mx2
10.0.64.16 ns1.example.com ns1
10.0.64.17 ns2.example.com ns2
10.0.64.18 webmail.example.com webmail
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Ինչպես տեսնում եք, մենք ավելացրել ենք նաև մեր մյուս սերվերների հոսթների անունները, որպեսզի հետագայում նրանք կարողանան հաղորդակցվել ներքին ցանցի միջոցով:
Այնուհետև խմբագրեք /etc/hostname ֆայլը՝
nano /etc/hostname
Այն պետք է պարունակի միայն ենթադոմեյնի մասը, մեր դեպքում՝
panel
Վերջապես, վերագործարկեք սերվերը՝ փոփոխությունը կիրառելու համար.
systemctl reboot
Կրկին մուտք գործեք և ստուգեք, թե արդյոք հոսթի անունը ճիշտ է այժմ հետևյալ հրամաններով.
hostname
hostname -f
Արդյունքը պետք է լինի այսպիսին.
root@panel:~$ hostname
panel
root@panel:~$ hostname -f
panel.example.com
Այժմ մենք կարող ենք գործարկել ավտոմատ տեղադրիչը՝ բոլոր անհրաժեշտ փաթեթները և ISPConfig-ը տեղադրելու համար.
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=system
Որոշ ժամանակ անց դուք կտեսնեք.
WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type 'yes' if you really want to continue:
Պատասխանեք «այո» և սեղմեք enter: Տեղադրողն այժմ կսկսվի:
Երբ տեղադրողն ավարտվի, այն ձեզ ցույց կտա ISPConfig-ի ադմինիստրատորը և MySQL արմատային գաղտնաբառը հետևյալ կերպ.
[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC
[INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYs
Համոզվեք, որ գրեք այս տեղեկատվությունը, ինչպես նաև սերվերի համար, որի համար նախատեսված են, քանի որ դրանք ձեզ ավելի ուշ պետք կգան:
2.2 Հեռավոր MySQL օգտվողների կարգավորում մեր ստրուկ սերվերների համար
Մենք մուտք կգործենք MySQL՝ թույլ տալու մյուս սերվերներին միանալ ISPConfig տվյալների բազային այս հանգույցի վրա տեղադրման ժամանակ՝ ավելացնելով MySQL արմատային օգտվողի գրառումները հիմնական տվյալների բազայում յուրաքանչյուր ստրուկ սերվերի հոսթի անվան և IP հասցեի համար:
Տերմինալում, վազեք
mysql -u root -p
Մուտքագրեք ձեր MySQL գաղտնաբառը և գործարկեք հետևյալ հրամանները.
CREATE USER 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.14' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.14' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.16' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.16' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.17' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.17' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'10.0.64.18' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.18' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'web01.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'web01.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'mx1.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mx1.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'mx2.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mx2.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'ns1.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns1.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'ns2.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns2.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'webmail.example.com' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'webmail.example.com' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Վերոնշյալ SQL հրամաններում փոխարինեք IP հասցեները (10.0.64.12 - 10.0.64.18) ձեր սերվերների IP հասցեներով, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com: , ns2.example.com և webmail.example.com՝ ձեր սերվերների հոսթների անուններով և myrootpassword՝ ցանկալի արմատային գաղտնաբառով (լավ պրակտիկա է յուրաքանչյուր հոսթի համար տարբեր գաղտնաբառ օգտագործելը: Գրեք դրանք, քանի որ դրանք ձեզ ավելի ուշ պետք կգան: երբ տեղադրում կամ թարմացնում եք ձեր ստրուկ սերվերները):
Երբ դա արվի, դուք կարող եք դուրս գալ MySQL-ից հետևյալով.
EXIT;
Այժմ կարող եք մուտք գործել ISPConfig https://panel.example.com:8080 հասցեով՝ ադմինիստրատորի օգտանունով և գաղտնաբառով, որը տեղադրողը ձեզ ցույց է տվել:
2.3 Firewall-ի կարգավորում
Վերջին բանը, որ պետք է անել, մեր firewall-ը կարգավորելն է:
Մուտք գործեք ISPConfig UI և անցեք System -> Firewall: Այնուհետև կտտացրեք «Ավելացնել նոր firewall գրառում»:
Վահանակի սերվերի համար մենք պետք է բացենք հետևյալ նավահանգիստները.
TCP:
22,80,443,8080,8081
Ոչ մի UDP նավահանգիստ չպետք է բացվի UI-ի միջոցով:
Մենք նաև պատրաստվում ենք բացել 3306 պորտը, որն օգտագործվում է MySQL-ի համար, բայց միայն մեր տեղական ցանցից՝ անվտանգության նկատառումներով։ Դա անելու համար գործարկեք հետևյալ հրամանը CLI-ից՝ ISPConfig վահանակի փոփոխությունից հետո (երբ կարմիր կետն անհետանում է).
ufw allow from 10.0.64.0/24 to any port 3306 proto tcp
Ձեր վահանակն այժմ կարգավորված է և պատրաստ է օգտագործման:
Հաջորդ քայլում մենք կտեղադրենք վեբսերվերը: