|
Тепер статті може редагувати кожен. Приєднуйтесь до нашої вікі-спільноти! |
Адміністрування мереж ТСР/ІР в операційному середовищі Unix
Зміст |
[ред.] Про курс
Назва: Адміністрування мереж ТСР/ІР в операційному середовищі Unix Викладач: Шумський Василь Тип: Вибірковий
[ред.] Заняття 1. Встановлення FreeBSD
- Встановлювати будемо на віртуальну машину VMware
- ISO-образ можна знайти за адресою тут
[ред.] Параметри віртуальної машини
Кількість оперативної пам'яті: 256 Мб
Розмір жорсткого диску: 8Гб
[ред.] Встановлення FreeBSD
Розбиваємо диск наступним чином:
| / | 1Gb |
| swap | 512Mb (RAMx2) |
| /tmp | 300-400Mb |
| /var | 512Mb |
| /usr | все що залишилось |
[ред.] Заняття 2. Будуємо топологію
[ред.] Попередні дії
- Встановимо 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.

