Zestaw narzędzi do zarządzania hostingiem stron www na naszym serwerze. Poza czystą instalką Debiana Squeeze dodamy również ISPConfig 3, ngix’a, Apache, Postfix’a, MySQL, Binda (DNS), FTP, SpamAssassin oraz ClamAV.
Podczas instalacji nazwiemy naszą maszyną server1 oraz dodamy nazwę domeny jako example.com. Po zainstalowaniu systemu edytujemy /etc/apt/sources.list, komentujemy CD-ROM jako źródło instalacji nowych pakietów oraz dodajemy:
1) Instalujemy SSH:
apt-get install ssh openssh-server
nano /etc/network/interfaces
Tak powinien wyglądać nasz plik:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Jeżeli chcemy potestować w sieci wewnętrznej, dodamy do naszej maszyny drugą kartę (ustawiamy ją jako sieć wewnętrzna) i dopisujemy do w/w pliku pod poprzednim coś takiego:
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.0.1
Oczywiście dobrze doinstalować DHCP, aby adresy przydzielały się same, jednak do naszego testu wystarczy przypisać ręcznie, np. 192.168.1.101 do maszyny w sieci obsługiwanej prze eth1. Jak to zrobić mamy tutaj: http://geek-admin.blogspot.com/2012/12/dhcp-automatyczne-przydzielanie-adresu.html .
Następnie restart kart:
/etc/init.d/networking restart
Następnie modyfikujemy plik hosts (tymczasowy nasz prosty DNS):
nano /etc/hosts
Powinien wyglądać mniej więcej tak:
127.0.0.1 localhost.localdomain localhost
echo server1.example.com > /etc/hostname
/etc/init.d/hostname.sh start
Na koniec:
hostname
hostname -f
3) Instalujemy Dotdeb (pakiety Debian’a):
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add –
Następnie robimy update systemu, aby wszystkie pakiety były najnowsze:
4) Ustawiamy domyślną powłokę na bash:
apt-get install ntp ntpdate
6) Instalacja: Postfix + Dovecot + Saslauthd + MySQL + phpMyAdmin + rkhunter + binutils:
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d sudo
1)General type of mail configuration: internet site
/etc/init.d/mysql restart
Możemy sprawdzić czy faktycznie baza nasłuchuje na wszystkich kartach:
netstat -tap | grep mysql
7) Instalujemy: Amavisd-new + SpamAssassin + Clamav
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
Stopujemy SpamAssassin usuwając z RAM’u jego biblioteki:
/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove
8) Instalacja Nginx + PHP5 (PHP-FPM) + Fcgiwrap
apt-get install nginx
Następnie usuwamy Apache (ponieważ na tym etapie nie jest potrzebny, a może stwarzać problemy):
Usuwamy również ewentualne powiązania do tych pakietów:
apt-get autoremove
Dodajemy teraz pakiet PHP wraz z CGI, potrzebny dla prawidłowej pracy Ngix:
apt-get install php5-fpm
PHP-FPM działa na porcie 9000.
Jeżeli chcemy dodać wsparcie PHP dla MySQL musimy dodać pakiet: php5-mysql.
Możemy przeszukać dostępne pakiety dla php5 wydajemy polecenie:
apt-cache search php5
Jako że dyski są tanie możemy dodać jeszcze kilka pakietów:
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Dodamy optymalizer PHP:
apt-get install php-apc
Następnie zrestartujemy PHP-FPM:
/etc/init.d/php5-fpm restart
Dodamy Fcgiwrap:
apt-get install fcgiwrap
apt-get install phpmyadmin
Na pytania odpowiadamy odpowiednio None oraz No.
Jako że Apache jest zainstalowany wraz z phpMyAdmin stopujemy go:
/etc/init.d/apache2 stop
Następnie usuwamy Apache2:
insserv -r apache2
/etc/init.d/nginx start
Po zainstalowaniu ISPCOnfig3 dostaniemy się do phpMyAdmin poprzez IP: http://server1.example.com:8081/phpMyAdmin
Jeżeli chcemy mieć dostęp przez alias phpMyAdmin lub phpmyadmin musimy dodać po zainstalowaniu ISPConfig3 w polu Directive w Ngix na karcie Opcje poniższe wpisy:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
Jeżeli nasz serwer będzie działał jako https musimy dodać fastcgi_param HTTPS on; do powyższego wpisu pod 127.0.0.1:9000;
Musimy dodać jeszcze do pliku config Ngix w sekcji http{} poniższy wpis:
## Detect when HTTPS is used
default off;
https on;
location /phpmyadmin {
Initial mailman password: hasło admina mailman
Plik ten musi zawierać poniższe wiersze, jeżeli ich nie ma dodajemy:
/etc/init.d/postfix restart
Jeżeli chcemy dodać aliasy(tak jak w phpmyadmin) dodajemy do Ngix’a do Directive w zakładce Opcje:
11) FTP oraz przydział wielkości dysku:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
następnie przechodzimy do edycji config’a:
nano /etc/default/pure-ftpd-common
W pliku muszą znaleźć się dwie linijki w identycznym stanie:
STANDALONE_OR_INETD=standalone
VIRTUALCHROOT=true
następnie edytujemy:
nano /etc/inetd.conf
komentujemy w nim linijkę:
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
i restart:
/etc/init.d/openbsd-inetd restart
Teraz skonfigurujemy sesje TLS:
echo 1 > /etc/pure-ftpd/conf/TLS
tworzymy certyfikat SSL:
mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout
/etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-
ftpd.pem
odpowiadamy na kilka pytań w trakcie tworzenia certyfikatu:
Country Name (2 letter code) [AU]: wpisujemy PL
State or Province Name (full name) [Some-State]: wpisujemy wojewodztwo
Locality Name (eg, city) []: miasto
Organization Name (eg, company) [Internet Widgits Pty Ltd]: nazwa naszej firmy
Organizational Unit Name (eg, section) []:oddzial
Common Name (eg, YOUR name) []: server1.example.com
Email Address []: nasz mail
Następnie wydajemy dwa polecenia:
Przydzielamy miejsce do ftp:
nano /etc/fstab
odnajdujemy wiersz:
# / was on /dev/sda1 during installation
UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1
Pozostawiamy UUID, system plików (ext3) taki jaki jest, kopiujemy wszystko co jest od errors.
quotaon -avug
quotacheck: Cannot stat old user quota file: No such file or
directory
quotacheck: Cannot stat old group quota file: No such file or
directory
quotacheck: Cannot stat old user quota file: No such file or
directory
quotacheck: Cannot stat old group quota file: No such file or
directory
quotacheck: Checked 335 directories and 3233 files
quotacheck: Old file not found.
quotacheck: Old file not found.
/dev/sda3 [/var]: user quotas turned on
12) Instalacja BIND’a (DNS):
bison debhelper
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*
15) Instalacja fail2ban:
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap,
port=”pop3,pop3s,imap,imaps”, protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5
16) Instalacja SquirrelMail:
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ / __ / _(_) /__
| |
--.| |_/ / | / / ___ _ __ | |_ _ __ _ _/ /<br style="margin: 0px; padding: 0px;"> | |
–. __/ | | / _ | '_ | _| |/ _` | |_ |_| |_/__/ / | | __/ (_) | | | | | | | (_| | ___
___/____/_| ____/___/|_| |_|_| |_|__, | ____/
__/ |
|___/
——————————————————————————–
>> Initial configuration
Operating System: Debian or compatible, unknown version.
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with
Tap in „quit” (without the quotes) to stop the installer.
Select language (en,de) [en]:
Installation mode (standard,expert) [standard]: Enter
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: Enter
MySQL server hostname [localhost]: Enter
MySQL root username [root]: Enter
MySQL root password []: hasło do bazy
MySQL database to create [dbispconfig]: Enter
MySQL charset [utf8]: Enter
Apache and nginx detected. Select server to use for ISPConfig: (apache,nginx) [apache]: ngix
Generating a 2048 bit RSA private key
……..+++
…….+++
writing new private key to 'smtpd.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ’.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]: Enter
State or Province Name (full name) [Some-State]: Enter
Locality Name (eg, city) []: Enter
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Enter
Organizational Unit Name (eg, section) []: Enter
Common Name (eg, YOUR name) []: Enter
Email Address []:Enter
Configuring Jailkit
Configuring SASL
Configuring PAM
Configuring Courier
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring nginx
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: Enter
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: Enter
Generating RSA private key, 4096 bit long modulus
…………………………………………………………………..++
…………………………………………………………………………………………………………++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ’.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]: Enter
State or Province Name (full name) [Some-State]: Enter
Locality Name (eg, city) []: Enter
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Enter
Organizational Unit Name (eg, section) []: Enter
Common Name (eg, YOUR name) []: Enter
Email Address []: Enter
Please enter the following 'extra’ attributes
to be sent with your certificate request
A challenge password []: Enter
An optional company name []: Enter
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services …
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 2463
* Stopping Postfix Mail Transport Agent postfix
…done.
* Starting Postfix Mail Transport Agent postfix
…done.
* Stopping SASL Authentication Daemon saslauthd
…done.
* Starting SASL Authentication Daemon saslauthd
…done.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
* Stopping ClamAV daemon clamd
…done.
* Starting ClamAV daemon clamd
Bytecode: Security mode set to „TrustSigned”.
…done.
* Stopping Courier authentication services authdaemond
…done.
* Starting Courier authentication services authdaemond
…done.
* Stopping Courier IMAP server imapd
…done.
* Starting Courier IMAP server imapd
…done.
* Stopping Courier IMAP-SSL server imapd-ssl
…done.
* Starting Courier IMAP-SSL server imapd-ssl
…done.
* Stopping Courier POP3 server…
…done.
* Starting Courier POP3 server…
…done.
* Stopping Courier POP3-SSL server…
…done.
* Starting Courier POP3-SSL server…
…done.
* Restarting Mailman master qrunner mailmanctl
* Waiting…
…fail!
The master qrunner lock could not be acquired because it appears as if another
master qrunner is already running.
…done.
* Reloading PHP5 FastCGI Process Manager php5-fpm
…done.
Reloading nginx configuration: nginx.
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -D -H -b -A -E -u 1000 -Y 1 -B
Installation completed.
18) Ewentualne błędy z wysyłaniem maila:
Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.
Link do formularza tutaj: https://beitadmin.pl/pomysly
Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).
Mam pytanie czy byłaby możliwośc skontaktować się z Panem może drogą mailową. Ponieważ chciałbym skonfigurować sobie na Debianie Nginx Php-fpm Mysql Phpmyadmin oraz Drupala, ale niestety narazie przegrywam zapewne robie błedy w konfiguracji
W jakim środowisku Chcesz to ustawić, co nie działa?