Ini adalah step-step instalasi dan konfigurasi sebuah webserver dengan Distribusi
Linux Slackware 13.0 menggunakan Apache, Mysql, PHP.
Instalasi ini akan ditambah dengan beberapa service yaitu: FTP server (VSFTP),
SSH Server, Sendmail, IPTABLES, dan juga Webalizer.
1. APACHE
Secara default jika kita menginstall seluruh paket di Slackware maka Apache akan
terinstall otomatis.
Jika belum terinstall maka kita bisa menginstallnya dengan menggunakan slackpkg
atau installpkg.
Slackpkg adalah tool semacam apt-get (Debian based) yang memudahkan seseorang menginstall
sebuah paket dan dependenciesnya.
Syaratnya adalah mesin tersebut terkoneksi dengan jaringan internet atau bisa juga
menggunakan repository offline.
Sebelum slackpkg bisa digunakan, maka kita harus melakukan sedikit konfigurasi dari
mirror mana paket-paket nanti akan diambil.
Berkas konfigurasi slackpkg tersebut berada di file /etc/slackpkg/mirror.
# vi /etc/slackpkg/mirror
Tambahkan baris berikut kedalam file konfigurasi tersebut.
# Kambing
http://kambing.ui.ac.id/slackware/slackware-current/
Kemudian lakukan update
# slackpkg update
# slackpkg install httpd
Atau jika Anda hendak menginstall paket Apache menggunakan installpkg maka caranya adalah :
Download Apache di mirror-mirror terdekat misalkan kambing.ui.ac.id
# wget http://kambing.ui.ac.id/slackware/slackware-current/slackware/n/httpd-2.2.13-i486-1.txz
# installpkg httpd-2.2.13-i486-1.txz
# /etc/rc.d/rc.httpd start
1a. Mengaktifkan module ssl
# vi /etc/httpd/httpd.conf
Uncomment baris-baris berikut :
LoadModule ssl_module lib/httpd/modules/mod_ssl.so
Include /etc/httpd/extra/httpd-ssl.conf
Generate kunci ssl.
# openssl req -new > new.cert.csr
# openssl rsa -in privkey.pem -out new.cert.key
# openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 1825
# mkdir /etc/httpd/ssl.crt/
# mkdir /etc/httpd/ssl.key/
# cp new.cert.cert /etc/httpd/ssl.crt/server.crt
# cp new.cert.key /etc/httpd/ssl.key/server.key
# vi /etc/httpd/extra/httpd-ssl.conf
SSLCertificateFile "/etc/httpd/ssl.crt/server.crt"
SSLCertificateKeyFile "/etc/httpd/ssl.key/server.key"
# /etc/rc.d/rc.httpd restart
# netstat -tpan | grep 443
1b. Mengaktifkan modsecurity agar Apache menjadi lebih secure
# wget http://www.modsecurity.org/download/modsecurity-apache_2.5.11.tar.gz
# tar -xzvf modsecurity-apache_2.5.7.tar.gz
# cd modsecurity-apache_2.5.7/apache2
# ./configure
# make
# make install
# vi /etc/httpd/httpd.conf
LoadFile /usr/lib/libxml2.so
LoadModule security2_module lib/httpd/modules/mod_security2.so
Include /etc/httpd/modrules/*.conf
# cd modsecurity-apache_2.5.7/rules
# mkdir /etc/httpd/modrules; cp -a * /etc/httpd/modrules
# vi /etc/httpd/modrules/modsecurity_crs_10_config.conf
SecServerSignature "Apache/2.2.0 (Fedora)"
SecAuditLog /var/log/httpd/modsec_audit.log
SecDebugLog /var/log/httpd/modsec_debug.log
# touch /var/log/httpd/modsec_audit.log
# touch /var/log/httpd/modsec_debug.log
# /etc/rc.d/rc.httpd restart
2. PHP
Setelah Apache terinstall, mod_ssl & modsecurity juga telah terinstall, saatnya kita aktifkan modul php di Apache tersebut.
# vim /etc/httpd/httpd.conf
DirectoryIndex index.html index.php
Include /etc/httpd/mod_php.conf
# vi /etc/httpd/mod_php.conf
AddType application/x-httpd-php .php .php3 .php4
# /etc/rc.d/rc.httpd restart
Melakukan testing apakah Apache sudah mendukung modul php.
# vi /var/www/htdocs/test.php
Jalankan http://localhost/test.php melalui browser favorit Anda.
2a. Pacth PHP menggunakan suhosin
# wget http://download.suhosin.org/suhosin-0.9.29.tgz
# tar -xzvf suhosin-0.9.29.tgz
# cd suhosin-0.9.29
# phpize
# ./configure
# make
# make test
# make install
# cp suhosin.so /usr/lib/php/extensions
# vi /etc/httpd/php.ini
extension=suhosin.so
# /etc/rc.d/rc.httpd restart
3. MYSQL
# slackpkg install mysql
# wget http://kambing.ui.ac.id/slackware/slackware-current/slackware/ap/mysql-5.1.39-i486-2.txz
# installpkg mysql-5.1.39-i486-2.txz
# mysql_install_db --user=mysql
# cd /usr ; /usr/bin/mysqld_safe &
# /usr/bin/mysql_secure_installation
Jawab setiap pertanyaan yang muncul, jika tidak yakin dengan jawaban yang akan diberikan, silahkan jawab dengan
jawaban default (ENTER).
# chown -R mysql:mysql /var/lib/mysql/mysql
# chmod -R 755 /var/lib/mysql/mysql
# /etc/rc.d/rc.mysqld stop
# /etc/rc.d/rc.mysqld start
# mysql -u root -p
4. FTP SERVER (VSFTP)
# slackpkg install vsftpd
# wget http://kambing.ui.ac.id/slackware/slackware-current/slackware/n/vsftpd-2.1.2-i486-1.txz
# installpkg vsftpd-2.1.2-i486-1.txz
# vi /etc/inetd.conf
ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
# /etc/rc.d/rc.inetd restart
# netstat -pln | grep 21
# vim /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=YES
listen=NO
Masukkan user-user yang diperbolehkan menggunakan ftp di file /etc/vsftpd.chroot_list
# /etc/rc.d/rc.inetd restart
4a. Mengaktikan module ssl di VSFTPD
Pastikan vsftpd sudah dicompile dengan mengaktifkan module ssl
# ldd /usr/sbin/vsftpd | grep ssl
libssl.so.0 => /usr/lib/libssl.so.0 (0xb7f5c000)
# mkdir /etc/vsftpd
# openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
# vi /etc/vsftpd.conf
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
require_ssl_reuse=NO
# /etc/rc.d/rc.inetd restart
Testing menggunakan ftp client yang support ftps, diantaranya FileZilla dan Smartftp, jangan lupa pilih Servertype nya menggunakan FTPES.
5. SENDMAIL
# slackpkg install sendmail mailx procmail
# http://kambing.ui.ac.id/slackware/slackware-current/slackware/n/sendmail-8.14.3-i486-2.txz
# installpkg sendmail-8.14.3-i486-2.txz
# chmod a+x /etc/rc.d/rc.sendmail
# /etc/rc.d/rc.sendmail restart
Konfigurasi Sendmail
# cd /usr/share/sendmail/cf/cf
# vi /usr/share/sendmail/cf/cf/sendmail-straw.mc
# m4 sendmail-straw.mc > sendmail-straw.cf
# cp sendmail-straw.cf /etc/mail/sendmail.cf
# /etc/rc.d/rc.sendmail restart
# mailx -s "test" root@localhost < Hello
# tail -f /var/log/maillog
6. WEBALIZER
# wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
# tar -zxf gd-2.0.33.tar.gz
# cd /usr/src/gd-2.0.33
# ./configure --prefix=/usr \
--with-png=/usr \
--with-freetype=/usr \
--with-jpeg=/usr \
--with-zlib=/usr
# make
# make install
# make clean
# make distclean
# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.21-02-src.tgz
# tar -xzvf webalizer-2.21-02-src.tgz
# cd webalizer-2.21-02/
# ./configure
# make
# make install
# make clean
# make distclean
# cp -a /usr/local/etc/webalizer.conf.sample /etc/webalizer-slackware.conf
# vi /etc/webalizer-slackware.conf
# webalizer -c /etc/webalizer-slackware.conf
# crontab -e
Isikan baris-baris berikut, yang artinya webalizer akan dijalankan (men-generate report) setiap 10 menit.
#Webalizer
10 * * * * /usr/local/bin/webalizer -c /etc/webalizer-slackware.conf
7. SSH
Port yang akan digunakan oleh ssh diganti dari port 22 menjadi 23456.
# vi /etc/ssh/sshd_config
Port 23456
Protocol 2
LogLevel INFO
LoginGraceTime 2m
PermitRootLogin no
StrictModes yes
MaxAuthTries 2
MaxSessions 3
Subsystem sftp /usr/libexec/sftp-server
# /etc/rc.d/rc.sshd restart
8. IPTABLES (Firewall)
# vi root/firewall
modprobe ip_conntrack_ftp
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 23456 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p TCP -i eth0 --dport 21 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 23456 -j DROP
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
# iptables-restore < /root/firewall
Agar rule-rule firewall tersebut dijalankan setiap komputer restart maka tamabahkan di /etc/rc.d/rc.local baris berikut:
# vi /etc/rc.d/rc.local
iptables-restore < /root/firewall
Referensi : Beberapa Article yang didapat dari google.
No comments:
Post a Comment
Terima kasih atas komentarnya