Debian Sunucu Hazırlama-1 Sayfa (Debian 9 (Stretch) ile Apache, BIND, Dovecot, PureFTPD ve ISPConfig 3.1)

Bu öğreticide, ISPConfig 3.1’in yüklenmesi için bir Debian 9 sunucusunun (Apache2, BIND, Dovecot) nasıl hazırlanacağı ve ISPConfig’in nasıl yükleneceği gösterilmiştir. Web hosting kontrol paneli ISPConfig 3 bir web tarayıcısı üzerinden aşağıdaki hizmetleri yapılandırmanızı sağlar: Apache veya nginx web sunucusu, Postfix posta sunucusu, Courier veya Dovecot IMAP / POP3 sunucusu, MySQL, BIND veya MyDNS nameserver, PureFTPd, SpamAssassin, ClamAV, ve daha fazlası. Bu kurulum Apache’yi (nginx yerine), BIND ve Dovecot’u kapsar.

1 Ön Not

Bu eğitimde, sunucu1.ornek.com adresindeki ana bilgisayar adını 192.168.1.100 IP adresi ve 192.168.1.1 ağ geçidiyle kullanacağım. Bu ayarlar sizin için farklılık gösterebilir, bu nedenle uygun olduğunda bunları değiştirmeniz gerekir. Daha fazla ilerlemeden önce, Debian 9’un minimum kurulumuna sahip olmanız gerekir. Bu, Hosting sağlayıcınızdan bir Debian minimal görüntüsü olabilir veya temel sistemi kurmak için Minimal Debian Server öğreticisini kullanabilirsiniz.

2 SSH sunucusunu kurun (İsteğe bağlı)

Sistem kurulumu sırasında OpenSSH sunucusunu kurmadıysanız, şimdi yapabilirsiniz:

apt install ssh openssh-server

 

3 Bir kabuk metin düzenleyicisi yükleyin (İsteğe bağlı)

apt install nano vim-nox

Vi favori düzenleyicinizse, dosyaları düzenlemek için nano’yu aşağıdaki komutlarla değiştirin.

4 Ana Makine Adını Yapılandırma

Sunucunuzun ana makine adı “sunucu1.ornek.com” gibi bir alt alan olmalıdır. Alt alan adı olmayan “domain.com” gibi bir etki alanı adı, ana bilgisayar adı olarak kullanmayın; bu, posta kurulumunuzda sorunlara neden olur. Öncelikle, ana makine adını /etc/hosts dosyasında kontrol etmeli ve gerektiğinde değiştirmelisiniz. Satır şöyle olmalıdır: “IP Adresi – boşluk – etki alanı dahil tam ana bilgisayar adı – boşluk – alt alan adı”. sunucu1.ornek.com ana bilgisayar adı için dosya şöyle görünecektir:

nano /etc/hosts 127.0.0.1       localhost.localdomain   localhost
192.168.1.100   sunucu1.ornek.com     sunucu1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Ardından /etc/hostname dosyasını düzenleyin:

nano /etc/hostname

Bizim durumumuzda sadece alt alan kısmını içerecektir:

sunucu1

Son olarak, değişikliği uygulamak için sunucuyu yeniden başlatın:

reboot

 

Tekrar giriş yapın ve ana makine adının şu anda bu komutlarla doğru olup olmadığını kontrol edin:

hostname
hostname -f

Çıktı şu şekilde olacaktır:

root@sunucu1:/tmp# hostname
sunucu1
root@sunucu1:/tmp# hostname -f
sunucu1.ornek.com

5 Debian Kurulumunuzu Güncelleyin

Öncelikle, /etc/apt/sources.list’inizin strech / updates havuzunu içerdiğinden emin olun (bu, her zaman en yeni güvenlik güncellemelerini almanızı sağlar) ve bazı gerekli paketler olmadığından, katkısız ve ücretsiz olmayan depoların etkinleştirildiğinden emin olun. ana depoda.

nano /etc/apt/sources.list
deb http://ftp.tr.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.tr.debian.org/debian/ stretch main contrib non-free

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

Aşağıdaki komutu çalıştırın:

apt update

Apt paket veritabanını güncellemek için

apt upgrade

ve son güncellemeleri yükleyin (varsa).

6 Varsayılan Kabuğu (Shell’i) değiştirin

/ bin/sh /bin/dash için bir (sembolik bağlantı)symlink’tir, ancak /bin/bash, /bin/dash’e ihtiyacımız var. Bu yüzden bunu yapıyoruz:

dpkg-reconfigure dash Use dash as the default system shell (/bin/sh)? 

Bunu yapmazsanız, ISPConfig yüklemesi başarısız olur.

7 Sistem Saatini Senkronize Etme

Sistem saatini İnternet üzerinden bir NTP (ağ zaman protokolü) sunucusu ile senkronize etmek iyi bir fikirdir. Sadece çalıştır:

apt-get install ntp

ve sistem saatiniz her zaman senkronize olacaktır.

8 Postfix, Dovecot, MySQL, rkhunter ve Binutils’i yükleme

Postfix, Dovecot, MySQL, rkhunter ve Binutils’i tek bir komut ile yükleyebiliriz:

apt install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo

MariaDB üzerinden MySQL’i tercih ettiğinizde, “mysql-client mysql-server” ile yukarıdaki komutta “mariadb-client mariadb-server” paketlerini değiştirin.

Aşağıdaki sorular sorulacak:

