Тепер статті може редагувати кожен. Приєднуйтесь до нашої вікі-спільноти!

Адміністрування мереж ТСР/ІР в операційному середовищі Unix

Матеріал з USIC Wiki
Перейти до: навігація, пошук
Для ФІН

Ця стаття відноситься до групи довідкових статей для студентів ФІН.

Зміст

[ред.] Про курс

Назва: Адміністрування мереж ТСР/ІР в операційному середовищі Unix
Викладач: Шумський Василь
Тип: Вибірковий

[ред.] Заняття 1. Встановлення FreeBSD

  • Встановлювати будемо на віртуальну машину VMware
  • ISO-образ можна знайти за адресою тут

[ред.] Параметри віртуальної машини

Кількість оперативної пам'яті: 256 Мб
Розмір жорсткого диску: 8Гб

[ред.] Встановлення FreeBSD

Розбиваємо диск наступним чином:

/ 1Gb
swap 512Mb (RAMx2)
/tmp 300-400Mb
/var 512Mb
/usr все що залишилось

[ред.] Заняття 2. Будуємо топологію

Вигляд топології
Topology 1.png

[ред.] Попередні дії

  • Встановимо bash(з пакетів)
# sysinstall
  • Змінимо shell для root
# chsh -s /usr/local/bin/bash
  • Створимо нового користувача
# adduser

[ред.] Будування топології

  • Клонуємо машину: При клонуванні обираємо Full copy
  • Додаємо необхідні адаптери: До першої машини (з якої робили клон), для прикладу назвемо її VM1, додаємо ще один мережний адаптер та додаємо його в VMNet2, тип першого адаптера змінимо на bridge.
  • Налаштовуємо мережу

на сервері:

# ifconfig em0 10.102.12.123 netmask 255.255.255.0
# ifconfig em1 192.168.0.2 netmask 255.255.255.0
# route add default 10.102.12.123

на клієнті:

# ifconfig em0 192.168.0.3 netmask 255.255.255.0
# route add default 10.102.12.1
  • Редагуємо файл /etc/rc.conf, для збереження налаштувань мережі

на сервері:

ifconfig_em0="inet 10.102.12.123 netmask 255.255.255.0"
ifconfig_em1="inet 192.168.0.2 netmask 255.255.255.0"
defaultrouter="10.102.12.1"
routing_enable="YES"

на клієнті:

ifconfig_em0="inet 192.168.0.3 netmask 255.255.255.0"
defaultrouter="10.102.12.123"
routing_enable="YES"

[ред.] Налаштування входу через SSH

Генеруємо пару ключів на клієнті

$ ssh-keygen

За замовчуванням у каталозі ~/.ssh буде створено два файли:

id_rsa - закритий ключ, його нікому не даємо і не показуємо
id_rsa.pub - відкритий ключ, з ним проводяться всі маніпуляції

Для того, щоб мати можливість заходить без пароля залишаємо passphrase порожньою.
Копіюємо id_rsa.pub на сервер

scp .ssh/id_rsa.pub user@192.168.0.2:/home/user/authorized_keys

Те саме робимо вже на сервері

[ред.] Можливі проблеми

[ред.] Забули пароль root

  • Завантажуємося в single user mode:
    • Коли бачимо повідомлення: Welcome to FreeBSD!, натискаємо цифру 4 на клавіатурі.
    • Перевіримо файлову систему:# fsck -p
    • Перемонтуємо кореневу файлову систему з можливістю запису:# mount -u /
    • Примонтовуємо інші файлові системи: # mount -a
  • Змінюємо пароль: # passwd

[ред.] Невірно прописали shell для root

  • Завантажуємося в single user mode
  • Виконуємо команду для зміни shell: # chsh -s /usr/local/bin/bash

[ред.] Не знаєте, який з мережних адаптерів за що відповідає?

  • Потрібен конфігураційний файл віртуальної машини, наприклад FreeBSD_8.1.vmx
  • Шукаємо стрічку виду: ethernet0.generatedAddress = "00:0c:29:94:02:65" - це MAC-адреса нашого першого адаптера
  • На самій запущеній машині виконуємо ifconfig та дивимось, який з адаптерів відповідає нашій MAC-адресі.

