Perl dizini cPanel sunucularda çok büyük bir güvenlik açığına neden olmaktadır. Perl dizini açık olan sunuculara kolaylıkla shell dosyaları ( C99 , R57 vb. ) atılabilmektedir. Bunu engelleminin yolu ise bu dizini kapatmaktır. Tabi ki sadece bu dizini kapatmak ile sunucunuza shell atılamayacağı anlamına gelmez. Shell dosyalarının atılmasını kesin olarak engellemek için yapılması gereken farklı yazılımsal işlemler de vardır. Perl dizini açık olan sunucularda /cpanel , /webmail şeklinde cPanel ve webmail’e giriş yapılabilir. Hosting firmaları genellikle sunucudaki güvenliğe önem verdikleri için Perl dizinini kapatıralar. Bu nedenle de /cPanel olarak değil domain.com:2082 gibi cpanel ve webmaile port üzerinden giriş yapılabilir. Bu kimi kullanıcılar için sorunmuş gibi görünse de aslında güvenlik bakımından iyi bir durumdur. Eğer ki hosting almış olduğunuz firmada cpanel’e port üzerinden giriş yapıyorsanız perl dizini kapalı ve genel olarak güvenli bir sunucudan hizmet alıyorsunuz anlamına gelir. Şimdi Perl Dizini nasıl kapatılır bu işleme bir bakalım;
which perl
Bu komutu yazdığınızda karşınıza /usr/local/bin/perl çıktısı gelecektir.
ls -lh /usr/local/bin/perl
Bu komutu yazdığınızda ise karşınıza Perl’in asıl dizini gelecektir. /usr/local/bin/perl -> /usr/bin/perl* karşınıza bu şekilde bir dosya yolu çıkacaktır ve buradan Perl dizininin yazma izinlerini görebilirsiniz.
chmod 700 /usr/local/bin/perl
Perl dizininin kapalı olması için alması gereken yazma izni 700′dür. Yukarıdaki komut ile Perl dizini yazma izninini 700 yapıyoruz ve Perl’i kapatmış oluyoruz. Bu komutu uyguladığımızda yukarıda belirtmiş olduğum gibi /cPanel , /webmail şeklinde panellere girişleri artık engellemiş oluyorsunuz. Şimdi yapılması gereken işlem ise herhangi bir cPanel güncellemesi sonrası Perl dizininin tekrar yazılabilir olmamasını sağlamak. Bu sayede Perl dizini hiçbir şekilde siz manuel olarak açmadığınız sürece yazılabilir olmayacaktır.
chattr -i /usr/bin/perl
chmod 700 /usr/bin/perl
chattr +i /usr/bin/perl
Bu komutlar ile Perl dizininin tekrar yazılabilir olmasını engellemiş olduk. chattr komutu ile bir dosyayı kilitlersiniz ve dosya kilitli iken bu dosya üzerinde yazma işlemleri yapılamaz. Artık herhangi bir update sonrası Perl dizini yazma izinleri değişmeyecek ve bu nedenle de güvenlik açığı meydana gelmeyecektir. Eğer yukarıdaki son kilitleme komutlarını uygulamazsanız cPanel update sonrası vermiş olduğunuz 700 yazma izni bozulur ve bu dosya tekrar yazılabilir hale yani 777 yazma iznine döner. Bunu engellemek için mutlaka dosyayı kilitlemeniz gerekir.