Dette er en Ubuntu 9,04 server setup, men kan anvendes på ældre versioner så godt og Debian til sandsynligvis.
Der er mange måder at setup sådan en server, men dette er min måde.
Jeg håber du på linuxtuts nyde dette, blot kopiere og indsætte, og du vil blive ved på ingen tid flat.
Og du velkommen til at starte et emne i Linux sektion for enhver og alle kommentarer og spørgsmål. (Jeg vil tilføje eller tage væk fra det, fordi jeg har lyst)
Nogle af funktionerne i denne opsætning er ..
1) Komplet LAMP Stack (apache, php, mysql, perl)
2) phpMyAdmin
3) ClamAV
4) memcached And The PHP5 memcache Modul
5) SSL-aktiveret
6) apache moduler "suexec omskrive ssl aktioner omfatter og deflatere" aktiveret
7) vsftpd (ftp server)
8) Awstats (med ekstra funktioner)
9) Webmin (Kontrolpanel)
The Perfect Server Setup Fortsættes, (del II)
10) Mail Server med Dovecot og Postfix integration
11) TorrentFlux (Dit eget SeedBox)
12) Moblock ("Moblock" er en ipfilter / PeerGuardian 2 for "linux".)
13) Jinzora Media Server (En kraftfuld web-baserede medier streaming server)
Tak linuxtuts.
BEMÆRK: Jeg bruger nano editor. Der er to kommandoer, som du skal vide for at bruge denne editor.
1) Ctrl + o --------- sparer
2) Ctrl + x --------- forlader editor (luk det)
Så altid Ctrl + o og derefter Ctrl + x, når dit færdige
Og gå videre grab "SecureCRT ®" Shh klient herfra. Dens et must have! (For mig alligevel, gør Putty og alt det andet ikke en chance med denne Shh klient.
Plus kan du se her for nogle meget nyttige tips / Og Tricks inden du begynder.
Når du installerer Ubuntu Server, når du kommer til software seletion kun vælge "openshh-server"
(Du kan også gøre det muligt for root login ved at køre)
Konfigurere netværket
Fordi Ubuntu installeret har konfigureret vores system for at få sin netværksindstillinger via DHCP, vi er nødt til at ændre det nu, fordi en server skal have en statisk IP-adresse. Rediger / etc / network / interfaces og tilpasse det til dine behov (i dette eksempel setup jeg vil bruge IP-adressen 192.168.1.19):
Code:
nano / etc / network / interfaces
Code:
# Denne fil beskriver netværksgrænseflader tilgængelig på dit system # og hvordan du aktiverer dem. For mere information, se interfaces (5). # Den loopback netværksinterface auto eth0 iface eth0 inet statisk adresse 192.168.1.19 netmask 255.255.255.0 net 192.168.1.0 broadcast 255.255.255.0 gateway 192.168.1.254
Derefter redigere / etc / hosts.
Gør det se sådan ud:
Code:
127.0.0.1 localhost.localdomain localhost 192.168.1.19 mail.b366alive.net mail # Følgende linier er ønskeligt for IPv6 værter:: 1 localhost IP6-localhost IP6-loopback fe00:: 0 IP6-localnet ff00:: 0 IP6-mcastprefix ff02:: 1 IP6-allnodes ff02:: 2 IP6-allrouters ff02:: 3 IP6-allhosts
Nu kører
Code:
echo mail.b366alive.net> / etc / hostname / etc / init.d / hostname.sh start
Genstart derefter dit netværk:
Code:
/ Etc / init.d / networking restart
Bagefter kører
Code:
værtsnavn værtsnavn-f
Begge skal vise mail.b366alive.net nu.
Derefter køre
at opdatere pakken apt-databasen og
Code:
aptitude safe-upgrade
Ændre standardindstillingerne Shell
/ Bin / sh er et symlink til / bin / dash vi dog behov / bin / bash, ikke / bin / bindestreg. Derfor vil vi gøre dette:
Code:
dpkg-reconfigure dash
"Installér dash som / bin / sh? <- Nej"
.................................................. ..............................
Deaktiver AppArmor
AppArmor er en sikkerhed udvidelse (svarende til SELinux), som skal give udvidede sikkerhed. Efter min mening behøver du ikke den til at opsætte et sikkert system, og det normalt forårsager flere problemer, end fordele (tænk på det når du har gjort en uge med fejlfindings-fordi nogle tjeneste ikke virkede som forventet, og så er du finde ud af, at alt var ok, var kun AppArmor årsag til problemet). Derfor vil jeg slå det fra. ! (FTW)
Vi kan deaktivere det sådan her:
Code:
/ Etc / init.d / AppArmor stop update-rc.d-f AppArmor fjerne aptitude fjerne AppArmor AppArmor-utils
Genstarte din computer!
Lader installere noget software "Alt i én kommando", Hurtigt nemt og hurtigt.
Code:
aptitude-y install ssh openssh-server ntp ntpdate mysql-client mysql-server openssl rkhunter binutils clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-streng -perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl kvote quotatool vlogger webalizer bygge-væsentlige autoconf automake1.9 libtool flex bison fail2ban perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl memcached php5-memcache php5-dev undergravende 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-cli php5-cgi libapache2-mod-fcgid Apache2-suexec php-pære php-auth php5-mcrypt mcrypt php5-imagick libmail-mbox-messageparser-perl libgd-graf-perl spamassassin ImageMagick libapache2-mod -suphp libgeo-ipfree-perl vsftpd python-crypto
Du vil blive stillet følgende spørgsmål:
"Ny adgangskode til MySQL" root "-bruger: <- yourrootsqlpassword"
"Gentag adgangskode til MySQL" root "-bruger: <- yourrootsqlpassword"
"Opret mapper til web-baseret administration? <- Nej"
"Web server til at omlægge automatisk: <- Apache2"
"Sæt database for phpmyadmin med dbconfig-common? <- Ja"
"Password af din database administrative bruger: <- yourrootsqlpassword"
"MySQL ansøgning password for phpmyadmin: <- yourrootsqlpassword"
.................................................. ..............................
Så skal du køre følgende kommando for at aktivere Apache-moduler suexec, omskrive, ssl, deflatere aktioner, og omfatter:
(Du kan enten gøre det det på denne måde, men jeg har fundet det ikke altid virker, så jeg gør det med den anden kommando)
Code:
a2enmod suexec omskrive ssl aktioner omfatter deflatering
Code:
a2enmod omskrive; a2enmod ssl, a2enmod aktioner a2enmod inkluderer a2enmod deflatering
Sikker phpMyAdmin ved at slette / etc / phpmyadmin / htpasswd.setup fil ...
Code:
rm-f / etc / phpmyadmin / htpasswd.setup
... og fjerne eller udkommentere de følgende afsnit i / etc / phpmyadmin / apache.conf:
Code:
nano / etc / phpmyadmin / apache.conf
Code:
[...] # # Godkend for opsætning # <Directory /usr/share/phpmyadmin/setup> # <IfModule mod_authn_file.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile / etc / phpmyadmin / htpasswd.setup # < / IfModule> # Kræv valid-user # </ Directory> [...]
Genstart Apache bagefter:
Code:
/ Etc/init.d/apache2 restart
Du kan få adgang til din phpMyAdmin panel ved at gå til Code:
http://yourserver.com/phpmyadmin eller http://192.168.1.19/phpmyadmin
Brug root og din mysql passwd til login.
.................................................. ....................
Hvis du ønsker at bruge "Kontingent" for dine brugere du bliver nødt til at redigere / etc / fstab fil .. (Mine ser sådan her ud (jeg har tilføjet, usrquota, grpquota til partition med mount punkt /):)
Her er mine
Code:
# / Etc / fstab: statisk fil system information. # # Brug 'vol_id - UUID' for at udskrive universelt entydigt id for en # enhed, hvilket kan benyttes med UUID = som en mere robust måde at navngive enheder #, der virker selv hvis diske er tilføjet og fjernet. Se fstab (5). # # <file System> <mount punkt> <type> <options> <dump> <pass> proc / proc proc defaults 0 0 # / var on / dev/mapper/VolGroup00-LogVol00 under installationen UUID = 4c5883d6-2.529-4.858-87e8-34f83df86c3c / EXT 4 relatime, fejl = remount-ro, usrquota, grpquota 0 1 # / boot var on / dev/sda1 under installationen UUID = fd8f5097-c4e3-4ba1-8f42-70f127f57768 / boot ext3 relatime 0 2 # swap var on / dev/mapper/VolGroup00-LogVol01 under installationen UUID = 67f232eb-243d-424e-880c-9667845c0667 ingen swap sw 0 0 / dev / scd0 / media/cdrom0 UDF, ISO9660 bruger, noauto, exec, utf8 0 0
Code:
touch / quota.user / quota.group chmod 600 / kvote .* mount-o remount /
Code:
quotacheck-avugm quotaon-avug
.................................................. ............
Vi ønsker MySQL til at lytte på alle grænseflader, ikke bare localhost, derfor har vi redigere / etc / mysql / my.cnf og udkommentere linjen binde-adresse = 127.0.0.1:
Code:
nano / etc / mysql / my.cnf
Code:
[...] # I stedet for at springe-netværk som standard er nu at lytte kun på # localhost som er mere kompatible og er ikke mindre sikker. # Binde-adresse = 127.0.0.1 [...]
Så vi genstarte MySQL:
Code:
/ Etc / init.d / mysql restart
Nu kontrollere, at netværk er aktiveret. Kør
Code:
netstat-tap | grep mysql
Outputtet skal se sådan ud:
root @ mail: ~ # netstat-tap | grep mysql
tcp 0 0 *: mysql *: * LISTEN 8474/mysqld
root @ mail: ~ #
.................................................. ..............................
Installer Jailkit
Jailkit er nødvendig, hvis du ønsker at chroot SSH-brugere. Det kan installeres som følger
Code:
wget http://olivier.sessink.nl/jailkit/jailkit-2.7.tar.gz tar xvfz jailkit-2.7.tar.gz cd jailkit-2.7. / configure make make install cd .. rm-rf jailkit-2.7 *
.................................................. ...............
OK, vi allerede installeret memcached And The PHP5 memcache Modul. Så lader teste vores indstillinger.
Check PHP5's Status ...
For at gøre dette, skaber vi den fil info.php i vores dokument root / var / www:
Code:
nano / var / www / info.php
Kopier og indsæt denne ...
Code:
<? Php phpinfo ();?>
Bagefter vi kalder filen i en browser: Code:
http://192.168.1.19/info.php
Som du kan se, har vi PHP 5.2.0 installeret ...
Memcached bør allerede kører. Du kan kontrollere, at ved at skrive
Code:
netstat-tap | grep memcached
Skal se nogenlunde sådan ud ...
server1: ~ # netstat-tap | grep memcached
tcp 0 0 localhost.localdo: 11211 *: * LISTEN 3092/memcached
server1: ~ #
Nu lader test memcache i vores browser ...
Code:
nano / var / www / memcachetest.php
Kopier og indsæt denne ...
Code:
<? Php $ memcache = ny Memcache; $ memcache-> connect ('localhost', 11.211) or die ("Kunne ikke forbinde"); $ version = $ memcache-> getVersion (); echo "Server version:". $ version ". <br/> \\ n"; $ tmp_object = ny stdClass; $ tmp_object-> str_attr = 'test'; $ tmp_object-> int_attr = 123; $ memcache-> sæt ('key', $ tmp_object, falsk, 10) or die ("Kunne ikke gemme data på serveren"); echo "Store data i cache (data udløber i 10 sekunder) <br/> \\ n"; $ get_result = $ memcache-> get ('tasten '); echo "Data fra cachen: <br/> \\ n"; var_dump ($ get_result);?>
Så jeg kalder filen i en browser Code:
http://192.168.1.19/memcachetest.php
.................................................. ..............................
Configureing Awstats ...
Code:
nano / etc/apache2/awstats.conf
Kopier og indsæt denne ...
Code:
Alias / awstatsclasses "/ usr / share / awstats / lib /" Alias / awstats-ikon / "/ usr / share / awstats / ikon /" Alias / awstatscss "/ usr / share / doc / awstats / eksempler / css" ScriptAlias / cgi-bin / / usr / lib / cgi-bin / ScriptAlias / awstats / / usr / lib / cgi-bin / Valg ExecCGI-MultiViews + SymLinksIfOwnerMatch
Nu, hvor vi definerer alle de grundlæggende indstilling, vil lade os få adgang til statistikkerne direkte over http, er vi nødt til at informere Apache2 om dette. Edit / etc/apache2/apache2.conf:
Code:
nano / etc/apache2/apache2.conf
og tilføje følgende linje i slutningen af filen:
Code:
Medtag / etc/apache2/awstats.conf
Nu reload Apache2:
Code:
/ Etc/init.d/apache2 reload
Ok, nu kan du give et første skud til Code:
http://www.mysite.org/awstats/awstats.pl
men du vil få følgende fejl:
Fejl: SiteDomain parameter ikke defineret i din config / domæne-fil. Du skal redigere den for at anvende denne version af awstats.
Det betyder egentlig, at vi skal indstille awstats.
Kom tilbage til arbejdet ...
På installere, awstats giver en standardkonfiguration fil med navnet / etc / awstats / awstats.conf. Kopier denne fil til / etc / awstats / awstats.www.mysite.org.conf
mysite.org er et eksempel, bruger dit eget domænenavn)
Code:
cp / etc / awstats / awstats.conf / etc / awstats / awstats.www.mysite.org.conf
og redigere filerne: / etc / awstats / awstats.conf og / etc / awstats / awstats.www.mysite.org.conf ved at ændre disse parametre til at se sådan her ud ...
Code:
nano / etc / awstats / awstats.conf
Og
Code:
nano / etc / awstats / awstats.www.mysite.org.conf
Code:
Logfil = "/ var/log/apache2/access.log" SiteDomain = "mysite.org" AllowToUpdateStatsFromBrowser = 1
Opdater dine statistikker med cron
I / etc / crontab tilføje
Code:
nano / etc / crontab
Code:
# Opdatere hver 10 min * / 10 * * * * root / usr / lib / cgi-bin / awstats.pl-config = toto.com-update> / dev / null
Thats grunden det, men hvis din smart du vil fortsætte med mig til at forbedre land og by beliggenhed oplysninger i din web analytics rapporter ... (FTW Jeg ved, hvem og hvor du er!)
Så lad os så komme pakkerne ..
Code:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz wget http:/ / geolite.maxmind.com / download / geoip / database / asnum / GeoIPASNum.dat.gz wget http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
Det gør det
Code:
hvis [! -D / usr / local / share / GeoIP]; derefter mkdir / usr / local / share / GeoIP fi
Så ....
Code:
mv GeoIP.dat.gz / usr / local / share / GeoIP / gunzip / usr / local / share / GeoIP / GeoIP.dat.gz mv GeoLiteCity.dat.gz / usr / local / share / GeoIP / gunzip / usr / local / share / GeoIP / GeoLiteCity.dat.gz mv GeoIPASNum.dat.gz / usr / local / share / GeoIP / gunzip / usr / local / share / GeoIP / GeoIPASNum.dat.gz mv GeoIPv6.dat.gz / usr / local / share / GeoIP / gunzip / usr/local/share/GeoIP/GeoIPv6.dat.gz
Så vi ...
Code:
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz tar-xvzf GeoIP-1.4.6.tar.gz cd ./GeoIP-1.4.6. / configure make make check sudo make install
Nu lader installere nogle Perl moduler ...
Kør ...
Så lader opgradere CPAN
Code:
installere Net:: IP
Code:
installere Net:: DNS
Afslut ved ...
Nu lader redigere vores "/ etc / awstats / awstats.conf og / etc / awstats / awstats.www.mysite.org.conf "Filer igen ... Ved at tilføje disse linjer til" Plugins "sektionen ....
Code:
LoadPlugin = "tooltips" 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 "
Thats det folk, gå opdatere awstats i din browser og se forskellen .....
Gå til awstats i din browser Code:
http://yourdomain.com/awstats/awstats.pl eller http://192.168.1.19/awstats/awstats.pl
.................................................. ..............................
Configureing vsftpd ..
Disse er nogle af dine muligheder her
ftpd_banner: Udskriver en velkomst besked, når nogen forbindelse til serveren.
hør her: Hvis aktiveret, vsftpd vil køre i standalone mode.
xferlog_enable: Hvis aktiveret, kan en logfil vil gemme detaljerede uploads og downloads.
connect_from_port_20: Denne indstilling styrer, om PORT stil dataforbindelser bruge port 20 på serveren.
hide_ids: Hvis aktiveret, vil alle bruger-og gruppe info være opført som "ftp".
max_client: Indstiller det maksimale antal af kunder lov til at blive tilsluttet. Virker kun i standalone mode.
max_per_ip: Indstiller det maksimale antal af kunder lov til at være tilsluttet fra samme IP-adresse. Også virker kun i standalone mode.
anon_root: Indstiller bibliotek som vsftpd vil forsøge at ændre sig i forbindelse med en anonym bruger logger ind
anonymous_enable: Aktiverer eller deaktiverer anonym adgang. Brug med forsigtighed.
anon_upload_enable: Hvis aktiveret, vil anonyme brugere være tilladt at uploade filer.
anon_mkdir_write_enable: Hvis aktiveret, vil anonyme brugere være tilladt at oprette nye mapper. Men for denne mulighed for at arbejde, din server skal have mulighed for anonyme uploade aktiveret og ftp * NIX Brugeren skal skriverettigheder på rodbiblioteket.
Code:
nano / etc / vsftpd.conf
Tilføj følgende linje (afkommentere linje) til vsftpd konfigurationsfilen:
Over config direktiv vil give lokale brugere at logge ind via ftp
Hvis du ønsker at give brugerne mulighed for at overføre filen, skal du tilføje følgende til filen:
[Code] write_enable = JA [/ code]
Af sikkerhedsmæssige du kan begrænse de lokale brugere til deres hjem mapper. Tilføj følgende til filen:
Code:
chroot_local_user = JA
Gem og luk filen.
Genstart vsftpd
Code:
/ Etc / init.d / vsftpd restart
logge ind på din ftp-server med Code:
ftp://yourdomain.com eller ftp://192.168.1.19
.................................................. ..............................
Oprette og Configureing Webmin, jeg kan lide det bedre end cPanel mig selv ...
Installere og opdatere Webmin via APT, redigere / etc / apt / sources.list-filen på dit system og tilføje linjen: (Dette er for ubuntu)
Code:
nano / etc / apt / sources.list
Code:
deb http://download.webmin.com/download/repository sarge contrib
Du bør også hente og installere min GPG-nøgle, som lageret er underskrevet, med kommandoerne:
Code:
cd / root wget http://www.webmin.com/jcameron-key.asc apt-key tilføje jcameron-key.asc
Du vil nu være i stand til at installere med kommandoerne:
Code:
apt-get update apt-get-y install Webmin
Nu kan du gå til Code:
https: / / yoursite.com: 10000 eller https: / / 192.168.1.19:10000
at få adgang til din server. (Login med rod og dit passwd)
(Bemærk venligst cpu skik på min server) Damn, at drenge godt!
Der er alle mulige moduler for Webmin, men vi er kun kommer til at installere et par ... (Du installerer det, du føler er nessary)
De to vi skal installere er "vsftpd" og "wbmclamav" ...
Kig på venstre side af Webmin og gå til
1) Webmin
2) Webmin Konfiguration
I "Webmin Configuration" sektionen vælge ...
3) Webmin moduler
check "Tredjeparts-modul fra" og tryk på knappen ved udgangen ...
4) Søg efter wbmclamav
Derefter ramte installere modulet. (Når du først køre "wbmclamav", vil du blive bedt om at tage backup af din konfiguration.)
5) Gentag processen for "vsftpd"-modulet.
UDFÆRDIGET! Nu har du en GUI til at scanne alle dine filer sætte den til at køre på en scedule mv. (Hvad nogensinde du vil)
Du har fuldstændig kontrol over alle aspekter af jer server nu via "Webmin" ...
Fortsat Her
Nyd .........
Fred ..................... linuxtuts
Bogmærker