[ред.] Зміна hostname на клієнті або на сервері

  • Редагуємо файл /etc/rc.conf на машині сервера та клієнта. Змінюємо стрічку hostname="server.fin"

[ред.] Заняття 3. Налаштування NAT

Налаштування NAT виконується за допомогою IPNat. Дії з налаштування проводяться на сервері та під обліковим записом root.
Спочатку змушуємо сервер працювати, як шлюз(gateway). Редагуємо файл /etc/rc.conf, додаємо рядок:

gateway_enable="YES"

Створюємо файл з правилами:

# touch /etc/ipnat.rules

Додаємо в створений файл правило вигляду:

map em0 192.168.0.0/24 -> 10.102.12.123/32
  • em0 - ім'я інтерфейсу, який з'єднується з Інтернет
  • 192.168.0.0/24 - внутрішня мережа, яку будуть транслювати
  • 10.102.12.123 - адреса інтерфейса

Редагуємо файл /etc/rc.conf, додаємо рядочки:

# IPNat
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_rules="/etc/ipnat.rules"

Запускаємо IPNat стартовим скриптом:

# sh /etc/rc.d/ipnat start

Додаємо правила трансляції:

# /sbin/ipnat -CF -f /etc/ipnat.rules

Перечитуємо вміст файлу /etc/rc.conf, для цього переходимо в single user mode та повертаємося з нього. (Взагалі краще робити це при кожному редагуані /etc/rc.conf):

# shutdown now
# return

На машині клієнта запускаємо ping (не завершуємо його виконання):

$ ping 8.8.8.8

Перевірка списку правил NAT:

# ipnat -l

[ред.] Заняття 4. Налаштування DNS

[ред.] PF

NAT за допомогою PacketFilter Треба використовувати лише один спосіб організації NAT, тому треба визначитись чи ipnat чи pf. Спробувати можна і той і інший, але не два одночасно. Закоментовуємо все що стосується IPnat в /etc/rc.conf:

#ipnat_enable="YES"
#ipnat_program="/sbin/ipnat"
#ipnat_rules="/etc/ipnat.rules"

Дозволяємо використання PF. Редагуємо /etc/rc.conf:

pf_enable="YES"

Створюємо файл конфігурації:

# touch /etc/pf.conf

Відредагуємо створений pf.conf:

nat pass on em0 from 192.168.0.0/24 to any -> em0

Якщо ipnat було запущено раніше, то зупиняємо його:

# servise ipnat stop

Перечитаємо /etc/rc.conf:

# shutdown now
# return

[ред.] DNS

Налаштування проводяться на сервері.
Дозволяємо серверу запускати BIND при старті. Додаємо у /etc/rc.conf ось це:

named_enable="YES"

Спочатку створимо новий, порожній конф.файл (початковий файл досить довгий, та містить деякі непотрібні налаштування):

# mv /etc/namedb/named.conf /etc/namedb/old_named.conf
# touch /etc/namedb/named.conf


Починаємо редагувати файл /etc/namedb/named.conf

options {
        directory   "/etc/namedb";
        pid-file    "/var/run/named/pid";
        dump-file   "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";
        listen-on   { 127.0.0.1; 192.168.0.2; 10.102.12.112; };
        forwarders { 194.x.x.x; 8.8.8.8; };
        query-source address * port 53;
        allow-query { 127.0.0.1; 192.168.0.0/24; 10.102.12.0/24; };
        allow-transfer { none; };
};

zone "." {
    type hint;
    file "named.root";
        };

zone "0.0.127.in-addr.arpa" {
        type master;
        file "master/localhost-reverse.db";
        };

zone "tcpip.coop" {
        type master;
        file "master/tcpip.coop";
        };

zone "0.168.192.in-addr.arpa" {
        type master;
        file "master/tcpip.coop.rev";
        };

Створимо файл прямої зони.

# touch /etc/namedb/master/tcpip.coop

Відредагуємо його:

$ORIGIN tcpip.coop.
$TTL 3600
@    IN      SOA      ns.tcpip.coop. root.tcpip.coop. (
                                2006051501      ; Serial
                                10800           ; Refresh
                                3600            ; Retry
                                604800          ; Expire
                                86400           ; Minimum TTL
                        )

@                IN      NS      ns.tcpip.coop.


