Kategori arşivi: Debian 11

En Kolay Mail Sunucusu Nasıl Kurulur?

Bazı VPS sağlayıcılarının spam e-posta gönderimine karşı olarak mail gönderim portlarını ön tanımlı olarak kapattıklarını hatırlatayım, yani abi ben kurdum ama e-posta gönderip alamıyorum diyorsanız sağlayıcınız ile ilgilidir ve destek ile iletişime geçmeniz gerekmektedir.

Engelleme olmayan bir sağlayıcı arıyorsanız, bakacağınız adres https://www.ilkbyte.com/ olmalı.

mail sunucusu nasıl kurulur, vps üstüne mail sunucusu kurulumu

Bu makalede, sistemde yer alacak olan mail komutuyla programatik olarak posta gönderebileceğimiz basit bir Postfix sunucusu kuracağız. Gerçek ve tam işlevsel bir posta sunucusuna sahip olmak için kullanıcıların gelen kutularını okuyup uzaktan posta gönderebilecekleri bir posta istemcisine giriş yapabilmeleri gerekiyor.

Bu amaca ulaşmak için bizim Dovecot’a ihtiyacımız var. Dovecot, sunucu tarafından alınan postaları depolayabilir, kullanıcı hesaplarını doğrulayabilir ve postayla etkileşim kurabilir.

Eğer bir gelen kutusu kuruyorsak, spam koruma yazılımı olan spamassassin gibi bir yazılımı da kuracağız böylece spam e-postalarda gelmeyecek.

apt install mailutils postfix dovecot-imapd dovecot-sieve spamassassin spamc
ShellScript

Kurulum tamamlandıktan sonra e-posta için kullanılacak alt alan adı için SSL ayarlanacak isterseniz Acme.sh ile Ücretsiz SSL Sertifikası Nasıl Alınır ile isterseniz de Let’s Encrypt ile Web Server Yapılandırma ile bu işi kolayca yapabilir.

Ayrıca, alan adınızı nereden aldıysanız artık onun sitesinden ve/veya DNS sunucusunda iki küçük DNS kaydına ihtiyacımız var;

  • Bir MX kaydı, “@” için ekleme yapın, örneğin mertcangokgoz.com olarak tanımlayın.
  • Bir CNAME kaydı, Ana bilgisayar alanı: mail.example.org.
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.org/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.org/privkey.pem
ssl_min_protocol = TLSv1.2
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED
ssl_prefer_server_ciphers = yes
ssl_dh = </usr/share/dovecot/dh.pem
auth_mechanisms = plain login
auth_username_format = %n

protocols = $protocols imap

userdb {
    driver = passwd
}
passdb {
    driver = pam
}

mail_location = maildir:~/Mail:INBOX=~/Mail/Inbox:LAYOUT=fs
namespace inbox {
    inbox = yes
    mailbox Drafts {
    special_use = \Drafts
    auto = subscribe
}
    mailbox Junk {
    special_use = \Junk
    auto = subscribe
    autoexpunge = 30d
}
    mailbox Sent {
    special_use = \Sent
    auto = subscribe
}
    mailbox Trash {
    special_use = \Trash
}
    mailbox Archive {
    special_use = \Archive
}
}

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
}
}

protocol lda {
  mail_plugins = \$mail_plugins sieve
}
protocol lmtp {
  mail_plugins = \$mail_plugins sieve
}
plugin {
	sieve = ~/.dovecot.sieve
	sieve_default = /var/lib/dovecot/sieve/default.sieve
	sieve_dir = ~/.sieve
	sieve_global_dir = /var/lib/dovecot/sieve/
}
ShellScript

Hemen ardından spamlar için /var/lib/dovecot/sieve/default.sieve içerisine bir yapılandırma uygulayalım.

echo "require [\"fileinto\", \"mailbox\"];
if header :contains \"X-Spam-Flag\" \"YES\"
        {
                fileinto \"Junk\";
        }"
