Pengamanan pada nginx

Nah lock maksudnya apa ya itu?
Sebenarnya tulisan ini adalah lanjutan dari artikel saya sebelumnya, yaitu instalasi nginx, dan php di Slackware. Dan pada artikel tersebut saya di komentari dan di beri saran oleh Om Walecha. Ini dia kutipan sarannya:

jika php-cgi hanya digunakan secara local alias secara fisik tidak terpisah dengan web servernya sebaiknya gunakan soket php saja karena selain lebih aman, proses kompilasi kode php akan lebih cepat. saya menggunakan wrapper `spawn-fcgi’ untuk menjalankan php-cgi. misalnya seperti ini:
/usr/bin/spawn-fcgi -U nobody -G nobody -d /var/run/fcgi -s /tmp/fcgi.sock -M 0777 -F 2 -P /var/run/fcgi/fcgi.pid — /usr/bin/php-cgi

Dan ternyata benar saran dari Om Walecha itu. Kenapa?

Ternyata dari perintah sebelumnya kan saya menggunakan php-cgi pada alamat 127.0.0.1 dan port 9000. Jadi otomatis port 9000 itu terbuka. Mungkin karena masalah itu, om Walecha menyarankan saya seperti di atas.Hehe terimakasih Om Walecha

Kalau gak percaya bahwa port 9000 terbuka. Jalankan saja perintah ini:

# netstat -tulpn | grep 9000

Dan hasilnya kira-kira seperti ini:

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      9443/php-cgi   

Oke untuk mengantipasi itu maka lakukanlah perintah ini:

  • Matikan dahulu proses dari php-cgi dengan perintah:

    # killall php-cgi

  • Jalankan perintah dibawah ini (Sebelumnya download dan install spawn-fcgi dulu ya di http://pkgs.org/search/?keyword=spawn-fcgi):

    # /usr/bin/spawn-fcgi -U nobody -G nobody -d /var/run/fcgi -s /tmp/fcgi.sock -M 0777 -F 2 -P /var/run/fcgi/fcgi.pid — /usr/bin/php-cgi

  • Maka apabila benar, maka hasilnya seperti ini:

    spawn-fcgi: child spawned successfully: PID: 9482
    spawn-fcgi: child spawned successfully: PID: 9483

  • Sekarang saatnya membuktikan apakah port 9000 terbuka.

    # netstat -tulpn | grep 9000

  • Maka tidak ada hasil apa-apa kan? Coba lagi dengan perintah ini:

    # nmap localhost

    Keluarannya di terminal

    Starting Nmap 5.51 ( http://nmap.org ) at 2012-02-15 13:22 WIT
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.0000060s latency).
    Not shown: 994 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    37/tcp   open  time
    80/tcp   open  http
    113/tcp  open  auth
    3306/tcp open  mysql
    6000/tcp open  X11

    Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds

  • Nah gak ada port 9000 yang terbuka kan? Kenapa?

    Karena disini menggunakan soket php aja seperti yang dibilang om Walecha di atas.He

  • Sekarang rubah nginx.conf menjadi seperti ini:

    # location ~ \.php$ {
            root /srv/httpd/htdocs;
            fastcgi_pass unix:/tmp/fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME script$fastcgi_script_name;
            include fastcgi_params;
            #fastcgi_param HTTPS on;
            fastcgi_intercept_errors on;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            }

  • Dari tampilan di atas, yang dirubah di bagian location ~ \.php$ { dan yang saya tebalkan saja ya? Selebihnya sama dengan nginx sebelumnya
  • Sekarang coba restart nginx-nya:

    # killall nginx
    # /etc/rc.d/rc.nginx start

  • Langkah terakhir adalah dengan mematikan services autostart php-cgi di rc.M yang sebelumnya sudah saya edit waktu itu dan merubahnya menjadi:

    # Start php-cgi;
    #if [ -x /usr/bin/php-cgi ]; then
    # . /etc/rc.d/rc.php-cgi start
    #fi

  • Oke sekarang buka localhost/info.php (ingat info.php sudah di buat sebelumnya dengan isinya: )

Oke setelah melakukan serangkaian di atas, maka tampilan http://localhost/info.php saya seperti ini:

Catatan:
Untuk masalah koneksi php ke mysql dengan cara di atas pun telah berhasil, karena sebelumnya tidak berhasil tapi kali ini berhasil..
Belajar pantang menyerah

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s