Jest to Ubuntu 9.04 konfiguracji serwerów, ale mogą być używane na starszych wersjach, jak również i prawdopodobnie do Debiana.
Istnieje wiele sposobów na ustawienie takiego serwera, ale to jest mój sposób.
Mam nadzieję, że w linuxtuts korzystają z tego, wystarczy skopiować i wkleić, a będziesz przez nie w czasie mieszkanie.
I prosimy, aby rozpocząć temat w dziale Linux za wszelkie uwagi i pytania. (Dodam, lub zabrać z tego jak mi pasuje)
Niektóre z cech tej konfiguracji są ..
1) Kompletne LAMP (apache, php, mysql, perl)
2) phpMyAdmin
3) Clamav
4) memcached I memcache moduł PHP5
5) SSL
6) moduły apache "suexec przepisać ssl działania obejmują i korekta" aktywne
7) vsftpd (serwer ftp)
8) Awstats (z dodatkiem funkcji)
9) Webmin (Control Panel)
Perfect Server Setup Ciąg dalszy, (część II)
10) z serwera poczty Postfix Dovecot i integracji
11) TorrentFlux (Twój SeedBox)
12) moblock ("moblock" jest ipfilter / PeerGuardian 2 dla "linux").
13) Jinzora Media Server (potężny internetowych serwer multimediów strumieniowych)
Dziękuję linuxtuts.
UWAGA: Używam editer nano. Istnieją dwa polecenia, które musisz wiedzieć, aby skorzystać z tej editer.
1) Ctrl + o zapisuje ---------
2) Ctrl + x --------- wyjść editer (zamknij)
Więc zawsze Ctrl + o, a następnie Ctrl + x, gdy gotowy
I śmiało chwycić "SecureCRT ®" shh klienta tutaj. Jej musi mieć! (Dla mnie tak, putty i cała reszta nie mają szans z tym shh klienta.
Plus możesz zajrzeć tutaj kilka porad dla bardzo przydatne / i sztuczki przed rozpoczęciem pracy.
Po zainstalowaniu Ubuntu Server, gdy przyjdziesz do seletion oprogramowania tylko wybrać "openshh-serwer"
(Można również włączyć logowanie za pomocą polecenia root)
Konfiguracja sieci
Ponieważ instalator Ubuntu ma system skonfigurowany, aby jego ustawienia sieciowe przez DHCP, musimy to zmienić, ponieważ teraz serwer powinien mieć statyczny adres IP. Edycja / etc / network / interfaces i dostosować go do własnych potrzeb (w tej konfiguracji przykład użyć adresu IP 192.168.1.19):
Kod:
nano / etc / network / interfaces
Kod:
# Ten plik opisuje sieciowe dostępne w systemie # i jak je uaktywnić. Aby uzyskać więcej informacji, zobacz interfaces (5). # Interfejs sieci loopback auto eth0 iface eth0 inet static adres 192.168.1.19 netmask 255.255.255.0 broadcast sieci 192.168.1.0 255.255.255.0 brama 192.168.1.254
Następnie / etc / hosts.
Żeby wyglądało tak:
Kod:
127.0.0.1 localhost.localdomain localhost 192.168.1.19 mail.b366alive.net mail # Poniższe linie są potrzebne do IPv6 hosts:: 1 localhost IP6-localhost loopback fe00-IP6:: 0 IP6-localnet ff00:: 0 IP6-mcastprefix ff02:: 1 IP6-allnodes ff02:: 2 IP6-allrouters ff02:: 3 IP6-allhosts
Teraz uruchomić
Kod:
echo mail.b366alive.net> / etc / hostname / etc / init.d / hostname.sh start
Następnie ponownie uruchom sieci:
Kod:
/ Etc / init.d / networking restart
Następnie uruchom
Obie strony powinny wykazać mail.b366alive.net teraz.
Następnie uruchom
aktualizacja bazy danych i pakiet apt
Kod:
aptitude safe-upgrade
Zmiana domyślnego Shell
/ Bin / sh jest dowiązaniem do / bin / dash, jednak musimy / bin / bash nie / bin / dash. Dlatego też należy:
Kod:
dpkg-reconfigure dash
"Instalacja w desce rozdzielczej / bin / sh? <- Nie"
.................................................. ..............................
Wyłączyć AppArmor
AppArmor jest rozszerzeniem bezpieczeństwa (podobne do SELinux), które powinny zapewnić większy stopień bezpieczeństwa. Moim zdaniem nie trzeba go skonfigurować bezpieczny system, a to zazwyczaj powoduje więcej problemów niż korzyści (myśleć po wykonaniu tygodniu rozwiązywania problemów, ponieważ niektóre usługi nie działa zgodnie z oczekiwaniami, a następnie dowiedzieć się, że wszystko jest ok, tylko AppArmor, który jest przyczyną problemu). Dlatego też wyłączyć. ! (FTW)
Możemy ją wyłączyć w ten sposób:
Kod:
/ Etc / init.d / stop apparmor update-rc.d-f apparmor usunąć apt-get remove apparmor apparmor-utils
Uruchom ponownie komputer!
Pozwala zainstalować jakiś program "Wszystko w jednym wierszu" Fast szybkie i łatwe.
Kod:
apt-get-y install ssh ntp openssh-server mysql-client ntpdate rkhunter openssl mysql-server binutils clamav zoo rozpakowywać clamav-daemon bzip2 arj nomarcha lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs libio demon-string -perl libio-gniazdo-ssl-perl libnet-ident-perl zip libnet-dns-perl quotatool kwoty webalizer vlogger build-essential autoconf automake1.9 libtool flex bison Fail2ban libnet-ssleay perl perl-openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl php5-memcached memcache php5-dev subversion apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5 -mysql php5-imap phpmyadmin php5-cgi php5-cli libapache2-mod-fcgid apache2-suexec php php-gruszka-auth-php5 php5-mcrypt mcrypt Imagick libmail-mbox-messageparser-perl libgd-graf-perl imagemagick spamassassin libapache2-mod -suphp libgeo-ipfree-perl python-crypto vsftpd
Zostaniesz poproszony o następujące pytania:
"Nowe hasło do MySQL" root ": <- yourrootsqlpassword"
"Powtórz hasło do MySQL" root ": <- yourrootsqlpassword"
"Tworzenie katalogów do podawania internetowe <- nie"
"Serwer sieci Web, aby ponownie skonfigurować automatycznie: <- apache2"
"Konfiguracja bazy danych do phpmyadmin z dbconfig-common <- Tak"
"Hasło bazy danych administracyjnych użytkownika: <- yourrootsqlpassword"
"MySQL hasło wniosek o phpmyadmin: <- yourrootsqlpassword"
.................................................. ..............................
Następnie uruchom następujące polecenie, aby umożliwić Moduły Apache suexec, przepisać, ssl, korekta działania, i obejmuje:
(Można zrobić to tak, ale znalazłem to nie zawsze działa, więc robię to z drugiego polecenia)
Kod:
a2enmod suexec przepisać ssl działania obejmują korekta
Kod:
a2enmod przepisać; a2enmod ssl; a2enmod działań; a2enmod zawierać; a2enmod korekta
phpMyAdmin Secure poprzez usunięcie / etc / phpmyadmin / htpasswd.setup pliku ...
Kod:
rm-f / etc / phpmyadmin / htpasswd.setup
... i usunąć lub zakomentować następującą sekcję w / etc / phpmyadmin / apache.conf:
Kod:
nano / etc / phpmyadmin / apache.conf
Kod:
[...] # # # Zezwolenie na ustawienie <Directory /usr/share/phpmyadmin/setup> # <IfModule mod_authn_file.c> AuthType Basic AuthName # # phpMyAdmin Setup "# AuthUserFile / etc / phpmyadmin / htpasswd.setup # < / IfModule> # Wymagaj valid-user # </ Directory> [...]
Potem restart Apache:
Kod:
/ Etc/init.d/apache2 restart
Możesz przejść do panelu phpMyAdmin, przechodząc do Kod:
http://yourserver.com/phpmyadmin lub http://192.168.1.19/phpmyadmin
Użyj root i MySQL passwd się zalogować.
.................................................. ....................
Jeśli chcesz korzystać "Kwota" dla użytkowników, musisz edytować / etc / fstab .. (u mnie wygląda tak (dodałem usrquota, grpquota na partycję z punktem montowania /):)
Oto moje
Kod:
# / Etc / fstab: statyczna informacja o systemie plików. # # Użycie "vol_id - uuid", aby wydrukować powszechnie unikatowy identyfikator urządzenia #, co może być używany z UUID = jako bardziej wydajny sposób na nazwę urządzenia, które działa nawet # jeśli dyski są dodawane i usuwane. Zobacz fstab (5). # # pliku> system> <mount point> <typ> <opcje> <dump> <pass> proc / proc proc defaults 0 0 # / był na / dev/mapper/VolGroup00-LogVol00 podczas instalacji UUID = 4c5883d6-2529-4858-87e8-34f83df86c3c / ext4 relatime, błędy = remount-ro, usrquota, grpquota 0 1 # / boot był na / dev/sda1 UUID = podczas instalacji fd8f5097-c4e3-4ba1-8f42-70f127f57768 / boot ext3 relatime 0 2 # swap na stronę / dev/mapper/VolGroup00-LogVol01 podczas instalacji UUID = 67f232eb-243d-424e-880c-none swap sw 9667845c0667 0 0 / dev/scd0 / media/cdrom0 udf, iso9660 user, noauto, exec, utf8 0 0
Kod:
touch / quota.user / quota.group chmod 600 / kontyngent .* mount-o /
Kod:
quotacheck-avugm quotaon-avug
.................................................. ............
Chcemy MySQL słuchać na wszystkich interfejsach, a nie tylko lokalnym, dlatego też edytować / etc / mysql / my.cnf i skomentuj line bind-address = 127.0.0.1:
Kod:
nano / etc / mysql / my.cnf
Kod:
[...] # Zamiast skip-networking domyślnie jest teraz słuchać tylko na localhost # co jest bardziej zgodne i nie jest mniej bezpieczne. # Bind-address = 127.0.0.1 [...]
Potem restart MySQL:
Kod:
/ Etc / init.d / mysql restart
Teraz sprawdzić, czy sieć jest aktywna. Biegać
Kod:
netstat-tap | grep mysql
Wyjście powinno wyglądać tak:
root @ mail: ~ # netstat-tap | grep mysql
tcp 0 0 *: mysql *: * LISTEN 8474/mysqld
root @ mail: ~ #
.................................................. ..............................
Zainstalować Jailkit
Jailkit jest potrzebne tylko jeśli chcesz chroot SSH użytkowników. Można go zainstalować w następujący sposób
Kod:
wget tar http://olivier.sessink.nl/jailkit/jailkit-2.7.tar.gz xvfz jailkit-2.7.tar.gz cd jailkit-2.7. / configure make make install cd .. rm-rf jailkit-2.7 *
.................................................. ...............
OK, mamy już zainstalowane memcached I memcache moduł PHP5. Więc pozwala przetestować nasze ustawienia.
Sprawdzić jego stan obecny PHP5 ...
Aby to zrobić, tworzymy plik info.php w naszym katalogu głównego / var / www:
Kod:
nano / var / www / info.php
Skopiuj i wklej ten ...
Kod:
<? Php phpinfo ();?>
Potem, nazywamy to plik w przeglądarce: Kod:
http://192.168.1.19/info.php
Jak widać, mamy zainstalowane PHP 5.2.0 ...
Memcached powinna być już uruchomiona. Aby sprawdzić, wpisując
Kod:
netstat-tap | grep memcached
Powinna wyglądać mniej więcej tak ...
serwer1: ~ # netstat-tap | grep memcached
tcp 0 0 localhost.localdo: 11211 *: * LISTEN 3092/memcached
serwer1: ~ #
Teraz pozwala memcache test w naszej przeglądarce ...
Kod:
nano / var / www / memcachetest.php
Skopiuj i wklej ten ...
Kod:
<? Php $ memcache = new Memcache; $ memcache-> connect ('localhost', 11211) or die ("Nie można się połączyć"); $ wersja = $ memcache-> getVersion (); echo "wersji serwera:". $ Wersja ". <br/> \\ n"; $ tmp_object = new stdClass; $ tmp_object-> str_attr = "test"; $ tmp_object-> int_attr = 123; $ memcache-> set ('klucz', $ tmp_object, false, 10) or die ("Nie można zapisać danych na serwerze"); echo "Przechowywanie danych w pamięci podręcznej (dane wygasa w ciągu 10 sekund) <br/> \\ n"; $ get_result = $ memcache-> get ('klucz '); echo "Dane z cache: <br/> \\ n"; var_dump ($ get_result);?>
Wtedy połączenie tego pliku w przeglądarce Kod:
http://192.168.1.19/memcachetest.php
.................................................. ..............................
Awstats Configureing ...
Kod:
nano / etc/apache2/awstats.conf
Skopiuj i wklej ten ...
Kod:
Alias / awstatsclasses "/ usr / share / awstats / lib /" Alias / awstats-icon / "/ usr / share / awstats / ikony /" Alias / awstatscss "/ usr / share / doc / awstats / przykłady / css" ScriptAlias / cgi-bin / / usr / lib / cgi-bin / ScriptAlias / awstats / / usr / lib / cgi-bin / Opcje ExecCGI-MultiViews + SymLinksIfOwnerMatch
Teraz, kiedy zdefiniować wszystkie podstawowe ustawienia, które pozwolą nam uzyskać dostęp do statystyk bezpośrednio przez protokół HTTP, musimy poinformować o tym apache2. Edycja / etc/apache2/apache2.conf:
Kod:
nano / etc/apache2/apache2.conf
i dodać następujący wiersz na końcu pliku:
Kod:
Include / etc/apache2/awstats.conf
Teraz, przeładowanie apache2:
Kod:
/ Etc/init.d/apache2 reload
Ok, teraz możesz podać pierwszy strzał do Kod:
http://www.mysite.org/awstats/awstats.pl
ale będzie się następujący błąd:
Błąd: nie określono parametrów SiteDomain w config / plik domeny. Musisz go edytować za pomocą tej wersji AWStats.
Że w zasadzie oznacza, że musimy skonfigurować awstats.
Powrót do pracy ...
W instalacji, awstats zapewnia konfiguracji plik o nazwie / etc / awstats / awstats.conf. Skopiuj ten plik do / etc / awstats / awstats.www.mysite.org.conf
mysite.org jest przykład, wykorzystać własną domenę)
Kod:
cp / etc / awstats / awstats.conf / etc / awstats / awstats.www.mysite.org.conf
i edytować pliki: / etc / awstats / awstats.conf i / etc / awstats / awstats.www.mysite.org.conf przez zmianę tych parametrów wyglądać tak ...
Kod:
nano / etc / awstats / awstats.conf
I
Kod:
nano / etc / awstats / awstats.www.mysite.org.conf
Kod:
LogFile = "/ var/log/apache2/access.log" SiteDomain = "mysite.org" AllowToUpdateStatsFromBrowser = 1
Zaktualizować statystyki z cron
W / etc / crontab dodaj
Kod:
nano / etc / crontab
Kod:
# Update co min * 10 / 10 * * * * root / usr / lib / cgi-bin / awstats.pl-config = toto.com-update> / dev / null
Ów w zasadzie, ale jeśli będzie silny prowadzić ze mną w celu poprawy państwa i informacji o lokalizacji miasta z analityki internetowej sprawozdań ... (FTW wiem, kto i gdzie jesteś!)
Następnie pozwala uzyskać pakietów ..
Kod:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz wget wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz http:/ / geolite.maxmind.com / download / GeoIP / bazy danych / asnum / http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz wget GeoIPASNum.dat.gz
W tym
Kod:
if [! -D / usr / local / share / GeoIP], a następnie mkdir / usr / local / share / GeoIP fi
Następnie ....
Kod:
GeoIP.dat.gz mv / usr / local / share / GeoIP / gunzip / usr / local / share / GeoIP / GeoIP.dat.gz GeoLiteCity.dat.gz mv / usr / local / share / GeoIP / gunzip / usr / local / share / GeoIP / GeoLiteCity.dat.gz GeoIPASNum.dat.gz mv / usr / local / share / GeoIP / gunzip / usr / local / share / GeoIP / GeoIPASNum.dat.gz GeoIPv6.dat.gz mv / usr / local / share / GeoIP / gunzip / usr/local/share/GeoIP/GeoIPv6.dat.gz
Potem ...
Kod:
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz-xvzf GeoIP tar-1.4.6.tar.gz cd ./GeoIP-1.4.6 /. configure make make sudo make install sprawdzić
Teraz pozwala zainstalować kilka modułów Perla ...
Uruchom ...
Następnie umożliwia upgrade CPAN
Kod:
zainstalować Net:: IP
Kod:
zainstalować Net:: DNS
Wyjść ...
Teraz pozwala edytować nasz "/ etc / awstats / awstats.conf i / etc / awstats / awstats.www.mysite.org.conf "Pliki znowu ... Przez dodanie tych linii do" plugins "punkt ....
Kod:
LoadPlugin = "podpowiedzi" LoadPlugin = "GeoIP GEOIP_STANDARD / usr / local / share / GeoIP / GeoIP.dat" LoadPlugin = "geoip_city_maxmind GEOIP_STANDARD / usr / local / share / GeoIP / GeoLiteCity.dat" LoadPlugin = "geoip_org_maxmind GEOIP_STANDARD / usr / local / share / GeoIP / GeoIPASNum.dat "LoadPlugin =" hostinfo "
To tyle ludzi, do aktualizacji awstats w przeglądarce i zobacz różnicę .....
Przejdź do awstats w przeglądarce Kod:
http://yourdomain.com/awstats/awstats.pl lub http://192.168.1.19/awstats/awstats.pl
.................................................. ..............................
Configureing vsftpd ..
Oto niektóre z dostępnych opcji o
ftpd_banner: Wyświetla komunikat powitalny, gdy ktoś łączy się z serwerem.
słuchaj: Jeśli opcja jest włączona, vsftpd będzie działać w trybie autonomicznym.
xferlog_enable: Jeśli opcja jest włączona, plik dziennika przechowuje szczegółowe dodane i pliki do pobrania.
connect_from_port_20: Ta opcja czy PORT styl używać połączenia danych port 20 na serwerze.
hide_ids: Jeśli opcja jest włączona, wszystkie grupy użytkowników i informacje mają być podane jako "ftp".
max_client: Ustawia maksymalną liczbę klientów, które można podłączyć. Działa tylko w trybie autonomicznym.
max_per_ip: Ustawia maksymalną liczbę klientów, które można podłączyć z tego samego adresu IP. Ponadto, działa tylko w trybie autonomicznym.
anon_root: Ustawia katalog vsftpd będzie starał się zmienić w przypadku anonimowego użytkownika zaloguje
anonymous_enable: Włącza lub wyłącza dostęp anonimowy. Zalecamy ostrożność.
anon_upload_enable: Jeśli opcja jest włączona, anonimowi użytkownicy będą mogły przesyłać pliki.
anon_mkdir_write_enable: Jeśli opcja jest włączona, anonimowi użytkownicy będą mogły tworzyć nowe foldery. Jednakże, w tym możliwość pracy, serwer musi mieć możliwość anonimowy upload aktywne i ftp użytkownika * NIX musi zapisu w katalogu nadrzędnym.
Kod:
nano / etc / vsftpd.conf
Dodaj następujący wiersz (linia odkomentować) do vsftpd plik konfiguracyjny:
Powyżej dyrektywy config pozwoli użytkownikom lokalnym, aby zalogować się przez ftp
Jeśli chciałbyś, aby umożliwić użytkownikom przesyłanie plików, należy dodać następujące sprawy:
[code] write_enable = yes [/ code]
Dla bezpieczeństwa może ograniczyć lokalnych użytkowników do swoich katalogów domowych. Dodać następujące sprawy:
Kod:
chroot_local_user = YES
Zapisz i zamknij plik.
Ponownie uruchomić vsftpd
Kod:
/ Etc / init.d / vsftpd restart
logowanie na serwer ftp z Kod:
ftp://yourdomain.com lub ftp://192.168.1.19
.................................................. ..............................
Instalacji i Configureing Webmin, lubię to lepiej niż ja ... cPanel
Instalacji i aktualizacji Webmin przez APT, / etc / apt / sources.list w systemie i dodaj linię: (To jest dla ubuntu)
Kod:
nano / etc / apt / sources.list
Kod:
sarge contrib deb http://download.webmin.com/download/repository
Należy również pobrać i zainstalować mój klucz GPG do repozytorium, z którym zostanie podpisana, z polecenia:
Kod:
cd / root wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc
Dzięki temu będzie w stanie zainstalować z polecenia:
Kod:
apt-get update apt-get-y zainstalować webmin
Teraz możesz iść do Kod:
https: / / yoursite.com: 10000 lub https: / / 192.168.1.19:10000
dostęp do serwera. (Zaloguj się root i swoje hasło)
(Uwaga: użycie procesora na moim serwerze) Kurde, że chłopcy dobrze!
Istnieją różnego rodzaju modułów Webmin, ale jesteśmy tylko będzie zainstalować kilka ... (Zainstalować, co czujesz jest nessary)
Dwa mamy zamiar zainstalować to "vsftpd" i "wbmclamav" ...
Patrzeć na lewej stronie i przejść do Webmin
1) Webmin
2) Webmin Konfiguracja
W "Webmin konfiguracji" wybrać ...
3) modułów Webmin
sprawdzić "Third party z modułu" i naciśnij przycisk na końcu ...
4) Szukaj wbmclamav
następnie naciśnij zainstalować moduł. (Przy pierwszym uruchomieniu "wbmclamav", będzie zobowiązany do tworzenia kopii zapasowych konfiguracji.)
5) Powtórz ten proces dla "vsftpd" modułu.
DONE! Teraz masz GUI do skanowania wszystkich plików ustawiony do pracy w scedule itp.. (Co-kiedykolwiek chcesz)
Masz pełną kontrolę nad każdym aspektem serwera można teraz poprzez "Webmin" ...
Ciąg dalszy Tutaj
Cieszyć .........
Pokój ..................... linuxtuts
Zakładki