ShellScript

Bu işlemden sonra, e-postalara erişecek olan kullanıcıyı ve buna bağlı grubu oluşturmalıyız ardından sieve yapılandırmasını güncellemeliyiz.

grep -q '^vmail:' /etc/passwd || useradd vmail
chown -R vmail:vmail /var/lib/dovecot
sievec /var/lib/dovecot/sieve/default.sieve
ShellScript

Daha sonra, Dovecot için pam kimlik doğrulamayı etkinleştirmemiz gerekiyor.

echo "auth    required        pam_unix.so nullok
account required        pam_unix.so" >> /etc/pam.d/dovecot
ShellScript

Postfix’e kullanıcıların/parolaların kimlik doğrulaması için Dovecot’a bakmasını söylememiz gerekiyor /var/spool/postfix/private/auth içerisine aşağıdaki değişikliği uygulayın.

postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_type = dovecot'
postconf -e 'smtpd_sasl_path = private/auth'
postconf -e 'mailbox_command = /usr/lib/dovecot/deliver'
ShellScript

Postfix’in posta akışını spamassassin üzerinden yönlendirebilmesi için /etc/postfix/master.cf dosyasını değiştireceğiz. Varsayılan yapılandırmayı kullanmayacağız silin gitsin ve aşağıdaki komutu çalıştırın.

echo "smtp unix - - n - - smtp
smtp inet n - y - - smtpd
  -o content_filter=spamassassin
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_auth_only=yes
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
spamassassin unix -     n       n       -       -       pipe
  user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f \${sender} \${recipient}" >> /etc/postfix/master.cf
ShellScript

İşlem tamam, geleneksel yöntem ile mail sunucunuz hazır, bu işlemler neticesinde sunucunuz üzerinden e-posta gönderebilirsiniz. Çok az sayıda e-posta atıyorsanız işinize oldukça yarar, diğer amaçlar için kullanılmasını önermem.

Debian Desktop Kurulumu: Yeni Başlayanlar için Rehber

Bu rehber Debian işletim sistemini masaüstünde kullanmak isteyen arkadaşlar için oluşturulmuştur. Güncel Debian işletim sistemini tercih ederek kurulumlarınızı gönül rahatlığı ile yapabilirsiniz, Dizüstü bilgisayarlarınıza kurulum yapacaksanız mümkünse bilgisayarınızı kablolu olarak internete bağlayınız.

Bildiğiniz gibi Debian desktop kurulumları sırasında Wifi sürücüleri sistem içerisinde gelmemektedir. Kurulum sırasında ayrıca sürücülerin yüklenmesi beklenmelidir.

Debian Desktop Kurulum Adımları

İndirdiğimiz imaj dosyasının USB’ye yazdırılması, işlemdeki ilerlemeyi takip etmek amacıyla pv kullanılacaktır.

sudo apt install pv
ShellScript

USB yazdırma işlemine geçelim, burada /dev/sdb kullanacağınız USB belleğin yolu olduğunu unutmayın.

sudo dd if=debian-desktop-amd64.iso | pv | sudo dd of=/dev/sdb
ShellScript

NOT: imaj kalıbının sürümleri kullanacağınız desktop sürümlerine göre değişiklik gösterebilir.

USB ye yazdırma işlemi tamamlandıktan hemen sonra sistem yeniden başlatılır ve Kurulum aşamasına geçilir.

Language: English Keyboard: Turkish Timezone: Istanbul olarak ayarlanır.

Disk yapılandırması kişiye özel bırakılmıştır. Şifreleme seçeneği seçilecekse işlemcinin biraz daha iyi olması gerekmektedir.

debian desktop kurulumu

Debian desktop kurulumu tamamlandıktan sonra hızlı bir şekilde touchpad kapatılması gerekiyor. Synaptic driver üzerinde olan bir sıkıntıdan dolayı mouse eventleri sapıtabiliyor.

