Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DHCP
- UWAGA: W tym opisie do identyfikacji interfejsu sieciowego wykorzystano
- standardową nazwę eth0.
- Ponieważ obecny system nazewniczy interfejsów związany jest silnie
- z wykorzystywanym sprzetem, przed rozpoczęciem zajęć proszę ustalić nazwę
- interfejsu we własnym systemie i tą stosować zamiast eth0.
- Polecam:
- https://www.howtoforge.com/tutorial/install-and-configure-isc-dhcp-server-in-debian-9/
- =====================================================
- SERWER
- Instalacja:
- apt-get install isc-dhcp-server
- Dodaj interfejs dla serwera DHCP:
- nano /etc/default/isc-dhcp-server
- gedit /etc/default/isc-dhcp-server &
- w linii
- INTERFACESv4=""
- dopis własciwy interfejs, na przykład, dla eth0:
- INTERFACESv4="eth0"
- Konfiguracja puli:
- #Jeśli konieczne
- cp /usr/share/doc/isc-dhcp-server/examples/dhcpd.conf.example /etc/dhcp/dhcpd.conf
- #Konfiguracja puli adresowej:
- gedit /etc/dhcp/dhcpd.conf &
- #lub
- nano /etc/dhcp/dhcpd.conf
- #Dodać definicję sieci jak poniżej:
- -----------------------------------------------------
- subnet 10.1.2.0 netmask 255.255.255.0 {
- range 10.1.2.10 10.1.2.50;
- option routers 10.1.2.1;
- #inne opcje wymagane
- }
- -----------------------------------------------------
- #Jesli zachodzi potrzeba dokonania rezerwacji adresu to na zewnątrz
- #definicji sieci mozna dodać mapowanie adresu IP i adresu fizycznego.
- -----------------------------------------------------
- host myfantasia{
- hardware ethernet c0:4a:00:02:9a:83;
- fixed-address 10.1.2.60;
- }
- -----------------------------------------------------
- Zarządzanie usługą:
- systemctl status isc-dhcp-server.service
- systemctl stop isc-dhcp-server.service
- systemctl start isc-dhcp-server.service
- systemctl restart isc-dhcp-server.service
- Odinstalowanie serwera:
- apt-get purge isc-dhcp-server
- KLIENT
- #Zweryfikować konfigurację IP:
- ifconfig
- #lub
- ip address show
- #Wyłaczyć interfejs:
- ifdown eth0
- #Zweryfikować wyłaczenie:
- ifconfig
- #lub
- ip address show
- #Skonfigurować interfejs aby otrzymywał adres z DHCP:
- nano /etc/network/interfaces.d/eth0
- -----------------------------------
- auto eth0
- iface eth0 inet dhcp
- #iface eth0 inet static
- # address 10.1.2.2
- # network 10.1.2.0
- # netmask 255.255.255.0
- # broadcast 10.1.2.255
- -----------------------------------
- #Włączyć interfejs:
- ifup eth0
- #Zweryfikować konfigurację IP:
- ifconfig
- #lub
- ip address show
- #Jeśli zachodzi potrzeba:
- #aby zwolnić obecny adres i zatrzymać klienta dhcp:
- dhclient -r eth0
- #aby otrzymać nowy adres:
- dhclient eth0
- DNS
- =====================================================
- Info - dwa pierwsze linki starsze, ale ciagle dobrze oddaja podstawy:
- http://www.unixmen.com/setup-dns-server-debian-7-wheezy/
- http://debian-handbook.info/browse/wheezy/sect.domain-name-servers.html
- Debian 9:
- http://www.server-world.info/en/note?os=Debian_9&p=dns
- -----------------------------------------------------
- Instalacja:
- apt-get install bind9 bind9utils bind9-doc dnsutils
- Konfiguracja strefy:
- nano /etc/bind/named.conf.local
- ------------
- zone "lab333b.local" {
- type master;
- file "/etc/bind/db.lab333b.local";
- };
- ------------
- Jesli do modyfikacji istniejący (jesli nie to pominąć):
- cp /etc/bind/db.local /etc/bind/db.lab333b.local
- nano /etc/bind/db.lab333b.local
- Poniżej zawartość pliku, uwaga na IP - ma być zgodne z IP maszyny, na której jest serwer.
- Kopiować dokładnie od kresek do kresek (bez kresek) i nie wstawiać pustych linii.
- ------------
- ;
- ; BIND data file for lab333b.local zone
- ;
- $TTL 604800
- @ IN SOA ns1 root.lab333b.local. (
- 2 ; Serial
- 604800 ; Refresh
- 86400 ; Retry
- 2419200 ; Expire
- 604800 ) ; Negative Cache TTL
- ;
- @ IN NS ns1
- ns1 IN A 192.168.122.101
- ;
- @ IN A 192.168.122.101
- ;
- srv IN A 192.168.122.101
- www IN CNAME srv
- ;
- mail IN A 192.168.122.101
- @ IN MX 10 mail
- ;
- ------------
- Wskazane jest tez zmodyfikowanie pliku /etc/bind/named.conf.options
- Liscie "trusted" mozna dodawać kolejne wymagane sieci.
- Polecam zajrzeć:
- https://kb.isc.org/article/AA-00269/0/What-has-changed-in-the-behavior-of-allow-recursion-and-allow-query-cache.html
- ------------
- acl "trusted" {
- // 192.168.0.0/16;
- localhost;
- localnets;
- };
- options {
- directory "/var/cache/bind";
- // If there is a firewall between you and nameservers you want
- // to talk to, you may need to fix the firewall to allow multiple
- // ports to talk. See http://www.kb.cert.org/vuls/id/800113
- // If your ISP provided one or more IP addresses for stable
- // nameservers, you probably want to use them as forwarders.
- // Uncomment the following block, and insert the addresses replacing
- // the all-0's placeholder.
- // forwarders {
- // 0.0.0.0;
- // };
- //========================================================================
- // If BIND logs error messages about the root key being expired,
- // you will need to update your keys. See https://www.isc.org/bind-keys
- //========================================================================
- dnssec-validation auto;
- auth-nxdomain no; # conform to RFC1035
- listen-on-v6 { any; };
- allow-query { any; };
- allow-recursion { trusted; };
- allow-query-cache { trusted; };
- };
- ------------
- systemctl status bind9.service
- systemctl restart bind9.service
- systemctl start bind9.service
- systemctl stop bind9.service
- ... itd.
- dig @127.0.0.1 lab333b.local mx
- apt-get purge bind9 bind9utils bind9-doc
- =====================================================
- =====================================================
- NFS
- -----------------------------------------------------
- http://www.server-world.info/en/note?os=Debian_9&p=nfs&f=1
- # i inne w dziale Storage Server -> NFS
- apt-get install nfs-kernel-server
- gedit /etc/idmapd.conf &
- nano /etc/idmapd.conf
- #odkomentuj linię 6 Domain i nadaj nazwę np:
- Domain = lab333b
- cd /
- mkdir /nfs
- cd nfs
- mkdir export
- cd export
- touch plik.txt
- gedit /etc/exports &
- nano /etc/exports
- # dopisać jak poniżej z włąściwą siecią:
- /nfs/export 192.168.122.0/24(rw,sync,fsid=0,no_root_squash,no_subtree_check)
- # znaczenie opcji:
- #/nfs/export - shared directory
- #192.168.122.0/24 - range of networks NFS permits accesses
- #rw - possible to read and write
- #sync - synchronize
- #no_root_squash - enable root privilege
- #no_subtree_check - disable subtree check
- systemctl restart nfs-server.service
- W starszych wersjach systemu:
- /etc/init.d/nfs-kernel-server restart
- #Client NFS http://www.server-world.info/en/note?os=Debian_9&p=nfs&f=2
- apt-get install nfs-common
- gedit /etc/idmapd.conf &
- nano /etc/idmapd.conf
- #odkomentuj linię 6 Domain i nadaj nazwę np:
- Domain = lab333b
- cd /
- mkdir /nfs
- cd nfs
- mkdir import
- mount -t nfs 192.168.122.101:/nfs/export /nfs/import
- #aby zobaczyć czy zamontowany
- df -h
- #dodac plik i zobaczyć na obu komputerach co widać
- #mozna tez zamontować z fstab (ale nie robić tego na zajęciach)
- nazwa.serwera:/katalog/eksportowany /katalog/importu nfs defaults 0 0
- #usuniecie
- cd /
- umount /nfs/import
- #odinstalowanie
- apt-get purge nfs-kernel-server nfs-common
- =====================================================
- SAMBA
- -----------------------------------------------------
- http://www.server-world.info/en/note?os=Debian_9&p=samba
- http://www.server-world.info/en/note?os=Debian_9&p=samba&f=2
- #i inne w dziale Samba
- #Instalacja
- apt-get install samba
- #konfiguracja bezposrednio przez pliki
- gedit /etc/samba/smb.conf &
- nano /etc/samba/smb.conf
- #przygotowanie udziału
- cd /
- mkdir samba
- chmod 777 samba
- gedit /etc/samba/smb.conf &
- unix charset = UTF-8 #dodać w lini 25
- workgroup = LAB333B #zmiecić w lini 29
- --------na koncu pliku wkleic------
- [MyWinDir]
- path = /samba
- writable = yes
- guest ok = yes
- guest only = yes
- create mode = 0777
- directory mode = 0777
- -----koniec wklejania--------
- #test poprawności konfiguracji
- testparm /etc/samba/smb.conf
- systemctl status smbd
- systemctl restart smbd
- W starszych wersjach systemu
- /etc/init.d/samba restart
- #lub
- service smbd restart
- # jako zwykły użytkownik otworzyć nautilus i wpisać
- smb://numer.ip.komputera
- #usunięcie
- apt-get purge samba samba-common
- =====================================================
- ProFTPd
- -----------------------------------------------------
- #Do testów filezilla lub wyczyszczona z historii przeglądarka
- #(Edit > Preferences > Zakładka Privacy - clear your recent history)
- apt-get install filezilla
- #http://www.howtoforge.com/setting-up-proftpd-tls-on-debian-squeeze
- #z pewnymi modyfikacjami
- apt-get install proftpd-basic openssl
- #(istalowac jako standalone)
- # dostep będzie na konto uzytkownika linuxa, na przyklad, stud/P@ssw0rd
- gedit /etc/proftpd/proftpd.conf &
- nano /etc/proftpd/proftpd.conf
- #[...]
- UseIPv6 off #linia 11
- DefaultRoot ~ #linia 36 odkomentować, aby uzytkownik został w domowym katalogu (jesli nie to wędruje po całym systemie plikowym)
- IdentLookups off #linia 13 - Zazwyczaj, kiedy klient łaczy się proftpd, protokół ident (RFC1413) jest wykorzystywany do ustalenia nazwy użytkownika. Wyłączamy.
- ServerIdent on "FTP Server ready." #linia 14 dodana zobaczysz ten komunikat
- #jak połaczysz klientem tekstowym zamiast nazwy i wersji servera ftp
- #[...]
- systemctl restart proftpd.service
- #instalacja klienta z linii polecen
- apt-get install ftp
- #połączenie
- ftp 192.168.122.101
- #połączyć się klientem z linii poleceń i zobaczyć jak działa
- #połączyć się klientem z przegladarki internetowej i zobaczyć jak działa
- #Utworzenie certyfikatu SSl dla TLS
- mkdir /etc/proftpd/ssl
- openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
- gedit /etc/proftpd/proftpd.conf &
- nano /etc/proftpd/proftpd.conf
- [...]
- #
- # This is used for FTPS connections
- #
- Include /etc/proftpd/tls.conf #ODKOMENTOWAC linia 140
- [...]
- cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig
- cat /dev/null > /etc/proftpd/tls.conf
- gedit /etc/proftpd/tls.conf &
- nano /etc/proftpd/tls.conf
- -----wkleić------
- <IfModule mod_tls.c>
- TLSEngine on
- TLSLog /var/log/proftpd/tls.log
- TLSProtocol SSLv23
- TLSOptions NoCertRequest NoSessionReuseRequired
- TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
- TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
- TLSVerifyClient off
- TLSRequired on
- </IfModule>
- -----koniec wkleić------
- systemctl restart proftpd.service
- #zainstalować ftp-ssl - zobaczyć połaczenie szyfrowane
- apt-get install ftp-ssl
- #to samo programem filezilla (wybrać FTP i explicit FTP over TLS)
- #na koniec odinstalowć proftpd
- apt-get purge proftpd-basic
- =====================================================
- Serwer WWW
- -------------
- ### Instalacja LAMP
- #https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-jessie/ &
- https://www.howtoforge.com/tutorial/install-wordpress-on-lamp-in-debian-9/
- # Aktualizacja systemu.
- apt-get update
- apt-get upgrade
- apt-get dist-upgrade
- Różne przydatne narzędzia:
- apt install net-tools sudo wget curl bash-completion
- Procedura A:
- =============
- # Apache
- apt-get -y install apache2
- #PHP
- apt-get -y install libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc
- #MariaDB
- apt-get -y install php7.0-mysql mariadb-server mariadb-client
- Konfiguracja i weryfikacja:
- ----------------------------
- systemctl start mariadb
- mysql_secure_installation
- #Na wszystkie pytania odpowiedzieć twierdząco (Y).
- #Zabezpieczenie dostepu:
- mysql -u root
- # środowisku sql
- use mysql;
- update user set plugin='' where User='root';
- flush privileges;
- quit
- #teraz powinien być błąd
- #ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- #przy próbe dostępu komendą
- mysql -u root
- #Weryfikacja funcjonowania Apache i MariaDB
- netstat -tlp| egrep 'http|mysql'
- #Weryfikacja PHP
- echo '<?php phpinfo(); ?>' > /var/www/html/info.php
- http://localhost/info.php
- # phpMyAdmin
- apt-get -y install phpmyadmin
- # W oknach dialogowych odpowiadamy jak poniżej (odpowiedź nawigujemy tabulacją, strzałkami, a zaznaczamy spacją):
- #Web server to reconfigure automatically: <-- apache2 (Uwaga: zaznaczyć opcję spacją - musi pojawić się znak "*")
- #Configure database for phpmyadmin with dbconfig-common? <-- No
- # Weryfikacja poprawności
- http://localhost
- http://localhost/phpmyadmin
- =============
- Koniec procedury A
- Procedura B ("na skróty" - niezbędne dodatkowe składniki są instalowane jako zależności pomiędzy pakietami)
- =============
- apt-get -y install apache2 mariadb-server phpmyadmin wordpress
- #Wykonać konfigurację i weryfikację usług jak w Procedurze A
- #Następnie, konfiguracja samego wordpressa instalowanego z pakietu instalacyjnego, która jest opisana na:
- #https://wiki.debian.org/WordPress
- =========================================
- # APACHE
- ### Zatrzymywanie i uruchamianie apache, itp.
- # Demon apache nazywa się apache2
- # Uruchamianie
- systemctl start apache2.service
- # Zatrzymywanie
- systemctl stop apache2.service
- # Restart
- systemctl restart apache2.service
- # Konfiguracja uruchomienia automatycznego
- systemctl enable apache2.service
- systemctl disable apache2.service
- -------------
- ### Pliki konfiguracyjne
- # Główny plik konfiguracyjny
- /etc/apache2/apache2.conf
- # Dodatkowe pliki konfiguracyjne w podfolderach folderu
- /etc/apache2/
- # Katalog z logami
- /var/log/apache2/
- -------------
- ### Kolejność wczytywania plików
- # W jakim pliku jest zdefiniowana zmienna DirectoryIndex?
- /etc/apache2/mods-enabled/dir.conf
- -------------
- ### Serwer wirtualny na innym porcie
- # Załóż katalog /var/www/html8080 i załóż w nim witrynę (stronę WEB) w pliku index.html:
- -------------
- <!doctype html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Tytuł</title>
- </head>
- <body>
- Strona w katalogu /var/www/html8080
- </body>
- </html>
- -------------
- # a następnie w folderze /etc/apache2/sites-available
- # utwórz plik html8080.conf o zawartości:
- -------------
- Listen 8080
- <VirtualHost 127.0.0.1:8080>
- DocumentRoot /var/www/html8080
- </VirtualHost>
- -------------
- # Włącz serwer wirtualny poleceniem:
- a2ensite html8080
- # Przeładuj (reload) serwer apache i przetestuj serwer łącząc się z adresem:
- service apache2 reload
- # Otwórz strone:
- http://127.0.0.1:8080/
- # Wyłączenie i usunięcie serwera wirtualnego
- a2dissite html8080
- systemctl reload apache2
- rm /etc/apache2/sites-available/html8080.conf
- ------------
- ### Alias witryny
- #Utworzony zostanie alias do katalogu /var/www/html8080
- # W folderze /etc/apache2/sites-available utwórz plik o nazwie "alias.conf" o zawartości:
- ------------
- alias /aliaswitryny /var/www/html8080
- <Directory /var/www/html8080>
- Order allow,deny
- Allow from all
- </Directory>
- ------------
- # Włącz serwer wirtualny poleceniem:
- a2ensite alias
- #Przeładuj (reload) serwer apache i przetestuj serwer łącząc się z adresem
- service apache2 reload
- #Otwórz strone:
- http://127.0.0.1/aliaswitryny
- ------------
- ### Uwierzytelnianie dla strony dostępnej przez alias.
- #Przejdź do katalogu /var i tam wydaj polecenie utworzenia konta z hasłem:
- cd /var
- htpasswd -c user.pass kowalski
- #(kolejnych użytkowników bez „-c” - create - utwórz)
- #Otwórz plik alias.conf i doprowadź do następującej postaci:
- gedit /etc/apache2/sites-available/alias.conf &
- --------------
- alias /aliaswitryny /var/www/html8080
- <Directory /var/www/html8080>
- Satisfy All
- AuthType Basic
- AuthName Test
- AuthUserFile /var/user.pass
- Require valid-user
- Order allow,deny
- Allow from all
- </Directory>
- --------------
- # Przeładuj (reload) serwer apache
- service apache2 reload
- # i przetestuj stronę
- http://127.0.0.1/aliaswitryny
- # !!! Uwaga!!!: Proszę nie zapamiętywać hasła w przeglądarce.
- # !!! Uwaga!!!: Przekazywanie hasła w nieszyfrowanym połaczeniu jest bardzo złym pomysłem.
- # Dlatego nastepny przykład pokazuje jak skonfigurować połacznie SSL.
- --------------
- ### SSL
- # Wersja bardzo uproszczona.
- # Certfikat nie został potwierdzony w zaufanym centrum certfikacyjnym.
- # Przegladarki będą zgłaszały ostrzeżenia o niezaufanym wystawcy certyfikatu, lub podobne.
- ### Dodaj obsługę SSL komendami:
- a2ensite default-ssl
- a2enmod ssl
- systemctl restart apache2
- # Przetestuj działanie serwera WWW (protokół https).
- https://127.0.0.1/aliaswitryny
- # !!! Uwaga!!!: Proszę nie dodawać wyjatku o certyfikacie przeglądarce na stałe.
- # W obecnej konfiguracji można ciągle jednak uzyć połaczenia niszyfrowanego.
- # Procedura ponizej wymusza SSL.
- # Edytuj alias.conf:
- --------------
- alias /aliaswitryny /var/www/html8080
- <Directory /var/www/html8080>
- SSLRequireSSL
- Satisfy All
- AuthType Basic
- AuthName Test
- AuthUserFile /var/user.pass
- Require valid-user
- Order allow,deny
- Allow from all
- </Directory>
- --------------
- # i wydaj polecenie
- systemctl restart apache2
- # Uwaga: Dla witryny w środowisku produkcyjnych (nie na laboratorium), trzeba wczesniej wygenerować prawidłowy certyfikat i odpowiednio go instalować!!! Chodzi o zgodność nazw w DNS, itp.
- # Przetestuj (uwaga na pozostałości w cache przeglądarki):
- http://127.0.0.1/aliaswitryny
- https://127.0.0.1/aliaswitryny
- -----------
- ### Zakończenie
- # Wydaj polecenia (o ile nie zrobiono wcześniej)
- a2dissite html8080
- a2dissite alias
- a2dissite default-ssl
- a2dismod ssl
- #Usuń utworzone przez Ciebie pliki w katalogu /etc/apache2/sites-available: html8080.conf i alias.conf
- rm /etc/apache2/sites-available/html8080.conf
- rm /etc/apache2/sites-available/alias.conf
- #Usuń plik /var/user.pass, katalog /var/www/html8080 oraz info.php:
- rm /var/user.pass
- rm /var/www/html/info.php
- rm -R /var/www/html8080
- # Przeładuj serwer apache i sprawdź jego funkcjonowanie.
- systemctl restart apache2
- =========================================
- Wordpress
- #Zainstalowany zostanie w podkatalogu witryny głównej o nazwie "wordress".
- #Utworzenie bazy danych dla Wordpress
- mysql -u root -p
- CREATE DATABASE wordpress;
- GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
- FLUSH PRIVILEGES;
- #Powyższe można też wykonac przy pomocy phpMyAdmin
- #Pobranie Wordpress
- cd /var/www/html
- wget http://wordpress.org/latest.tar.gz
- tar -xzf latest.tar.gz
- chown -R www-data:www-data /var/www/html/wordpress
- ls -al /var/www/html/wordpress
- #Otwórz http://localhost/wordpress i wykonaj procedury instalacyjne Wordpress'a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement