Browse Source

dispatch in functions for test

Pi3rrot 11 years ago
parent
commit
6b149079d4
1 changed files with 321 additions and 319 deletions
  1. 321 319
      script_centos_isp.sh

+ 321 - 319
script_centos_isp.sh

@@ -20,297 +20,339 @@ then exit 1
 else echo -e "\033[31mEvil is coming \m/ ...\033[0m"
 fi
 
-
 LOG=/root/log_script.log
-
-#disabling 169.254route
 echo "NOZEROCONF=yes" >> /etc/sysconfig/network
 
-#base and add additionnal repo
-
-yum -y install wget >> $LOG 2>&1
-
-echo -e "[\033[33m*\033[0m] Installing & configuring epel, rpmforge repos..."
-rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error importing key /etc/pki/rpm-gpg/RPM-GPG-KEY*"
-rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error importing key RPM-GPG-KEY.dag"
-cd /tmp
-wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error downloading RPMForge rpm"
-rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error installing rpmforge rpm"
-
-rpm --import https://fedoraproject.org/static/0608B895.txt >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error importing epel key"
-wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error downloading epel repo rpm"
-rpm -ivh epel-release-6-8.noarch.rpm >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error installing epel repo rpm"
-
-#rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error import key remi"
-#rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error installing rpm remi"
-
-yum install yum-priorities -y >> $LOG 2>&1 echo -e "[\033[31mX\033[0m] Error installing yum-priorites"
-awk 'NR== 2 { print "priority=10" } { print }' /etc/yum.repos.d/epel.repo > /tmp/epel.repo
-rm /etc/yum.repos.d/epel.repo -f
-mv /tmp/epel.repo /etc/yum.repos.d
-
-#sed -i -e "0,/5/s/enabled=0/enabled=1/" /etc/yum.repos.d/remi.repo
-echo -e "[\033[32m*\033[0m] Base repository, rpmforge, epel & remi set up"
-
-
-# Installing tools, update, ....
-echo -e "[\033[33m*\033[0m] Updating full system (it can take some minutes...)"
-yum update -y >> $LOG 2>&1 ||  echo -e "[\033[31mX\033[0m] Error in yum update"
-echo -e "[\033[33m*\033[0m] Installing required packages"
-yum install -y vim htop iftop nmap screen git expect >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error installing base packages"
-echo -e "[\033[33m*\033[0m] Installing Development Tools"
-yum groupinstall -y 'Development Tools'  >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error installing Dev Tools metapackage"
-
-#Install and enable NTP at boot
-echo -e "[\033[33m*\033[0m] Installing and configure NTPD"
-yum install -y ntp  >> $LOG 2>&1
-chkconfig ntpd on >> $LOG 2>&1
-
-#disabling firewall
-echo -e "[\033[33m*\033[0m] Disabling Firewall (for installation time)"
-service iptables save >> $LOG 2>&1
-service iptables stop >> $LOG 2>&1
-chkconfig iptables off >> $LOG 2>&1
-
-#disabling SELinux
-echo -e "[\033[33m*\033[0m] Disabling SELinux"
-sed -i -e 's/SELINUX=enforcing/SELINUX=disabled' /etc/selinux/config >> $LOG 2>&1
-setenforce 0 >> $LOG 2>&1
-
-#MYSQL
-echo -e "[\033[33m*\033[0m] Installing MYSQL Server"
-yum install mysql mysql-server -y >> $LOG 2>&1
-chkconfig --levels 235 mysqld on >> $LOG 2>&1
-/etc/init.d/mysqld start >> $LOG 2>&1
-
-echo "Type the MySQL root password you want to set: "
-read -s mysqlrootpw
-
-SECURE_MYSQL=$(expect -c "
- 
-set timeout 10
-spawn mysql_secure_installation
- 
-expect \"Enter current password for root (enter for none):\"
-send \"\r\"
- 
-expect \"Set root password?\"
-send \"y\r\"
-
-expect \"New password:\"
-send \"$mysqlrootpw\r\"
-
-expect \"Re-enter new password:\"
-send \"$mysqlrootpw\r\"
- 
-expect \"Remove anonymous users?\"
-send \"y\r\"
- 
-expect \"Disallow root login remotely?\"
-send \"y\r\"
- 
-expect \"Remove test database and access to it?\"
-send \"y\r\"
- 
-expect \"Reload privilege tables now?\"
-send \"y\r\"
- 
-expect eof
-" >> $LOG)
-
-echo "$SECURE_MYSQL" >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error configuring MySQL"
-
-echo -e "[\033[32m*\033[0m] MYSQL set up"
-
-#DOVECOT
-echo -e "[\033[33m*\033[0m] Installing DOVECOT Server"
-yum install dovecot dovecot-mysql -y >> $LOG 2>&1
-chkconfig --levels 235 dovecot on >> $LOG 2>&1
-/etc/init.d/dovecot start >> $LOG 2>&1
-echo -e "[\033[32m*\033[0m] DOVECOT set up"
-
-#POSTFIX
-echo -e "[\033[33m*\033[0m] Installing Postfix Server"
-yum install postfix -y >> $LOG 2>&1
-chkconfig --levels 235 postfix on >> $LOG 2>&1
-/etc/init.d/postfix restart >> $LOG 2>&1
-echo -e "[\033[32m*\033[0m] Postfix set up"
-
-#getmail
-echo -e "[\033[33m*\033[0m] Installing getmail"
-yum install getmail -y >> $LOG 2>&1
-echo -e "[\033[32m*\033[0m] getmail set up"
-
-#antivirus
-echo -e "[\033[33m*\033[0m] Installing Antivirus/Antispam Layer (it can take some times downloading AV databases)"
-yum install -y amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql --disablerepo=epel >> $LOG 2>&1
-sa-update >> $LOG 2>&1
-chkconfig --levels 235 amavisd on >> $LOG 2>&1
-/usr/bin/freshclam >> $LOG 2>&1
-/etc/init.d/amavisd start >> $LOG 2>&1
-echo -e "[\033[32m*\033[0m] Antivirus set up"
-
-#NGINX
-echo -e "[\033[33m*\033[0m] Installing & Configuring NGINX Webserver"
-yum install nginx --enablerepo=epel -y >> $LOG 2>&1
-
-awk 'NR== 21 { print "map $scheme $https {" ; print "default off;" ; print "https on;"; print "}"} { print }' /etc/nginx/nginx.conf > /tmp/nginx.conf
-rm -f /etc/nginx/nginx.conf
-mv /tmp/nginx.conf /etc/nginx
-
-
-chkconfig --del httpd >> $LOG 2>&1
-/etc/init.d/httpd stop >> $LOG 2>&1
-chkconfig --levels 235 nginx on >> $LOG 2>&1
-/etc/init.d/nginx start >> $LOG 2>&1
-yum install php php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy -y >> $LOG 2>&1
-sed -i -e 's/; cgi.fix_pathinfo=0/cgi.fix_pathinfo=0/' /etc/php.ini >> $LOG 2>&1
-chkconfig --levels 235 php-fpm on >> $LOG 2>&1
-/etc/init.d/php-fpm start >> $LOG 2>&1
-yum install -y fcgi-devel >> $LOG 2>&1
-
-echo -e "  [\033[33m*\033[0m] Compil fcgiwrap (cause it don't exist in rpm for CentOS)"
-cd /usr/local/src/
-git clone git://github.com/gnosek/fcgiwrap.git >> $LOG 2>&1
-echo -e "  [\033[32m*\033[0m] Gitting sources done"
-cd fcgiwrap
-autoreconf -i >> $LOG 2>&1
-./configure >> $LOG 2>&1
-make >> $LOG 2>&1
-make install >> $LOG 2>&1
-echo -e "  [\033[32m*\033[0m] fcgiwrap done"
-
-yum install spawn-fcgi -y >> $LOG 2>&1
-echo -e "[\033[33m*\033[0m] Setting /etc/sysconfig/spawn-fcgi configuration file"
-cat <<EOF > /etc/sysconfig/spawn-fcgi
-# You must set some working options before the "spawn-fcgi" service will work.
-# If SOCKET points to a file, then this file is cleaned up by the init script.
-#
-# See spawn-fcgi(1) for all possible options.
-#
-# Example :
-#SOCKET=/var/run/php-fcgi.sock
-#OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"
-
-FCGI_SOCKET=/var/run/fcgiwrap.socket
-FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
-FCGI_USER=apache
-FCGI_GROUP=apache
-FCGI_EXTRA_OPTIONS="-M 0770"
-OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"
+# Configuration of repository for CentOS
+configure_repo() {
+  yum -y install wget >> $LOG 2>&1
+
+  echo -e "[\033[33m*\033[0m] Installing & configuring epel, rpmforge repos..."
+  rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error importing key /etc/pki/rpm-gpg/RPM-GPG-KEY*"
+  rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error importing key RPM-GPG-KEY.dag"
+  cd /tmp
+  wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error downloading RPMForge rpm"
+  rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error installing rpmforge rpm"
+
+  rpm --import https://fedoraproject.org/static/0608B895.txt >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error importing epel key"
+  wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error downloading epel repo rpm"
+  rpm -ivh epel-release-6-8.noarch.rpm >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error installing epel repo rpm"
+
+  #rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error import key remi"
+  #rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm >> $LOG 2>&1  || echo -e "[\033[31mX\033[0m] Error installing rpm remi"
+
+  yum install yum-priorities -y >> $LOG 2>&1 echo -e "[\033[31mX\033[0m] Error installing yum-priorites"
+  awk 'NR== 2 { print "priority=10" } { print }' /etc/yum.repos.d/epel.repo > /tmp/epel.repo
+  rm /etc/yum.repos.d/epel.repo -f
+  mv /tmp/epel.repo /etc/yum.repos.d
+
+  #sed -i -e "0,/5/s/enabled=0/enabled=1/" /etc/yum.repos.d/remi.repo
+  echo -e "[\033[32m*\033[0m] Base repository, rpmforge, epel & remi set up"
+}
+
+update_system() {
+  echo -e "[\033[33m*\033[0m] Updating full system (it can take some minutes...)"
+  yum update -y >> $LOG 2>&1 ||  echo -e "[\033[31mX\033[0m] Error in yum update"
+}
+
+install_required_packages() {
+  echo -e "[\033[33m*\033[0m] Installing required packages"
+  yum install -y vim htop iftop nmap screen git expect >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error installing base packages"
+  echo -e "[\033[33m*\033[0m] Installing Development Tools"
+  yum groupinstall -y 'Development Tools'  >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error installing Dev Tools metapackage"
+}
+
+install_ntpd() {
+  echo -e "[\033[33m*\033[0m] Installing and configure NTPD"
+  yum install -y ntp  >> $LOG 2>&1
+  chkconfig ntpd on >> $LOG 2>&1
+}
+
+disable_fw() {
+  echo -e "[\033[33m*\033[0m] Disabling Firewall (for installation time)"
+  service iptables save >> $LOG 2>&1
+  service iptables stop >> $LOG 2>&1
+  chkconfig iptables off >> $LOG 2>&1
+}
+
+disable_selinux() {
+  echo -e "[\033[33m*\033[0m] Disabling SELinux"
+  sed -i -e 's/SELINUX=enforcing/SELINUX=disabled' /etc/selinux/config >> $LOG 2>&1
+  setenforce 0 >> $LOG 2>&1
+}
+
+
+install_mysql() {
+  echo -e "[\033[33m*\033[0m] Installing MYSQL Server"
+  yum install mysql mysql-server -y >> $LOG 2>&1
+  chkconfig --levels 235 mysqld on >> $LOG 2>&1
+  /etc/init.d/mysqld start >> $LOG 2>&1
+
+  echo "Type the MySQL root password you want to set: "
+  read -s mysqlrootpw
+
+  SECURE_MYSQL=$(expect -c "
+  
+  set timeout 10
+  spawn mysql_secure_installation
+  
+  expect \"Enter current password for root (enter for none):\"
+  send \"\r\"
+  
+  expect \"Set root password?\"
+  send \"y\r\"
+
+  expect \"New password:\"
+  send \"$mysqlrootpw\r\"
+
+  expect \"Re-enter new password:\"
+  send \"$mysqlrootpw\r\"
+  
+  expect \"Remove anonymous users?\"
+  send \"y\r\"
+  
+  expect \"Disallow root login remotely?\"
+  send \"y\r\"
+  
+  expect \"Remove test database and access to it?\"
+  send \"y\r\"
+  
+  expect \"Reload privilege tables now?\"
+  send \"y\r\"
+  
+  expect eof
+  " >> $LOG)
+
+  echo "$SECURE_MYSQL" >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error configuring MySQL"
+
+  echo -e "[\033[32m*\033[0m] MYSQL set up"
+}
+  
+install_dovecot() {
+  echo -e "[\033[33m*\033[0m] Installing DOVECOT Server"
+  yum install dovecot dovecot-mysql -y >> $LOG 2>&1
+  chkconfig --levels 235 dovecot on >> $LOG 2>&1
+  /etc/init.d/dovecot start >> $LOG 2>&1
+  echo -e "[\033[32m*\033[0m] DOVECOT set up"
+}
+  
+install_postfix() {  
+  echo -e "[\033[33m*\033[0m] Installing Postfix Server"
+  yum install postfix -y >> $LOG 2>&1
+  chkconfig --levels 235 postfix on >> $LOG 2>&1
+  /etc/init.d/postfix restart >> $LOG 2>&1
+  echo -e "[\033[32m*\033[0m] Postfix set up"
+}
+  
+install_getmail() {
+  echo -e "[\033[33m*\033[0m] Installing getmail"
+  yum install getmail -y >> $LOG 2>&1
+  echo -e "[\033[32m*\033[0m] getmail set up"
+}
+
+install_clamav() {
+  echo -e "[\033[33m*\033[0m] Installing Antivirus/Antispam Layer (it can take some times downloading AV databases)"
+  yum install -y amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql --disablerepo=epel >> $LOG 2>&1
+  sa-update >> $LOG 2>&1
+  chkconfig --levels 235 amavisd on >> $LOG 2>&1
+  /usr/bin/freshclam >> $LOG 2>&1
+  /etc/init.d/amavisd start >> $LOG 2>&1
+  echo -e "[\033[32m*\033[0m] Antivirus set up"
+}
+
+install_nginx() {
+  echo -e "[\033[33m*\033[0m] Installing & Configuring NGINX Webserver"
+  yum install nginx --enablerepo=epel -y >> $LOG 2>&1
+
+  awk 'NR== 21 { print "map $scheme $https {" ; print "default off;" ; print "https on;"; print "}"} { print }' /etc/nginx/nginx.conf > /tmp/nginx.conf
+  rm -f /etc/nginx/nginx.conf
+  mv /tmp/nginx.conf /etc/nginx
+
+
+  chkconfig --del httpd >> $LOG 2>&1
+  /etc/init.d/httpd stop >> $LOG 2>&1
+  chkconfig --levels 235 nginx on >> $LOG 2>&1
+  /etc/init.d/nginx start >> $LOG 2>&1
+  yum install php php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy -y >> $LOG 2>&1
+  sed -i -e 's/; cgi.fix_pathinfo=0/cgi.fix_pathinfo=0/' /etc/php.ini >> $LOG 2>&1
+  chkconfig --levels 235 php-fpm on >> $LOG 2>&1
+  /etc/init.d/php-fpm start >> $LOG 2>&1
+  yum install -y fcgi-devel >> $LOG 2>&1
+
+  echo -e "  [\033[33m*\033[0m] Compil fcgiwrap (cause it don't exist in rpm for CentOS)"
+  cd /usr/local/src/
+  git clone git://github.com/gnosek/fcgiwrap.git >> $LOG 2>&1
+  echo -e "  [\033[32m*\033[0m] Gitting sources done"
+  cd fcgiwrap
+  autoreconf -i >> $LOG 2>&1
+  ./configure >> $LOG 2>&1
+  make >> $LOG 2>&1
+  make install >> $LOG 2>&1
+  echo -e "  [\033[32m*\033[0m] fcgiwrap done"
+
+  yum install spawn-fcgi -y >> $LOG 2>&1
+  echo -e "[\033[33m*\033[0m] Setting /etc/sysconfig/spawn-fcgi configuration file"
+  cat <<EOF > /etc/sysconfig/spawn-fcgi
+  # You must set some working options before the "spawn-fcgi" service will work.
+  # If SOCKET points to a file, then this file is cleaned up by the init script.
+  #
+  # See spawn-fcgi(1) for all possible options.
+  #
+  # Example :
+  #SOCKET=/var/run/php-fcgi.sock
+  #OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"
+
+  FCGI_SOCKET=/var/run/fcgiwrap.socket
+  FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
+  FCGI_USER=apache
+  FCGI_GROUP=apache
+  FCGI_EXTRA_OPTIONS="-M 0770"
+  OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"
 EOF
 
-usermod -a -G apache nginx >> $LOG 2>&1
-chkconfig --levels 235 spawn-fcgi on >> $LOG 2>&1
-/etc/init.d/spawn-fcgi start >> $LOG 2>&1
-echo -e "[\033[32m*\033[0m] NGINX set up !"
-
-#install PHPMYADMIN
-echo -e "[\033[33m*\033[0m] Setting PHPmyAdmin"
-yum install phpmyadmin -y >> $LOG 2>&1
-sed -i -e "s/$cfg['Servers'][$i]['auth_type'] = 'cookie';/$cfg['Servers'][$i]['auth_type'] = 'http';/" /usr/share/phpmyadmin/config.inc.php 2>&1
-
-echo -e "[\033[33m*\033[0m] Setting Mailman"
-#Mailman
-yum install mailman -y >> $LOG 2>&1
-/usr/lib/mailman/bin/newlist mailman
-
-cat <<EOF >> /etc/aliases
-mailman:              "|/usr/lib/mailman/mail/mailman post mailman"
-mailman-admin:        "|/usr/lib/mailman/mail/mailman admin mailman"
-mailman-bounces:      "|/usr/lib/mailman/mail/mailman bounces mailman"
-mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
-mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
-mailman-leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
-mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
-mailman-request:      "|/usr/lib/mailman/mail/mailman request mailman"
-mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
-mailman-unsubscribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"
+  usermod -a -G apache nginx >> $LOG 2>&1
+  chkconfig --levels 235 spawn-fcgi on >> $LOG 2>&1
+  /etc/init.d/spawn-fcgi start >> $LOG 2>&1
+  echo -e "[\033[32m*\033[0m] NGINX set up !"
+}
+
+install_pma() {
+  echo -e "[\033[33m*\033[0m] Setting PHPmyAdmin"
+  yum install phpmyadmin -y >> $LOG 2>&1
+  sed -i -e "s/$cfg['Servers'][$i]['auth_type'] = 'cookie';/$cfg['Servers'][$i]['auth_type'] = 'http';/" /usr/share/phpmyadmin/config.inc.php 2>&1
+  }
+
+install_mailman() {
+  echo -e "[\033[33m*\033[0m] Setting Mailman"
+  yum install mailman -y >> $LOG 2>&1
+  /usr/lib/mailman/bin/newlist mailman
+
+  cat <<EOF >> /etc/aliases
+  mailman:              "|/usr/lib/mailman/mail/mailman post mailman"
+  mailman-admin:        "|/usr/lib/mailman/mail/mailman admin mailman"
+  mailman-bounces:      "|/usr/lib/mailman/mail/mailman bounces mailman"
+  mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
+  mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
+  mailman-leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
+  mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
+  mailman-request:      "|/usr/lib/mailman/mail/mailman request mailman"
+  mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
+  mailman-unsubscribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"
 EOF
 
-newaliases >> $LOG
-/etc/init.d/postfix restart >> $LOG 2>&1
-chkconfig --levels 235 mailman on >> $LOG 2>&1
-/etc/init.d/mailman start >> $LOG 2>&1
-cd /usr/lib/mailman/cgi-bin/
-ln -s ./ mailman
-
-echo -e "[\033[33m*\033[0m] Setting PureFTPD"
-#PureFTPD
-yum install pure-ftpd -y >> $LOG 2>&1
-chkconfig --levels 235 pure-ftpd on >> $LOG 2>&1
-/etc/init.d/pure-ftpd start >> $LOG 2>&1
-yum install openssl >> $LOG 2>&1
-
-echo -e "[\033[33m*\033[0m] Setting Bind"
-#BIND
-yum install bind bind-utils -y >> $LOG 2>&1
-
-cp /etc/named.conf /etc/named.conf_bak
-cat <<EOF > /etc/named.conf
-//
-// named.conf
-//
-// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
-// server as a caching only nameserver (as a localhost DNS resolver only).
-//
-// See /usr/share/doc/bind*/sample/ for example named configuration files.
-//
-options {
-        listen-on port 53 { any; };
-        listen-on-v6 port 53 { any; };
-        directory       "/var/named";
-        dump-file       "/var/named/data/cache_dump.db";
-        statistics-file "/var/named/data/named_stats.txt";
-        memstatistics-file "/var/named/data/named_mem_stats.txt";
-        allow-query     { any; };
-        recursion yes;
+  newaliases >> $LOG
+  /etc/init.d/postfix restart >> $LOG 2>&1
+  chkconfig --levels 235 mailman on >> $LOG 2>&1
+  /etc/init.d/mailman start >> $LOG 2>&1
+  cd /usr/lib/mailman/cgi-bin/
+  ln -s ./ mailman
+}
+
+install_ftpd() {
+  echo -e "[\033[33m*\033[0m] Setting PureFTPD"
+  yum install pure-ftpd -y >> $LOG 2>&1
+  chkconfig --levels 235 pure-ftpd on >> $LOG 2>&1
+  /etc/init.d/pure-ftpd start >> $LOG 2>&1
+  yum install openssl >> $LOG 2>&1
+}
+
+install_bind() {
+  echo -e "[\033[33m*\033[0m] Setting Bind"
+  yum install bind bind-utils -y >> $LOG 2>&1
+
+  cp /etc/named.conf /etc/named.conf_bak
+  cat <<EOF > /etc/named.conf
+  //
+  // named.conf
+  //
+  // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
+  // server as a caching only nameserver (as a localhost DNS resolver only).
+  //
+  // See /usr/share/doc/bind*/sample/ for example named configuration files.
+  //
+  options {
+	  listen-on port 53 { any; };
+	  listen-on-v6 port 53 { any; };
+	  directory       "/var/named";
+	  dump-file       "/var/named/data/cache_dump.db";
+	  statistics-file "/var/named/data/named_stats.txt";
+	  memstatistics-file "/var/named/data/named_mem_stats.txt";
+	  allow-query     { any; };
+	  recursion yes;
+	  };
+  logging {
+	  channel default_debug {
+		  file "data/named.run";
+		  severity dynamic;
 	};
-logging {
-        channel default_debug {
-	        file "data/named.run";
-		 severity dynamic;
-       };
-};
+  };
 
-zone "." IN {
-        type hint;
-        file "named.ca";
-};
+  zone "." IN {
+	  type hint;
+	  file "named.ca";
+  };
 
-include "/etc/named.conf.local";
+  include "/etc/named.conf.local";
 
 EOF
 
-touch /etc/named.conf.local
-
-chkconfig --levels 235 named on >> $LOG 2>&1
-/etc/init.d/named start >> $LOG 2>&1
-
-echo -e "[\033[33m*\033[0m] Setting statistics stuffs"
-#Stuffs stats
-yum install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder -y >> $LOG 2>&1
-
-echo -e "[\033[33m*\033[0m] Setting Jailkit"
-#Jailkit
-cd /tmp
-wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz >> $LOG 2>&1
-tar xvfz jailkit-2.16.tar.gz >> $LOG 2>&1
-cd jailkit-2.16
-./configure >> $LOG 2>&1
-make >> $LOG 2>&1
-make install >> $LOG 2>&1
-cd ..
-rm -rf jailkit-2.16* >> $LOG 2>&1
-
-echo -e "[\033[33m*\033[0m] Setting fail2ban & RootkitHunter"
-#fail2ban & rkhunter
-yum install fail2ban -y >> $LOG 2>&1
-
-chkconfig --levels 235 fail2ban on >> $LOG 2>&1
-/etc/init.d/fail2ban start >> $LOG 2>&1
-
-yum install rkhunter -y >> $LOG 2>&1
+  touch /etc/named.conf.local
+
+  chkconfig --levels 235 named on >> $LOG 2>&1
+  /etc/init.d/named start >> $LOG 2>&1
+}
+
+install_awstat() {
+  echo -e "[\033[33m*\033[0m] Setting statistics stuffs"
+  um install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder -y >> $LOG 2>&1
+}
+
+install_jailkit() {
+  echo -e "[\033[33m*\033[0m] Setting Jailkit"
+  #Jailkit
+  cd /tmp
+  wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz >> $LOG 2>&1
+  tar xvfz jailkit-2.16.tar.gz >> $LOG 2>&1
+  cd jailkit-2.16
+  ./configure >> $LOG 2>&1
+  make >> $LOG 2>&1
+  make install >> $LOG 2>&1
+  cd ..
+  rm -rf jailkit-2.16* >> $LOG 2>&1
+}
+
+install_fail2ban() {
+  echo -e "[\033[33m*\033[0m] Setting fail2ban & RootkitHunter"
+  yum install fail2ban -y >> $LOG 2>&1
+  chkconfig --levels 235 fail2ban on >> $LOG 2>&1
+  /etc/init.d/fail2ban start >> $LOG 2>&1
+}
+
+install_rkhunter() {
+  yum install rkhunter -y >> $LOG 2>&1
+}
+
+
+configure_repo()
+update_system()
+install_required_packages()
+install_ntpd()
+disable_fw()
+disable_selinux()
+install_mysql()
+install_dovecot()
+install_postfix()
+install_getmail()
+install_clamav()
+install_nginx()
+install_pma()
+install_mailman()
+install_ftpd()
+install_bind()
+install_awstat()
+install_jailkit()
+install_fail2ban()
+install_rkhunter()
 
 echo -e "[\033[33m*\033[0m] Setting ISPConfig !"
 #ISPConfig
@@ -318,44 +360,4 @@ cd /tmp
 wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz >> $LOG 2>&1
 tar xfz ISPConfig-3-stable.tar.gz >> $LOG 2>&1
 cd ispconfig3_install/install/
-
-ISPSETUP=$(expect -c "
- 
-set timeout 10
-spawn php -q install.php
- 
-expect \"Select language (en,de)\"
-send \"\r\"
-
-expect \"Installation mode (standard,expert)\"
-send \"\r\"
-
-expect \"Full qualified hostname (FQDN) of the server, eg server1.domain.tld\"
-send \"\r\"
-
-expect \"MySQL server hostname\"
-send \"\r\"
-
-expect \"MySQL root username\"
-send \"\r\"
-
-expect \"MySQL root password\"
-send \"$mysqlrootpw\r\"
-
-expect \"MySQL database to create\"
-send \"\r\"
-
-expect \"MySQL charset\"
-send \"\r\"
-
- 
-")
-
-echo "$ISPSETUP" >> $LOG 2>&1 || echo -e "[\033[31mX\033[0m] Error installing ISPConfig" 
-
-
-
-sed -i -e "s/DEFAULT_SERVER_LANGUAGE =/DEFAULT_SERVER_LANGUAGE = 'en'/" /usr/lib/mailman/Mailman/mm_cfg.py >> $LOG 2>&1
-/etc/init.d/mailman restart  >> $LOG 2>&1
-
-
+php install.php