XFCE wisker menü> Settings > Mouse and Touchpad

Girilir burada hem mouse hem de touchpad gözükür. Hızlıca touchpad kısmına geçip Enable This device seçeneğindeki tik kaldırılır.

Bundan sonra touchpad çalışmayacak ancak mouse debian desktop kurulumundan hemen sonra sapıtmayacaktır.


Format işlemi bitirildikten sonra yapılacak olan debian desktop kurulum için uygulama kurulumlarını yapmaktır. Bu içerikte işinize yarayacak tüm uygulamalar eklenmiştir.

SSH Key Düzenleme

Yedeklenen anahtar harici disk veya her nereden aktarılacaksa sisteme eklenir.

sudo mv id_rsa id_rsa.pub ~/.ssh
ShellScript

Ardından sisteme keyi tanıtmak amacıyla ssh-add komutu verilir. Aşağıdaki uyarıyı verdiği gözlemlenir.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0744 for '/home/mertcan/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/mertcan/.ssh/id_rsa
ShellScript

Bu uyarıyı gidermek için aşağıdaki adımları yapınız.

sudo chmod 600 ~/.ssh/id_rsa
sudo chmod 600 ~/.ssh/id_rsa.pub
ShellScript

Tekrar ssh-add komutu verilir. Gelen uyarıya yes cevabı verilir.

Are you sure you want to continue connecting (yes/no)? yes
Plaintext

Komut satırı bir alt satıra geçti ise işleminiz başarılı bir şekilde tamamlanmış demektir.

GPG Key Düzenleme

Yedeklenen anahtarın bulunduğu dizine gidilir.

cp *.gpg ~/.gnupg/
ShellScript

Tüm her şey taşındıktan sonra gerekli olan owner düzenlemesi yapılır.

gpg --import-ownertrust mertcangokgoz-ownertrust-gpg.txt
ShellScript

GPG key başarılı bir şekilde sisteme dahil edildi

DNS Düzenleme

Türkiye’de kullanılan internet deki bir takım web sitelerine düzgünce ulaşmak ve sorunları ortadan kaldırmak için

sudo nano /etc/resolv.conf
ShellScript

İçerisinde hali hazırda olan değer değiştirilir ve eklemeler yapılır.

nameserver 1.1.1.1
nameserver 1.0.0.1
ShellScript

Kayıt edilip çıkılır. Sistem yeniden başlatıldığında değişikliğin sıfırlanmaması için aşağıdaki işlemler yapılır.

chattr +a /etc/resolv.conf
ShellScript

Bundan sonra resolv.conf dosyasının değiştirilmesine imkân yoktur. Ancak VPN kullanılacak ise bu komutun girilmemesi gerekmektedir.

chattr -a /etc/resolv.conf
ShellScript

Güncellenmesi Devre dışı Bırakılacak Paketler

Debian desktop kurulumu sırasında sistemde güncellenmemesini istemediğimiz paketlere aşağıdaki işlemleri yaparak güncellenmemesini sağlayabiliriz.

echo "tzdata hold" | sudo dpkg --set-selections
echo "nginx hold" | sudo dpkg --set-selections
echo "php-5 hold" | sudo dpkg --set-selections
ShellScript

Aria2 WebUI Servis Ekleme

Konsoldan çalıştırmak istenmiyor ise WebUI kullanılabilir.

sudo apt install nginx
ShellScript

WebUI indirilmesi ve dizine taşınması işlemi

git clone git@github.com:ziahamza/webui-aria2.git
cd webui-aria2
sudo mv * /var/www/html
ShellScript

RPC sürecinin el ile başlatılması

aria2c --enable-rpc --rpc-listen-all
ShellScript

Sürecin otomatik başlatılması için gereken service dosyası oluşturulur.

sudo nano /etc/systemd/system/aria2d.service
ShellScript

Dosyanın içerisine aşağıdakiler eklenir ve kayıt edilir.

