> For the complete documentation index, see [llms.txt](https://otabek-ismoilov.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://otabek-ismoilov.gitbook.io/blog/server-sozlamalari/ubuntu-20.04-bilan-dastlabki-serverni-sozlash.md).

# Ubuntu 20.04 bilan dastlabki serverni sozlash

// Qo'llanma //

#### Kirish <a href="#introduction" id="introduction"></a>

Yangi Ubuntu 20.04 serverini birinchi marta yaratganingizda, dastlabki sozlashning bir qismi sifatida bir necha muhim konfiguratsiya bosqichlarini bajarishingiz kerak. Ushbu qadamlar serveringiz xavfsizligi va foydalanish qulayligini oshiradi va keyingi harakatlar uchun mustahkam poydevor yaratadi.

### 1-qadam - Root sifatida tizimga kiring <a href="#step-1-logging-in-as-root" id="step-1-logging-in-as-root"></a>

**Serveringizga kirish uchun serveringizning umumiy IP manzilini** bilishingiz kerak bo'ladi . Shuningdek, sizga parol yoki autentifikatsiya uchun SSH kalitini o'rnatgan bo'lsangiz - **ildiz** foydalanuvchi hisobi uchun shaxsiy kalit kerak bo'ladi.

Agar siz hali serveringizga ulanmagan bo'lsangiz, quyidagi buyruq yordamida **root** foydalanuvchisi sifatida tizimga kiring (buyruqning belgilangan qismini serveringizning umumiy IP manzili bilan almashtiring):

```bash
$ ssh root@your_server_ip
```

Agar paydo bo'lsa, xostning haqiqiyligi haqidagi ogohlantirishni qabul qiling. Agar siz parolni autentifikatsiya qilishdan foydalanayotgan bo'lsangiz, tizimga kirish uchun **root** parolingizni kiriting. Agar siz parol bilan himoyalangan SSH kalitidan foydalanayotgan bo'lsangiz, har bir seansda kalitdan birinchi marta foydalanganingizda parolni kiritish so'ralishi mumkin. **Agar siz serverga parol bilan birinchi marta kirayotgan bo'lsangiz, sizdan root** parolini o'zgartirish ham so'ralishi mumkin .

#### Root haqida <a href="#about-root" id="about-root"></a>

Root foydalanuvchi juda keng imtiyozlarga ega bo'lgan Linux muhitida ma'muriy foydalanuvchi hisoblanadi **. root** hisobining kengaytirilgan imtiyozlari tufayli siz uni muntazam ravishda ishlatishdan *tushkunlikka tushasiz .* Buning sababi, **root** hisobi tasodifan ham juda halokatli o'zgarishlarni amalga oshirishga qodir.

Keyingi qadam - kundalik foydalanish uchun imtiyozlar kamaytirilgan yangi foydalanuvchi hisobini o'rnatish. Keyinchalik, sizga kerak bo'lgan vaqtlar uchun qanday qilib vaqtincha oshirilgan imtiyozlarga ega bo'lishni ko'rsatamiz.

### 2-qadam - Yangi foydalanuvchi yaratish <a href="#step-2-creating-a-new-user" id="step-2-creating-a-new-user"></a>

**Root** sifatida tizimga kirganingizdan so'ng siz yangi foydalanuvchi hisobini qo'shishingiz mumkin bo'ladi. Kelajakda **root** o'rniga ushbu yangi hisob bilan tizimga kiramiz .

**Ushbu misol sammy** nomli yangi foydalanuvchini yaratadi , lekin uni o'zingizga yoqqan foydalanuvchi nomi bilan almashtirishingiz kerak:

```bash
$ adduser sammy
```

Hisob parolidan boshlab sizga bir nechta savollar beriladi.

Kuchli parolni kiriting va agar xohlasangiz, qo'shimcha ma'lumotlarni to'ldiring. Bu shart emas va siz `ENTER`o'tkazib yubormoqchi bo'lgan istalgan maydonni bosishingiz mumkin.

### 3-bosqich - ma'muriy imtiyozlarni berish <a href="#step-3-granting-administrative-privileges" id="step-3-granting-administrative-privileges"></a>

Endi bizda oddiy hisob imtiyozlari bilan yangi foydalanuvchi hisobi mavjud. Biroq, biz ba'zan ma'muriy vazifalarni bajarishimiz kerak bo'lishi mumkin.

**Oddiy foydalanuvchimizdan chiqish va root** hisobi sifatida tizimga qayta kirishga majbur bo'lmaslik uchun oddiy hisob qaydnomamiz uchun *superfoydalanuvchi* yoki **root** huquqlari deb nomlanuvchi narsalarni o'rnatishimiz mumkin . Bu bizning oddiy foydalanuvchimizga buyruq oldiga so'z qo'yish orqali ma'muriy imtiyozlarga ega buyruqlarni bajarishga imkon beradi `sudo`.

Ushbu imtiyozlarni yangi foydalanuvchiga qo'shish uchun foydalanuvchini **sudo** guruhiga qo'shishimiz kerak. Odatiy bo'lib, Ubuntu 20.04 da **sudo** guruhi a'zolari bo'lgan foydalanuvchilarga `sudo`buyruqdan foydalanishga ruxsat beriladi.

**Root** sifatida , yangi foydalanuvchini **sudo** guruhiga qo'shish uchun ushbu buyruqni bajaring (belgilangan foydalanuvchi nomini yangi foydalanuvchi bilan almashtiring):

```bash
$ usermod -aG sudo sammy
```

Endi oddiy foydalanuvchi sifatida tizimga kirganingizda, `sudo`ularni superfoydalanuvchi imtiyozlari bilan ishlatish uchun buyruqlar oldidan yozishingiz mumkin.

### 4-qadam - Asosiy xavfsizlik devorini o'rnatish <a href="#step-4-setting-up-a-basic-firewall" id="step-4-setting-up-a-basic-firewall"></a>

Ubuntu 20.04 serverlari faqat ma'lum xizmatlarga ulanishga ruxsat berilganligiga ishonch hosil qilish uchun UFW xavfsizlik devoridan foydalanishi mumkin. Biz ushbu ilova yordamida asosiy xavfsizlik devorini o'rnatishimiz mumkin.

Ilovalar o'rnatishdan so'ng o'z profillarini UFW bilan ro'yxatdan o'tkazishlari mumkin. Bu profillar UFWga ushbu ilovalarni nom bilan boshqarish imkonini beradi. Serverimizga hozir ulanish imkonini beruvchi OpenSSH xizmati UFWda ro'yxatdan o'tgan profilga ega.

Buni yozish orqali ko'rishingiz mumkin:

```bash
$ ufw app list
```

> ```
> OutputAvailable applications:
>   OpenSSH
> ```
>
> Keyingi safar tizimga qayta kirishimiz uchun xavfsizlik devori SSH ulanishlariga ruxsat berishiga ishonch hosil qilishimiz kerak. Biz ushbu ulanishlarga ruxsat berishimiz mumkin:

```bash
$ ufw allow OpenSSH
```

Shundan so'ng, biz xavfsizlik devorini yozish orqali yoqishimiz mumkin:

```bash
$ ufw enable
```

Davom etish uchun kiriting `y`va bosing `ENTER`. Siz SSH ulanishlariga hali ham ruxsat berilganligini ko'rishingiz mumkin:

```bash
$ ufw status
```

> ```
> OutputStatus: active
>
> To                         Action      From
> --                         ------      ----
> OpenSSH                    ALLOW       Anywhere
> OpenSSH (v6)               ALLOW       Anywhere (v6)
> ```
>
> <br>

**Xavfsizlik devori hozirda SSH dan tashqari barcha ulanishlarni bloklayotganligi sababli** , agar siz qoʻshimcha xizmatlarni oʻrnatsangiz va sozlasangiz, trafik kirishiga ruxsat berish uchun xavfsizlik devori sozlamalarini oʻzgartirishingiz kerak boʻladi. [*UFW Essentials* qoʻllanmamizdan](https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands) baʼzi umumiy UFW operatsiyalarini oʻrganishingiz mumkin .

### 5-qadam - Doimiy foydalanuvchi uchun tashqi kirishni yoqish <a href="#step-5-enabling-external-access-for-your-regular-user" id="step-5-enabling-external-access-for-your-regular-user"></a>

Endi bizda kundalik foydalanish uchun oddiy foydalanuvchi bor, biz to'g'ridan-to'g'ri SSH-ni hisobga olishimiz mumkinligiga ishonch hosil qilishimiz kerak.

{% hint style="info" %}
**Eslatma:** Siz tizimga kirishingiz va yangi foydalanuvchi bilan foydalanishingiz mumkinligini tasdiqlamaguningizcha, tizimga **root**`sudo` sifatida kirishni tavsiya qilamiz . Shunday qilib, agar sizda muammolar mavjud bo'lsa, muammolarni bartaraf etishingiz va **root** sifatida kerakli o'zgarishlarni amalga oshirishingiz mumkin .
{% endhint %}

Yangi foydalanuvchi uchun SSH kirishini sozlash jarayoni serveringizning **root** hisobi autentifikatsiya qilish uchun parol yoki SSH kalitlaridan foydalanishiga bog'liq.

#### Agar root hisobi parolni tekshirishdan foydalansa <a href="#if-the-root-account-uses-password-authentication" id="if-the-root-account-uses-password-authentication"></a>

Agar siz **root** hisobingizga *parol yordamida* kirgan bo'lsangiz, SSH uchun parolni autentifikatsiya qilish *yoqilgan .* Siz yangi terminal seansini ochib, yangi foydalanuvchi nomi bilan SSH dan foydalanib, yangi foydalanuvchi hisobingizga SSH qilishingiz mumkin:

```bash
$ ssh sammy@your_server_ip
```

Oddiy foydalanuvchi parolini kiritganingizdan so'ng siz tizimga kirasiz. Yodda tuting, agar siz ma'muriy imtiyozlarga ega buyruqni ishga tushirishingiz kerak bo'lsa, `sudo`undan oldin quyidagi tarzda kiriting:

```bash
$ sudo command_to_run
```

`sudo`Har bir seansdan birinchi marta foydalanganda (va keyinroq vaqti-vaqti bilan) sizdan oddiy foydalanuvchi parolingiz so'raladi .

Serveringiz xavfsizligini oshirish uchun **parolni autentifikatsiya qilish oʻrniga SSH kalitlarini sozlashni tavsiya qilamiz** . Kalitga asoslangan autentifikatsiyani qanday sozlashni o'rganish uchun [Ubuntu 20.04 da SSH kalitlarini sozlash](https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04) bo'yicha qo'llanmamizga amal qiling .

#### Agar root hisobi SSH kaliti autentifikatsiyasidan foydalansa <a href="#if-the-root-account-uses-ssh-key-authentication" id="if-the-root-account-uses-ssh-key-authentication"></a>

Agar siz *SSH kalitlari yordamida **root*** hisobingizga kirgan bo'lsangiz , SSH uchun parolni autentifikatsiya qilish *o'chirilgan* . Muvaffaqiyatli tizimga kirish uchun yangi foydalanuvchi fayliga mahalliy ochiq kalitingiz nusxasini qo'shishingiz kerak bo'ladi .`~/.ssh/authorized_keys`

Sizning ochiq kalitingiz allaqachon serverdagi **root** hisob qaydnomasi `~/.ssh/authorized_keys`faylida bo'lgani uchun biz ushbu fayl va katalog tuzilmasini mavjud seansimizda yangi foydalanuvchi hisobimizga nusxalashimiz mumkin.

To'g'ri egalik va ruxsatnomalarga ega bo'lgan fayllarni nusxalashning eng oddiy usuli `rsync`buyruqdir. Bu **root** foydalanuvchi `.ssh`katalogini nusxalaydi, ruxsatlarni saqlaydi va fayl egalarini bitta buyruqda o'zgartiradi. Oddiy foydalanuvchi ismingizga mos kelishi uchun quyidagi buyruqning belgilangan qismlarini o'zgartirganingizga ishonch hosil qiling:

Yangi foydalanuvchi uchun SSH kirishini sozlash jarayoni serveringizning **ildiz** hisobi autentifikatsiya qilish uchun parol yoki SSH kalitlaridan foydalanishiga bog'liq.

#### Agar ildiz hisobi parolni tekshirishdan foydalansa <a href="#if-the-root-account-uses-password-authentication" id="if-the-root-account-uses-password-authentication"></a>

Agar siz **root** hisobingizga *parol yordamida* kirgan bo'lsangiz, SSH uchun parolni autentifikatsiya qilish *yoqilgan .* Siz yangi terminal seansini ochib, yangi foydalanuvchi nomi bilan SSH dan foydalanib, yangi foydalanuvchi hisobingizga SSH qilishingiz mumkin:

```bash
$ ssh sammy@your_server_ip
```

Oddiy foydalanuvchi parolini kiritganingizdan so'ng siz tizimga kirasiz. Yodda tuting, agar siz ma'muriy imtiyozlarga ega buyruqni ishga tushirishingiz kerak bo'lsa, `sudo`undan oldin quyidagi tarzda kiriting:

```bash
$ sudo command_to_run
```

`sudo`Har bir seansdan birinchi marta foydalanganda (va keyinroq vaqti-vaqti bilan) sizdan oddiy foydalanuvchi parolingiz so'raladi .

Serveringiz xavfsizligini oshirish uchun **parolni autentifikatsiya qilish oʻrniga SSH kalitlarini sozlashni tavsiya qilamiz** .

#### Agar root hisobi SSH kaliti autentifikatsiyasidan foydalansa <a href="#if-the-root-account-uses-ssh-key-authentication" id="if-the-root-account-uses-ssh-key-authentication"></a>

Agar siz *SSH kalitlari yordamida **root*** hisobingizga kirgan bo'lsangiz , SSH uchun parolni autentifikatsiya qilish *o'chirilgan* . Muvaffaqiyatli tizimga kirish uchun yangi foydalanuvchi fayliga mahalliy ochiq kalitingiz nusxasini qo'shishingiz kerak bo'ladi .`~/.ssh/authorized_keys`

Sizning ochiq kalitingiz allaqachon serverdagi **root** hisob qaydnomasi `~/.ssh/authorized_keys`faylida bo'lgani uchun biz ushbu fayl va katalog tuzilmasini mavjud seansimizda yangi foydalanuvchi hisobimizga nusxalashimiz mumkin.

To'g'ri egalik va ruxsatnomalarga ega bo'lgan fayllarni nusxalashning eng oddiy usuli `rsync`buyruqdir. Bu **root** foydalanuvchi `.ssh`katalogini nusxalaydi, ruxsatlarni saqlaydi va fayl egalarini bitta buyruqda o'zgartiradi. Oddiy foydalanuvchi ismingizga mos kelishi uchun quyidagi buyruqning belgilangan qismlarini o'zgartirganingizga ishonch hosil qiling:

```bash
$ rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
```

Endi mahalliy kompyuteringizda yangi terminal seansini oching va yangi foydalanuvchi nomingiz bilan SSH dan foydalaning:

```bash
$ ssh sammy@your_server_ip
```

Siz yangi foydalanuvchi hisobiga paroldan foydalanmasdan kirishingiz kerak. Esingizda bo'lsin, agar siz ma'muriy imtiyozlarga ega buyruqni ishga tushirishingiz kerak bo'lsa, `sudo`undan oldin quyidagi tarzda kiriting:

```bash
$ sudo command_to_run
```

`sudo`Har bir seansdan birinchi marta foydalanganda (va keyinroq vaqti-vaqti bilan) sizdan oddiy foydalanuvchi parolingiz so'raladi .

### Bu post nima uchun kerak? <a href="#where-to-go-from-here" id="where-to-go-from-here"></a>

Shu nuqtada, sizning serveringiz uchun mustahkam poydevor mavjud. Siz hozir serveringizga kerakli dasturlarni o'rnatishingiz mumkin.