; Machine Names
localhost       IN      A       127.0.0.1
ns              IN      A       192.168.0.2
@               IN      A       192.168.0.2

; Aliases
www             IN      CNAME   @

Створимо файл оберненої зони:

# touch /etc/namedb/master/tcpip.coop.rev

Відредагуємо його:

$ORIGIN 0.168.192.in-addr.arpa.
$TTL 3600        ; 1 hour
@    IN      SOA      ns.tcpip.coop. root.tcpip.coop. (
                                2006051501      ; Serial
                                10800           ; Refresh
                                3600            ; Retry
                                604800          ; Expire
                                86400           ; Minimum TTL
                        )

; DNS Servers
@       IN      NS      ns.tcpip.coop.
2       IN      PTR     ns.tcpip.coop.
2       IN      PTR     tcpip.coop.

Змінимо файл /etc/resolv.conf:

nameserver localhost

Перезапустимо BIND:

# /etc/rc.d/named restart

[ред.] Заняття 5. Налаштування Apache, MySQL, PHP, FTP

Встановимо Apache (з пакетів, які знаходяться на DVD-диску).

# sysinstall
Configure->Packages->CD/DVD->www->apache-2.2.15_9

Конфігураційний файл /usr/local/etc/apache22/httpd.conf. Спочатку зробимо його резервну копію.

# cp /usr/local/etc/apache22/httpd.conf /usr/local/etc/apache22/httpd.conf_bk

Редагуємо файл:

Запуск Apache (Зупинка, Перезапуск, Перезапуск без розірвання поточних з'єднань):

# /usr/local/sbin/apachectl start | stop | restart | graceful

Для запуску при завантажені сервера, редагуємо /etc/rc.conf:

apache_enable="YES"

[ред.] Заняття 6. Налаштування SSL HTTPS

# openssl

Генеруємо ключі

# openssl genrsa -des3 -rand /dev/random -out www.mysite.tcpip.com.key 

# openssl rsa -in www.mysite.tcpip.com.key -out www.mysite.tcpip.com.pem

# openssl req -new -key  www.mysite.tcpip.com.key -out  www.mysite.tcpip.com.csr

# openssl x509 -req -days 360 -in www.mysite.tcpip.com.csr -signkey www.mysite.tcpip.com.key -out www.mysite.tcpip.com.crt


<VirtualHost x.x.x.x:443>

       ServerAdmin webmaster@mysite.tcpip.com
       DocumentRoot "/usr/local/www/www.mysite.tcpip.com"
       ServerName mysite.tcpip.com
       ServerAlias www.mysite.tcpip.com
       SSLEngine on
       SSLCertificateFile /usr/local/etc/apache22/https/www.mysite.tcpip.com.crt
       SSLCertificateKeyFile /usr/local/etc/apache22/https/www.mysite.tcpip.com.pem
       SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
       ErrorLog "/var/log/mysite.tcpip.com-ssl-error_log"
       CustomLog "/var/log/mysite.tcpip.com-ssl-access_log" common

</VirtualHost>

Перезавантажуємо apache

# apachectl restart

Перевіряємо чи слухається порт 443

Редагуємо файл ######.htaccess #######

AuthType Basic
AuthName "RESTRICTED AREA"
AuthUserFile /usr/local/www/www.mysite.tcpip.com/.htpasswd
Require valid-user

[root@server ~]# htpasswd

Usage:
       htpasswd [-cmdpsD] passwordfile username
       htpasswd -b[cmdpsD] passwordfile username password
       htpasswd -n[mdps] username
       htpasswd -nb[mdps] username password
-c  Create a new file.
-n  Don't update file; display results on stdout.
-m  Force MD5 encryption of the password.
-d  Force CRYPT encryption of the password (default).
-p  Do not encrypt the password (plaintext).
-s  Force SHA encryption of the password.
-b  Use the password from the command line rather than prompting for it.
-D  Delete the specified user.

On Windows, NetWare and TPF systems the '-m' flag is used by default. On all other systems, the '-p' flag will probably not work.

[ред.] Заняття 7. Налаштування DHCP

[ред.] Заняття 8. Налаштування NFS

Особисті інструменти
Простори назв
Варіанти
Дії
Навігація
Інструменти