[Unit]
Description=Aria2 WebUI RPC Service
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/aria2c --enable-rpc --rpc-listen-all
Restart=on-abort
[Install]
WantedBy=multi-user.target
ShellScript

Ayrıca aşağıdaki servisinde başlatılması gerekmektedir.

systemctl enable systemd-networkd-wait-online
ShellScript

Java Uygulamalarını Çalıştırmak

Java uygulamalarını normal bir uygulamaymış gibi çift tıklama ile çalıştırmak isteniyor ise;

cd /usr/share/applications/
sudo nano java.desktop
ShellScript

Dosyanın içerisinde

[Desktop Entry]
Name=Double Click Java Application
Comment=Double Click Java Application
GenericName=Double Click Java Application
Keywords=java
Exec=java -jar %f
Terminal=false
X-MultipleArgs=false
Type=Application
MimeType=application/x-java-archive
StartupNotify=true
ShellScript

Kayıt edip çıkıyorsunuz. Ardından jar uzantılı herhangi bir uygulamayı tek sefer olacak şekilde sağ tıklayıp. Open with other application diyerek Double Click Java Application seçeneğini seçiyorsunuz. Bundan sonraki tüm işlemlerinizde çift tıklayarak uygulamayı açabileceksiniz.

Spotify Kurulumu

Müzik dinlemek için kullanılacak olan Spotify’ın kurulumu şu şekildedir. Güncel kurulum adımları için Tıklayınız.

curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add - 
echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt-get update && sudo apt-get install spotify-client
ShellScript

Kurulum tamamlandıktan sonra kullanıcı adınızı ve şifrenizi uygulamaya girerek müzik dinlemeye başlayabilirsiniz.

Numix Circle Tema Kurulumu

Görüntüyü düzenlemek ve güzelleştirmek için Numix Circle İkon ve Numix GTK tema paketi kullanılmaktadır. Bu Numix Circle temasına ayrıca github’dan erişebilir bulamadığınız ikonları talep edebilirsiniz.

sudo apt install numix-icon-theme-circle
ShellScript

Gerekli olan kurulumlar yapıldıktan sonra Sistem ayarlarından sürekli değişikliklerin yapılması gerekmektedir.

İkonlar için Appearance > Icons > Numix Circle GTK temala için Appearance > Style> Numix ve Windows Manager> Style> Numix Yapılan tüm bu seçeneklerin ardından Tamamıyla Numix Teması ve İkon Paketine geçiş yapılmış olunur.

Kurulum adımlarını tamamladıktan sonra isterseniz Debian kategorimize göz atarak debian desktop kurulumunuza ek uygulamalar dahil edebilirsiniz.

Debian 11 Üzerine PHP 8.0 Kurulumu

Güncel PHP kullanmak ve yeniliklere hızlı adapte olmak isteyen arkadaşlar PHP sürümlerini 8.0 yapmak isterlerse Debian 11 için aşağıdaki işlemleri yapmaları yeterli olacaktır.

apt -y install lsb-release apt-transport-https ca-certificates 
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Güncel repo dahil edildikten sonra güncelleme komutu verilir.

apt update

Gerekli olan modüllerle birlikte sisteme kurulum gerçekleştirilir.

apt install php8.0
apt install php8.0-{bcmath,bz2,intl,gd,mbstring,mysql,zip,xml,fpm,redis}

Debian 11 Üzerine ConfigServer Security Firewall Nasıl Kurulur?

Genelde cPanel, Directpanel gibi sunucu yönetim araçları içerisinde yer alan firewall yönetimi için kullanılan bir eklentidir, iptables yönetimini basitleştirip işlevselleştirmesi ve yönetim arayüzü olmasıyla bilinir, ayrıca pek çok kendine has özelliği de bulunur. (Blacklist kontrolü ve özel listeler vs)

Unutmayın, yapacağınız yanlış bir yapılandırma sunucunuza erişimi kalıcı olarak kesecektir. Atacağınız adımları dikkatlice atınız.

