Linux Sembolik Link

Bir projede harici diskteki görsellerin web de gösterilmesi gerekti. Çözüm olarak kaynak klasörü hedef klasöre şu şekilde mount ettim:

sudo mount -a /kaynak /var/www/hedef

Uyarı: Web kullanıcısının www ile aynı kullanıcı olması gerekiyor.

Mount edilen klasörün sistem her yeniden başladığında otomatik olarak mount edilmesi için /etc/init.d/foldermounter dosyasına bir bash servis yazdım:

#!/bin/bash
### BEGIN INIT INFO
# Provides: foldermounter
# Required-Start:    $local_fs $syslog $remote_fs dbus
# Required-Stop:     $local_fs $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Auto mount: /kaynak to /var/www/hedef
### END INIT INFO
mount -o bind /kaynak /var/www/hedef

Yazılan bu servise aşağıdaki gibi gerekli izin verilerek başlangıca eklenir ve kontrol edilir:

chmod +x /etc/init.d/matemounter
chkconfig --add matemounter
chkconfig --list

log uyarısı almamak için mount edilen kaynak klasörün her üst klasörün herkes tarafından okunma iznine sahip olması gerekiyor:

chmod o+r /parent
chmod o+r /parent/child

Servis yazmamın sebebi öncelikle harici harddiski mount edip ardından harici harddiskteki klasörü mount etmekten kaynaklıydı. Eğer yerel bir klasör başka bir hedefe mount edilecek olsaydı /etc/fstab dosyasında en alta şu şekilde kayıt yazılabilirdi:

/yerel-kaynak  /var/www/hedef  auto  auto,bind  0 0

Centos Firewall ile IP Engelleme

Centos 7 ve sonrası için geçerlidir.

IP engellemek için aşağıdaki komut uygulanır.

sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='xxx.xxx.xxx.xxx' reject" 

Komutun geçerli olması için firewall kuralları yeniden yüklenir.

sudo firewall-cmd --reload 

Engellenen IP’nin doğrulaması için aşağıdaki komut çıktısına bakılır.

sudo firewall-cmd --list-all

IP engelini kaldırmak için aşağıdaki komut uygulanır.

sudo firewall-cmd --permanent --remove-rich-rule="rule family='ipv4' source address='xxx.xxx.xxx.xxx' reject" 

/var/log/btmp nedir? nasıl okunur?

btmp günlüğü, başarısız oturum açma girişimlerinin kaydını tutar.

Yapılandırma ayarları /etc/logrotate.conf dosyasında şu şekilde bulunur:

/var/log/btmp {
monthly
minsize 1M
create 0600 root utmp
rotate 1
}

Eğer btmp dosya boyutu çok büyük ise logrotate ile aylık olan döngü haftalık olarak değiştirilebilir. (wtmp için de geçerli)

Başarısız oturumları listelemek için:

last -f /var/log/btmp  

Başarısız oturum açmalara sahip ilk 10 IP’yi göster (ilk sütun başarısız deneme sayısı, ardından 2. sütun IP’dir)

lastb | awk '{print $3}' | sort | uniq -c | sort -rn | head -10  

Başarısız girişlere sahip ilk 10 kullanıcı adını göster

lastb | awk '{print $1}' | sort | uniq -c | sort -rn | head -10  

Install PHP 7.4.x, MariaDB, PhpMyAdmin and Httpd on Centos 7

Installing PHP 7.4.x & enable httpd

Install yum-utils and enable EPEL repository

yum install php
yum install epel-release yum-utils -y

Download and install remi-repo

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Based on your requirement, configure the PHP 7.x repository

yum-config-manager --enable remi-php74

Install PHP 7.4 along with dependencies.

yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql -y

Check PHP version

php -v

Enable firewall to access port 80

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

Enable and start httpd

systemctl enable httpd
systemctl start httpd

Installing MariaDB

yum install mariadb-server mariadb

When the installation is complete, we need to start MariaDB with the following command:

systemctl enable mariadb
systemctl start mariadb

Run a security script that will remove some dangerous defaults and lock down access to database

mysqladmin -u root password NEWPASSWORD
mysql_secure_installation
mysql_secure_installation prompts:
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

Installing phpMyAdmin

yum install phpmyadmin

Configure the phpMyAdmin.conf file

nano /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       #ADD following line:
       Require all granted
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     #CHANGE following 2 lines:
     Order Allow,Deny
     Allow from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>