General type of mail configuration: <-- Internet Site
System mail name: <-- sunucu1.ornek.com

MariaDB / MySQL kurulumunu güvenli hale getirmek ve test veritabanını devre dışı bırakmak için şu komutu çalıştırın:

mysql_secure_installation

Soruları şu şekilde cevaplayınız:

Change the root password? [Y/n] <-- y
New password: <-- Yeni MySQL root Şifresini Girin
Re-enter new password: <-- Yeni MySQL root Şifresini Tekrar Girin
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

 

Ardından, Postfix’te TLS / SSL ve gönderim bağlantı noktalarını açın:

nano /etc/postfix/master.cf

Gönderimi ve smtps bölümlerini aşağıdaki gibi uncomment ve gerekirse master.cf dosyasının bu bölümünün aşağıdakine benzemesi için çizgiler ekleyin.

[...]
submission inet n - - - - smtpd
 -o syslog_name=postfix/submission
 -o smtpd_tls_security_level=encrypt
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
 -o syslog_name=postfix/smtps
 -o smtpd_tls_wrappermode=yes
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]


Postfix'i daha sonra yeniden başlat:
service postfix restart

MySQL’in sadece localhost değil tüm arayüzleri dinlemesini istiyoruz. Bu nedenle, /etc/mysql/mariadb.conf.d/50-server.cnf dosyasını düzenliyoruz ve bind-address = 127.0.0.1 satırını yorumluyoruz ve sql-mode = “NO_ENGINE_SUBSTITUTION” satırını ekliyoruz:

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1

sql-mode="NO_ENGINE_SUBSTITUTION"

[...]

MariaDB’de parola kimlik doğrulama yöntemini yerel olarak ayarlayın, böylece root kullanıcısı olarak bağlanmak için daha sonra PHPMyAdmin’i kullanabiliriz:

echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root /etc/mysql/debian.cnf

 

dosyasını düzenleyin ve şifreyle başlayan satırlarda iki kez MYSQL / MariaDB kök(root) şifresini ayarlayın.

nano /etc/mysql/debian.cnf

Eklenmesi gereken MySQL root şifresi okumada gösterilmektedir, bu örnekte şifre “anadolupanteri” dir.

# Automatically generated for Debian scripts. DO NOT TOUCH! [client]

host = localhost

user = root

password = anadolupanteri

socket = /var/run/mysqld/mysqld.sock [mysql_upgrade]

host = localhost 

user = root

password = anadolupanteri

socket = /var/run/mysqld/mysqld.sock

basedir = /usr

 

‘Error in accept: Too many open files’ hatasını önlemek için şimdi MariaDB için daha yüksek açık dosya limitleri belirleyeceğiz.

Bir editörle /etc/security/limits.conf dosyasını açın:

nano /etc/security/limits.conf.

ve bu satırları dosyanın sonuna ekleyin

mysql soft nofile 65535
mysql hard nofile 65535

Ardından, mkdir komutuyla yeni bir dizin /etc/systemd/system/mysql.service.d/ oluşturun.

mkdir -p /etc/systemd/system/mysql.service.d/

ve içine yeni bir dosya ekleyin:

nano /etc/systemd/system/mysql.service.d/limits.conf

Aşağıdaki satırları bu dosyaya yapıştırın:

[Service]
LimitNOFILE=infinity

Dosyayı kaydedin ve nano düzenleyiciyi kapatın.

Ardından systemd'yi yeniden yükleriz ve MariaDB'yi yeniden başlatırız:

systemctl daemon-reload
service mysql restart

Şimdi ağın etkinleştirildiğini kontrol edin. Çalıştırın:

netstat -tap | grep mysql Çıktı şöyle görünmelidir:
root@sunucu1:/home/ortancasamuray# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 17776/mysqld
root@server1:/home/ortancasamuray#

 

9 Amavisd-new, SpamAssassin ve ClamAV'ı yükleyin

Amavisd-new, SpamAssassin ve ClamAV'ı yüklemek için

apt 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 libdbd-mysql-perl postgrey

ISPConfig 3 kurulumu, SpamAssassin filtre kitaplığını dahili olarak yükleyen amavisd kullanır, bu yüzden SpamAssassin'i biraz RAM'i serbest bırakabiliriz:

service spamassassin stop
systemctl disable spamassassin

9.1 Metronom XMPP Sunucusunu Kur (isteğe bağlı)

Bu adım, XMPP protokolüyle uyumlu bir sohbet sunucusu sağlayan Metronome XMPP Sunucusunu yükler. Bu adım isteğe bağlıdır, sohbet sunucusuna ihtiyacınız yoksa, bu adımı atlayabilirsiniz. Başka hiçbir ISPConfig işlevi bu yazılıma bağlı değildir.

Debian'daki Prosody paket deposunu ekleyin.

echo "deb http://packages.prosody.im/debian stretch main" > /etc/apt/sources.list.d/metronome.list
wget http://prosody.im/files/prosody-debian-packages.key -O - | sudo apt-key add -

Paket listesini güncelle:

apt update paketleri apt ile kurun.
apt install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks

 

luarocks install lpc

Metronome için bir kabuk kullanıcısı ekleyin.

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

Metronom'u / opt dizinine indirin ve derleyin.

cd /opt; git clone https://github.com/maranda/metronome.git metronome
cd ./metronome; ./configure --ostype=debian --prefix=/usr
make
make install.

Metronom şimdi / opt / metronome'a kuruldu