Bağımlılıkların kurulması

apt-get install e2fsprogs dnsutils libwww-perl libio-socket-ssl-perl libcrypt-ssleay-perl libnet-libidn-perl libio-socket-inet6-perl libsocket6-perl

ConfigServer dosyalarının indirilmesi ve kurulması

cd /opt/
wget http://download.configserver.com/csf.tgz
tar xzf csf.tgz
cd /opt/csf
sh install.sh

Her şey doğru bir şekilde çalıştığına emin olabilmemizi sağlayan perl /usr/local/csf/bin/csftest.pl test betiğini çalıştırıyoruz. Çıktısı aşağıdaki gibi olmalı

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK
RESULT: csf should function on this server

Yapılandırma dosyası içerisindeki bütün alarmların kapatılmasını şiddetle öneriyorum, yoksa durup dururken yaptığı her engelleme işleminde mail atacaktır.

sed -i 's/LF_EMAIL_ALERT = "1"/LF_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_PERMBLOCK_ALERT = "1"/LF_PERMBLOCK_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_NETBLOCK_ALERT = "1"/LF_NETBLOCK_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_DISTFTP_ALERT = "1"/LF_DISTFTP_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LF_DISTSMTP_ALERT = "1"/LF_DISTSMTP_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/LT_EMAIL_ALERT = "1"/LT_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf
sed -i 's/CT_EMAIL_ALERT = "1"/CT_EMAIL_ALERT = "0"/g' /etc/csf/csf.conf

Değişikliklerin geçerli olması amacıyla yeniden başlatma işlemini yapalım

systemctl restart csf
systemctl restart lfd

Web Arayüzünün Aktif Edilmesi

Yönetim arayüzü ön tanımlı olarak kapalı gelmektedir, aktif etmek amacıyla aşağıdaki işlemleri gerçekleştirin.

nano /etc/csf/csf.conf

dosyasının içerisinde 1995. satırın hemen altında yer alan aşağıdaki ayarları kendinize göre değiştiriniz.

###############################################################################
# SECTION:Integrated User Interface
###############################################################################
# Integrated User Interface. This feature provides a HTML UI to csf and lfd,
# without requiring a control panel or web server. The UI runs as a sub process
# to the lfd daemon
#
# As it runs under the root account and successful login provides root access
# to the server, great care should be taken when configuring and using this
# feature. There are additional restrictions to enhance secure access to the UI
#
# See readme.txt for more information about using this feature BEFORE enabling
# it for security and access reasons
# 
# 1 to enable, 0 to disable
UI = "1"
# Set this to the port that want to bind this service to. You should configure
# this port to be >1023 and different from any other port already being used
#
# Do NOT enable access to this port in TCP_IN, instead only allow trusted IP's
# to the port using Advanced Allow Filters (see readme.txt)
UI_PORT = "7156"
# Optionally set the IP address to bind to. Normally this should be left blank
# to bind to all IP addresses on the server.
#
# If the server is configured for IPv6 but the IP to bind to is IPv4, then the
# IP address MUST use the IPv6 representation. For example 1.2.3.4 must use
# ::ffff:1.2.3.4
#
# Leave blank to bind to all IP addresses on the server
UI_IP = "::ffff:94.130.96.165"
# This should be a secure, hard to guess username
# 
# This must be changed from the default
UI_USER = "mertcan"
# This should be a secure, hard to guess password. That is, at least 8
# characters long with a mixture of upper and lowercase characters plus 
# numbers and non-alphanumeric characters
#
# This must be changed from the default
UI_PASS = "Str0n9_PasSw0rD"

Ardından giriş yapabilmek için IP adresinizi sisteme kayıt edin.

sudo echo "" >> /etc/csf/ui/ui.allow

sudo systemctl restart lfd komutu ile yeniden başlatıp web arayüzüne giriş yapabilirsiniz.

csf web ui giris gorsel