├── etc ├── container.ini ├── httpd │ ├── conf.modules.d │ │ ├── 00-lua.conf │ │ ├── 00-systemd.conf │ │ ├── 00-dav.conf │ │ ├── 10-php.conf │ │ ├── 01-cgi.conf │ │ ├── 00-mpm.conf │ │ ├── 00-proxy.conf │ │ └── 00-base.conf │ ├── conf.d │ │ ├── README │ │ ├── php.conf │ │ ├── welcome.conf │ │ ├── userdir.conf │ │ ├── autoindex.conf │ │ └── ssl.conf │ └── conf │ │ ├── httpd.conf │ │ └── magic ├── root │ ├── avantfax-3.3.7.tgz │ ├── avantfax_modems.sh │ └── avantfax_config.php ├── yum.repos.d │ ├── commercial-addons.repo │ ├── webmin.repo │ ├── Sangoma-fasttrack.repo │ ├── Sangoma-Commercial.repo │ └── Sangoma-Base.repo ├── shorewall │ ├── interfaces │ ├── zones │ ├── policy │ └── rules ├── iaxmodem │ └── ttyIAX0 ├── systemd │ └── system │ │ ├── freepbx.service │ │ └── containerstartup.service ├── asterisk │ ├── iax_custom.conf │ └── extensions_custom.conf ├── fail2ban │ ├── filter.d │ │ ├── wordpress.conf │ │ ├── sshd-ddos.conf │ │ ├── asterisk_manager.conf │ │ ├── wordpress-soft.conf │ │ ├── mor_ddos.conf │ │ ├── wordpress-hard.conf │ │ ├── asterisk_cli.conf │ │ └── asterisk.conf │ └── jail.local ├── webmin │ ├── mysql │ │ └── config │ ├── postfix │ │ └── config │ ├── mailboxes │ │ └── config │ └── bind8 │ │ └── config ├── yum.conf ├── rc.d │ └── init.d │ │ └── iaxmodem ├── containerstartup.sh ├── mysql │ └── my.cnf └── php.ini ├── pics ├── obiata.jpg ├── obigv.jpg ├── obiata1.jpg ├── obiata2.jpg ├── obiata-gv.jpg ├── obiatpbx1.jpg ├── obiatpbx2.jpg ├── obiatpbx3.jpg ├── obiatpbx4.jpg ├── obiatpbx5.jpg ├── obiatpbx6.jpg ├── obiatpbx7.jpg ├── obiatpbxIn.jpg ├── obiatpbxOut.jpg ├── obisetup1.jpg ├── obisetup2.jpg ├── obisetup3.jpg ├── obisetup4.jpg ├── obisetup5.jpg └── obisetup6.jpg ├── README.md └── Dockerfile /etc/container.ini: -------------------------------------------------------------------------------- 1 | SSH=2122 2 | SHOREWALL=eth0 3 | HTTP=80 4 | SSL=443 5 | -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/00-lua.conf: -------------------------------------------------------------------------------- 1 | LoadModule lua_module modules/mod_lua.so 2 | -------------------------------------------------------------------------------- /pics/obiata.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiata.jpg -------------------------------------------------------------------------------- /pics/obigv.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obigv.jpg -------------------------------------------------------------------------------- /pics/obiata1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiata1.jpg -------------------------------------------------------------------------------- /pics/obiata2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiata2.jpg -------------------------------------------------------------------------------- /pics/obiata-gv.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiata-gv.jpg -------------------------------------------------------------------------------- /pics/obiatpbx1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbx1.jpg -------------------------------------------------------------------------------- /pics/obiatpbx2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbx2.jpg -------------------------------------------------------------------------------- /pics/obiatpbx3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbx3.jpg -------------------------------------------------------------------------------- /pics/obiatpbx4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbx4.jpg -------------------------------------------------------------------------------- /pics/obiatpbx5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbx5.jpg -------------------------------------------------------------------------------- /pics/obiatpbx6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbx6.jpg -------------------------------------------------------------------------------- /pics/obiatpbx7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbx7.jpg -------------------------------------------------------------------------------- /pics/obiatpbxIn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbxIn.jpg -------------------------------------------------------------------------------- /pics/obiatpbxOut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obiatpbxOut.jpg -------------------------------------------------------------------------------- /pics/obisetup1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obisetup1.jpg -------------------------------------------------------------------------------- /pics/obisetup2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obisetup2.jpg -------------------------------------------------------------------------------- /pics/obisetup3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obisetup3.jpg -------------------------------------------------------------------------------- /pics/obisetup4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obisetup4.jpg -------------------------------------------------------------------------------- /pics/obisetup5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obisetup5.jpg -------------------------------------------------------------------------------- /pics/obisetup6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/pics/obisetup6.jpg -------------------------------------------------------------------------------- /etc/root/avantfax-3.3.7.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheTechsTech/freepbx/master/etc/root/avantfax-3.3.7.tgz -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/00-systemd.conf: -------------------------------------------------------------------------------- 1 | # This file configures systemd module: 2 | LoadModule systemd_module modules/mod_systemd.so 3 | -------------------------------------------------------------------------------- /etc/yum.repos.d/commercial-addons.repo: -------------------------------------------------------------------------------- 1 | [commercial-addons] 2 | name=Loway Research Yum Repository 3 | baseurl=http://yum.loway.ch/RPMS 4 | gpgcheck=0 5 | enabled=1 6 | -------------------------------------------------------------------------------- /etc/shorewall/interfaces: -------------------------------------------------------------------------------- 1 | #ZONE INTERFACE BROADCAST OPTIONS 2 | net docker0 detect bridge,routefilter,tcpflags,logmartians,nosmurfs 3 | 4 | -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/00-dav.conf: -------------------------------------------------------------------------------- 1 | LoadModule dav_module modules/mod_dav.so 2 | LoadModule dav_fs_module modules/mod_dav_fs.so 3 | LoadModule dav_lock_module modules/mod_dav_lock.so 4 | -------------------------------------------------------------------------------- /etc/shorewall/zones: -------------------------------------------------------------------------------- 1 | #ZONE TYPE OPTIONS IN OUT 2 | # OPTIONS OPTIONS 3 | fw firewall 4 | net ipv4 5 | 6 | -------------------------------------------------------------------------------- /etc/yum.repos.d/webmin.repo: -------------------------------------------------------------------------------- 1 | [Webmin] 2 | name=Webmin Distribution Neutral 3 | #baseurl=http://download.webmin.com/download/yum 4 | mirrorlist=http://download.webmin.com/download/yum/mirrorlist 5 | enabled=1 6 | 7 | -------------------------------------------------------------------------------- /etc/iaxmodem/ttyIAX0: -------------------------------------------------------------------------------- 1 | device /dev/ttyIAX0 2 | owner uucp:uucp 3 | mode 660 4 | port 4570 5 | refresh 60 6 | server 127.0.0.1 7 | peername 19999 8 | secret CLEARTEXT_PASSWORD 9 | cidname Fax System 10 | cidnumber 9999999999 11 | codec ulaw -------------------------------------------------------------------------------- /etc/shorewall/policy: -------------------------------------------------------------------------------- 1 | #SOURCE DEST POLICY LOG LEVEL LIMIT:BURST 2 | $FW all ACCEPT 3 | net all DROP info 4 | # The FOLLOWING POLICY MUST BE LAST 5 | all all REJECT info 6 | -------------------------------------------------------------------------------- /etc/systemd/system/freepbx.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=FreePBX VoIP Server 3 | After=mariadb.service 4 | 5 | [Service] 6 | Type=oneshot 7 | RemainAfterExit=yes 8 | ExecStart=/usr/sbin/fwconsole start -q 9 | ExecStop=/usr/sbin/fwconsole stop -q 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /etc/yum.repos.d/Sangoma-fasttrack.repo: -------------------------------------------------------------------------------- 1 | [fasttrack-sangoma] 2 | name=Sangoma-7 - fasttrack 3 | mirrorlist=http://mirrorlist.sangoma.net/?release=$releasever&arch=$basearch&repo=fasttrack&dist=$dist 4 | #baseurl=http:/package1.sangoma.net/sng7/$releasever/fasttrack/$basearch/ 5 | gpgcheck=1 6 | enabled=1 7 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 8 | -------------------------------------------------------------------------------- /etc/yum.repos.d/Sangoma-Commercial.repo: -------------------------------------------------------------------------------- 1 | [sng-commercial] 2 | name=Sangoma-$releasever - Commercial Modules 3 | mirrorlist=http://mirrorlist.sangoma.net/?release=$releasever&arch=$basearch&repo=commercial&dist=$dist 4 | #baseurl=http:/package1.sangoma.net/sng7/$releasever/commercial/$basearch/ 5 | gpgcheck=0 6 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Sangoma-7 7 | enabled=0 8 | -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/10-php.conf: -------------------------------------------------------------------------------- 1 | # 2 | # PHP is an HTML-embedded scripting language which attempts to make it 3 | # easy for developers to write dynamically generated webpages. 4 | # 5 | 6 | LoadModule php5_module modules/libphp5.so 7 | 8 | 9 | 10 | LoadModule php5_module modules/libphp5-zts.so 11 | 12 | 13 | -------------------------------------------------------------------------------- /etc/asterisk/iax_custom.conf: -------------------------------------------------------------------------------- 1 | [19999] 2 | deny=0.0.0.0/0.0.0.0 3 | secret=CLEARTEXT_PASSWORD 4 | transfer=yes 5 | host=dynamic 6 | type=friend 7 | port=4570 8 | qualify=yes 9 | dial=IAX2/19999 10 | accountcode= 11 | permit=0.0.0.0/0.0.0.0 12 | requirecalltoken=no 13 | context=from-internal 14 | secret_origional=CLEARTEXT_PASSWORD 15 | callerid=Fax System <19999> 16 | setvar=REALCALLERIDNUM= 17 | -------------------------------------------------------------------------------- /etc/httpd/conf.d/README: -------------------------------------------------------------------------------- 1 | 2 | This directory holds configuration files for the Apache HTTP Server; 3 | any files in this directory which have the ".conf" extension will be 4 | processed as httpd configuration files. The directory is used in 5 | addition to the directory /etc/httpd/conf.modules.d/, which contains 6 | configuration files necessary to load modules. 7 | 8 | Files are processed in alphabetical order. 9 | 10 | -------------------------------------------------------------------------------- /etc/systemd/system/containerstartup.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Check docker's 'ENV' on container startup 3 | After=iptables.service, denyhosts.service, shorewall.service, fail2ban.service, mariadb.service, asterisk.service, httpd.service, postfix.service, freepbx.service, crond.service, rsyslog.service, iaxmodem.service, webmin.service 4 | 5 | [Service] 6 | Type=oneshot 7 | RemainAfterExit=no 8 | ExecStart=/containerstartup.sh 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /etc/asterisk/extensions_custom.conf: -------------------------------------------------------------------------------- 1 | 2 | [custom-fax-iaxmodem] 3 | exten => s,1,Answer 4 | exten => s,n,Wait(1) 5 | exten => s,n,SendDTMF(1) 6 | exten => s,n,Dial(IAX2/19999/${EXTEN}) 7 | exten => s,n,Busy 8 | exten => s,n,Hangup 9 | 10 | [from-fax] 11 | exten => _x.,1,Dial(local/${EXTEN}@from-internal) 12 | exten => _x.,n,Goto(outbound-allroutes,${EXTEN},1) 13 | exten => _x.,n,Hangup 14 | 15 | [ext-did-custom] 16 | exten => fax,1,Noop(Fax detected!) 17 | exten => fax,2,Goto(custom-fax-iaxmodem,s,1) 18 | -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/wordpress.conf: -------------------------------------------------------------------------------- 1 | # WordPress fail2ban protection from The Digital FAQ (digitalFAQ.com) 2 | 3 | [INCLUDES] 4 | before = common.conf 5 | 6 | [Definition] 7 | _daemon = wordpress 8 | failregex = ^%(__prefix_line)sAuthentication failure for .* from $ 9 | ignoreregex = 10 | 11 | ########################################## 12 | 13 | # Option: ignoreregex 14 | # Notes.: regex to ignore. If this regex matches, the line is ignored. 15 | # Values: TEXT 16 | # ^ ignore blog owner IP addresses! -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/01-cgi.conf: -------------------------------------------------------------------------------- 1 | # This configuration file loads a CGI module appropriate to the MPM 2 | # which has been configured in 00-mpm.conf. mod_cgid should be used 3 | # with a threaded MPM; mod_cgi with the prefork MPM. 4 | 5 | 6 | LoadModule cgid_module modules/mod_cgid.so 7 | 8 | 9 | LoadModule cgid_module modules/mod_cgid.so 10 | 11 | 12 | LoadModule cgi_module modules/mod_cgi.so 13 | 14 | 15 | -------------------------------------------------------------------------------- /etc/webmin/mysql/config: -------------------------------------------------------------------------------- 1 | date_subs=0 2 | max_text=1000 3 | perpage=25 4 | stop_cmd=service mariadb stop 5 | mysqldump=/usr/bin/mysqldump 6 | nodbi=0 7 | mysql_libs= 8 | sock= 9 | encoding= 10 | max_dbs=50 11 | start_cmd=service mariadb start 12 | mysql_data=/var/lib/mysql 13 | mysqlimport=/usr/bin/mysqlimport 14 | access=*: * 15 | webmin_subs=0 16 | style=0 17 | charset= 18 | port= 19 | mysqld= 20 | my_cnf=/etc/my.cnf 21 | host= 22 | login=root 23 | mysqlshow=/usr/bin/mysqlshow 24 | mysql=/usr/bin/mysql 25 | nopwd=1 26 | add_mode=1 27 | passwd_mode=0 28 | blob_mode=0 29 | mysqladmin=/usr/bin/mysqladmin 30 | pass=CLEARTEXT_PASSWORD 31 | -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/sshd-ddos.conf: -------------------------------------------------------------------------------- 1 | # Fail2Ban configuration file 2 | # 3 | # Author: Yaroslav Halchenko 4 | # 5 | # $Revision$ 6 | # 7 | 8 | [Definition] 9 | 10 | # Option: failregex 11 | # Notes.: regex to match the password failures messages in the logfile. The 12 | # host must be matched by a group named "host". The tag "" can 13 | # be used for standard IP/hostname matching and is only an alias for 14 | # (?:::f{4,6}:)?(?P[\w\-.^_]+) 15 | # Values: TEXT 16 | # 17 | failregex = sshd(?:\[\d+\])?: Did not receive identification string from $ 18 | 19 | # Option: ignoreregex 20 | # Notes.: regex to ignore. If this regex matches, the line is ignored. 21 | # Values: TEXT 22 | # 23 | ignoreregex = 24 | -------------------------------------------------------------------------------- /etc/httpd/conf.d/php.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Cause the PHP interpreter to handle files with a .php extension. 3 | # 4 | AddHandler php5-script .php 5 | AddType text/html .php 6 | 7 | # 8 | # Add index.php to the list of files that will be served as directory 9 | # indexes. 10 | # 11 | DirectoryIndex index.php 12 | 13 | # 14 | # Uncomment the following line to allow PHP to pretty-print .phps 15 | # files as PHP source code: 16 | # 17 | #AddType application/x-httpd-php-source .phps 18 | 19 | # 20 | # Apache specific PHP configuration options 21 | # those can be override in each configured vhost 22 | # 23 | php_value session.save_handler "files" 24 | php_value session.save_path "/var/lib/php/session" 25 | php_value soap.wsdl_cache_dir "/var/lib/php/wsdlcache" 26 | -------------------------------------------------------------------------------- /etc/webmin/postfix/config: -------------------------------------------------------------------------------- 1 | mailq_cmd=postqueue -p 2 | postfix_config_file=/etc/postfix/main.cf 3 | mailq_sort=0 4 | postfix_config_command=/usr/sbin/postconf 5 | mailq_count=0 6 | postfix_control_command=/usr/sbin/postfix 7 | perpage=20 8 | ldap_doms=0 9 | delete_warn=1 10 | fwd_mode=0 11 | wrap_width=80 12 | postfix_aliases_table_command=/usr/sbin/postalias 13 | delete_confirm=1 14 | sort_mode=0 15 | show_cmts=0 16 | check_config=1 17 | mailq_dir=/var/spool/postfix 18 | max_maps=100 19 | postfix_queue_command=postqueue 20 | prefix_cmts=0 21 | postcat_cmd=/usr/sbin/postcat 22 | index_check=1 23 | postfix_super_command=/usr/sbin/postsuper 24 | postfix_master=/etc/postfix/master.cf 25 | top_buttons=1 26 | max_records=200 27 | columns=2 28 | postfix_newaliases_command=/usr/bin/newaliases 29 | postfix_lookup_table_command=/usr/sbin/postmap 30 | -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/00-mpm.conf: -------------------------------------------------------------------------------- 1 | # Select the MPM module which should be used by uncommenting exactly 2 | # one of the following LoadModule lines: 3 | 4 | # prefork MPM: Implements a non-threaded, pre-forking web server 5 | # See: http://httpd.apache.org/docs/2.4/mod/prefork.html 6 | LoadModule mpm_prefork_module modules/mod_mpm_prefork.so 7 | 8 | # worker MPM: Multi-Processing Module implementing a hybrid 9 | # multi-threaded multi-process web server 10 | # See: http://httpd.apache.org/docs/2.4/mod/worker.html 11 | # 12 | #LoadModule mpm_worker_module modules/mod_mpm_worker.so 13 | 14 | # event MPM: A variant of the worker MPM with the goal of consuming 15 | # threads only for connections with active processing 16 | # See: http://httpd.apache.org/docs/2.4/mod/event.html 17 | # 18 | #LoadModule mpm_event_module modules/mod_mpm_event.so 19 | 20 | -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/asterisk_manager.conf: -------------------------------------------------------------------------------- 1 | # Fail2Ban configuration file 2 | # 3 | # 4 | # $Revision: 250 $ 5 | # 6 | 7 | [INCLUDES] 8 | 9 | # Read common prefixes. If any customizations available -- read them from 10 | # common.local 11 | #before = common.conf 12 | 13 | 14 | [Definition] 15 | 16 | #_daemon = asterisk 17 | 18 | # Option: failregex 19 | # Notes.: regex to match the password failures messages in the logfile. The 20 | # host must be matched by a group named "host". The tag ""can 21 | # be used for standard IP/hostname matching and is only an aliasfor 22 | # (?:::f{4,6}:)?(?P\S+) 23 | # Values: TEXT 24 | # 25 | 26 | failregex = .*NOTICE.* tried to authenticate with nonexistent user.* 27 | 28 | 29 | # Option: ignoreregex 30 | # Notes.: regex to ignore. If this regex matches, the line is ignored. 31 | # Values: TEXT 32 | # 33 | ignoreregex = 34 | -------------------------------------------------------------------------------- /etc/httpd/conf.d/welcome.conf: -------------------------------------------------------------------------------- 1 | # 2 | # This configuration file enables the default "Welcome" page if there 3 | # is no default index page present for the root URL. To disable the 4 | # Welcome page, comment out all the lines below. 5 | # 6 | # NOTE: if this file is removed, it will be restored on upgrades. 7 | # 8 | 9 | Options -Indexes 10 | ErrorDocument 403 /.noindex.html 11 | 12 | 13 | 14 | AllowOverride None 15 | Require all granted 16 | 17 | 18 | Alias /.noindex.html /usr/share/httpd/noindex/index.html 19 | Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css 20 | Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css 21 | Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif 22 | Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png 23 | -------------------------------------------------------------------------------- /etc/root/avantfax_modems.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # ADD MODEMS TO AvantFax DATABASE 3 | 4 | for i in `ls /var/spool/hylafax/etc/config.*`; do 5 | if [ "$i" != "/var/spool/hylafax/etc/config.sav" ]; then 6 | if [ "$i" != "/var/spool/hylafax/etc/config.devid" ]; then 7 | tilde=`echo $i | grep '~'` 8 | if [ "$?" -eq "1" ]; then 9 | if [ -f $i ]; then 10 | modem=`echo $i | awk -F'/' '{print $6}' | awk -F'.' '{print $2}'` 11 | exists=`mysql --user=root --password=CLEARTEXT_PASSWORD avantfax -sNe "select count(*) existe from Modems where device='$modem'"` 12 | if [ "$exists" -eq "0" ]; then 13 | mysql --user=root --password=CLEARTEXT_PASSWORD -e "INSERT INTO Modems SET device='$modem', alias ='$modem'" avantfax 14 | fi 15 | fi 16 | fi 17 | fi 18 | fi 19 | done 20 | 21 | if [ -f /etc/mail/trusted-users ]; then 22 | grep ^asterisk$ /etc/mail/trusted-users || \ 23 | echo asterisk >> /etc/mail/trusted-users 24 | fi 25 | -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/wordpress-soft.conf: -------------------------------------------------------------------------------- 1 | # Fail2Ban configuration file 2 | # 3 | # Author: Charles Lecklider 4 | # 5 | 6 | [INCLUDES] 7 | 8 | # Read common prefixes. If any customizations available -- read them from 9 | # common.local 10 | before = common.conf 11 | 12 | 13 | [Definition] 14 | 15 | _daemon = (?:wordpress|wp) 16 | 17 | # Option: failregex 18 | # Notes.: regex to match the password failures messages in the logfile. The 19 | # host must be matched by a group named "host". The tag "" can 20 | # be used for standard IP/hostname matching and is only an alias for 21 | # (?:::f{4,6}:)?(?P[\w\-.^_]+) 22 | # Values: TEXT 23 | # 24 | failregex = ^%(__prefix_line)sAuthentication failure for .* from $ 25 | ^%(__prefix_line)sXML-RPC authentication failure from $ 26 | 27 | # Option: ignoreregex 28 | # Notes.: regex to ignore. If this regex matches, the line is ignored. 29 | # Values: TEXT 30 | # 31 | ignoreregex = 32 | -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/mor_ddos.conf: -------------------------------------------------------------------------------- 1 | # MOR custom attacks configuration file 2 | # 3 | # 4 | # $Revision: 250 $ 5 | # 6 | 7 | [INCLUDES] 8 | 9 | # Read common prefixes. If any customizations available -- read them from 10 | # common.local 11 | #before = common.conf 12 | 13 | 14 | [Definition] 15 | 16 | #_daemon = httpd 17 | 18 | # Option: failregex 19 | # Notes.: regex to match the password failures messages in the logfile. The 20 | # host must be matched by a group named "host". The tag ""can 21 | # be used for standard IP/hostname matching and is only an aliasfor 22 | # (?:::f{4,6}:)?(?P\S+) 23 | # Values: TEXT 24 | # 25 | 26 | failregex = .*client \].*request failed: URI too long.* 27 | .*client \].*request failed: error reading the headers 28 | # .*client \].*File does not exist.* 29 | 30 | 31 | 32 | 33 | # Option: ignoreregex 34 | # Notes.: regex to ignore. If this regex matches, the line is ignored. 35 | # Values: TEXT 36 | # 37 | ignoreregex = 38 | -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/00-proxy.conf: -------------------------------------------------------------------------------- 1 | # This file configures all the proxy modules: 2 | LoadModule proxy_module modules/mod_proxy.so 3 | LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so 4 | LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so 5 | LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so 6 | LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so 7 | LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 8 | LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 9 | LoadModule proxy_connect_module modules/mod_proxy_connect.so 10 | LoadModule proxy_express_module modules/mod_proxy_express.so 11 | LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 12 | LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so 13 | LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 14 | LoadModule proxy_http_module modules/mod_proxy_http.so 15 | LoadModule proxy_scgi_module modules/mod_proxy_scgi.so 16 | LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so 17 | -------------------------------------------------------------------------------- /etc/shorewall/rules: -------------------------------------------------------------------------------- 1 | ############################################################################################################################################################## 2 | #ACTION SOURCE DEST PROTO DPORT SPORT ORIGDEST RATE USER MARK CONNLIMIT TIME HEADERS SWITCH HELPER 3 | # Permit all ICMP traffic FROM the firewall TO the net zone 4 | #Allow incoming TCP ports 5 | ACCEPT net $FW tcp 25,80,443,465,2122,5060,5061,5062,5063,8001,8003,8088,8089,9000,10000:10100 6 | ACCEPT net $FW icmp 8 - - 1/sec 7 | ACCEPT net $FW icmp 0 - - 1/sec 8 | ACCEPT net $FW icmp 11 9 | ACCEPT net $FW icmp 3 10 | #Allow incoming UDP ports 11 | ACCEPT net $FW udp 500,4500,5060,5061,5062,5063,9000,10000:10100 12 | #ssh on port 2122 13 | DROP:info:TRAP net $FW tcp 22 14 | #Commonly blocked ports 15 | DROP net $FW udp 67,68,111,113,135,139,445,513,520 16 | DROP net $FW tcp 67,68,111,113,135,139,445,513,520 17 | LOG:notice:TCP_IN net $FW tcp - - - 30/min 18 | LOG:notice:UDP_IN net $FW udp - - - 30/min 19 | LOG:notice:ICMP_IN net $FW icmp - - - 30/min -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/wordpress-hard.conf: -------------------------------------------------------------------------------- 1 | # Fail2Ban configuration file 2 | # 3 | # Author: Charles Lecklider 4 | # 5 | 6 | [INCLUDES] 7 | 8 | # Read common prefixes. If any customizations available -- read them from 9 | # common.local 10 | before = common.conf 11 | 12 | 13 | [Definition] 14 | 15 | _daemon = (?:wordpress|wp) 16 | 17 | # Option: failregex 18 | # Notes.: regex to match the password failures messages in the logfile. The 19 | # host must be matched by a group named "host". The tag "" can 20 | # be used for standard IP/hostname matching and is only an alias for 21 | # (?:::f{4,6}:)?(?P[\w\-.^_]+) 22 | # Values: TEXT 23 | # 24 | failregex = ^%(__prefix_line)sAuthentication attempt for unknown user .* from $ 25 | ^%(__prefix_line)sBlocked authentication attempt for .* from $ 26 | ^%(__prefix_line)sBlocked user enumeration attempt from $ 27 | ^%(__prefix_line)sPingback error .* generated from $ 28 | 29 | # Option: ignoreregex 30 | # Notes.: regex to ignore. If this regex matches, the line is ignored. 31 | # Values: TEXT 32 | # 33 | ignoreregex = 34 | -------------------------------------------------------------------------------- /etc/yum.conf: -------------------------------------------------------------------------------- 1 | [main] 2 | cachedir=/var/cache/yum/$basearch/$releasever 3 | keepcache=0 4 | debuglevel=2 5 | logfile=/var/log/yum.log 6 | exactarch=1 7 | obsoletes=1 8 | gpgcheck=1 9 | plugins=1 10 | installonly_limit=5 11 | bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum 12 | distroverpkg=centos-release 13 | override_install_langs=en_US.utf8 14 | tsflags=nodocs 15 | exclude=libical* libresample* 16 | 17 | # This is the default, if you make this bigger yum won't see if the metadata 18 | # is newer on the remote and so you'll "gain" the bandwidth of not having to 19 | # download the new metadata and "pay" for it by yum not having correct 20 | # information. 21 | # It is esp. important, to have correct metadata, for distributions like 22 | # Fedora which don't keep old packages around. If you don't like this checking 23 | # interupting your command line usage, it's much better to have something 24 | # manually check the metadata once an hour (yum-updatesd will do this). 25 | # metadata_expire=90m 26 | 27 | # PUT YOUR REPOS HERE OR IN separate files named file.repo 28 | # in /etc/yum.repos.d 29 | -------------------------------------------------------------------------------- /etc/webmin/mailboxes/config: -------------------------------------------------------------------------------- 1 | show_mail=1 2 | show_body=0 3 | check_mod=1 4 | mail_usermin=mail 5 | maildir_deleted=0 6 | sync_create=1 7 | mail_system=0 8 | date_fmt=dmy 9 | delete_warn=y 10 | mail_file=Mailbox 11 | noindex_hostname=0 12 | mail_dir=Maildir 13 | show_to=0 14 | html_edit=1 15 | mailbox_user=.usermin/mailbox 16 | mail_style=0 17 | show_sent=1 18 | top_buttons=2 19 | spam_del=0 20 | show_size=1 21 | column_count=4 22 | track_read=0 23 | link_mode=0 24 | size_mode=1 25 | show_size_below=0 26 | sig_file=* 27 | vpopmail_dir=/home/vpopmail 28 | no_crlf=0 29 | perpage=20 30 | view_html=2 31 | fwd_mode=0 32 | sync_modify=1 33 | log_read=0 34 | spam_report= 35 | ignore_users_enabled=0 36 | wrap_width=80 37 | sort_mode=1 38 | sync_perms=0700 39 | spam_buttons=mail 40 | ignore_users= 41 | show_delall=1 42 | sync_delete=1 43 | no_mailer=0 44 | from_virtualmin=1 45 | show_count=1 46 | max_records=200 47 | auto=1 48 | html_quote=0 49 | open_mode=0 50 | arrows=1 51 | no_orig_ip=0 52 | show_unread=0 53 | ldap_base= 54 | date_tz= 55 | bcc_to= 56 | download= 57 | mail_sub= 58 | wrap_compose= 59 | ldap_port= 60 | from_dom= 61 | smtp_auth= 62 | from_addr= 63 | ldap_login= 64 | ldap_host= 65 | helo_name= 66 | ldap_pass= 67 | -------------------------------------------------------------------------------- /etc/httpd/conf.d/userdir.conf: -------------------------------------------------------------------------------- 1 | # 2 | # UserDir: The name of the directory that is appended onto a user's home 3 | # directory if a ~user request is received. 4 | # 5 | # The path to the end user account 'public_html' directory must be 6 | # accessible to the webserver userid. This usually means that ~userid 7 | # must have permissions of 711, ~userid/public_html must have permissions 8 | # of 755, and documents contained therein must be world-readable. 9 | # Otherwise, the client will only receive a "403 Forbidden" message. 10 | # 11 | 12 | # 13 | # UserDir is disabled by default since it can confirm the presence 14 | # of a username on the system (depending on home directory 15 | # permissions). 16 | # 17 | UserDir disabled 18 | 19 | # 20 | # To enable requests to /~user/ to serve the user's public_html 21 | # directory, remove the "UserDir disabled" line above, and uncomment 22 | # the following line instead: 23 | # 24 | #UserDir public_html 25 | 26 | 27 | # 28 | # Control access to UserDir directories. The following is an example 29 | # for a site where these directories are restricted to read-only. 30 | # 31 | 32 | AllowOverride FileInfo AuthConfig Limit Indexes 33 | Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 34 | Require method GET POST OPTIONS 35 | 36 | 37 | -------------------------------------------------------------------------------- /etc/rc.d/init.d/iaxmodem: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Startup script for iaxmodem 3 | # 4 | # chkconfig: 2345 95 05 5 | # description: IAXModem for asterisk <-> Hylafax gateway 6 | 7 | # Source function library. 8 | . /etc/rc.d/init.d/functions 9 | 10 | [ -f /usr/sbin/iaxmodem ] || exit 0 11 | 12 | prog="IAXmodem" 13 | 14 | start() { 15 | echo -n $"Starting $prog: " 16 | daemon /usr/sbin/iaxmodem 17 | RETVAL=$? 18 | echo 19 | return $RETVAL 20 | } 21 | 22 | stop() { 23 | if test "x`pidof iaxmodem`" != x; then 24 | echo -n $"Stopping $prog: " 25 | killproc iaxmodem 26 | echo 27 | fi 28 | RETVAL=$? 29 | return $RETVAL 30 | } 31 | 32 | reload() { 33 | if test "x`pidof iaxmodem`" != x; then 34 | echo $"Reloading $prog" 35 | kill -HUP `head -1 /var/run/iaxmodem.pid` 36 | fi 37 | } 38 | 39 | case "$1" in 40 | start) 41 | start 42 | ;; 43 | 44 | stop) 45 | stop 46 | ;; 47 | 48 | status) 49 | status iaxmodem 50 | ;; 51 | reload) 52 | reload 53 | ;; 54 | restart) 55 | stop 56 | start 57 | ;; 58 | condrestart) 59 | if test "x`pidof iaxmodem`" != x; then 60 | stop 61 | start 62 | fi 63 | ;; 64 | 65 | *) 66 | echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}" 67 | exit 1 68 | 69 | esac 70 | 71 | exit $RETVAL 72 | -------------------------------------------------------------------------------- /etc/webmin/bind8/config: -------------------------------------------------------------------------------- 1 | updserial_man=1 2 | keygen=dnssec-keygen 3 | checkconf=named-checkconf 4 | updserial_def=0 5 | pid_file=/var/run/named/named.pid 6 | named_conf=/etc/named.conf 7 | relative_paths=0 8 | rev_must=0 9 | soa_start=0 10 | records_order=0 11 | reversezonefilename_format=ZONE.rev 12 | no_pid_chroot=0 13 | short_names=0 14 | master_ttl=1 15 | allow_comments=0 16 | no_chroot=0 17 | force_random=0 18 | updserial_on=1 19 | named_path=/usr/sbin/named 20 | whois_cmd=whois 21 | ndc_cmd=ndc 22 | allow_long=0 23 | checkzone=named-checkzone 24 | allow_wild=1 25 | spf_record=0 26 | show_list=1 27 | rev_def=0 28 | stop_cmd=systemctl stop named.service 29 | confirm_zone=1 30 | forwardzonefilename_format=ZONE.hosts 31 | by_view=0 32 | rndcconf_cmd=rndc-confgen 33 | start_cmd=systemctl start named.service 34 | rndc_conf=/etc/rndc.conf 35 | signzone=dnssec-signzone 36 | support_aaaa=1 37 | ipv6_mode=1 38 | confirm_rec=0 39 | soa_style=0 40 | max_zones=50 41 | largezones=0 42 | allow_underscore=1 43 | rndc_cmd=rndc 44 | other_slaves=1 45 | tmpl_dnssec=1 46 | tmpl_email= 47 | tmpl_dnssecsizedef=2 48 | tmpl_dnssecsize= 49 | tmpl_dnssec_dt= 50 | tmpl_dnssecalg=RSASHA256 51 | tmpl_dnssecsingle=0 52 | restart_cmd=restart 53 | file_perms= 54 | extra_reverse= 55 | master_dir= 56 | file_owner= 57 | named_group= 58 | dnssectools_conf= 59 | default_view= 60 | dnssectools_rollrec= 61 | extra_forward= 62 | slave_file_perms= 63 | slave_dir= 64 | keys_dir= 65 | dnssectools_keydir= 66 | auto_chroot= 67 | default_master= 68 | chroot= 69 | dnssectools_rollmgr_pidfile= 70 | this_ip= 71 | named_user= 72 | free_nets= 73 | zones_file= 74 | extra_slaves= 75 | dnssec_period=21 76 | -------------------------------------------------------------------------------- /etc/yum.repos.d/Sangoma-Base.repo: -------------------------------------------------------------------------------- 1 | # This is the standard Sangoma Yum Repository 2 | 3 | [sng-base] 4 | name=Sangoma-$releasever - Base 5 | mirrorlist=http://mirrorlist.sangoma.net/?release=$releasever&arch=$basearch&repo=os&dist=$dist&staging=$staging 6 | #baseurl=http://package1.sangoma.net/os/$releasever/os/x86_64/ 7 | gpgcheck=0 8 | enabled=1 9 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Sangoma-7 10 | 11 | [sng-updates] 12 | name=Sangoma-$releasever - Updates 13 | mirrorlist=http://mirrorlist.sangoma.net/?release=$releasever&arch=$basearch&repo=updates&dist=$dist&staging=$staging 14 | #baseurl=http://package1.sangoma.net/os/$releasever/updates/x86_64/ 15 | gpgcheck=0 16 | enabled=1 17 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Sangoma-7 18 | 19 | [sng-extras] 20 | name=Sangoma-$releasever - Extras 21 | mirrorlist=http://mirrorlist.sangoma.net/?release=$releasever&arch=$basearch&repo=extras&dist=$dist&staging=$staging 22 | #baseurl=http://package1.sangoma.net/os/$releasever/extras/x86_64/ 23 | gpgcheck=0 24 | enabled=1 25 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Sangoma-7 26 | 27 | [sng-pkgs] 28 | name=Sangoma-$releasever - Sangoma Open Source Packages 29 | mirrorlist=http://mirrorlist.sangoma.net/?release=$releasever&arch=$basearch&repo=sng7&dist=$dist&staging=$staging 30 | #baseurl=http://package1.sangoma.net/sng7/sng7 31 | gpgcheck=0 32 | enabled=1 33 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Sangoma-7 34 | 35 | [sng-epel] 36 | name=Sangoma-$releasever - Sangoma Epel mirror 37 | mirrorlist=http://mirrorlist.sangoma.net/?release=$releasever&arch=$basearch&repo=epel&dist=$dist&staging=$staging 38 | #baseurl=http://package1.sangoma.net/sng7/epel 39 | gpgcheck=0 40 | enabled=1 41 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 42 | -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/asterisk_cli.conf: -------------------------------------------------------------------------------- 1 | # Fail2Ban configuration file 2 | # 3 | # 4 | # $Revision: 250 $ 5 | # 6 | 7 | [INCLUDES] 8 | 9 | # Read common prefixes. If any customizations available -- read them from 10 | # common.local 11 | #before = common.conf 12 | 13 | 14 | [Definition] 15 | 16 | #_daemon = asterisk 17 | 18 | # Option: failregex 19 | # Notes.: regex to match the password failures messages in the logfile. The 20 | # host must be matched by a group named "host". The tag ""can 21 | # be used for standard IP/hostname matching and is only an aliasfor 22 | # (?:::f{4,6}:)?(?P\S+) 23 | # Values: TEXT 24 | # 25 | 26 | failregex = NOTICE.* .*: Useragent: sipcli.*\[\] 27 | NOTICE.* .*: Useragent: sip-scan.*\[\] 28 | NOTICE.* .*: Useragent: sipsak.*\[\] 29 | NOTICE.* .*: Useragent: sundayddr.*\[\] 30 | NOTICE.* .*: Useragent: friendly-scanner.*\[\] 31 | NOTICE.* .*: Useragent: iWar.*\[\] 32 | NOTICE.* .*: Useragent: CSipSimple.*\[\] 33 | NOTICE.* .*: Useragent: SIVuS.*\[\] 34 | NOTICE.* .*: Useragent: Gulp.*\[\] 35 | NOTICE.* .*: Useragent: sipv.*\[\] 36 | NOTICE.* .*: Useragent: smap.*\[\] 37 | NOTICE.* .*: Useragent: friendly-request.*\[\] 38 | NOTICE.* .*: Useragent: VaxIPUserAgent.*\[\] 39 | NOTICE.* .*: Useragent: VaxSIPUserAgent.*\[\] 40 | NOTICE.* .*: Useragent: siparmyknife.*\[\] 41 | NOTICE.* .*: Useragent: Test Agent.*\[\] 42 | 43 | 44 | # Option: ignoreregex 45 | # Notes.: regex to ignore. If this regex matches, the line is ignored. 46 | # Values: TEXT 47 | # 48 | ignoreregex = 49 | -------------------------------------------------------------------------------- /etc/httpd/conf.d/autoindex.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Directives controlling the display of server-generated directory listings. 3 | # 4 | # Required modules: mod_authz_core, mod_authz_host, 5 | # mod_autoindex, mod_alias 6 | # 7 | # To see the listing of a directory, the Options directive for the 8 | # directory must include "Indexes", and the directory must not contain 9 | # a file matching those listed in the DirectoryIndex directive. 10 | # 11 | 12 | # 13 | # IndexOptions: Controls the appearance of server-generated directory 14 | # listings. 15 | # 16 | IndexOptions FancyIndexing HTMLTable VersionSort 17 | 18 | # We include the /icons/ alias for FancyIndexed directory listings. If 19 | # you do not use FancyIndexing, you may comment this out. 20 | # 21 | Alias /icons/ "/usr/share/httpd/icons/" 22 | 23 | 24 | Options Indexes MultiViews FollowSymlinks 25 | AllowOverride None 26 | Require all granted 27 | 28 | 29 | # 30 | # AddIcon* directives tell the server which icon to show for different 31 | # files or filename extensions. These are only displayed for 32 | # FancyIndexed directories. 33 | # 34 | AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip 35 | 36 | AddIconByType (TXT,/icons/text.gif) text/* 37 | AddIconByType (IMG,/icons/image2.gif) image/* 38 | AddIconByType (SND,/icons/sound2.gif) audio/* 39 | AddIconByType (VID,/icons/movie.gif) video/* 40 | 41 | AddIcon /icons/binary.gif .bin .exe 42 | AddIcon /icons/binhex.gif .hqx 43 | AddIcon /icons/tar.gif .tar 44 | AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv 45 | AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip 46 | AddIcon /icons/a.gif .ps .ai .eps 47 | AddIcon /icons/layout.gif .html .shtml .htm .pdf 48 | AddIcon /icons/text.gif .txt 49 | AddIcon /icons/c.gif .c 50 | AddIcon /icons/p.gif .pl .py 51 | AddIcon /icons/f.gif .for 52 | AddIcon /icons/dvi.gif .dvi 53 | AddIcon /icons/uuencoded.gif .uu 54 | AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl 55 | AddIcon /icons/tex.gif .tex 56 | AddIcon /icons/bomb.gif /core 57 | AddIcon /icons/bomb.gif */core.* 58 | 59 | AddIcon /icons/back.gif .. 60 | AddIcon /icons/hand.right.gif README 61 | AddIcon /icons/folder.gif ^^DIRECTORY^^ 62 | AddIcon /icons/blank.gif ^^BLANKICON^^ 63 | 64 | # 65 | # DefaultIcon is which icon to show for files which do not have an icon 66 | # explicitly set. 67 | # 68 | DefaultIcon /icons/unknown.gif 69 | 70 | # 71 | # AddDescription allows you to place a short description after a file in 72 | # server-generated indexes. These are only displayed for FancyIndexed 73 | # directories. 74 | # Format: AddDescription "description" filename 75 | # 76 | #AddDescription "GZIP compressed document" .gz 77 | #AddDescription "tar archive" .tar 78 | #AddDescription "GZIP compressed tar archive" .tgz 79 | 80 | # 81 | # ReadmeName is the name of the README file the server will look for by 82 | # default, and append to directory listings. 83 | # 84 | # HeaderName is the name of a file which should be prepended to 85 | # directory indexes. 86 | ReadmeName README.html 87 | HeaderName HEADER.html 88 | 89 | # 90 | # IndexIgnore is a set of filenames which directory indexing should ignore 91 | # and not include in the listing. Shell-style wildcarding is permitted. 92 | # 93 | IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 94 | 95 | -------------------------------------------------------------------------------- /etc/containerstartup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export SSHPORT 3 | export WEBMINPORT 4 | export INTERFACE 5 | export HTTPPORT 6 | export SSLPORT 7 | 8 | if [ -f "/etc/letsencrypt/archive/$HOSTNAME/cert1.pem" ] 9 | then 10 | ln -sf "/etc/letsencrypt/archive/$HOSTNAME/cert1.pem" /etc/pki/tls/certs/localhost.crt 11 | ln -sf "/etc/letsencrypt/archive/$HOSTNAME/privkey1.pem" /etc/pki/tls/private/localhost.key 12 | cat "/etc/letsencrypt/archive/$HOSTNAME/privkey1.pem" "/etc/letsencrypt/archive/$HOSTNAME/cert1.pem" > /etc/webmin/miniserv.pem 13 | fi 14 | 15 | source /etc/container.ini 16 | if [[ $SSLPORT =~ ^[0-9]+$ ]] && [ "$SSL" != "$SSLPORT" ] 17 | then 18 | sed -i "s#Listen $SSL#Listen $SSLPORT#" /etc/httpd/conf.d/ssl.conf 19 | sed -i "s#_:$SSL#_:$SSLPORT#" /etc/httpd/conf.d/ssl.conf 20 | sed -i "s#SSL=$SSL#SSL=$SSLPORT#" /etc/container.ini 21 | systemctl restart httpd 22 | fi 23 | if [[ $HTTPPORT =~ ^[0-9]+$ ]] && [ "$HTTP" != "$HTTPPORT" ] 24 | then 25 | sed -i "s#Listen $HTTP#Listen $HTTPPORT#" /etc/httpd/conf/httpd.conf 26 | sed -i "s#HTTP=$HTTP#HTTP=$HTTPPORT#" /etc/container.ini 27 | systemctl restart httpd 28 | fi 29 | 30 | if [[ $SSHPORT =~ ^[0-9]+$ ]] && [ "$SSH" != "$SSHPORT" ] 31 | then 32 | service sshd stop 33 | sed -i "s#Port $SSH#Port $SSHPORT#" /etc/ssh/sshd_config 34 | sed -i "s#$SSH#$SSHPORT#" /etc/container.ini 35 | service sshd start 36 | elif [ "$SSHPORT" == "off" ] 37 | then 38 | systemctl.original disable sshd-keygen.service sshd.service 39 | service sshd stop 40 | systemctl stop sshd-keygen 41 | elif [[ $SSHPORT =~ ^[0-9]+$ ]] && ! pgrep -x "sshd" >/dev/null 42 | then 43 | systemctl.original enable sshd-keygen.service sshd.service 44 | systemctl start sshd-keygen 45 | service sshd start 46 | fi 47 | 48 | source <( grep listen /etc/webmin/miniserv.conf ) 49 | if [[ $WEBMINPORT =~ ^[0-9]+$ ]] && [ "$WEBMINPORT" != "$listen" ] 50 | then 51 | systemctl stop webmin 52 | sed -i "s#$listen#$WEBMINPORT#" /etc/webmin/miniserv.conf 53 | systemctl start webmin 54 | elif [ "$WEBMINPORT" == "off" ] 55 | then 56 | systemctl.original disable webmin.service 57 | systemctl stop webmin 58 | elif [[ $WEBMINPORT =~ ^[0-9]+$ ]] && ! pgrep -x "miniserv.pl" > /dev/null 59 | then 60 | systemctl.original enable webmin.service 61 | systemctl start webmin 62 | fi 63 | 64 | if [ "$INTERFACE" != "$SHOREWALL" ] 65 | then 66 | systemctl clear shorewall 67 | sed -i "s#$SHOREWALL#$INTERFACE#" /etc/shorewall/interfaces 68 | sed -i "s#$SHOREWALL#$INTERFACE#" /etc/container.ini 69 | fi 70 | 71 | if ! pgrep -x "postfix" > /dev/null 72 | then 73 | service postfix start 74 | fi 75 | 76 | if [ ! -f "/etc/postfix/email_faxing_ready" ] 77 | then 78 | service postfix stop 79 | adduser faxmail -M -s "/sbin/nologin" -c "Email 2 Fax User"\ 80 | echo -e "$HOSTNAME\tfax:localhost" >> /etc/postfix/transport 81 | echo -e "fax unix - n n - 1 pipe\n flags= user=faxmail argv=/usr/bin/faxmail -d -n -NT \${user}\n" >> /etc/postfix/master.cf 82 | echo -e "transport_maps = hash:/etc/postfix/transport\nfax_destination_recipient_limit = 1" >> /etc/postfix/main.cf 83 | postmap /etc/postfix/transport 84 | service postfix start 85 | touch /etc/postfix/email_faxing_ready 86 | fi 87 | 88 | systemctl restart shorewall 89 | -------------------------------------------------------------------------------- /etc/fail2ban/filter.d/asterisk.conf: -------------------------------------------------------------------------------- 1 | # Fail2Ban filter for asterisk authentication failures 2 | # 3 | 4 | [INCLUDES] 5 | 6 | # Read common prefixes. If any customizations available -- read them from 7 | # common.local 8 | before = common.conf 9 | 10 | [Definition] 11 | 12 | _daemon = asterisk 13 | 14 | __pid_re = (?:\[\d+\]) 15 | 16 | iso8601 = \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+[+-]\d{4} 17 | 18 | # All Asterisk log messages begin like this: 19 | log_prefix= (?:NOTICE|SECURITY|WARNING)%(__pid_re)s:?(?:\[C-[\da-f]*\])? [^:]+:\d*(?:(?: in)? \w+:)? 20 | 21 | failregex = ^%(__prefix_line)s%(log_prefix)s Registration from '[^']*' failed for '(:\d+)?' - (Wrong password|Username/auth name mismatch|No matching peer found|Not a local domain|Device does not match ACL|Peer is not supposed to register|ACL error \(permit/deny\)|Not a local domain)$ 22 | ^%(__prefix_line)s%(log_prefix)s Call from '[^']*' \(:\d+\) to extension '[^']*' rejected because extension not found in context 23 | ^%(__prefix_line)s%(log_prefix)s Host failed to authenticate as '[^']*'$ 24 | ^%(__prefix_line)s%(log_prefix)s No registration for peer '[^']*' \(from \)$ 25 | ^%(__prefix_line)s%(log_prefix)s Host failed MD5 authentication for '[^']*' \([^)]+\)$ 26 | ^%(__prefix_line)s%(log_prefix)s Failed to authenticate (user|device) [^@]+@\S*$ 27 | ^%(__prefix_line)s%(log_prefix)s hacking attempt detected ''$ 28 | ^%(__prefix_line)s%(log_prefix)s SecurityEvent="(FailedACL|InvalidAccountID|ChallengeResponseFailed|InvalidPassword)",EventTV="([\d-]+|%(iso8601)s)",Severity="[\w]+",Service="[\w]+",EventVersion="\d+",AccountID="(\d*|)",SessionID=".+",LocalAddress="IPV[46]/(UDP|TCP|WS)/[\da-fA-F:.]+/\d+",RemoteAddress="IPV[46]/(UDP|TCP|WS)//\d+"(,Challenge="[\w/]+")?(,ReceivedChallenge="\w+")?(,Response="\w+",ExpectedResponse="\w*")?(,ReceivedHash="[\da-f]+")?(,ACLName="\w+")?$ 29 | ^%(__prefix_line)s%(log_prefix)s "Rejecting unknown SIP connection from "$ 30 | ^%(__prefix_line)s%(log_prefix)s Request (?:'[^']*' )?from '[^']*' failed for '(?::\d+)?'\s\(callid: [^\)]*\) - (?:No matching endpoint found|Not match Endpoint(?: Contact)? ACL|(?:Failed|Error) to authenticate)\s*$ 31 | NOTICE.* .*: Registration from '.*' failed for '.*' - Wrong password 32 | NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register 33 | NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found 34 | NOTICE.* .*: Registration from '.*' failed for '.*' - No matching peer found 35 | NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch 36 | NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL 37 | NOTICE.* failed to authenticate as '.*'$ 38 | NOTICE.* .*: No registration for peer '.*' \(from \) 39 | NOTICE.* .*: Host failed MD5 authentication for '.*' (.*) 40 | NOTICE.* .*: Failed to authenticate user .*@.* 41 | 42 | ignoreregex = 43 | 44 | 45 | # Author: Xavier Devlamynck / Daniel Black 46 | # 47 | # General log format - main/logger.c:ast_log 48 | # Address format - ast_sockaddr_stringify 49 | # 50 | # First regex: channels/chan_sip.c 51 | # 52 | # main/logger.c:ast_log_vsyslog - "in {functionname}:" only occurs in syslog 53 | -------------------------------------------------------------------------------- /etc/mysql/my.cnf: -------------------------------------------------------------------------------- 1 | # Example MySQL config file for small systems. 2 | # 3 | # This is for a system with little memory (<= 64M) where MySQL is only used 4 | # from time to time and it's important that the mysqld daemon 5 | # doesn't use much resources. 6 | # 7 | # MySQL programs look for option files in a set of 8 | # locations which depend on the deployment platform. 9 | # You can copy this option file to one of those 10 | # locations. For information about these locations, see: 11 | # http://dev.mysql.com/doc/mysql/en/option-files.html 12 | # 13 | # In this file, you can use all long options that a program supports. 14 | # If you want to know which options a program supports, run the program 15 | # with the "--help" option. 16 | 17 | # The following options will be passed to all MySQL clients 18 | [client] 19 | #password = your_password 20 | port = 3306 21 | socket = /var/lib/mysql/mysql.sock 22 | 23 | # Here follows entries for some specific programs 24 | 25 | # The MySQL server 26 | [mysqld] 27 | user = mysql 28 | pid-file = /var/run/mariadb/mariadb.pid 29 | socket = /var/lib/mysql/mysql.sock 30 | port = 3306 31 | basedir = /usr 32 | datadir = /var/lib/mysql 33 | tmpdir = /tmp 34 | lc-messages-dir = /usr/share/mysql 35 | 36 | skip-external-locking 37 | key_buffer_size = 16K 38 | max_allowed_packet = 1M 39 | table_open_cache = 4 40 | sort_buffer_size = 64K 41 | read_buffer_size = 256K 42 | read_rnd_buffer_size = 256K 43 | net_buffer_length = 2K 44 | thread_stack = 128K 45 | max_connections = 151 46 | 47 | # Don't listen on a TCP/IP port at all. This can be a security enhancement, 48 | # if all processes that need to connect to mysqld run on the same host. 49 | # All interaction with mysqld must be made via Unix sockets or named pipes. 50 | # Note that using this option without enabling named pipes on Windows 51 | # (using the "enable-named-pipe" option) will render mysqld useless! 52 | # 53 | #skip-networking 54 | server-id = 1 55 | 56 | # Uncomment the following if you want to log updates 57 | #log-bin=mysql-bin 58 | 59 | # binary logging format - mixed recommended 60 | #binlog_format=mixed 61 | 62 | # Causes updates to non-transactional engines using statement format to be 63 | # written directly to binary log. Before using this option make sure that 64 | # there are no dependencies between transactional and non-transactional 65 | # tables such as in the statement INSERT INTO t_myisam SELECT * FROM 66 | # t_innodb; otherwise, slaves may diverge from the master. 67 | #binlog_direct_non_transactional_updates=TRUE 68 | 69 | # Uncomment the following if you are using InnoDB tables 70 | innodb_data_home_dir = /var/lib/mysql 71 | innodb_data_file_path = ibdata1:10M:autoextend 72 | innodb_log_group_home_dir = /var/lib/mysql 73 | # You can set .._buffer_pool_size up to 50 - 80 % 74 | # of RAM but beware of setting memory usage too high 75 | innodb_buffer_pool_size = 16M 76 | innodb_additional_mem_pool_size = 2M 77 | # Set .._log_file_size to 25 % of buffer pool size 78 | innodb_log_file_size = 5M 79 | innodb_log_buffer_size = 8M 80 | innodb_flush_log_at_trx_commit = 1 81 | innodb_lock_wait_timeout = 50 82 | 83 | [mysqldump] 84 | quick 85 | max_allowed_packet = 16M 86 | 87 | [mysql] 88 | no-auto-rehash 89 | # Remove the next comment character if you are not familiar with SQL 90 | #safe-updates 91 | 92 | [myisamchk] 93 | key_buffer_size = 8M 94 | sort_buffer_size = 8M 95 | 96 | [mysqlhotcopy] 97 | interactive-timeout 98 | -------------------------------------------------------------------------------- /etc/httpd/conf.modules.d/00-base.conf: -------------------------------------------------------------------------------- 1 | # 2 | # This file loads most of the modules included with the Apache HTTP 3 | # Server itself. 4 | # 5 | 6 | LoadModule access_compat_module modules/mod_access_compat.so 7 | LoadModule actions_module modules/mod_actions.so 8 | LoadModule alias_module modules/mod_alias.so 9 | LoadModule allowmethods_module modules/mod_allowmethods.so 10 | LoadModule auth_basic_module modules/mod_auth_basic.so 11 | LoadModule auth_digest_module modules/mod_auth_digest.so 12 | LoadModule authn_anon_module modules/mod_authn_anon.so 13 | LoadModule authn_core_module modules/mod_authn_core.so 14 | LoadModule authn_dbd_module modules/mod_authn_dbd.so 15 | LoadModule authn_dbm_module modules/mod_authn_dbm.so 16 | LoadModule authn_file_module modules/mod_authn_file.so 17 | LoadModule authn_socache_module modules/mod_authn_socache.so 18 | LoadModule authz_core_module modules/mod_authz_core.so 19 | LoadModule authz_dbd_module modules/mod_authz_dbd.so 20 | LoadModule authz_dbm_module modules/mod_authz_dbm.so 21 | LoadModule authz_groupfile_module modules/mod_authz_groupfile.so 22 | LoadModule authz_host_module modules/mod_authz_host.so 23 | LoadModule authz_owner_module modules/mod_authz_owner.so 24 | LoadModule authz_user_module modules/mod_authz_user.so 25 | LoadModule autoindex_module modules/mod_autoindex.so 26 | LoadModule cache_module modules/mod_cache.so 27 | LoadModule cache_disk_module modules/mod_cache_disk.so 28 | LoadModule data_module modules/mod_data.so 29 | LoadModule dbd_module modules/mod_dbd.so 30 | LoadModule deflate_module modules/mod_deflate.so 31 | LoadModule dir_module modules/mod_dir.so 32 | LoadModule dumpio_module modules/mod_dumpio.so 33 | LoadModule echo_module modules/mod_echo.so 34 | LoadModule env_module modules/mod_env.so 35 | LoadModule expires_module modules/mod_expires.so 36 | LoadModule ext_filter_module modules/mod_ext_filter.so 37 | LoadModule filter_module modules/mod_filter.so 38 | LoadModule headers_module modules/mod_headers.so 39 | LoadModule include_module modules/mod_include.so 40 | LoadModule info_module modules/mod_info.so 41 | LoadModule log_config_module modules/mod_log_config.so 42 | LoadModule logio_module modules/mod_logio.so 43 | LoadModule mime_magic_module modules/mod_mime_magic.so 44 | LoadModule mime_module modules/mod_mime.so 45 | LoadModule negotiation_module modules/mod_negotiation.so 46 | LoadModule remoteip_module modules/mod_remoteip.so 47 | LoadModule reqtimeout_module modules/mod_reqtimeout.so 48 | LoadModule rewrite_module modules/mod_rewrite.so 49 | LoadModule setenvif_module modules/mod_setenvif.so 50 | LoadModule slotmem_plain_module modules/mod_slotmem_plain.so 51 | LoadModule slotmem_shm_module modules/mod_slotmem_shm.so 52 | LoadModule socache_dbm_module modules/mod_socache_dbm.so 53 | LoadModule socache_memcache_module modules/mod_socache_memcache.so 54 | LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 55 | LoadModule status_module modules/mod_status.so 56 | LoadModule substitute_module modules/mod_substitute.so 57 | LoadModule suexec_module modules/mod_suexec.so 58 | LoadModule unique_id_module modules/mod_unique_id.so 59 | LoadModule unixd_module modules/mod_unixd.so 60 | LoadModule userdir_module modules/mod_userdir.so 61 | LoadModule version_module modules/mod_version.so 62 | LoadModule vhost_alias_module modules/mod_vhost_alias.so 63 | 64 | #LoadModule buffer_module modules/mod_buffer.so 65 | #LoadModule watchdog_module modules/mod_watchdog.so 66 | #LoadModule heartbeat_module modules/mod_heartbeat.so 67 | #LoadModule heartmonitor_module modules/mod_heartmonitor.so 68 | #LoadModule usertrack_module modules/mod_usertrack.so 69 | #LoadModule dialup_module modules/mod_dialup.so 70 | #LoadModule charset_lite_module modules/mod_charset_lite.so 71 | #LoadModule log_debug_module modules/mod_log_debug.so 72 | #LoadModule ratelimit_module modules/mod_ratelimit.so 73 | #LoadModule reflector_module modules/mod_reflector.so 74 | #LoadModule request_module modules/mod_request.so 75 | #LoadModule sed_module modules/mod_sed.so 76 | #LoadModule speling_module modules/mod_speling.so 77 | 78 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FreePBX on Docker 2 | 3 | ## Image includes mostly RPM binaries of 4 | 5 | * **CentOS** 7.8.2003 6 | * LAMP stack (**apache2, mariadb, php**) 7 | * **Shorewall** Firewall and **Fail2ban** 8 | * **Webmin** UI for System Administration on Port 9990, change on `docker run` by passing: 9 | 10 | `-e WEBMINPORT=xxxx` 11 | * **SSH** on Port 2122, can be changed or turned off on `docker run` by passing: 12 | 13 | `-e SSHPORT="off"` or `-e SSHPORT=xxxx` 14 | * **Asterisk 16** 15 | * **FreePBX 15** - downloaded and complied in from source 16 | * [AvantFax 3.3.7](http://www.avantfax.com/) - file embedded in this repo, [Hylafax](https://www.hylafax.org/) 17 | * Using **Postfix** instead of *SendMail*. 18 | 19 | ## Running FreePBX 20 | 21 | [Docker Hub] (https://hub.docker.com/r/technoexpress/freepbx/builds/) automatically builds the latest changes into images which can easily be pulled and ran with a simple `docker run` command. 22 | 23 | I found for best results and since I have more than one public IP, i'm using **mac vlan** network bridge set up: 24 | 25 | ```bash 26 | docker network create -d macvlan \ 27 | -o macvlan_mode=bridge \ 28 | --subnet=111.222.333.443/29 \ 29 | --gateway=111.222.333.444 \ 30 | -o parent=eth1 macvlan_bridge 31 | ``` 32 | 33 | For the firewall to work adding `--cap-add=NET_ADMIN` is necessary. 34 | For best performance use `--net=host` or custom networking. 35 | 36 | ```bash 37 | docker run --name freepbx \ 38 | -v freepbx-etc:/etc \ 39 | -v freepbx-www:/var/www \ 40 | -v freepbx-log:/var/log \ 41 | -v freepbx-lib:/var/lib \ 42 | -v freepbx-home:/home \ 43 | -v /etc/resolv.conf:/etc/resolv.conf:ro \ 44 | --cap-add=NET_ADMIN --net=macvlan_bridge \ 45 | --mac-address=00:00:00:00:00:00 --ip=111.222.333.446 --hostname=free.pbx.host \ 46 | --restart=always -itd technoexpress/freepbx 47 | ``` 48 | 49 | ## Setup Tips 50 | 51 | Using the Webmin UI visit: `https://ip_or_hostname:9990` 52 | 53 | Change *Linux* root password from default 'freepbx': 54 | 55 | "System -> Change Passwords -> root" 56 | 57 | Setup automatic software updating: 58 | 59 | "System -> Software Package Updates -> check for update - every day, - Install any updates" 60 | 61 | Create SSL certificate: 62 | 63 | "Webmin -> Webmin Configuration -> SSL Encryption -> Let's Encrypt -> Website root directory for validation file -> Other directory `/var/www/html`" 64 | 65 | Add Let's Encrypt SSL certicate to Apache default: 66 | 67 | "Servers -> Apache Webserver -> select 443 virtual host -> uncheck -> SSLv2 SSLv3 TLSv1 -> SSL Options 68 | 69 | * Certificate/private key file `/etc/webmin/letsencrypt-cert.pem` 70 | * Private key file `/etc/webmin/letsencrypt-key.pem` 71 | * Certificate authorities file `/etc/webmin/letsencrypt-ca.pem`" 72 | 73 | Change *MariaDB* database root password from default 'CLEARTEXT_PASSWORD': 74 | 75 | "Servers -> MySQL Database Server -> Change Administration Password" 76 | 77 | Add public IP addresses you will be accessing this FreePBX installation to Fail2ban to prevent lockout/banning: 78 | 79 | "Networking -> Fail2Ban Intrusion Detector -> Filter Action Jails -> Default Jail Options -> IP addresses to never ban" 80 | 81 | ## Faxing Setup with Avantfax combining IAXModem/Hylafax 82 | 83 | This installation has an menu link pointing to: `https://ip_or_hostname/avantfax` 84 | 85 | **Avantfax** is password-protected. Default is: 86 | 87 | username: admin 88 | password: password 89 | 90 | **IAXModem** default fax modem configuration: 91 | 92 | `vim /etc/iaxmodem/ttyIAX0` 93 | 94 | ```bash 95 | device /dev/ttyIAX0 96 | owner uucp:uucp 97 | mode 660 98 | port 4570 99 | refresh 60 100 | server 127.0.0.1 101 | peername 19999 102 | secret CLEARTEXT_PASSWORD 103 | cidname Fax System 104 | cidnumber 9999999999 105 | codec ulaw 106 | ``` 107 | 108 | `vim /etc/asterisk/iax_custom.conf` 109 | 110 | ```bash 111 | [19999] 112 | deny=0.0.0.0/0.0.0.0 113 | secret=CLEARTEXT_PASSWORD 114 | transfer=yes 115 | host=dynamic 116 | type=friend 117 | port=4570 118 | qualify=yes 119 | dial=IAX2/19999 120 | accountcode= 121 | permit=0.0.0.0/0.0.0.0 122 | requirecalltoken=no 123 | context=from-internal 124 | secret_origional=CLEARTEXT_PASSWORD 125 | callerid=Fax System <19999> 126 | setvar=REALCALLERIDNUM= 127 | ``` 128 | 129 | After editing run **Hylafax**: 130 | 131 | faxsetup 132 | 133 | Which will also run `faxaddmodem`, use **ttyIAX0** 134 | for "Serial port of modem". 135 | 136 | In FreePBX GUI, add the following Custom Destination: 137 | 138 | Fax(Hylafax) => custom-fax-iaxmodem,s,1 139 | 140 | Incoming fax support requires a dedicated DID, and point the DID to the new Custom Destination. 141 | 142 | Outbound faxing will go out via the normal trunks as configured. 143 | 144 | Before visiting `https://ip_or_hostname/avantfax`, update/change root password to access Avantfax Database to the one that was set using **Webmin** UI `Servers -> MySQL Database Server -> Change Administration Password`. 145 | 146 | vim /var/www/html/avantfax/includes/local_config.php 147 | 148 | ## Your now ready to config FreePBX by visiting 149 | 150 | * https://host_ip 151 | * https://host_name 152 | 153 | ## For better security 154 | 155 | Make sure to turn off: 156 | 157 | Allow Anonymous Inbound SIP Calls and Allow SIP Guests 158 | 159 | Under `Settings -> Asterisk SIP Settings -> Security Settings`. 160 | 161 | ---------- 162 | 163 | ## For Free **SIP** *VoIP* service using [Google Voice](http://www.google.com/voice) and [obitalk.com](https://www.obitalk.com) with **Obihai** [devices](https://www.obitalk.com/info/products) 164 | 165 | Modified setup configurations from https://cboh.org/voip/obi/OBi_As_ITSP.html 166 | 167 | **Add your Google Voice number** 168 | ![trunk](pics/obiatpbx1.jpg) 169 | ![trunk](pics/obiatpbx2.jpg) 170 | 171 | **Add your public ip address of your obi ATA device/router** 172 | 173 | **Add SIP Credentials that was set on the obi ATA device/router** 174 | ![trunk](pics/obiatpbx3.jpg) 175 | ![trunk](pics/obiatpbx4.jpg) 176 | ![trunk](pics/obiatpbx5.jpg) 177 | ![trunk](pics/obiatpbx6.jpg) 178 | ![trunk](pics/obiatpbx7.jpg) 179 | 180 | ![Inbound](pics/obiatpbxIn.jpg) 181 | ![Outbound](pics/obiatpbxOut.jpg) 182 | 183 | Insure you have all items in red **"!"** are changed/edited to match. 184 | ![obiata](pics/obisetup1.jpg) 185 | 186 | **Add your FreePBX Server IP address/URI and create SIP Credentials** 187 | ![obiata](pics/obisetup2.jpg) 188 | ![obiata](pics/obisetup3.jpg) 189 | ![obiata](pics/obisetup4.jpg) 190 | ![obiata](pics/obisetup5.jpg) 191 | ![obiata](pics/obisetup6.jpg) 192 | 193 | **Additional setting need to be set using Obi device built-in webserver** 194 | ![obiata-device](pics/obiata-gv.jpg) 195 | ![obiata-device](pics/obiata.jpg) 196 | ![obiata-device](pics/obiata1.jpg) 197 | ![obiata-device](pics/obiata2.jpg) 198 | 199 | **Test calling out before making this final change. Adding your Google Voice number** 200 | ![obigooglevoice](pics/obigv.jpg) 201 | 202 | >Make sure to change setting at Google Voice website to have calls going only to your Obi ATA device, not to any other phone or device. 203 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.8.2003 2 | 3 | LABEL maintainer="technoexpressnet@gmail.com" 4 | 5 | # Install Required Dependencies 6 | RUN yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/libical-3.0.3-2.el7.x86_64.rpm -y \ 7 | && yum install http://yum.freepbxdistro.org/pbx/10.13.66/x86_64/RPMS/digium/libresample/0.1.3/libresample-0.1.3-11_centos6.x86_64.rpm -y \ 8 | && yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y \ 9 | && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm \ 10 | && yum -y install https://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/denyhosts-2.6-5.el7.rf.noarch.rpm \ 11 | && yum -y --enablerepo=epel install sudo icu gcc-c++ lynx tftp-server unixODBC mariadb-devel \ 12 | mariadb-server mariadb mysql-connector-odbc httpd mod_ssl ncurses curl perl fail2ban \ 13 | fail2ban-hostsdeny openssh-server openssh-server-sysvinit sendmail sendmail-cf \ 14 | sox newt libxml2 libtiff iptables-utils iptables-services initscripts postfix mailx \ 15 | audiofile gtk2 subversion unzip rsyslog git crontabs cronie cronie-anacron wget vim \ 16 | uuid sqlite net-tools texinfo icu libicu-devel sysvinit-tools bind bind-utils gnutls gnutls-devel perl-devel whois at \ 17 | && yum -y install http://mirror.centos.org/centos/7/os/x86_64/Packages/perl-URI-1.60-9.el7.noarch.rpm \ 18 | && yum -y install perl-DBI perl-DBD-MySQL perl-Crypt-SSLeay perl-LWP-Protocol-https perl-libwww-perl 19 | 20 | # Install Shorewall and the fail2ban action 21 | # Install php 5.6 repositories and php5.6w 22 | # Install nodejs 23 | RUN yum install http://www.shorewall.net/pub/shorewall/5.1/shorewall-5.1.9/shorewall-core-5.1.9-0base.noarch.rpm -y \ 24 | && yum install http://www.shorewall.net/pub/shorewall/5.1/shorewall-5.1.9/shorewall-5.1.9-0base.noarch.rpm -y \ 25 | && yum install http://www.shorewall.net/pub/shorewall/5.1/shorewall-5.1.9/shorewall-init-5.1.9-0base.noarch.rpm -y \ 26 | && yum install http://www.shorewall.net/pub/shorewall/5.1/shorewall-5.1.9/shorewall6-5.1.9-0base.noarch.rpm -y \ 27 | && yum install fail2ban-shorewall -y \ 28 | && yum -y install php56w php56w-pdo php56w-mysql php56w-mbstring php56w-pear php56w-process php56w-xml php56w-gd php56w-opcache php56w-ldap php56w-intl php56w-soap php56w-zip php56w-devel php-pecl-Fileinfo ImageMagick-devel perl-CGI php-pear-Net-Socket php-pear-Auth-SASL \ 29 | && curl -sL https://rpm.nodesource.com/setup_11.x | bash - && yum install -y nodejs 30 | 31 | # Asterisk and FreePBX Repositorie 32 | # Install lame jansson iksemel and pjproject 33 | # Copy configs and set Asterisk ownership permissions 34 | COPY etc /etc/ 35 | 36 | RUN yum update -y \ 37 | && yum -y install lame jansson pjproject iksemel \ 38 | && yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm \ 39 | && yum -y install mpg123 ffmpeg libde265 x265 libdvdcss gstreamer-plugins-bad-nonfree gstreamer1-plugins-bad-freeworld netpbm libungif ghostscript-fonts sharutils expect \ 40 | && pear channel-update pear.php.net \ 41 | && pear install Mail Net_SMTP Mail_mime MDB2_driver_mysql 42 | 43 | # Install Asterisk, Add Asterisk user, Download extra sounds 44 | RUN adduser asterisk -m -c "Asterisk User" \ 45 | && yum install asterisk16 asterisk16-flite asterisk16-doc asterisk16-voicemail asterisk16-configs asterisk16-odbc asterisk16-resample -y \ 46 | && yum install asterisk-sounds-core-* asterisk-sounds-extra-* asterisk-sounds-moh-* -y \ 47 | && chown asterisk. /var/run/asterisk \ 48 | && chown -R asterisk. /var/lib/asterisk \ 49 | && chown -R asterisk. /var/log/asterisk \ 50 | && chown -R asterisk. /var/spool/asterisk \ 51 | && chown -R asterisk. /usr/lib64/asterisk \ 52 | && chown -R asterisk. /var/www/ \ 53 | && chown -R asterisk. /etc/asterisk \ 54 | && chmod 775 /etc/asterisk/cdr_adaptive_odbc.conf 55 | 56 | # Fixes issue with running systemD inside docker builds 57 | # From https://github.com/gdraheim/docker-systemctl-replacement 58 | COPY systemctl.py /usr/bin/systemctl.py 59 | 60 | RUN cp -f /usr/bin/systemctl /usr/bin/systemctl.original \ 61 | && chmod +x /usr/bin/systemctl.py \ 62 | && cp -f /usr/bin/systemctl.py /usr/bin/systemctl 63 | 64 | RUN systemctl stop firewalld \ 65 | && systemctl disable dbus firewalld \ 66 | && (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \ 67 | systemd-tmpfiles-setup.service ] || rm -f $i; done); \ 68 | rm -f /lib/systemd/system/multi-user.target.wants/*; \ 69 | rm -f /lib/systemd/system/local-fs.target.wants/*; \ 70 | rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ 71 | rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ 72 | rm -f /lib/systemd/system/basic.target.wants/*; \ 73 | rm -f /lib/systemd/system/anaconda.target.wants/*; \ 74 | rm -f /etc/dbus-1/system.d/*; \ 75 | rm -f /etc/systemd/system/sockets.target.wants/*; 76 | 77 | # Install FreePBX 78 | RUN sed -i 's@ulimit @#ulimit @' /usr/sbin/safe_asterisk \ 79 | && systemctl start mariadb \ 80 | && mkdir -p /var/www/html/admin/modules/pm2/node/logs \ 81 | && mkdir -p /var/www/html/admin/modules/ucp/node/logs \ 82 | && chmod -R 775 /var/www/html/admin/modules/pm2/node \ 83 | && chmod -R 775 /var/www/html/admin/modules/ucp/node \ 84 | && chown -R asterisk:asterisk /var/www/html/admin/modules/pm2 \ 85 | && chown -R asterisk:asterisk /var/www/html/admin/modules/ucp \ 86 | && cd /usr/src \ 87 | && wget -q https://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz \ 88 | && tar xfz freepbx-15.0-latest.tgz \ 89 | && rm -f freepbx-15.0-latest.tgz \ 90 | && cd freepbx \ 91 | && ./start_asterisk start \ 92 | && ./install -n \ 93 | && rm -rf /usr/src/freepbx \ 94 | && fwconsole ma downloadinstall ttsengines \ 95 | && fwconsole ma downloadinstall ucp \ 96 | && fwconsole ma downloadinstall ivr \ 97 | && fwconsole ma downloadinstall filestore \ 98 | && fwconsole ma downloadinstall backup \ 99 | && fwconsole ma downloadinstall arimanager \ 100 | && fwconsole ma downloadinstall asteriskinfo \ 101 | && fwconsole ma downloadinstall pm2 \ 102 | && fwconsole ma upgradeall \ 103 | && mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('CLEARTEXT_PASSWORD')" \ 104 | && mysql -uroot -pCLEARTEXT_PASSWORD -e "GRANT ALL PRIVILEGES ON asterisk.* TO freepbxuser@localhost;" \ 105 | && mysql -uroot -pCLEARTEXT_PASSWORD -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO freepbxuser@localhost;" \ 106 | && mysql -uroot -pCLEARTEXT_PASSWORD -e "DELETE FROM mysql.user WHERE User=''; DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); DROP DATABASE IF EXISTS test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; FLUSH PRIVILEGES;" 107 | 108 | # Install Webmin repositorie and Webmin 109 | RUN wget http://www.webmin.com/jcameron-key.asc -q && rpm --import jcameron-key.asc \ 110 | && yum install webmin yum-versionlock -y && yum versionlock systemd && rm jcameron-key.asc 111 | 112 | RUN chmod 777 /tftpboot \ 113 | && chmod 6711 /usr/bin/procmail \ 114 | && chown root:root /usr/bin/procmail \ 115 | && chown -R postfix:postdrop /var/spool/postfix \ 116 | && touch /var/log/asterisk/full /var/log/secure /var/log/maillog /var/log/httpd/access_log /etc/httpd/logs/error_log /var/log/fail2ban.log /etc/postfix/dependent.db \ 117 | && echo "" > /etc/postfix/transport \ 118 | && echo "mailbox_command = /bin/procmail" >> /etc/postfix/main.cf \ 119 | && sed -i "s@#Port 22@Port 2122@" /etc/ssh/sshd_config \ 120 | && sed -i "s#10000#9990#" /etc/webmin/miniserv.conf \ 121 | && sed -i "s#9000,#9990,#" /etc/shorewall/rules \ 122 | && sed -i "s#STARTUP_ENABLED=No#STARTUP_ENABLED=Yes#" /etc/shorewall/shorewall.conf \ 123 | && sed -i "s#DOCKER=No#DOCKER=Yes#" /etc/shorewall/shorewall.conf \ 124 | && sed -i "s#docker0#eth0#" /etc/shorewall/interfaces \ 125 | && sed -i 's#, #\nAfter=#' /etc/systemd/system/containerstartup.service \ 126 | && sed -i 's#/etc/pki/tls/private/localhost.key#/etc/webmin/letsencrypt-key.pem#' /etc/httpd/conf.d/ssl.conf \ 127 | && sed -i 's#/etc/pki/tls/certs/localhost.crt#/etc/webmin/letsencrypt-cert.pem#' /etc/httpd/conf.d/ssl.conf \ 128 | && sed -i 's#localhost.key#localhost.key\n\tcat \"/etc/letsencrypt/archive/$HOSTNAME/privkey1.pem\" \"/etc/letsencrypt/archive/$HOSTNAME/cert1.pem\" >/etc/webmin/miniserv.pem#' /etc/containerstartup.sh \ 129 | && systemctl.original disable sendmail.service \ 130 | && systemctl.original enable iptables.service fail2ban.service shorewall.service mariadb.service asterisk.service httpd.service freepbx.service crond.service rsyslog.service sshd-keygen.service sshd.service postfix.service named.service webmin.service containerstartup.service \ 131 | && chmod +x /etc/containerstartup.sh \ 132 | && mv -f /etc/containerstartup.sh /containerstartup.sh \ 133 | && echo "root:freepbx" | chpasswd 134 | 135 | ENV container docker 136 | ENV HTTPPORT 80 137 | ENV SSLPORT 443 138 | ENV SSHPORT 2122 139 | ENV WEBMINPORT 9990 140 | ENV INTERFACE eth0 141 | 142 | EXPOSE 25 53/udp 80 443 465 953 2122 5060/tcp 5060/udp 5061/tcp 5061/udp 5062/tcp 5062/udp 5063/tcp 5063/udp 8001 8003 8088 8089 9990/tcp 9990/udp 10000-10100/tcp 10000-10100/udp 143 | 144 | ENTRYPOINT ["/usr/bin/systemctl","default","--init"] 145 | -------------------------------------------------------------------------------- /etc/httpd/conf.d/ssl.conf: -------------------------------------------------------------------------------- 1 | # 2 | # When we also provide SSL we have to listen to the 3 | # the HTTPS port in addition. 4 | # 5 | Listen 443 https 6 | 7 | ## 8 | ## SSL Global Context 9 | ## 10 | ## All SSL configuration in this context applies both to 11 | ## the main server and all SSL-enabled virtual hosts. 12 | ## 13 | 14 | # Pass Phrase Dialog: 15 | # Configure the pass phrase gathering process. 16 | # The filtering dialog program (`builtin' is a internal 17 | # terminal dialog) has to provide the pass phrase on stdout. 18 | SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog 19 | 20 | # Inter-Process Session Cache: 21 | # Configure the SSL Session Cache: First the mechanism 22 | # to use and second the expiring timeout (in seconds). 23 | SSLSessionCache shmcb:/run/httpd/sslcache(512000) 24 | SSLSessionCacheTimeout 300 25 | 26 | # Pseudo Random Number Generator (PRNG): 27 | # Configure one or more sources to seed the PRNG of the 28 | # SSL library. The seed data should be of good random quality. 29 | # WARNING! On some platforms /dev/random blocks if not enough entropy 30 | # is available. This means you then cannot use the /dev/random device 31 | # because it would lead to very long connection times (as long as 32 | # it requires to make more entropy available). But usually those 33 | # platforms additionally provide a /dev/urandom device which doesn't 34 | # block. So, if available, use this one instead. Read the mod_ssl User 35 | # Manual for more details. 36 | SSLRandomSeed startup file:/dev/urandom 256 37 | SSLRandomSeed connect builtin 38 | #SSLRandomSeed startup file:/dev/random 512 39 | #SSLRandomSeed connect file:/dev/random 512 40 | #SSLRandomSeed connect file:/dev/urandom 512 41 | 42 | # 43 | # Use "SSLCryptoDevice" to enable any supported hardware 44 | # accelerators. Use "openssl engine -v" to list supported 45 | # engine names. NOTE: If you enable an accelerator and the 46 | # server does not start, consult the error logs and ensure 47 | # your accelerator is functioning properly. 48 | # 49 | SSLCryptoDevice builtin 50 | #SSLCryptoDevice ubsec 51 | 52 | ## 53 | ## SSL Virtual Host Context 54 | ## 55 | 56 | 57 | 58 | # General setup for the virtual host, inherited from global configuration 59 | #DocumentRoot "/var/www/html" 60 | #ServerName www.example.com:443 61 | 62 | # Use separate log files for the SSL virtual host; note that LogLevel 63 | # is not inherited from httpd.conf. 64 | ErrorLog logs/ssl_error_log 65 | TransferLog logs/ssl_access_log 66 | LogLevel warn 67 | 68 | # SSL Engine Switch: 69 | # Enable/Disable SSL for this virtual host. 70 | SSLEngine on 71 | 72 | # SSL Protocol support: 73 | # List the enable protocol levels with which clients will be able to 74 | # connect. Disable SSLv2 access by default: 75 | SSLProtocol +TLSv1.1 +TLSv1.2 76 | 77 | # SSL Cipher Suite: 78 | # List the ciphers that the client is permitted to negotiate. 79 | # See the mod_ssl documentation for a complete list. 80 | SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA 81 | 82 | refresh/update for text to speech, remove unused, added xsome nessary frepbx modules 83 | 84 | # Speed-optimized SSL Cipher configuration: 85 | # If speed is your main concern (on busy HTTPS servers e.g.), 86 | # you might want to force clients to specific, performance 87 | # optimized ciphers. In this case, prepend those ciphers 88 | # to the SSLCipherSuite list, and enable SSLHonorCipherOrder. 89 | # Caveat: by giving precedence to RC4-SHA and AES128-SHA 90 | # (as in the example below), most connections will no longer 91 | # have perfect forward secrecy - if the server's key is 92 | # compromised, captures of past or future traffic must be 93 | # considered compromised, too. 94 | #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5 95 | #SSLHonorCipherOrder on 96 | 97 | # Server Certificate: 98 | # Point SSLCertificateFile at a PEM encoded certificate. If 99 | # the certificate is encrypted, then you will be prompted for a 100 | # pass phrase. Note that a kill -HUP will prompt again. A new 101 | # certificate can be generated using the genkey(1) command. 102 | SSLCertificateFile /etc/pki/tls/certs/localhost.crt 103 | 104 | # Server Private Key: 105 | # If the key is not combined with the certificate, use this 106 | # directive to point at the key file. Keep in mind that if 107 | # you've both a RSA and a DSA private key you can configure 108 | # both in parallel (to also allow the use of DSA ciphers, etc.) 109 | SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 110 | 111 | # Server Certificate Chain: 112 | # Point SSLCertificateChainFile at a file containing the 113 | # concatenation of PEM encoded CA certificates which form the 114 | # certificate chain for the server certificate. Alternatively 115 | # the referenced file can be the same as SSLCertificateFile 116 | # when the CA certificates are directly appended to the server 117 | # certificate for convinience. 118 | #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt 119 | 120 | # Certificate Authority (CA): 121 | # Set the CA certificate verification path where to find CA 122 | # certificates for client authentication or alternatively one 123 | # huge file containing all of them (file must be PEM encoded) 124 | #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt 125 | 126 | # Client Authentication (Type): 127 | # Client certificate verification type and depth. Types are 128 | # none, optional, require and optional_no_ca. Depth is a 129 | # number which specifies how deeply to verify the certificate 130 | # issuer chain before deciding the certificate is not valid. 131 | #SSLVerifyClient require 132 | #SSLVerifyDepth 10 133 | 134 | # Access Control: 135 | # With SSLRequire you can do per-directory access control based 136 | # on arbitrary complex boolean expressions containing server 137 | # variable checks and other lookup directives. The syntax is a 138 | # mixture between C and Perl. See the mod_ssl documentation 139 | # for more details. 140 | # 141 | #SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ 142 | # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ 143 | # and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ 144 | # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ 145 | # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ 146 | # or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ 147 | # 148 | 149 | # SSL Engine Options: 150 | # Set various options for the SSL engine. 151 | # o FakeBasicAuth: 152 | # Translate the client X.509 into a Basic Authorisation. This means that 153 | # the standard Auth/DBMAuth methods can be used for access control. The 154 | # user name is the `one line' version of the client's X.509 certificate. 155 | # Note that no password is obtained from the user. Every entry in the user 156 | # file needs this password: `xxj31ZMTZzkVA'. 157 | # o ExportCertData: 158 | # This exports two additional environment variables: SSL_CLIENT_CERT and 159 | # SSL_SERVER_CERT. These contain the PEM-encoded certificates of the 160 | # server (always existing) and the client (only existing when client 161 | # authentication is used). This can be used to import the certificates 162 | # into CGI scripts. 163 | # o StdEnvVars: 164 | # This exports the standard SSL/TLS related `SSL_*' environment variables. 165 | # Per default this exportation is switched off for performance reasons, 166 | # because the extraction step is an expensive operation and is usually 167 | # useless for serving static content. So one usually enables the 168 | # exportation for CGI and SSI requests only. 169 | # o StrictRequire: 170 | # This denies access when "SSLRequireSSL" or "SSLRequire" applied even 171 | # under a "Satisfy any" situation, i.e. when it applies access is denied 172 | # and no other module can change it. 173 | # o OptRenegotiate: 174 | # This enables optimized SSL connection renegotiation handling when SSL 175 | # directives are used in per-directory context. 176 | #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire 177 | 178 | SSLOptions +StdEnvVars 179 | 180 | 181 | SSLOptions +StdEnvVars 182 | 183 | 184 | # SSL Protocol Adjustments: 185 | # The safe and default but still SSL/TLS standard compliant shutdown 186 | # approach is that mod_ssl sends the close notify alert but doesn't wait for 187 | # the close notify alert from client. When you need a different shutdown 188 | # approach you can use one of the following variables: 189 | # o ssl-unclean-shutdown: 190 | # This forces an unclean shutdown when the connection is closed, i.e. no 191 | # SSL close notify alert is send or allowed to received. This violates 192 | # the SSL/TLS standard but is needed for some brain-dead browsers. Use 193 | # this when you receive I/O errors because of the standard approach where 194 | # mod_ssl sends the close notify alert. 195 | # o ssl-accurate-shutdown: 196 | # This forces an accurate shutdown when the connection is closed, i.e. a 197 | # SSL close notify alert is send and mod_ssl waits for the close notify 198 | # alert of the client. This is 100% SSL/TLS standard compliant, but in 199 | # practice often causes hanging connections with brain-dead browsers. Use 200 | # this only for browsers where you know that their SSL implementation 201 | # works correctly. 202 | # Notice: Most problems of broken clients are also related to the HTTP 203 | # keep-alive facility, so you usually additionally want to disable 204 | # keep-alive for those clients, too. Use variable "nokeepalive" for this. 205 | # Similarly, one has to force some clients to use HTTP/1.0 to workaround 206 | # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and 207 | # "force-response-1.0" for this. 208 | BrowserMatch "MSIE [2-5]" \ 209 | nokeepalive ssl-unclean-shutdown \ 210 | downgrade-1.0 force-response-1.0 211 | 212 | # Per-Server Logging: 213 | # The home of a custom SSL log file. Use this when you want a 214 | # compact non-error SSL logfile on a virtual host basis. 215 | CustomLog logs/ssl_request_log \ 216 | "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 217 | 218 | 219 | -------------------------------------------------------------------------------- /etc/httpd/conf/httpd.conf: -------------------------------------------------------------------------------- 1 | # 2 | # This is the main Apache HTTP server configuration file. It contains the 3 | # configuration directives that give the server its instructions. 4 | # See for detailed information. 5 | # In particular, see 6 | # 7 | # for a discussion of each configuration directive. 8 | # 9 | # Do NOT simply read the instructions in here without understanding 10 | # what they do. They're here only as hints or reminders. If you are unsure 11 | # consult the online docs. You have been warned. 12 | # 13 | # Configuration and logfile names: If the filenames you specify for many 14 | # of the server's control files begin with "/" (or "drive:/" for Win32), the 15 | # server will use that explicit path. If the filenames do *not* begin 16 | # with "/", the value of ServerRoot is prepended -- so 'log/access_log' 17 | # with ServerRoot set to '/www' will be interpreted by the 18 | # server as '/www/log/access_log', where as '/log/access_log' will be 19 | # interpreted as '/log/access_log'. 20 | 21 | # 22 | # ServerRoot: The top of the directory tree under which the server's 23 | # configuration, error, and log files are kept. 24 | # 25 | # Do not add a slash at the end of the directory path. If you point 26 | # ServerRoot at a non-local disk, be sure to specify a local disk on the 27 | # Mutex directive, if file-based mutexes are used. If you wish to share the 28 | # same ServerRoot for multiple httpd daemons, you will need to change at 29 | # least PidFile. 30 | # 31 | ServerRoot "/etc/httpd" 32 | 33 | # 34 | # Listen: Allows you to bind Apache to specific IP addresses and/or 35 | # ports, instead of the default. See also the 36 | # directive. 37 | # 38 | # Change this to Listen on specific IP addresses as shown below to 39 | # prevent Apache from glomming onto all bound IP addresses. 40 | # 41 | #Listen 12.34.56.78:80 42 | Listen 80 http 43 | 44 | # 45 | # Dynamic Shared Object (DSO) Support 46 | # 47 | # To be able to use the functionality of a module which was built as a DSO you 48 | # have to place corresponding `LoadModule' lines at this location so the 49 | # directives contained in it are actually available _before_ they are used. 50 | # Statically compiled modules (those listed by `httpd -l') do not need 51 | # to be loaded here. 52 | # 53 | # Example: 54 | # LoadModule foo_module modules/mod_foo.so 55 | # 56 | Include conf.modules.d/*.conf 57 | 58 | # 59 | # If you wish httpd to run as a different user or group, you must run 60 | # httpd as root initially and it will switch. 61 | # 62 | # User/Group: The name (or #number) of the user/group to run httpd as. 63 | # It is usually good practice to create a dedicated user and group for 64 | # running httpd, as with most system services. 65 | # 66 | User asterisk 67 | Group asterisk 68 | 69 | # 'Main' server configuration 70 | # 71 | # The directives in this section set up the values used by the 'main' 72 | # server, which responds to any requests that aren't handled by a 73 | # definition. These values also provide defaults for 74 | # any containers you may define later in the file. 75 | # 76 | # All of these directives may appear inside containers, 77 | # in which case these default settings will be overridden for the 78 | # virtual host being defined. 79 | # 80 | 81 | # 82 | # ServerAdmin: Your address, where problems with the server should be 83 | # e-mailed. This address appears on some server-generated pages, such 84 | # as error documents. e.g. admin@your-domain.com 85 | # 86 | ServerAdmin root@localhost 87 | 88 | # 89 | # ServerName gives the name and port that the server uses to identify itself. 90 | # This can often be determined automatically, but we recommend you specify 91 | # it explicitly to prevent problems during startup. 92 | # 93 | # If your host doesn't have a registered DNS name, enter its IP address here. 94 | # 95 | #ServerName www.example.com:80 96 | 97 | # 98 | # Deny access to the entirety of your server's filesystem. You must 99 | # explicitly permit access to web content directories in other 100 | # blocks below. 101 | # 102 | 103 | AllowOverride none 104 | Require all denied 105 | 106 | 107 | # 108 | # Note that from this point forward you must specifically allow 109 | # particular features to be enabled - so if something's not working as 110 | # you might expect, make sure that you have specifically enabled it 111 | # below. 112 | # 113 | 114 | # 115 | # DocumentRoot: The directory out of which you will serve your 116 | # documents. By default, all requests are taken from this directory, but 117 | # symbolic links and aliases may be used to point to other locations. 118 | # 119 | DocumentRoot "/var/www/html" 120 | 121 | # 122 | # Relax access to content within /var/www. 123 | # 124 | 125 | AllowOverride All 126 | # Allow open access: 127 | Require all granted 128 | 129 | 130 | # Further relax access to the default document root: 131 | 132 | # 133 | # Possible values for the Options directive are "None", "All", 134 | # or any combination of: 135 | # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 136 | # 137 | # Note that "MultiViews" must be named *explicitly* --- "Options All" 138 | # doesn't give it to you. 139 | # 140 | # The Options directive is both complicated and important. Please see 141 | # http://httpd.apache.org/docs/2.4/mod/core.html#options 142 | # for more information. 143 | # 144 | Options Indexes FollowSymLinks 145 | 146 | # 147 | # AllowOverride controls what directives may be placed in .htaccess files. 148 | # It can be "All", "None", or any combination of the keywords: 149 | # Options FileInfo AuthConfig Limit 150 | # 151 | AllowOverride All 152 | 153 | # 154 | # Controls who can get stuff from this server. 155 | # 156 | Require all granted 157 | 158 | 159 | # 160 | # DirectoryIndex: sets the file that Apache will serve if a directory 161 | # is requested. 162 | # 163 | 164 | DirectoryIndex index.html 165 | 166 | 167 | # 168 | # The following lines prevent .htaccess and .htpasswd files from being 169 | # viewed by Web clients. 170 | # 171 | 172 | Require all denied 173 | 174 | 175 | # 176 | # ErrorLog: The location of the error log file. 177 | # If you do not specify an ErrorLog directive within a 178 | # container, error messages relating to that virtual host will be 179 | # logged here. If you *do* define an error logfile for a 180 | # container, that host's errors will be logged there and not here. 181 | # 182 | ErrorLog "logs/error_log" 183 | 184 | # 185 | # LogLevel: Control the number of messages logged to the error_log. 186 | # Possible values include: debug, info, notice, warn, error, crit, 187 | # alert, emerg. 188 | # 189 | LogLevel warn 190 | 191 | 192 | # 193 | # The following directives define some format nicknames for use with 194 | # a CustomLog directive (see below). 195 | # 196 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 197 | LogFormat "%h %l %u %t \"%r\" %>s %b" common 198 | 199 | 200 | # You need to enable mod_logio.c to use %I and %O 201 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 202 | 203 | 204 | # 205 | # The location and format of the access logfile (Common Logfile Format). 206 | # If you do not define any access logfiles within a 207 | # container, they will be logged here. Contrariwise, if you *do* 208 | # define per- access logfiles, transactions will be 209 | # logged therein and *not* in this file. 210 | # 211 | #CustomLog "logs/access_log" common 212 | 213 | # 214 | # If you prefer a logfile with access, agent, and referer information 215 | # (Combined Logfile Format) you can use the following directive. 216 | # 217 | CustomLog "logs/access_log" combined 218 | 219 | 220 | 221 | # 222 | # Redirect: Allows you to tell clients about documents that used to 223 | # exist in your server's namespace, but do not anymore. The client 224 | # will make a new request for the document at its new location. 225 | # Example: 226 | # Redirect permanent /foo http://www.example.com/bar 227 | 228 | # 229 | # Alias: Maps web paths into filesystem paths and is used to 230 | # access content that does not live under the DocumentRoot. 231 | # Example: 232 | # Alias /webpath /full/filesystem/path 233 | # 234 | # If you include a trailing / on /webpath then the server will 235 | # require it to be present in the URL. You will also likely 236 | # need to provide a section to allow access to 237 | # the filesystem path. 238 | 239 | # 240 | # ScriptAlias: This controls which directories contain server scripts. 241 | # ScriptAliases are essentially the same as Aliases, except that 242 | # documents in the target directory are treated as applications and 243 | # run by the server when requested rather than as documents sent to the 244 | # client. The same rules about trailing "/" apply to ScriptAlias 245 | # directives as to Alias. 246 | # 247 | ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 248 | 249 | 250 | 251 | # 252 | # "/var/www/cgi-bin" should be changed to whatever your ScriptAliased 253 | # CGI directory exists, if you have that configured. 254 | # 255 | 256 | AllowOverride All 257 | Options None 258 | Require all granted 259 | 260 | 261 | 262 | # 263 | # TypesConfig points to the file containing the list of mappings from 264 | # filename extension to MIME-type. 265 | # 266 | TypesConfig /etc/mime.types 267 | 268 | # 269 | # AddType allows you to add to or override the MIME configuration 270 | # file specified in TypesConfig for specific file types. 271 | # 272 | #AddType application/x-gzip .tgz 273 | # 274 | # AddEncoding allows you to have certain browsers uncompress 275 | # information on the fly. Note: Not all browsers support this. 276 | # 277 | #AddEncoding x-compress .Z 278 | #AddEncoding x-gzip .gz .tgz 279 | # 280 | # If the AddEncoding directives above are commented-out, then you 281 | # probably should define those extensions to indicate media types: 282 | # 283 | AddType application/x-compress .Z 284 | AddType application/x-gzip .gz .tgz 285 | 286 | # 287 | # AddHandler allows you to map certain file extensions to "handlers": 288 | # actions unrelated to filetype. These can be either built into the server 289 | # or added with the Action directive (see below) 290 | # 291 | # To use CGI scripts outside of ScriptAliased directories: 292 | # (You will also need to add "ExecCGI" to the "Options" directive.) 293 | # 294 | #AddHandler cgi-script .cgi 295 | 296 | # For type maps (negotiated resources): 297 | #AddHandler type-map var 298 | 299 | # 300 | # Filters allow you to process content before it is sent to the client. 301 | # 302 | # To parse .shtml files for server-side includes (SSI): 303 | # (You will also need to add "Includes" to the "Options" directive.) 304 | # 305 | AddType text/html .shtml 306 | AddOutputFilter INCLUDES .shtml 307 | 308 | 309 | # 310 | # Specify a default charset for all content served; this enables 311 | # interpretation of all content as UTF-8 by default. To use the 312 | # default browser choice (ISO-8859-1), or to allow the META tags 313 | # in HTML content to override this choice, comment out this 314 | # directive: 315 | # 316 | AddDefaultCharset UTF-8 317 | 318 | 319 | # 320 | # The mod_mime_magic module allows the server to use various hints from the 321 | # contents of the file itself to determine its type. The MIMEMagicFile 322 | # directive tells the module where the hint definitions are located. 323 | # 324 | MIMEMagicFile conf/magic 325 | 326 | 327 | # 328 | # Customizable error responses come in three flavors: 329 | # 1) plain text 2) local redirects 3) external redirects 330 | # 331 | # Some examples: 332 | #ErrorDocument 500 "The server made a boo boo." 333 | #ErrorDocument 404 /missing.html 334 | #ErrorDocument 404 "/cgi-bin/missing_handler.pl" 335 | #ErrorDocument 402 http://www.example.com/subscription_info.html 336 | # 337 | 338 | # 339 | # EnableMMAP and EnableSendfile: On systems that support it, 340 | # memory-mapping or the sendfile syscall may be used to deliver 341 | # files. This usually improves server performance, but must 342 | # be turned off when serving from networked-mounted 343 | # filesystems or if support for these functions is otherwise 344 | # broken on your system. 345 | # Defaults if commented: EnableMMAP On, EnableSendfile Off 346 | # 347 | #EnableMMAP off 348 | EnableSendfile on 349 | 350 | # Supplemental configuration 351 | # 352 | # Load config files in the "/etc/httpd/conf.d" directory, if any. 353 | IncludeOptional conf.d/*.conf 354 | KeepAlive on 355 | -------------------------------------------------------------------------------- /etc/root/avantfax_config.php: -------------------------------------------------------------------------------- 1 | 8 | * @copyright 2005 - 2007 MENTALBARCODE Software, LLC 9 | * @copyright 2007 - 2008 iFAX Solutions, Inc. 10 | * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL 11 | */ 12 | 13 | // 14 | // DATABASE SETTINGS 15 | // 16 | // EDIT DATABASE USER INFO 17 | // You must create the database before you continue (mysql -p < create_table.sql) 18 | define('AFDB_USER', 'root'); // username 19 | define('AFDB_PASS', 'CLEARTEXT_PASSWORD'); // password 20 | define('AFDB_NAME', 'avantfax'); // database name 21 | define('AFDB_ENGINE', 'mysql'); // database engine: mysql 22 | define('AFDB_HOST', 'localhost'); // database host 23 | 24 | // 25 | // HYLAFAX SETTINGS 26 | // 27 | $BINARYDIR = '/usr/bin'; // typical on Linux, while /usr/local/bin would be typical for FreeBSD 28 | $HYLAFAX_PREFIX = '/usr'; // if you installed hylafax from source, your installation may default to /usr/local 29 | $HYLASPOOL = '/var/spool/hylafax'; 30 | 31 | // Use HylaFAX's tiff2ps script (/var/spool/hylafax/bin/tiff2ps) instead of AvantFAX's tiff2ps functionality 32 | $HYLATIFF2PS = false; 33 | 34 | 35 | // 36 | // Configuring Caller ID 37 | // 38 | // Set the following to resemble the order in which your Caller ID information and DID/DNIS/DTMF information is stored in your TIFF fax file 39 | // Example output from 'faxinfo fax0000000XX.tif' 40 | // Sender: Internal Fax 41 | // CallID1: 8005551212 42 | // CallID2: iFAX 43 | // CallID3: 8490 44 | // 45 | // The config. file has these settings set: 46 | // CallIDPattern: "NMBR=" 47 | // CallIDPattern: "NAME=" 48 | // CallIDPattern: "NDID=" 49 | // 50 | $CALLIDn_CIDNumber = 1; 51 | $CALLIDn_CIDName = 2; 52 | $CALLIDn_DIDNum = 3; 53 | 54 | // 55 | // Faxmail user 56 | // 57 | // If you're using Email to FAX through your MTA, set the following value as the faxmail user you chose 58 | // If you're using postfix on Debian, this may be faxmaster 59 | $FAXMAILUSER = 'faxmail'; 60 | 61 | // 62 | // Apache user 63 | // 64 | // When resubmitting a fax job (faxalter -r), the fax job shows up as owned by the user running httpd 65 | // In order to properly lookup the correct user, $WWWUSER must be the name of the user running httpd. 66 | // Examples are apache, www-run, nobody 67 | $WWWUSER = 'asterisk'; 68 | 69 | // 70 | // AvantFAX System email address 71 | // 72 | // Emails from faxrcvd and notify are sent from this email address 73 | define('ADMIN_EMAIL', 'root@localhost'); // system return email address 74 | 75 | // 76 | // EMAIL settings for faxrcvd and notify 77 | // 78 | // If you would like to include the fax PDF for successful faxes, set the following to true 79 | // Failed faxes automatically have the failed PDF attached to the email 80 | $NOTIFY_INCLUDE_PDF = false; 81 | 82 | // If you would like the email from faxrcvd to include the thumbnail image 83 | $FAXRCVD_INCLUDE_THUMBNAIL = true; 84 | $FAXRCVD_INCLUDE_PDF = true; 85 | 86 | // 87 | // DID/DTMF Routing 88 | // 89 | // If you're using DTMF enabled hardware or PBX that is sending hunt group information to HylaFAX, you can set the following to true 90 | $ENABLE_DID_ROUTING = false; 91 | 92 | // Set this to false if you don't want to auto configure new DID/DTMF Routing groups. This is helpful for automatically creating 93 | // new DID groups upon receiving new faxes. However, some may find it a hassle to have new groups created. Faxes that arrive 94 | // on an unconfigured DID/DTMF group will then go into the Catch-All group 95 | $AUTOCONFDID = true; 96 | 97 | // 98 | // AvantFAX Interface Options 99 | // 100 | 101 | $dft_config_lang = 'en'; // default system language (english) 102 | 103 | // Default values for fields when sending a fax either through AvantFAX or directly through HylaFAX 104 | // (only if they haven't been set in /etc/hylafax/hyla.conf) 105 | $FROM_COMPANY = ""; 106 | $FROM_LOCATION = ""; 107 | $FROM_FAXNUMBER = ""; 108 | $FROM_VOICENUMBER = ""; 109 | $DEFAULT_TSI_ID = ""; 110 | 111 | // enable interface to show link for downloading the original TIFF file 112 | $ENABLE_DL_TIFF = false; 113 | 114 | // server name 115 | $AVANTFAX_SERVERNAME = 'avantfax'; // replace with a custom string for your server name, otherwise leave NULL to use your server's hostname (if found) 116 | $SHOWSERVER_DETAILS = false; 117 | 118 | // Show all Address book contacts 119 | // You would set to false once you have several hundreds (even thousands) of contacts that it doesn't make sense 120 | // to load them all every time you load a page like Contacts and Archive 121 | $SHOW_ALL_CONTACTS = true; 122 | 123 | // If you want to convert your faxes to G4 format (to save space) when faxrcvd copies the tif file to the AvantFAX archive 124 | $TIFF_TO_G4 = false; 125 | 126 | // To enable debugging 127 | $AVANTFAX_DEBUG = false; 128 | 129 | // This mode is for restricting user access to faxes in the archive 130 | // When diabled, users can view faxes that were received on their viewable fax line (or DID group) OR viewable category 131 | // When enabled, users can only view faxes that were received on their viewable fax line (or DID group) AND viewable category 132 | // Therefore, when in use, users who have access to one modem (or DID group) cannot see the faxes from another modem (or DID group) 133 | // even if they can view that category 134 | define('RESTRICTED_USER_MODE', false); 135 | 136 | // set to 1 if you want your custom cover page to show total pages in the fax instead of number pages that follow the cover page 137 | // this is used ONLY when you send a fax that consists of just the cover page 138 | // the default cover page displays (Number of pages to follow: 0) 139 | $NUM_PAGES_FOLLOW = 0; 140 | 141 | // Fax number lookup 142 | // replace your own link but fax number must be behind the last = 143 | define('WHITEPAGES', "http://www.whitepages.com/search/ReversePhone?full_phone="); // White Pages USA 144 | // define('WHITEPAGES', "http://www.paginebianche.it/execute.cgi?btt=1&tl=2&tr=106&qs="); // White Pages Italy 145 | // define('WHITEPAGES', "http://privatpersoner.eniro.se/query?stq=0&searcharea=&what=wphone&searchword="); // Vita sidorna Eniro, Sverige 146 | 147 | // increase if you want users to be able to have longer values 148 | // WHFC has issues with usernames longer than 15 chars 149 | define('MAX_USERNAME_SIZE', 15); 150 | define('MAX_PASSWD_SIZE', 15); 151 | define('MIN_PASSWD_SIZE', 8); 152 | define('MAX_EMAIL_SIZE', 99); 153 | 154 | // List Inbox by modem instead of by date 155 | define('INBOX_LIST_MODEM', false); 156 | 157 | // Inbox takes focus when new fax arrives 158 | $FOCUS_ON_NEW_FAX = false; 159 | // Inbox shows a popup window (Javascript alert) when a new fax arrives 160 | $FOCUS_ON_NEW_FAX_POPUP = false; 161 | 162 | // Default setting for requesting "requeued" email 163 | $SENDFAX_REQUEUE_EMAIL = true; 164 | 165 | // Toggle if you want to show the Cover page form in sendfax.php (set: true or false) 166 | $SENDFAX_USE_COVERPAGE = true; 167 | 168 | // Archive faxes "Routed by Sender" 169 | // if you would like to see all faxes that are "Routed by Sender" in your Inbox, then set this to false. 170 | // Otherwise, set this to true, so that the fax is archived 171 | $ARCHIVEFAX2EMAIL = true; 172 | 173 | // For smaller screens (ie: 1024x768), set this to false 174 | // When set to false, the Archve page will fit the fax preview image in with the rest of the results 175 | $ARCHIVE_WIDE = true; 176 | 177 | // Set the default number of faxes to display per page in the Inbox and Archive (if user hasn't specified a preference) 178 | // Use either: 10, 15, 20, 25, 30, 50, or 100 179 | $DEFAULT_FAXES_PER_PAGE_INBOX = 25; 180 | $DEFAULT_FAXES_PER_PAGE_ARCHIVE = 30; 181 | 182 | // 183 | // OCR Support 184 | // 185 | // Enable support for Tesseract to read the content of your fax and store the data in your database for improved Archive searching 186 | // tesseract must be installed first 187 | define('ENABLE_OCR_SUPPORT', false); // set to true to enable support 188 | define('OCR_BINARY', "/usr/local/bin/tesseract"); 189 | define('OCR_COMMAND', OCR_BINARY." %s %s -l %s"); // to use all languages, remove "-l %s" from the command 190 | define('OCR_LANGUAGE', "eng"); // Examples: eng, fra, deu, spa, ita 191 | 192 | // 193 | // Barcode Support 194 | // 195 | // If you have the bardecode software, you can enable this functionality to automatically store any barcode data from received faxes in the database 196 | // Contact sales@ifax.com for details 197 | define('ENABLE_BARDECODE_SUPPORT', false); 198 | define('BARDECODE_BINARY', "/var/spool/hylafax/bin/bardecode"); 199 | define('BARDECODE_COMMAND', BARDECODE_BINARY." -t any -f %s"); 200 | 201 | // 202 | // Annotation support 203 | // 204 | // If you want to annotate each fax with AvantFAX's faxid 205 | define('ENABLE_FAX_ANNOTATION', false); 206 | define('ANN_GRAVITY', 'south'); // acceptable values: north, northeast, northwest, south, southeast, southwest 207 | // If you want to print the annotated PDF, set the following to true. Otherwise, the received TIFF file will be printed as received (not annotated) 208 | $FAXRCVD_PRINT_PDF = false; 209 | 210 | // 211 | // Email settings 212 | // 213 | // Email encoding options (values are: SevenBitEncoding, QPrintEncoding, Base64Encoding) 214 | define('EMAIL_ENCODING_TEXT', "Base64Encoding"); 215 | define('EMAIL_ENCODING_HTML', "Base64Encoding"); 216 | 217 | // Email Charset options (values: UTF-8, or whatever your iso-8859 charset is) 218 | define('EMAIL_ENCODING_CHARSET', "UTF-8"); 219 | 220 | // SMTP server support for using external mail server (mail server not on this machine) 221 | define('USE_SMTPSERVER', false); // set to true to enable usage 222 | define('SMTP_SERVER', 'localhost'); // set your mail server address (ie: mail.example.com, or ssl://mail.example.com) 223 | define('SMTP_PORT', 25); // mail server port. For SSL, try 465 224 | define('SMTP_AUTH', false); // set to true to enable SMTP authentication 225 | define('SMTP_USERNAME', ''); // username for authentication 226 | define('SMTP_PASSWORD', ''); // password for authentication 227 | define('SMTP_LOCALHOST', 'localhost'); // the value to give for HELO 228 | 229 | // If you do want to receive an email for every successful sent fax, set $NOTIFY_ON_SUCCESS = true 230 | // If you don't want to receive an email, set it the following to false. This is a global setting and 231 | // individual users cannot override it. 232 | $NOTIFY_ON_SUCCESS = true; 233 | 234 | // AvantFAX Email signature 235 | $SYSTEM_EMAIL_SIG_HTML = 'AvantFAX'; 236 | $SYSTEM_EMAIL_SIG_TEXT = 'www.AvantFAX.com'; 237 | 238 | // 239 | // Cover page 240 | // 241 | // This is the path to your custom cover page 242 | // The PostScript file must be located in the images/ directory 243 | $COVERPAGE_FILE = 'cover.ps'; // ie: mycover.ps, coverpage.html 244 | 245 | // The new cover page feature allows you to use an HTML page as your cover page 246 | // This means that it will be much easier to make your own coverpages to be used with AvantFAX/HylaFAX 247 | // Your custom HTML cover page must be located in AvantFAX's "images" directory 248 | // This feature requires html2ps. AvantFAX was tested with version 1.0 beta5 249 | // To download html2ps, follow this URL: http://user.it.uu.se/~jan/html2ps.html 250 | $HTML2PS = '/usr/local/bin/html2ps'; // path to html2ps 251 | 252 | // if you need to change the document size 253 | $PAPERSIZE = 'letter'; // a4, letter 254 | 255 | // Cover Page options (for postscript cover pages) 256 | $CPAGE_LINELEN = 80; // max line length 257 | 258 | // 259 | // Printer Settings 260 | // 261 | // Printing support for received faxes to enable support, change to true 262 | $PRINTFAXRCVD = false; 263 | $PRINTERNAME = ''; // the name of the print queue or leave blank for default printer 264 | $PRINTCMD = '/usr/bin/lpr'; // the print spool command 265 | $PRINTFAX2PS = '/usr/bin/fax2ps'; // the print command 266 | $PDFPRINTCMD = '/usr/bin/lpr'; // the print command for PDFs 267 | 268 | // 269 | // Date format settings 270 | // 271 | define('FAXCOVER_DATE_FORMAT', "%d.%m.%Y %H:%M"); // strftime format for faxcover. Example: "%m/%d/%Y %H:%M" 272 | define('EMAIL_DATE_FORMAT', "%d.%m.%Y %H:%M"); // strftime format for notify/faxrcvd subject email dates. Example: "%m/%d/%Y %H:%M" 273 | define('ARCHIVE_DATE_FORMAT', "'%d.%m.%Y %H:%i'");// SQL format for Inbox & Archive Dates. Example: "'%m/%d/%Y %H:%i'" or "GET_FORMAT(DATETIME, 'USA')" 274 | 275 | // 276 | // Ghostscript tweaks 277 | // 278 | // ghostscript 279 | $DPI = 92; // DPI of recieved faxes viewed in inbox (calibrate for rotate speed) higher number for faster processor. View AvantFAX Admin Logs for stats. 280 | $DPIS = 200; // DPI of sent faxes kept in archive (calibrate for pdf file size) 281 | 282 | define('PREV_TN', 80); // thumbnail width 283 | define('PREV_SP', 750); // view fax preview fax image width 284 | 285 | // 286 | // Custom Authentication settings 287 | // 288 | // If you would like to use/develop your own custom authentication backend, set ALTERNATE_AUTH_ENABLE to true and see below 289 | $ALTERNATE_AUTH_ENABLE = false; 290 | // If you want to allow users who aren't able to login via your custom authentication method to be able to login using 291 | // their AvantFAX username and password, set ALTERNATE_AUTH_FALLBACK to true. Otherwise, if you require all users to 292 | // login using your method, set ALTERNATE_AUTH_FALLBACK to false. 293 | $ALTERNATE_AUTH_FALLBACK = true; 294 | // Enter the name of your custom authentication class below. The name of the class must be identical (case-sensitive) 295 | // to the PHP file name and the class must be located in the includes/ directory. The class file will by dynamically 296 | // included by AvantFAX when needed. Your class must implement the "CustomAuth" interface found in includes/classes.php. 297 | // For an example, see includes/PAMAuth.php 298 | $ALTERNATE_AUTH_CLASS = "PAMAuth"; 299 | -------------------------------------------------------------------------------- /etc/httpd/conf/magic: -------------------------------------------------------------------------------- 1 | # Magic data for mod_mime_magic Apache module (originally for file(1) command) 2 | # The module is described in /manual/mod/mod_mime_magic.html 3 | # 4 | # The format is 4-5 columns: 5 | # Column #1: byte number to begin checking from, ">" indicates continuation 6 | # Column #2: type of data to match 7 | # Column #3: contents of data to match 8 | # Column #4: MIME type of result 9 | # Column #5: MIME encoding of result (optional) 10 | 11 | #------------------------------------------------------------------------------ 12 | # Localstuff: file(1) magic for locally observed files 13 | # Add any locally observed files here. 14 | 15 | #------------------------------------------------------------------------------ 16 | # end local stuff 17 | #------------------------------------------------------------------------------ 18 | 19 | #------------------------------------------------------------------------------ 20 | # Java 21 | 22 | 0 short 0xcafe 23 | >2 short 0xbabe application/java 24 | 25 | #------------------------------------------------------------------------------ 26 | # audio: file(1) magic for sound formats 27 | # 28 | # from Jan Nicolai Langfeldt , 29 | # 30 | 31 | # Sun/NeXT audio data 32 | 0 string .snd 33 | >12 belong 1 audio/basic 34 | >12 belong 2 audio/basic 35 | >12 belong 3 audio/basic 36 | >12 belong 4 audio/basic 37 | >12 belong 5 audio/basic 38 | >12 belong 6 audio/basic 39 | >12 belong 7 audio/basic 40 | 41 | >12 belong 23 audio/x-adpcm 42 | 43 | # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format 44 | # that uses little-endian encoding and has a different magic number 45 | # (0x0064732E in little-endian encoding). 46 | 0 lelong 0x0064732E 47 | >12 lelong 1 audio/x-dec-basic 48 | >12 lelong 2 audio/x-dec-basic 49 | >12 lelong 3 audio/x-dec-basic 50 | >12 lelong 4 audio/x-dec-basic 51 | >12 lelong 5 audio/x-dec-basic 52 | >12 lelong 6 audio/x-dec-basic 53 | >12 lelong 7 audio/x-dec-basic 54 | # compressed (G.721 ADPCM) 55 | >12 lelong 23 audio/x-dec-adpcm 56 | 57 | # Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM" 58 | # AIFF audio data 59 | 8 string AIFF audio/x-aiff 60 | # AIFF-C audio data 61 | 8 string AIFC audio/x-aiff 62 | # IFF/8SVX audio data 63 | 8 string 8SVX audio/x-aiff 64 | 65 | # Creative Labs AUDIO stuff 66 | # Standard MIDI data 67 | 0 string MThd audio/unknown 68 | #>9 byte >0 (format %d) 69 | #>11 byte >1 using %d channels 70 | # Creative Music (CMF) data 71 | 0 string CTMF audio/unknown 72 | # SoundBlaster instrument data 73 | 0 string SBI audio/unknown 74 | # Creative Labs voice data 75 | 0 string Creative\ Voice\ File audio/unknown 76 | ## is this next line right? it came this way... 77 | #>19 byte 0x1A 78 | #>23 byte >0 - version %d 79 | #>22 byte >0 \b.%d 80 | 81 | # [GRR 950115: is this also Creative Labs? Guessing that first line 82 | # should be string instead of unknown-endian long...] 83 | #0 long 0x4e54524b MultiTrack sound data 84 | #0 string NTRK MultiTrack sound data 85 | #>4 long x - version %ld 86 | 87 | # Microsoft WAVE format (*.wav) 88 | # [GRR 950115: probably all of the shorts and longs should be leshort/lelong] 89 | # Microsoft RIFF 90 | 0 string RIFF audio/unknown 91 | # - WAVE format 92 | >8 string WAVE audio/x-wav 93 | # MPEG audio. 94 | 0 beshort&0xfff0 0xfff0 audio/mpeg 95 | # C64 SID Music files, from Linus Walleij 96 | 0 string PSID audio/prs.sid 97 | 98 | #------------------------------------------------------------------------------ 99 | # c-lang: file(1) magic for C programs or various scripts 100 | # 101 | 102 | # XPM icons (Greg Roelofs, newt@uchicago.edu) 103 | # ideally should go into "images", but entries below would tag XPM as C source 104 | 0 string /*\ XPM image/x-xbm 7bit 105 | 106 | # this first will upset you if you're a PL/1 shop... (are there any left?) 107 | # in which case rm it; ascmagic will catch real C programs 108 | # C or REXX program text 109 | 0 string /* text/plain 110 | # C++ program text 111 | 0 string // text/plain 112 | 113 | #------------------------------------------------------------------------------ 114 | # compress: file(1) magic for pure-compression formats (no archives) 115 | # 116 | # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc. 117 | # 118 | # Formats for various forms of compressed data 119 | # Formats for "compress" proper have been moved into "compress.c", 120 | # because it tries to uncompress it to figure out what's inside. 121 | 122 | # standard unix compress 123 | 0 string \037\235 application/octet-stream x-compress 124 | 125 | # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) 126 | 0 string \037\213 application/octet-stream x-gzip 127 | 128 | # According to gzip.h, this is the correct byte order for packed data. 129 | 0 string \037\036 application/octet-stream 130 | # 131 | # This magic number is byte-order-independent. 132 | # 133 | 0 short 017437 application/octet-stream 134 | 135 | # XXX - why *two* entries for "compacted data", one of which is 136 | # byte-order independent, and one of which is byte-order dependent? 137 | # 138 | # compacted data 139 | 0 short 0x1fff application/octet-stream 140 | 0 string \377\037 application/octet-stream 141 | # huf output 142 | 0 short 0145405 application/octet-stream 143 | 144 | # Squeeze and Crunch... 145 | # These numbers were gleaned from the Unix versions of the programs to 146 | # handle these formats. Note that I can only uncrunch, not crunch, and 147 | # I didn't have a crunched file handy, so the crunch number is untested. 148 | # Keith Waclena 149 | #0 leshort 0x76FF squeezed data (CP/M, DOS) 150 | #0 leshort 0x76FE crunched data (CP/M, DOS) 151 | 152 | # Freeze 153 | #0 string \037\237 Frozen file 2.1 154 | #0 string \037\236 Frozen file 1.0 (or gzip 0.5) 155 | 156 | # lzh? 157 | #0 string \037\240 LZH compressed data 158 | 159 | #------------------------------------------------------------------------------ 160 | # frame: file(1) magic for FrameMaker files 161 | # 162 | # This stuff came on a FrameMaker demo tape, most of which is 163 | # copyright, but this file is "published" as witness the following: 164 | # 165 | 0 string \ 177 | # and Anna Shergold 178 | # 179 | 0 string \ 192 | 0 string \14 byte 12 (OS/2 1.x format) 257 | #>14 byte 64 (OS/2 2.x format) 258 | #>14 byte 40 (Windows 3.x format) 259 | #0 string IC icon 260 | #0 string PI pointer 261 | #0 string CI color icon 262 | #0 string CP color pointer 263 | #0 string BA bitmap array 264 | 265 | 0 string \x89PNG image/png 266 | 0 string FWS application/x-shockwave-flash 267 | 0 string CWS application/x-shockwave-flash 268 | 269 | #------------------------------------------------------------------------------ 270 | # lisp: file(1) magic for lisp programs 271 | # 272 | # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com) 273 | 0 string ;; text/plain 8bit 274 | # Emacs 18 - this is always correct, but not very magical. 275 | 0 string \012( application/x-elc 276 | # Emacs 19 277 | 0 string ;ELC\023\000\000\000 application/x-elc 278 | 279 | #------------------------------------------------------------------------------ 280 | # mail.news: file(1) magic for mail and news 281 | # 282 | # There are tests to ascmagic.c to cope with mail and news. 283 | 0 string Relay-Version: message/rfc822 7bit 284 | 0 string #!\ rnews message/rfc822 7bit 285 | 0 string N#!\ rnews message/rfc822 7bit 286 | 0 string Forward\ to message/rfc822 7bit 287 | 0 string Pipe\ to message/rfc822 7bit 288 | 0 string Return-Path: message/rfc822 7bit 289 | 0 string Path: message/news 8bit 290 | 0 string Xref: message/news 8bit 291 | 0 string From: message/rfc822 7bit 292 | 0 string Article message/news 8bit 293 | #------------------------------------------------------------------------------ 294 | # msword: file(1) magic for MS Word files 295 | # 296 | # Contributor claims: 297 | # Reversed-engineered MS Word magic numbers 298 | # 299 | 300 | 0 string \376\067\0\043 application/msword 301 | 0 string \333\245-\0\0\0 application/msword 302 | 303 | # disable this one because it applies also to other 304 | # Office/OLE documents for which msword is not correct. See PR#2608. 305 | #0 string \320\317\021\340\241\261 application/msword 306 | 307 | 308 | 309 | #------------------------------------------------------------------------------ 310 | # printer: file(1) magic for printer-formatted files 311 | # 312 | 313 | # PostScript 314 | 0 string %! application/postscript 315 | 0 string \004%! application/postscript 316 | 317 | # Acrobat 318 | # (due to clamen@cs.cmu.edu) 319 | 0 string %PDF- application/pdf 320 | 321 | #------------------------------------------------------------------------------ 322 | # sc: file(1) magic for "sc" spreadsheet 323 | # 324 | 38 string Spreadsheet application/x-sc 325 | 326 | #------------------------------------------------------------------------------ 327 | # tex: file(1) magic for TeX files 328 | # 329 | # XXX - needs byte-endian stuff (big-endian and little-endian DVI?) 330 | # 331 | # From 332 | 333 | # Although we may know the offset of certain text fields in TeX DVI 334 | # and font files, we can't use them reliably because they are not 335 | # zero terminated. [but we do anyway, christos] 336 | 0 string \367\002 application/x-dvi 337 | #0 string \367\203 TeX generic font data 338 | #0 string \367\131 TeX packed font data 339 | #0 string \367\312 TeX virtual font data 340 | #0 string This\ is\ TeX, TeX transcript text 341 | #0 string This\ is\ METAFONT, METAFONT transcript text 342 | 343 | # There is no way to detect TeX Font Metric (*.tfm) files without 344 | # breaking them apart and reading the data. The following patterns 345 | # match most *.tfm files generated by METAFONT or afm2tfm. 346 | #2 string \000\021 TeX font metric data 347 | #2 string \000\022 TeX font metric data 348 | #>34 string >\0 (%s) 349 | 350 | # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) 351 | #0 string \\input\ texinfo Texinfo source text 352 | #0 string This\ is\ Info\ file GNU Info text 353 | 354 | # correct TeX magic for Linux (and maybe more) 355 | # from Peter Tobias (tobias@server.et-inf.fho-emden.de) 356 | # 357 | 0 leshort 0x02f7 application/x-dvi 358 | 359 | # RTF - Rich Text Format 360 | 0 string {\\rtf application/rtf 361 | 362 | #------------------------------------------------------------------------------ 363 | # animation: file(1) magic for animation/movie formats 364 | # 365 | # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8) 366 | # MPEG file 367 | 0 string \000\000\001\263 video/mpeg 368 | # 369 | # The contributor claims: 370 | # I couldn't find a real magic number for these, however, this 371 | # -appears- to work. Note that it might catch other files, too, 372 | # so BE CAREFUL! 373 | # 374 | # Note that title and author appear in the two 20-byte chunks 375 | # at decimal offsets 2 and 22, respectively, but they are XOR'ed with 376 | # 255 (hex FF)! DL format SUCKS BIG ROCKS. 377 | # 378 | # DL file version 1 , medium format (160x100, 4 images/screen) 379 | 0 byte 1 video/unknown 380 | 0 byte 2 video/unknown 381 | # Quicktime video, from Linus Walleij 382 | # from Apple quicktime file format documentation. 383 | 4 string moov video/quicktime 384 | 4 string mdat video/quicktime 385 | 386 | -------------------------------------------------------------------------------- /etc/fail2ban/jail.local: -------------------------------------------------------------------------------- 1 | # 2 | # WARNING: heavily refactored in 0.9.0 release. Please review and 3 | # customize settings for your setup. 4 | # 5 | # Changes: in most of the cases you should not modify this 6 | # file, but provide customizations in jail.local file, 7 | # or separate .conf files under jail.d/ directory, e.g.: 8 | # 9 | # HOW TO ACTIVATE JAILS: 10 | # 11 | # YOU SHOULD NOT MODIFY THIS FILE. 12 | # 13 | # It will probably be overwritten or improved in a distribution update. 14 | # 15 | # Provide customizations in a jail.local file or a jail.d/customisation.local. 16 | # For example to change the default bantime for all jails and to enable the 17 | # ssh-iptables jail the following (uncommented) would appear in the .local file. 18 | # See man 5 jail.conf for details. 19 | # 20 | # [DEFAULT] 21 | # bantime = 3600 22 | # 23 | # [sshd] 24 | # enabled = true 25 | # 26 | # See jail.conf(5) man page for more information 27 | 28 | 29 | 30 | # Comments: use '#' for comment lines and ';' (following a space) for inline comments 31 | 32 | 33 | [INCLUDES] 34 | 35 | #before = paths-distro.conf 36 | before = paths-fedora.conf 37 | 38 | # The DEFAULT allows a global definition of the options. They can be overridden 39 | # in each jail afterwards. 40 | 41 | [DEFAULT] 42 | 43 | # 44 | # MISCELLANEOUS OPTIONS 45 | # 46 | 47 | # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not 48 | # ban a host which matches an address in this list. Several addresses can be 49 | # defined using space separator. 50 | ignoreip = 127.0.0.1/8 51 | 52 | # External command that will take an tagged arguments to ignore, e.g. , 53 | # and return true if the IP is to be ignored. False otherwise. 54 | # 55 | # ignorecommand = /path/to/command 56 | ignorecommand = 57 | 58 | # "bantime" is the number of seconds that a host is banned. 59 | bantime = 21600 60 | 61 | # A host is banned if it has generated "maxretry" during the last "findtime" 62 | # seconds. 63 | findtime = 10800 64 | 65 | # "maxretry" is the number of failures before a host get banned. 66 | 67 | # "backend" specifies the backend used to get files modification. 68 | # Available options are "pyinotify", "gamin", "polling", "systemd" and "auto". 69 | # This option can be overridden in each jail as well. 70 | # 71 | # pyinotify: requires pyinotify (a file alteration monitor) to be installed. 72 | # If pyinotify is not installed, Fail2ban will use auto. 73 | # gamin: requires Gamin (a file alteration monitor) to be installed. 74 | # If Gamin is not installed, Fail2ban will use auto. 75 | # polling: uses a polling algorithm which does not require external libraries. 76 | # systemd: uses systemd python library to access the systemd journal. 77 | # Specifying "logpath" is not valid for this backend. 78 | # See "journalmatch" in the jails associated filter config 79 | # auto: will try to use the following backends, in order: 80 | # pyinotify, gamin, polling. 81 | # 82 | # Note: if systemd backend is choses as the default but you enable a jail 83 | # for which logs are present only in its own log files, specify some other 84 | # backend for that jail (e.g. polling) and provide empty value for 85 | # journalmatch. See https://github.com/fail2ban/fail2ban/issues/959#issuecomment-74901200 86 | backend = auto 87 | 88 | # "usedns" specifies if jails should trust hostnames in logs, 89 | # warn when DNS lookups are performed, or ignore all hostnames in logs 90 | # 91 | # yes: if a hostname is encountered, a DNS lookup will be performed. 92 | # warn: if a hostname is encountered, a DNS lookup will be performed, 93 | # but it will be logged as a warning. 94 | # no: if a hostname is encountered, will not be used for banning, 95 | # but it will be logged as info. 96 | #usedns = warn 97 | usedns = no 98 | 99 | # "logencoding" specifies the encoding of the log files handled by the jail 100 | # This is used to decode the lines from the log file. 101 | # Typical examples: "ascii", "utf-8" 102 | # 103 | # auto: will use the system locale setting 104 | logencoding = auto 105 | 106 | # "enabled" enables the jails. 107 | # By default all jails are disabled, and it should stay this way. 108 | # Enable only relevant to your setup jails in your .local or jail.d/*.conf 109 | # 110 | # true: jail will be enabled and log files will get monitored for changes 111 | # false: jail is not enabled 112 | enabled = false 113 | 114 | 115 | # "filter" defines the filter to use by the jail. 116 | # By default jails have names matching their filter name 117 | # 118 | filter = %(__name__)s 119 | 120 | 121 | # 122 | # ACTIONS 123 | # 124 | 125 | # Some options used for actions 126 | 127 | # Destination email address used solely for the interpolations in 128 | # jail.{conf,local,d/*} configuration files. 129 | destemail = root@localhost 130 | 131 | # Sender email address used solely for some actions 132 | sender = root@localhost 133 | 134 | # E-mail action. Since 0.8.1 Fail2Ban uses sendmail MTA for the 135 | # mailing. Change mta configuration parameter to mail if you want to 136 | # revert to conventional 'mail'. 137 | mta = sendmail 138 | 139 | # Default protocol 140 | protocol = all 141 | 142 | # Specify chain where jumps would need to be added in iptables-* actions 143 | chain = INPUT 144 | 145 | # Ports to be banned 146 | # Usually should be overridden in a particular jail 147 | port = 0:65535 148 | 149 | # 150 | # Action shortcuts. To be used to define action parameter 151 | 152 | # Default banning action (e.g. iptables, iptables-new, 153 | # iptables-multiport, shorewall, etc) It is used to define 154 | # action_* variables. Can be overridden globally or per 155 | # section within jail.local file 156 | banaction = shorewall 157 | 158 | # The simplest action to take: ban only 159 | action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] 160 | 161 | # ban & send an e-mail with whois report to the destemail. 162 | action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] 163 | %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"] 164 | 165 | # ban & send an e-mail with whois report and relevant log lines 166 | # to the destemail. 167 | action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] 168 | %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"] 169 | 170 | # See the IMPORTANT note in action.d/xarf-login-attack for when to use this action 171 | # 172 | # ban & send a xarf e-mail to abuse contact of IP address and include relevant log lines 173 | # to the destemail. 174 | action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] 175 | xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"] 176 | 177 | # ban IP on CloudFlare & send an e-mail with whois report and relevant log lines 178 | # to the destemail. 179 | action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"] 180 | %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"] 181 | 182 | # Report block via blocklist.de fail2ban reporting service API 183 | # 184 | # See the IMPORTANT note in action.d/blocklist_de.conf for when to 185 | # use this action. Create a file jail.d/blocklist_de.local containing 186 | # [Init] 187 | # blocklist_de_apikey = {api key from registration] 188 | # 189 | action_blocklist_de = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s"] 190 | 191 | # Report ban via badips.com, and use as blacklist 192 | # 193 | # See BadIPsAction docstring in config/action.d/badips.py for 194 | # documentation for this action. 195 | # 196 | # NOTE: This action relies on banaction being present on start and therefore 197 | # should be last action defined for a jail. 198 | # 199 | action_badips = badips.py[category="%(name)s", banaction="%(banaction)s"] 200 | 201 | # Choose default action. To change, just override value of 'action' with the 202 | # interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local 203 | # globally (section [DEFAULT]) or per specific section 204 | action = %(action_)s 205 | 206 | 207 | # 208 | # JAILS 209 | # 210 | 211 | # 212 | # SSH servers 213 | # 214 | 215 | [sshd] 216 | 217 | port = ssh 218 | logpath = /var/log/secure 219 | enabled = true 220 | filter = sshd 221 | action = %(banaction)s[name=sshd, protocol=tcp] 222 | maxretry = 2 223 | bantime = -1 224 | 225 | 226 | [sshd-ddos] 227 | # This jail corresponds to the standard configuration in Fail2ban. 228 | # The mail-whois action send a notification e-mail with a whois request 229 | # in the body. 230 | port = ssh 231 | logpath = /var/log/secure 232 | enabled = true 233 | filter = sshd-ddos 234 | action = %(banaction)s[name=sshd-ddos, protocol=tcp] 235 | bantime = -1 236 | maxretry = 2 237 | 238 | 239 | [dropbear] 240 | 241 | port = ssh 242 | logpath = %(dropbear_log)s 243 | 244 | 245 | [selinux-ssh] 246 | 247 | port = ssh 248 | logpath = /var/log/secure 249 | maxretry = 3 250 | enabled = true 251 | filter = selinux-ssh 252 | action = %(banaction)s[name=selinux-ssh, protocol=tcp] 253 | bantime = -1 254 | 255 | 256 | # 257 | # HTTP servers 258 | # 259 | 260 | [apache-auth] 261 | 262 | port = http,https 263 | logpath = /etc/httpd/logs/error_log 264 | /var/log/httpd/access_log 265 | enabled = true 266 | filter = apache-auth 267 | action = %(banaction)s[name=apache-auth, port="80,443", protocol=tcp] 268 | bantime = -1 269 | 270 | 271 | [apache-badbots] 272 | # Ban hosts which agent identifies spammer robots crawling the web 273 | # for email addresses. The mail outputs are buffered. 274 | port = http,https 275 | logpath = /etc/httpd/logs/error_log 276 | /var/log/httpd/access_log 277 | bantime = 172800 278 | maxretry = 1 279 | enabled = true 280 | filter = apache-badbots 281 | action = %(banaction)s[name=apache-badbots, port="80,443", protocol=tcp] 282 | 283 | 284 | [apache-noscript] 285 | 286 | port = http,https 287 | logpath = /etc/httpd/logs/error_log 288 | /var/log/httpd/access_log 289 | enabled = true 290 | filter = apache-noscript 291 | bantime = -1 292 | action = %(banaction)s[name=apache-noscript, port="80,443", protocol=tcp] 293 | 294 | 295 | [apache-overflows] 296 | 297 | port = http,https 298 | logpath = /etc/httpd/logs/error_log 299 | /var/log/httpd/access_log 300 | maxretry = 1 301 | enabled = true 302 | filter = apache-overflows 303 | action = %(banaction)s[name=apache-overflows, port="80,443", protocol=tcp] 304 | bantime = -1 305 | 306 | 307 | [apache-nohome] 308 | 309 | port = http,https 310 | logpath = %(apache_error_log)s 311 | maxretry = 2 312 | enabled = true 313 | filter = apache-nohome 314 | action = %(banaction)s[name=apache-nohome, port="80,443", protocol=tcp] 315 | 316 | 317 | [apache-botsearch] 318 | 319 | port = http,https 320 | logpath = /etc/httpd/logs/error_log 321 | /var/log/httpd/access_log 322 | maxretry = 2 323 | enabled = true 324 | filter = apache-botsearch 325 | bantime = -1 326 | action = %(banaction)s[name=apache-botsearch, port="80,443", protocol=tcp] 327 | 328 | 329 | [apache-fakegooglebot] 330 | 331 | port = http,https 332 | logpath = /etc/httpd/logs/error_log 333 | /var/log/httpd/access_log 334 | maxretry = 1 335 | ignorecommand = %(ignorecommands_dir)s/apache-fakegooglebot 336 | enabled = true 337 | filter = apache-fakegooglebot 338 | action = %(banaction)s[name=apache-fakegooglebot, port="80,443", protocol=tcp] 339 | bantime = -1 340 | 341 | 342 | [apache-modsecurity] 343 | 344 | port = http,https 345 | logpath = %(apache_error_log)s 346 | maxretry = 2 347 | enabled = true 348 | filter = apache-modsecurity 349 | action = %(banaction)s[name=apache-modsecurity, port="80,443", protocol=tcp] 350 | 351 | [apache-shellshock] 352 | 353 | port = http,https 354 | logpath = /etc/httpd/logs/error_log 355 | /var/log/httpd/access_log 356 | maxretry = 1 357 | enabled = true 358 | filter = apache-shellshock 359 | action = %(banaction)s[name=apache-shellshock, port="80,443", protocol=tcp] 360 | bantime = -1 361 | 362 | [nginx-http-auth] 363 | 364 | port = http,https 365 | logpath = /var/log/nginx/access*.log 366 | enabled = false 367 | filter = nginx-http-auth 368 | action = %(banaction)s[] 369 | 370 | [nginx-botsearch] 371 | 372 | port = http,https 373 | logpath = /var/log/nginx/access*.log 374 | maxretry = 2 375 | enabled = false 376 | filter = nginx-botsearch 377 | action = %(banaction)s[] 378 | 379 | # Ban attackers that try to use PHP's URL-fopen() functionality 380 | # through GET/POST variables. - Experimental, with more than a year 381 | # of usage in production environments. 382 | 383 | [php-url-fopen] 384 | 385 | port = http,https 386 | logpath = /etc/httpd/logs/error_log 387 | /var/log/httpd/access_log 388 | enabled = false 389 | filter = php-url-fopen 390 | 391 | 392 | [suhosin] 393 | 394 | port = http,https 395 | logpath = %(suhosin_log)s 396 | 397 | 398 | [lighttpd-auth] 399 | # Same as above for Apache's mod_auth 400 | # It catches wrong authentifications 401 | port = http,https 402 | logpath = %(lighttpd_error_log)s 403 | 404 | 405 | # 406 | # Webmail and groupware servers 407 | # 408 | 409 | [roundcube-auth] 410 | 411 | port = http,https 412 | logpath = /etc/httpd/logs/error_log 413 | enabled = false 414 | filter = roundcube-auth 415 | action = %(banaction)s[] 416 | 417 | 418 | [openwebmail] 419 | 420 | port = http,https 421 | logpath = /var/log/openwebmail.log 422 | 423 | 424 | [horde] 425 | 426 | port = http,https 427 | logpath = /var/log/horde/horde.log 428 | 429 | 430 | [groupoffice] 431 | 432 | port = http,https 433 | logpath = /home/groupoffice/log/info.log 434 | 435 | 436 | [sogo-auth] 437 | # Monitor SOGo groupware server 438 | # without proxy this would be: 439 | # port = 20000 440 | port = http,https 441 | logpath = /var/log/sogo/sogo.log 442 | 443 | 444 | [tine20] 445 | 446 | logpath = /var/log/tine20/tine20.log 447 | port = http,https 448 | maxretry = 5 449 | 450 | 451 | # 452 | # Web Applications 453 | # 454 | # 455 | 456 | [drupal-auth] 457 | 458 | port = http,https 459 | logpath = %(syslog_daemon)s 460 | 461 | [guacamole] 462 | 463 | port = http,https 464 | logpath = /var/log/tomcat*/catalina.out 465 | 466 | [monit] 467 | #Ban clients brute-forcing the monit gui login 468 | filter = monit 469 | port = 2812 470 | logpath = /var/log/monit 471 | 472 | 473 | [webmin-auth] 474 | 475 | port = 10000 476 | logpath = /etc/httpd/logs/error_log 477 | /var/log/httpd/access_log 478 | enabled = true 479 | filter = webmin-auth 480 | action = %(banaction)s[name=webmin-auth-tcp, port=9000:9010, protocol=tcp] 481 | 482 | 483 | [froxlor-auth] 484 | 485 | port = http,https 486 | logpath = %(syslog_authpriv)s 487 | 488 | 489 | # 490 | # HTTP Proxy servers 491 | # 492 | # 493 | 494 | [squid] 495 | 496 | port = 80,443,3128,8080 497 | logpath = /var/log/squid/access.log 498 | 499 | 500 | [3proxy] 501 | 502 | port = 3128 503 | logpath = /var/log/3proxy.log 504 | 505 | 506 | # 507 | # FTP servers 508 | # 509 | 510 | 511 | [proftpd] 512 | 513 | port = ftp,ftp-data,ftps,ftps-data 514 | logpath = /var/log/secure 515 | enabled = true 516 | filter = proftpd 517 | action = %(banaction)s[name=proftpd, port=ftp, protocol=tcp] 518 | bantime = -1 519 | 520 | 521 | [pure-ftpd] 522 | 523 | port = ftp,ftp-data,ftps,ftps-data 524 | logpath = %(pureftpd_log)s 525 | maxretry = 6 526 | 527 | 528 | [gssftpd] 529 | 530 | port = ftp,ftp-data,ftps,ftps-data 531 | logpath = %(syslog_daemon)s 532 | maxretry = 6 533 | 534 | 535 | [wuftpd] 536 | 537 | port = ftp,ftp-data,ftps,ftps-data 538 | logpath = %(wuftpd_log)s 539 | maxretry = 6 540 | 541 | 542 | [vsftpd] 543 | # or overwrite it in jails.local to be 544 | # logpath = %(syslog_authpriv)s 545 | # if you want to rely on PAM failed login attempts 546 | # vsftpd's failregex should match both of those formats 547 | port = ftp,ftp-data,ftps,ftps-data 548 | logpath = %(vsftpd_log)s 549 | 550 | 551 | # 552 | # Mail servers 553 | # 554 | 555 | # ASSP SMTP Proxy Jail 556 | [assp] 557 | port = smtp,465,submission 558 | logpath = /root/path/to/assp/logs/maillog.txt 559 | 560 | 561 | [courier-smtp] 562 | port = smtp,465,submission 563 | logpath = %(syslog_mail)s 564 | 565 | 566 | [postfix] 567 | port = smtp,465,submission 568 | logpath = /var/log/maillog 569 | enabled = true 570 | filter = postfix 571 | action = %(banaction)s[name=postfix, protocol=tcp] 572 | maxretry = 2 573 | bantime = -1 574 | 575 | 576 | [sendmail-auth] 577 | port = submission,465,smtp 578 | logpath = /var/log/maillog 579 | enabled = true 580 | filter = sendmail-auth 581 | action = %(banaction)s[name=sendmail-auth, protocol=tcp] 582 | 583 | 584 | [sendmail-reject] 585 | port = smtp,465,submission 586 | logpath = /var/log/maillog 587 | enabled = true 588 | filter = sendmail-reject 589 | action = %(banaction)s[name=sendmail-reject, protocol=tcp] 590 | 591 | 592 | [qmail-rbl] 593 | filter = qmail 594 | port = smtp,465,submission 595 | logpath = /service/qmail/log/main/current 596 | 597 | 598 | # dovecot defaults to logging to the mail syslog facility 599 | # but can be set by syslog_facility in the dovecot configuration. 600 | [dovecot] 601 | port = pop3,pop3s,imap,imaps,submission,465,sieve 602 | logpath = /var/log/maillog 603 | enabled = true 604 | filter = dovecot 605 | action = %(banaction)s[name=dovecot, port=imap, protocol=tcp] 606 | maxretry = 2 607 | bantime = -1 608 | 609 | 610 | [sieve] 611 | port = smtp,465,submission 612 | logpath = %(dovecot_log)s 613 | 614 | 615 | [solid-pop3d] 616 | port = pop3,pop3s 617 | logpath = %(solidpop3d_log)s 618 | 619 | 620 | [exim] 621 | port = smtp,465,submission 622 | logpath = %(exim_main_log)s 623 | 624 | 625 | [exim-spam] 626 | port = smtp,465,submission 627 | logpath = %(exim_main_log)s 628 | 629 | 630 | [kerio] 631 | port = imap,smtp,imaps,465 632 | logpath = /opt/kerio/mailserver/store/logs/security.log 633 | 634 | 635 | # 636 | # Mail servers authenticators: might be used for smtp,ftp,imap servers, so 637 | # all relevant ports get banned 638 | # 639 | 640 | [courier-auth] 641 | 642 | port = smtp,465,submission,imap3,imaps,pop3,pop3s 643 | logpath = %(syslog_mail)s 644 | 645 | 646 | [squirrelmail] 647 | port = smtp,465,submission,imap2,imap3,imaps,pop3,pop3s,http,https,socks 648 | logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log 649 | 650 | 651 | [cyrus-imap] 652 | port = imap3,imaps 653 | logpath = %(syslog_mail)s 654 | 655 | 656 | [uwimap-auth] 657 | port = imap3,imaps 658 | logpath = %(syslog_mail)s 659 | 660 | 661 | # 662 | # 663 | # DNS servers 664 | # 665 | 666 | 667 | # !!! WARNING !!! 668 | # Since UDP is connection-less protocol, spoofing of IP and imitation 669 | # of illegal actions is way too simple. Thus enabling of this filter 670 | # might provide an easy way for implementing a DoS against a chosen 671 | # victim. See 672 | # http://nion.modprobe.de/blog/archives/690-fail2ban-+-dns-fail.html 673 | # Please DO NOT USE this jail unless you know what you are doing. 674 | # 675 | # IMPORTANT: see filter.d/named-refused for instructions to enable logging 676 | # This jail blocks UDP traffic for DNS requests. 677 | # [named-refused-udp] 678 | # 679 | # filter = named-refused 680 | # port = domain,953 681 | # protocol = udp 682 | # logpath = /var/log/named/security.log 683 | 684 | # IMPORTANT: see filter.d/named-refused for instructions to enable logging 685 | # This jail blocks TCP traffic for DNS requests. 686 | 687 | [named-refused] 688 | 689 | port = domain,953 690 | logpath = /var/log/named/security.log 691 | enabled = false 692 | filter = named-refused 693 | action = hostsdeny[] 694 | 695 | 696 | [nsd] 697 | 698 | port = 53 699 | action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp] 700 | %(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp] 701 | logpath = /var/log/nsd.log 702 | 703 | 704 | # 705 | # Miscellaneous 706 | # 707 | 708 | [asterisk] 709 | port = 5060,5061 710 | %(banaction)s[name=asterisk-tcp, port=5060, protocol=tcp, chain=%(chain)s, actname=%(banaction)s-tcp] 711 | %(banaction)s[name=asterisk-udp, port=5061, protocol=udp, chain=%(chain)s, actname=%(banaction)s-udp] 712 | %(mta)s-whois[name=asterisk, dest=%(destemail)s] 713 | logpath = /var/log/asterisk/full 714 | enabled = true 715 | filter = asterisk 716 | findtime = 86400 717 | bantime = -1 718 | maxretry = 3 719 | action = %(banaction)s[name=asterisk-tcp, port=5060, protocol=tcp, chain=%(chain)s, actname=%(banaction)s-tcp] 720 | %(banaction)s[name=asterisk-udp, port=5061, protocol=udp, chain=%(chain)s, actname=%(banaction)s-udp] 721 | %(mta)s-whois[name=asterisk, dest=%(destemail)s] 722 | 723 | [freeswitch] 724 | port = 5060,5061 725 | action = %(banaction)s[protocol=tcp, chain=%(chain)s, actname=%(banaction)s-tcp] 726 | iptables-multiport[protocol=udp, chain=%(chain)s, actname=%(banaction)s-udp] 727 | hostsdeny[dest=%(destemail)s] 728 | logpath = /var/log/freeswitch/freeswitch.log 729 | maxretry = 10 730 | enabled = false 731 | filter = freeswitch 732 | 733 | 734 | # To log wrong MySQL access attempts add to /etc/my.cnf in [mysqld] or 735 | # equivalent section: 736 | # log-warning = 2 737 | # 738 | # for syslog (daemon facility) 739 | # [mysqld_safe] 740 | # syslog 741 | # 742 | # for own logfile 743 | # [mysqld] 744 | # log-error=/var/log/mysqld.log 745 | [mysqld-auth] 746 | 747 | port = 3306 748 | logpath = /var/log/secure 749 | maxretry = 5 750 | enabled = true 751 | filter = mysqld-auth 752 | action = %(banaction)s[name=mysqld-auth, port=3306, protocol=tcp] 753 | 754 | 755 | # Jail for more extended banning of persistent abusers 756 | # !!! WARNINGS !!! 757 | # 1. Make sure that your loglevel specified in fail2ban.conf/.local 758 | # is not at DEBUG level -- which might then cause fail2ban to fall into 759 | # an infinite loop constantly feeding itself with non-informative lines 760 | # 2. Increase dbpurgeage defined in fail2ban.conf to e.g. 648000 (7.5 days) 761 | # to maintain entries for failed logins for sufficient amount of time 762 | [recidive] 763 | logpath = /var/log/fail2ban.log 764 | banaction = shorewall 765 | bantime = -1 766 | findtime = 86400 767 | enabled = true 768 | filter = recidive 769 | action = %(banaction)s[name=recidive] 770 | hostsdeny[] 771 | maxretry = 2 772 | 773 | 774 | # Generic filter for PAM. Has to be used with action which bans all 775 | # ports such as shorewall, shorewall 776 | 777 | [pam-generic] 778 | # pam-generic filter can be customized to monitor specific subset of 'tty's 779 | banaction = shorewall 780 | logpath = /var/log/secure 781 | enabled = true 782 | filter = pam-generic 783 | action = %(banaction)s[name=pam-generic, protocol=tcp] 784 | maxretry = 2 785 | bantime = -1 786 | 787 | 788 | [xinetd-fail] 789 | 790 | banaction = iptables-multiport-log 791 | logpath = %(syslog_daemon)s 792 | maxretry = 2 793 | 794 | 795 | # stunnel - need to set port for this 796 | [stunnel] 797 | 798 | logpath = /var/log/stunnel4/stunnel.log 799 | 800 | 801 | [ejabberd-auth] 802 | 803 | port = 5222 804 | logpath = /var/log/ejabberd/ejabberd.log 805 | 806 | 807 | [counter-strike] 808 | 809 | logpath = /opt/cstrike/logs/L[0-9]*.log 810 | # Firewall: http://www.cstrike-planet.com/faq/6 811 | tcpport = 27030,27031,27032,27033,27034,27035,27036,27037,27038,27039 812 | udpport = 1200,27000,27001,27002,27003,27004,27005,27006,27007,27008,27009,27010,27011,27012,27013,27014,27015 813 | action = %(banaction)s[name=%(__name__)s-tcp, port="%(tcpport)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp] 814 | %(banaction)s[name=%(__name__)s-udp, port="%(udpport)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp] 815 | 816 | # consider low maxretry and a long bantime 817 | # nobody except your own Nagios server should ever probe nrpe 818 | [nagios] 819 | 820 | enabled = false 821 | logpath = %(syslog_daemon)s ; nrpe.cfg may define a different log_facility 822 | maxretry = 1 823 | 824 | 825 | [oracleims] 826 | # see "oracleims" filter file for configuration requirement for Oracle IMS v6 and above 827 | enabled = false 828 | logpath = /opt/sun/comms/messaging64/log/mail.log_current 829 | maxretry = 6 830 | banaction = shorewall 831 | 832 | [directadmin] 833 | enabled = false 834 | logpath = /var/log/directadmin/login.log 835 | port = 2222 836 | 837 | [portsentry] 838 | enabled = false 839 | logpath = /var/lib/portsentry/portsentry.history 840 | maxretry = 1 841 | 842 | [pass2allow-ftp] 843 | # this pass2allow example allows FTP traffic after successful HTTP authentication 844 | port = ftp,ftp-data,ftps,ftps-data 845 | # knocking_url variable must be overridden to some secret value in filter.d/apache-pass.local 846 | filter = apache-pass 847 | # access log of the website with HTTP auth 848 | logpath = /etc/httpd/logs/error_log 849 | /var/log/httpd/access_log 850 | blocktype = RETURN 851 | returntype = DROP 852 | bantime = 3600 853 | maxretry = 1 854 | findtime = 1 855 | enabled = false 856 | 857 | [apache-pass] 858 | enabled = false 859 | filter = apache-pass 860 | action = %(banaction)s[name=apache-pass, port="80,443", protocol=tcp] 861 | logpath = /etc/httpd/logs/error_log 862 | /var/log/httpd/access_log 863 | 864 | 865 | 866 | # sendmail-whois[name=FreeSwitch, dest=root, sender=fail2ban@example.org] #no smtp server installed 867 | 868 | #bantime = 86400 869 | 870 | #[freeswitch-ip-udp] 871 | #enabled = true 872 | #port = 5060,5061,5080,5081 873 | #protocol = all 874 | #filter = freeswitch-ip 875 | #logpath = /var/log/freeswitch/freeswitch.log 876 | #action = iptables-multiport[name=freeswitch-ip-udp, port="5060,5061,5080,5081", protocol=udp] 877 | #maxretry = 1 878 | #findtime = 30 879 | #bantime = 86400 880 | 881 | 882 | #[fusionpbx] 883 | #enabled = true 884 | #port = 80,443 885 | #protocol = tcp 886 | #filter = fusionpbx 887 | #logpath = /var/log/auth.log 888 | #action = iptables-multiport[name=fusionpbx, port="http,https", protocol=tcp] 889 | # sendmail-whois[name=fusionpbx, dest=root, sender=fail2ban@example.org] #no smtp server installed 890 | #maxretry = 10 891 | 892 | [ast-cli-attck] 893 | enabled = true 894 | filter = asterisk_cli 895 | action = %(banaction)s[name=AST_CLI_Attack, port=5060, protocol=tcp] 896 | logpath = /var/log/asterisk/full 897 | maxretry = 1 898 | bantime = -1 899 | 900 | [asterisk-manager] 901 | enabled = true 902 | filter = asterisk_manager 903 | action = %(banaction)s[name=AST_MANAGER, port=5038, protocol=tcp] 904 | logpath = /var/log/asterisk/full 905 | maxretry = 1 906 | bantime = -1 907 | 908 | [mor_ddos] 909 | enabled = true 910 | filter = mor_ddos 911 | action = %(banaction)s[name=mor_ddos, port=5060, protocol=tcp] 912 | logpath = /var/log/httpd/error_log 913 | bantime = 3600 914 | -------------------------------------------------------------------------------- /etc/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | 3 | ;;;;;;;;;;;;;;;;;;; 4 | ; About php.ini ; 5 | ;;;;;;;;;;;;;;;;;;; 6 | ; PHP's initialization file, generally called php.ini, is responsible for 7 | ; configuring many of the aspects of PHP's behavior. 8 | 9 | ; PHP attempts to find and load this configuration from a number of locations. 10 | ; The following is a summary of its search order: 11 | ; 1. SAPI module specific location. 12 | ; 2. The PHPRC environment variable. (As of PHP 5.2.0) 13 | ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) 14 | ; 4. Current working directory (except CLI) 15 | ; 5. The web server's directory (for SAPI modules), or directory of PHP 16 | ; (otherwise in Windows) 17 | ; 6. The directory from the --with-config-file-path compile time option, or the 18 | ; Windows directory (C:\windows or C:\winnt) 19 | ; See the PHP docs for more specific information. 20 | ; http://php.net/configuration.file 21 | 22 | ; The syntax of the file is extremely simple. Whitespace and lines 23 | ; beginning with a semicolon are silently ignored (as you probably guessed). 24 | ; Section headers (e.g. [Foo]) are also silently ignored, even though 25 | ; they might mean something in the future. 26 | 27 | ; Directives following the section heading [PATH=/www/mysite] only 28 | ; apply to PHP files in the /www/mysite directory. Directives 29 | ; following the section heading [HOST=www.example.com] only apply to 30 | ; PHP files served from www.example.com. Directives set in these 31 | ; special sections cannot be overridden by user-defined INI files or 32 | ; at runtime. Currently, [PATH=] and [HOST=] sections only work under 33 | ; CGI/FastCGI. 34 | ; http://php.net/ini.sections 35 | 36 | ; Directives are specified using the following syntax: 37 | ; directive = value 38 | ; Directive names are *case sensitive* - foo=bar is different from FOO=bar. 39 | ; Directives are variables used to configure PHP or PHP extensions. 40 | ; There is no name validation. If PHP can't find an expected 41 | ; directive because it is not set or is mistyped, a default value will be used. 42 | 43 | ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one 44 | ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression 45 | ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a 46 | ; previously set variable or directive (e.g. ${foo}) 47 | 48 | ; Expressions in the INI file are limited to bitwise operators and parentheses: 49 | ; | bitwise OR 50 | ; ^ bitwise XOR 51 | ; & bitwise AND 52 | ; ~ bitwise NOT 53 | ; ! boolean NOT 54 | 55 | ; Boolean flags can be turned on using the values 1, On, True or Yes. 56 | ; They can be turned off using the values 0, Off, False or No. 57 | 58 | ; An empty string can be denoted by simply not writing anything after the equal 59 | ; sign, or by using the None keyword: 60 | 61 | ; foo = ; sets foo to an empty string 62 | ; foo = None ; sets foo to an empty string 63 | ; foo = "None" ; sets foo to the string 'None' 64 | 65 | ; If you use constants in your value, and these constants belong to a 66 | ; dynamically loaded extension (either a PHP extension or a Zend extension), 67 | ; you may only use these constants *after* the line that loads the extension. 68 | 69 | ;;;;;;;;;;;;;;;;;;; 70 | ; About this file ; 71 | ;;;;;;;;;;;;;;;;;;; 72 | ; PHP comes packaged with two INI files. One that is recommended to be used 73 | ; in production environments and one that is recommended to be used in 74 | ; development environments. 75 | 76 | ; php.ini-production contains settings which hold security, performance and 77 | ; best practices at its core. But please be aware, these settings may break 78 | ; compatibility with older or less security conscience applications. We 79 | ; recommending using the production ini in production and testing environments. 80 | 81 | ; php.ini-development is very similar to its production variant, except it is 82 | ; much more verbose when it comes to errors. We recommend using the 83 | ; development version only in development environments, as errors shown to 84 | ; application users can inadvertently leak otherwise secure information. 85 | 86 | ; This is php.ini-production INI file. 87 | 88 | ;;;;;;;;;;;;;;;;;;; 89 | ; Quick Reference ; 90 | ;;;;;;;;;;;;;;;;;;; 91 | ; The following are all the settings which are different in either the production 92 | ; or development versions of the INIs with respect to PHP's default behavior. 93 | ; Please see the actual settings later in the document for more details as to why 94 | ; we recommend these changes in PHP's behavior. 95 | 96 | ; display_errors 97 | ; Default Value: On 98 | ; Development Value: On 99 | ; Production Value: Off 100 | 101 | ; display_startup_errors 102 | ; Default Value: Off 103 | ; Development Value: On 104 | ; Production Value: Off 105 | 106 | ; error_reporting 107 | ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 108 | ; Development Value: E_ALL 109 | ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT 110 | 111 | ; html_errors 112 | ; Default Value: On 113 | ; Development Value: On 114 | ; Production value: On 115 | 116 | ; log_errors 117 | ; Default Value: Off 118 | ; Development Value: On 119 | ; Production Value: On 120 | 121 | ; max_input_time 122 | ; Default Value: -1 (Unlimited) 123 | ; Development Value: 60 (60 seconds) 124 | ; Production Value: 60 (60 seconds) 125 | 126 | ; output_buffering 127 | ; Default Value: Off 128 | ; Development Value: 4096 129 | ; Production Value: 4096 130 | 131 | ; register_argc_argv 132 | ; Default Value: On 133 | ; Development Value: Off 134 | ; Production Value: Off 135 | 136 | ; request_order 137 | ; Default Value: None 138 | ; Development Value: "GP" 139 | ; Production Value: "GP" 140 | 141 | ; session.gc_divisor 142 | ; Default Value: 100 143 | ; Development Value: 1000 144 | ; Production Value: 1000 145 | 146 | ; session.hash_bits_per_character 147 | ; Default Value: 4 148 | ; Development Value: 5 149 | ; Production Value: 5 150 | 151 | ; short_open_tag 152 | ; Default Value: On 153 | ; Development Value: Off 154 | ; Production Value: Off 155 | 156 | ; track_errors 157 | ; Default Value: Off 158 | ; Development Value: On 159 | ; Production Value: Off 160 | 161 | ; url_rewriter.tags 162 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" 163 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 164 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 165 | 166 | ; variables_order 167 | ; Default Value: "EGPCS" 168 | ; Development Value: "GPCS" 169 | ; Production Value: "GPCS" 170 | 171 | ;;;;;;;;;;;;;;;;;;;; 172 | ; php.ini Options ; 173 | ;;;;;;;;;;;;;;;;;;;; 174 | ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" 175 | ;user_ini.filename = ".user.ini" 176 | 177 | ; To disable this feature set this option to empty value 178 | ;user_ini.filename = 179 | 180 | ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) 181 | ;user_ini.cache_ttl = 300 182 | 183 | ;;;;;;;;;;;;;;;;;;;; 184 | ; Language Options ; 185 | ;;;;;;;;;;;;;;;;;;;; 186 | 187 | ; Enable the PHP scripting language engine under Apache. 188 | ; http://php.net/engine 189 | engine = On 190 | 191 | ; This directive determines whether or not PHP will recognize code between 192 | ; tags as PHP source which should be processed as such. It is 193 | ; generally recommended that should be used and that this feature 194 | ; should be disabled, as enabling it may result in issues when generating XML 195 | ; documents, however this remains supported for backward compatibility reasons. 196 | ; Note that this directive does not control the tags. 205 | ; http://php.net/asp-tags 206 | asp_tags = Off 207 | 208 | ; The number of significant digits displayed in floating point numbers. 209 | ; http://php.net/precision 210 | precision = 14 211 | 212 | ; Output buffering is a mechanism for controlling how much output data 213 | ; (excluding headers and cookies) PHP should keep internally before pushing that 214 | ; data to the client. If your application's output exceeds this setting, PHP 215 | ; will send that data in chunks of roughly the size you specify. 216 | ; Turning on this setting and managing its maximum buffer size can yield some 217 | ; interesting side-effects depending on your application and web server. 218 | ; You may be able to send headers and cookies after you've already sent output 219 | ; through print or echo. You also may see performance benefits if your server is 220 | ; emitting less packets due to buffered output versus PHP streaming the output 221 | ; as it gets it. On production servers, 4096 bytes is a good setting for performance 222 | ; reasons. 223 | ; Note: Output buffering can also be controlled via Output Buffering Control 224 | ; functions. 225 | ; Possible Values: 226 | ; On = Enabled and buffer is unlimited. (Use with caution) 227 | ; Off = Disabled 228 | ; Integer = Enables the buffer and sets its maximum size in bytes. 229 | ; Note: This directive is hardcoded to Off for the CLI SAPI 230 | ; Default Value: Off 231 | ; Development Value: 4096 232 | ; Production Value: 4096 233 | ; http://php.net/output-buffering 234 | output_buffering = 4096 235 | 236 | ; You can redirect all of the output of your scripts to a function. For 237 | ; example, if you set output_handler to "mb_output_handler", character 238 | ; encoding will be transparently converted to the specified encoding. 239 | ; Setting any output handler automatically turns on output buffering. 240 | ; Note: People who wrote portable scripts should not depend on this ini 241 | ; directive. Instead, explicitly set the output handler using ob_start(). 242 | ; Using this ini directive may cause problems unless you know what script 243 | ; is doing. 244 | ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" 245 | ; and you cannot use both "ob_gzhandler" and "zlib.output_compression". 246 | ; Note: output_handler must be empty if this is set 'On' !!!! 247 | ; Instead you must use zlib.output_handler. 248 | ; http://php.net/output-handler 249 | ;output_handler = 250 | 251 | ; Transparent output compression using the zlib library 252 | ; Valid values for this option are 'off', 'on', or a specific buffer size 253 | ; to be used for compression (default is 4KB) 254 | ; Note: Resulting chunk size may vary due to nature of compression. PHP 255 | ; outputs chunks that are few hundreds bytes each as a result of 256 | ; compression. If you prefer a larger chunk size for better 257 | ; performance, enable output_buffering in addition. 258 | ; Note: You need to use zlib.output_handler instead of the standard 259 | ; output_handler, or otherwise the output will be corrupted. 260 | ; http://php.net/zlib.output-compression 261 | zlib.output_compression = Off 262 | 263 | ; http://php.net/zlib.output-compression-level 264 | ;zlib.output_compression_level = -1 265 | 266 | ; You cannot specify additional output handlers if zlib.output_compression 267 | ; is activated here. This setting does the same as output_handler but in 268 | ; a different order. 269 | ; http://php.net/zlib.output-handler 270 | ;zlib.output_handler = 271 | 272 | ; Implicit flush tells PHP to tell the output layer to flush itself 273 | ; automatically after every output block. This is equivalent to calling the 274 | ; PHP function flush() after each and every call to print() or echo() and each 275 | ; and every HTML block. Turning this option on has serious performance 276 | ; implications and is generally recommended for debugging purposes only. 277 | ; http://php.net/implicit-flush 278 | ; Note: This directive is hardcoded to On for the CLI SAPI 279 | implicit_flush = Off 280 | 281 | ; The unserialize callback function will be called (with the undefined class' 282 | ; name as parameter), if the unserializer finds an undefined class 283 | ; which should be instantiated. A warning appears if the specified function is 284 | ; not defined, or if the function doesn't include/implement the missing class. 285 | ; So only set this entry, if you really want to implement such a 286 | ; callback-function. 287 | unserialize_callback_func = 288 | 289 | ; When floats & doubles are serialized store serialize_precision significant 290 | ; digits after the floating point. The default value ensures that when floats 291 | ; are decoded with unserialize, the data will remain the same. 292 | serialize_precision = 17 293 | 294 | ; open_basedir, if set, limits all file operations to the defined directory 295 | ; and below. This directive makes most sense if used in a per-directory 296 | ; or per-virtualhost web server configuration file. This directive is 297 | ; *NOT* affected by whether Safe Mode is turned On or Off. 298 | ; http://php.net/open-basedir 299 | ;open_basedir = 300 | 301 | ; This directive allows you to disable certain functions for security reasons. 302 | ; It receives a comma-delimited list of function names. This directive is 303 | ; *NOT* affected by whether Safe Mode is turned On or Off. 304 | ; http://php.net/disable-functions 305 | disable_functions = 306 | 307 | ; This directive allows you to disable certain classes for security reasons. 308 | ; It receives a comma-delimited list of class names. This directive is 309 | ; *NOT* affected by whether Safe Mode is turned On or Off. 310 | ; http://php.net/disable-classes 311 | disable_classes = 312 | 313 | ; Colors for Syntax Highlighting mode. Anything that's acceptable in 314 | ; would work. 315 | ; http://php.net/syntax-highlighting 316 | ;highlight.string = #DD0000 317 | ;highlight.comment = #FF9900 318 | ;highlight.keyword = #007700 319 | ;highlight.default = #0000BB 320 | ;highlight.html = #000000 321 | 322 | ; If enabled, the request will be allowed to complete even if the user aborts 323 | ; the request. Consider enabling it if executing long requests, which may end up 324 | ; being interrupted by the user or a browser timing out. PHP's default behavior 325 | ; is to disable this feature. 326 | ; http://php.net/ignore-user-abort 327 | ;ignore_user_abort = On 328 | 329 | ; Determines the size of the realpath cache to be used by PHP. This value should 330 | ; be increased on systems where PHP opens many files to reflect the quantity of 331 | ; the file operations performed. 332 | ; http://php.net/realpath-cache-size 333 | ;realpath_cache_size = 16k 334 | 335 | ; Duration of time, in seconds for which to cache realpath information for a given 336 | ; file or directory. For systems with rarely changing files, consider increasing this 337 | ; value. 338 | ; http://php.net/realpath-cache-ttl 339 | ;realpath_cache_ttl = 120 340 | 341 | ; Enables or disables the circular reference collector. 342 | ; http://php.net/zend.enable-gc 343 | zend.enable_gc = On 344 | 345 | ; If enabled, scripts may be written in encodings that are incompatible with 346 | ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such 347 | ; encodings. To use this feature, mbstring extension must be enabled. 348 | ; Default: Off 349 | ;zend.multibyte = Off 350 | 351 | ; Allows to set the default encoding for the scripts. This value will be used 352 | ; unless "declare(encoding=...)" directive appears at the top of the script. 353 | ; Only affects if zend.multibyte is set. 354 | ; Default: "" 355 | ;zend.script_encoding = 356 | 357 | ;;;;;;;;;;;;;;;;; 358 | ; Miscellaneous ; 359 | ;;;;;;;;;;;;;;;;; 360 | 361 | ; Decides whether PHP may expose the fact that it is installed on the server 362 | ; (e.g. by adding its signature to the Web server header). It is no security 363 | ; threat in any way, but it makes it possible to determine whether you use PHP 364 | ; on your server or not. 365 | ; http://php.net/expose-php 366 | expose_php = On 367 | 368 | ;;;;;;;;;;;;;;;;;;; 369 | ; Resource Limits ; 370 | ;;;;;;;;;;;;;;;;;;; 371 | 372 | ; Maximum execution time of each script, in seconds 373 | ; http://php.net/max-execution-time 374 | ; Note: This directive is hardcoded to 0 for the CLI SAPI 375 | max_execution_time = 30 376 | 377 | ; Maximum amount of time each script may spend parsing request data. It's a good 378 | ; idea to limit this time on productions servers in order to eliminate unexpectedly 379 | ; long running scripts. 380 | ; Note: This directive is hardcoded to -1 for the CLI SAPI 381 | ; Default Value: -1 (Unlimited) 382 | ; Development Value: 60 (60 seconds) 383 | ; Production Value: 60 (60 seconds) 384 | ; http://php.net/max-input-time 385 | max_input_time = 60 386 | 387 | ; Maximum input variable nesting level 388 | ; http://php.net/max-input-nesting-level 389 | ;max_input_nesting_level = 64 390 | 391 | ; How many GET/POST/COOKIE input variables may be accepted 392 | ; max_input_vars = 1000 393 | 394 | ; Maximum amount of memory a script may consume (128MB) 395 | ; http://php.net/memory-limit 396 | memory_limit = 256M 397 | 398 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 399 | ; Error handling and logging ; 400 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 401 | 402 | ; This directive informs PHP of which errors, warnings and notices you would like 403 | ; it to take action for. The recommended way of setting values for this 404 | ; directive is through the use of the error level constants and bitwise 405 | ; operators. The error level constants are below here for convenience as well as 406 | ; some common settings and their meanings. 407 | ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT 408 | ; those related to E_NOTICE and E_STRICT, which together cover best practices and 409 | ; recommended coding standards in PHP. For performance reasons, this is the 410 | ; recommend error reporting setting. Your production server shouldn't be wasting 411 | ; resources complaining about best practices and coding standards. That's what 412 | ; development servers and development settings are for. 413 | ; Note: The php.ini-development file has this setting as E_ALL. This 414 | ; means it pretty much reports everything which is exactly what you want during 415 | ; development and early testing. 416 | ; 417 | ; Error Level Constants: 418 | ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) 419 | ; E_ERROR - fatal run-time errors 420 | ; E_RECOVERABLE_ERROR - almost fatal run-time errors 421 | ; E_WARNING - run-time warnings (non-fatal errors) 422 | ; E_PARSE - compile-time parse errors 423 | ; E_NOTICE - run-time notices (these are warnings which often result 424 | ; from a bug in your code, but it's possible that it was 425 | ; intentional (e.g., using an uninitialized variable and 426 | ; relying on the fact it is automatically initialized to an 427 | ; empty string) 428 | ; E_STRICT - run-time notices, enable to have PHP suggest changes 429 | ; to your code which will ensure the best interoperability 430 | ; and forward compatibility of your code 431 | ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup 432 | ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's 433 | ; initial startup 434 | ; E_COMPILE_ERROR - fatal compile-time errors 435 | ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) 436 | ; E_USER_ERROR - user-generated error message 437 | ; E_USER_WARNING - user-generated warning message 438 | ; E_USER_NOTICE - user-generated notice message 439 | ; E_DEPRECATED - warn about code that will not work in future versions 440 | ; of PHP 441 | ; E_USER_DEPRECATED - user-generated deprecation warnings 442 | ; 443 | ; Common Values: 444 | ; E_ALL (Show all errors, warnings and notices including coding standards.) 445 | ; E_ALL & ~E_NOTICE (Show all errors, except for notices) 446 | ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) 447 | ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) 448 | ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 449 | ; Development Value: E_ALL 450 | ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT 451 | ; http://php.net/error-reporting 452 | error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 453 | 454 | ; This directive controls whether or not and where PHP will output errors, 455 | ; notices and warnings too. Error output is very useful during development, but 456 | ; it could be very dangerous in production environments. Depending on the code 457 | ; which is triggering the error, sensitive information could potentially leak 458 | ; out of your application such as database usernames and passwords or worse. 459 | ; For production environments, we recommend logging errors rather than 460 | ; sending them to STDOUT. 461 | ; Possible Values: 462 | ; Off = Do not display any errors 463 | ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) 464 | ; On or stdout = Display errors to STDOUT 465 | ; Default Value: On 466 | ; Development Value: On 467 | ; Production Value: Off 468 | ; http://php.net/display-errors 469 | display_errors = Off 470 | 471 | ; The display of errors which occur during PHP's startup sequence are handled 472 | ; separately from display_errors. PHP's default behavior is to suppress those 473 | ; errors from clients. Turning the display of startup errors on can be useful in 474 | ; debugging configuration problems. We strongly recommend you 475 | ; set this to 'off' for production servers. 476 | ; Default Value: Off 477 | ; Development Value: On 478 | ; Production Value: Off 479 | ; http://php.net/display-startup-errors 480 | display_startup_errors = Off 481 | 482 | ; Besides displaying errors, PHP can also log errors to locations such as a 483 | ; server-specific log, STDERR, or a location specified by the error_log 484 | ; directive found below. While errors should not be displayed on productions 485 | ; servers they should still be monitored and logging is a great way to do that. 486 | ; Default Value: Off 487 | ; Development Value: On 488 | ; Production Value: On 489 | ; http://php.net/log-errors 490 | log_errors = On 491 | 492 | ; Set maximum length of log_errors. In error_log information about the source is 493 | ; added. The default is 1024 and 0 allows to not apply any maximum length at all. 494 | ; http://php.net/log-errors-max-len 495 | log_errors_max_len = 1024 496 | 497 | ; Do not log repeated messages. Repeated errors must occur in same file on same 498 | ; line unless ignore_repeated_source is set true. 499 | ; http://php.net/ignore-repeated-errors 500 | ignore_repeated_errors = Off 501 | 502 | ; Ignore source of message when ignoring repeated messages. When this setting 503 | ; is On you will not log errors with repeated messages from different files or 504 | ; source lines. 505 | ; http://php.net/ignore-repeated-source 506 | ignore_repeated_source = Off 507 | 508 | ; If this parameter is set to Off, then memory leaks will not be shown (on 509 | ; stdout or in the log). This has only effect in a debug compile, and if 510 | ; error reporting includes E_WARNING in the allowed list 511 | ; http://php.net/report-memleaks 512 | report_memleaks = On 513 | 514 | ; This setting is on by default. 515 | ;report_zend_debug = 0 516 | 517 | ; Store the last error/warning message in $php_errormsg (boolean). Setting this value 518 | ; to On can assist in debugging and is appropriate for development servers. It should 519 | ; however be disabled on production servers. 520 | ; Default Value: Off 521 | ; Development Value: On 522 | ; Production Value: Off 523 | ; http://php.net/track-errors 524 | track_errors = Off 525 | 526 | ; Turn off normal error reporting and emit XML-RPC error XML 527 | ; http://php.net/xmlrpc-errors 528 | ;xmlrpc_errors = 0 529 | 530 | ; An XML-RPC faultCode 531 | ;xmlrpc_error_number = 0 532 | 533 | ; When PHP displays or logs an error, it has the capability of formatting the 534 | ; error message as HTML for easier reading. This directive controls whether 535 | ; the error message is formatted as HTML or not. 536 | ; Note: This directive is hardcoded to Off for the CLI SAPI 537 | ; Default Value: On 538 | ; Development Value: On 539 | ; Production value: On 540 | ; http://php.net/html-errors 541 | html_errors = On 542 | 543 | ; If html_errors is set to On *and* docref_root is not empty, then PHP 544 | ; produces clickable error messages that direct to a page describing the error 545 | ; or function causing the error in detail. 546 | ; You can download a copy of the PHP manual from http://php.net/docs 547 | ; and change docref_root to the base URL of your local copy including the 548 | ; leading '/'. You must also specify the file extension being used including 549 | ; the dot. PHP's default behavior is to leave these settings empty, in which 550 | ; case no links to documentation are generated. 551 | ; Note: Never use this feature for production boxes. 552 | ; http://php.net/docref-root 553 | ; Examples 554 | ;docref_root = "/phpmanual/" 555 | 556 | ; http://php.net/docref-ext 557 | ;docref_ext = .html 558 | 559 | ; String to output before an error message. PHP's default behavior is to leave 560 | ; this setting blank. 561 | ; http://php.net/error-prepend-string 562 | ; Example: 563 | ;error_prepend_string = "" 564 | 565 | ; String to output after an error message. PHP's default behavior is to leave 566 | ; this setting blank. 567 | ; http://php.net/error-append-string 568 | ; Example: 569 | ;error_append_string = "" 570 | 571 | ; Log errors to specified file. PHP's default behavior is to leave this value 572 | ; empty. 573 | ; http://php.net/error-log 574 | ; Example: 575 | ;error_log = php_errors.log 576 | ; Log errors to syslog (Event Log on NT, not valid in Windows 95). 577 | ;error_log = syslog 578 | 579 | ;windows.show_crt_warning 580 | ; Default value: 0 581 | ; Development value: 0 582 | ; Production value: 0 583 | 584 | ;;;;;;;;;;;;;;;;; 585 | ; Data Handling ; 586 | ;;;;;;;;;;;;;;;;; 587 | 588 | ; The separator used in PHP generated URLs to separate arguments. 589 | ; PHP's default setting is "&". 590 | ; http://php.net/arg-separator.output 591 | ; Example: 592 | ;arg_separator.output = "&" 593 | 594 | ; List of separator(s) used by PHP to parse input URLs into variables. 595 | ; PHP's default setting is "&". 596 | ; NOTE: Every character in this directive is considered as separator! 597 | ; http://php.net/arg-separator.input 598 | ; Example: 599 | ;arg_separator.input = ";&" 600 | 601 | ; This directive determines which super global arrays are registered when PHP 602 | ; starts up. G,P,C,E & S are abbreviations for the following respective super 603 | ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty 604 | ; paid for the registration of these arrays and because ENV is not as commonly 605 | ; used as the others, ENV is not recommended on productions servers. You 606 | ; can still get access to the environment variables through getenv() should you 607 | ; need to. 608 | ; Default Value: "EGPCS" 609 | ; Development Value: "GPCS" 610 | ; Production Value: "GPCS"; 611 | ; http://php.net/variables-order 612 | variables_order = "GPCS" 613 | 614 | ; This directive determines which super global data (G,P,C,E & S) should 615 | ; be registered into the super global array REQUEST. If so, it also determines 616 | ; the order in which that data is registered. The values for this directive are 617 | ; specified in the same manner as the variables_order directive, EXCEPT one. 618 | ; Leaving this value empty will cause PHP to use the value set in the 619 | ; variables_order directive. It does not mean it will leave the super globals 620 | ; array REQUEST empty. 621 | ; Default Value: None 622 | ; Development Value: "GP" 623 | ; Production Value: "GP" 624 | ; http://php.net/request-order 625 | request_order = "GP" 626 | 627 | ; This directive determines whether PHP registers $argv & $argc each time it 628 | ; runs. $argv contains an array of all the arguments passed to PHP when a script 629 | ; is invoked. $argc contains an integer representing the number of arguments 630 | ; that were passed when the script was invoked. These arrays are extremely 631 | ; useful when running scripts from the command line. When this directive is 632 | ; enabled, registering these variables consumes CPU cycles and memory each time 633 | ; a script is executed. For performance reasons, this feature should be disabled 634 | ; on production servers. 635 | ; Note: This directive is hardcoded to On for the CLI SAPI 636 | ; Default Value: On 637 | ; Development Value: Off 638 | ; Production Value: Off 639 | ; http://php.net/register-argc-argv 640 | register_argc_argv = Off 641 | 642 | ; When enabled, the ENV, REQUEST and SERVER variables are created when they're 643 | ; first used (Just In Time) instead of when the script starts. If these 644 | ; variables are not used within a script, having this directive on will result 645 | ; in a performance gain. The PHP directive register_argc_argv must be disabled 646 | ; for this directive to have any affect. 647 | ; http://php.net/auto-globals-jit 648 | auto_globals_jit = On 649 | 650 | ; Whether PHP will read the POST data. 651 | ; This option is enabled by default. 652 | ; Most likely, you won't want to disable this option globally. It causes $_POST 653 | ; and $_FILES to always be empty; the only way you will be able to read the 654 | ; POST data will be through the php://input stream wrapper. This can be useful 655 | ; to proxy requests or to process the POST data in a memory efficient fashion. 656 | ; http://php.net/enable-post-data-reading 657 | ;enable_post_data_reading = Off 658 | 659 | ; Maximum size of POST data that PHP will accept. 660 | ; Its value may be 0 to disable the limit. It is ignored if POST data reading 661 | ; is disabled through enable_post_data_reading. 662 | ; http://php.net/post-max-size 663 | post_max_size = 20M 664 | 665 | ; Automatically add files before PHP document. 666 | ; http://php.net/auto-prepend-file 667 | auto_prepend_file = 668 | 669 | ; Automatically add files after PHP document. 670 | ; http://php.net/auto-append-file 671 | auto_append_file = 672 | 673 | ; By default, PHP will output a character encoding using 674 | ; the Content-type: header. To disable sending of the charset, simply 675 | ; set it to be empty. 676 | ; 677 | ; PHP's built-in default is text/html 678 | ; http://php.net/default-mimetype 679 | default_mimetype = "text/html" 680 | 681 | ; PHP's default character set is set to empty. 682 | ; http://php.net/default-charset 683 | default_charset = "UTF-8" 684 | 685 | ; PHP internal character encoding is set to empty. 686 | ; If empty, default_charset is used. 687 | ; http://php.net/internal-encoding 688 | ;internal_encoding = 689 | 690 | ; PHP input character encoding is set to empty. 691 | ; http://php.net/input-encoding 692 | ;input_encoding = 693 | 694 | ; PHP output character encoding is set to empty. 695 | ; mbstring or iconv output handler is used. 696 | ; See also output_buffer. 697 | ; http://php.net/output-encoding 698 | ;output_encoding = 699 | 700 | ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is 701 | ; to disable this feature and it will be removed in a future version. 702 | ; If post reading is disabled through enable_post_data_reading, 703 | ; $HTTP_RAW_POST_DATA is *NOT* populated. 704 | ; http://php.net/always-populate-raw-post-data 705 | ;always_populate_raw_post_data = -1 706 | 707 | ;;;;;;;;;;;;;;;;;;;;;;;;; 708 | ; Paths and Directories ; 709 | ;;;;;;;;;;;;;;;;;;;;;;;;; 710 | 711 | ; UNIX: "/path1:/path2" 712 | ;include_path = ".:/php/includes" 713 | ; 714 | ; Windows: "\path1;\path2" 715 | ;include_path = ".;c:\php\includes" 716 | ; 717 | ; PHP's default setting for include_path is ".;/path/to/php/pear" 718 | ; http://php.net/include-path 719 | 720 | ; The root of the PHP pages, used only if nonempty. 721 | ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root 722 | ; if you are running php as a CGI under any web server (other than IIS) 723 | ; see documentation for security issues. The alternate is to use the 724 | ; cgi.force_redirect configuration below 725 | ; http://php.net/doc-root 726 | doc_root = 727 | 728 | ; The directory under which PHP opens the script using /~username used only 729 | ; if nonempty. 730 | ; http://php.net/user-dir 731 | user_dir = 732 | 733 | ; Directory in which the loadable extensions (modules) reside. 734 | ; http://php.net/extension-dir 735 | ; extension_dir = "./" 736 | ; On windows: 737 | ; extension_dir = "ext" 738 | 739 | ; Directory where the temporary files should be placed. 740 | ; Defaults to the system default (see sys_get_temp_dir) 741 | ; sys_temp_dir = "/tmp" 742 | 743 | ; Whether or not to enable the dl() function. The dl() function does NOT work 744 | ; properly in multithreaded servers, such as IIS or Zeus, and is automatically 745 | ; disabled on them. 746 | ; http://php.net/enable-dl 747 | enable_dl = Off 748 | 749 | ; cgi.force_redirect is necessary to provide security running PHP as a CGI under 750 | ; most web servers. Left undefined, PHP turns this on by default. You can 751 | ; turn it off here AT YOUR OWN RISK 752 | ; **You CAN safely turn this off for IIS, in fact, you MUST.** 753 | ; http://php.net/cgi.force-redirect 754 | ;cgi.force_redirect = 1 755 | 756 | ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with 757 | ; every request. PHP's default behavior is to disable this feature. 758 | ;cgi.nph = 1 759 | 760 | ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape 761 | ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP 762 | ; will look for to know it is OK to continue execution. Setting this variable MAY 763 | ; cause security issues, KNOW WHAT YOU ARE DOING FIRST. 764 | ; http://php.net/cgi.redirect-status-env 765 | ;cgi.redirect_status_env = 766 | 767 | ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's 768 | ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok 769 | ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting 770 | ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting 771 | ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts 772 | ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. 773 | ; http://php.net/cgi.fix-pathinfo 774 | ;cgi.fix_pathinfo=1 775 | 776 | ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate 777 | ; security tokens of the calling client. This allows IIS to define the 778 | ; security context that the request runs under. mod_fastcgi under Apache 779 | ; does not currently support this feature (03/17/2002) 780 | ; Set to 1 if running under IIS. Default is zero. 781 | ; http://php.net/fastcgi.impersonate 782 | ;fastcgi.impersonate = 1 783 | 784 | ; Disable logging through FastCGI connection. PHP's default behavior is to enable 785 | ; this feature. 786 | ;fastcgi.logging = 0 787 | 788 | ; cgi.rfc2616_headers configuration option tells PHP what type of headers to 789 | ; use when sending HTTP response code. If set to 0, PHP sends Status: header that 790 | ; is supported by Apache. When this option is set to 1, PHP will send 791 | ; RFC2616 compliant header. 792 | ; Default is zero. 793 | ; http://php.net/cgi.rfc2616-headers 794 | ;cgi.rfc2616_headers = 0 795 | 796 | ;;;;;;;;;;;;;;;; 797 | ; File Uploads ; 798 | ;;;;;;;;;;;;;;;; 799 | 800 | ; Whether to allow HTTP file uploads. 801 | ; http://php.net/file-uploads 802 | file_uploads = On 803 | 804 | ; Temporary directory for HTTP uploaded files (will use system default if not 805 | ; specified). 806 | ; http://php.net/upload-tmp-dir 807 | ;upload_tmp_dir = 808 | 809 | ; Maximum allowed size for uploaded files. 810 | ; http://php.net/upload-max-filesize 811 | upload_max_filesize = 20M 812 | 813 | ; Maximum number of files that can be uploaded via a single request 814 | max_file_uploads = 20 815 | 816 | ;;;;;;;;;;;;;;;;;; 817 | ; Fopen wrappers ; 818 | ;;;;;;;;;;;;;;;;;; 819 | 820 | ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. 821 | ; http://php.net/allow-url-fopen 822 | allow_url_fopen = On 823 | 824 | ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. 825 | ; http://php.net/allow-url-include 826 | allow_url_include = Off 827 | 828 | ; Define the anonymous ftp password (your email address). PHP's default setting 829 | ; for this is empty. 830 | ; http://php.net/from 831 | ;from="john@doe.com" 832 | 833 | ; Define the User-Agent string. PHP's default setting for this is empty. 834 | ; http://php.net/user-agent 835 | ;user_agent="PHP" 836 | 837 | ; Default timeout for socket based streams (seconds) 838 | ; http://php.net/default-socket-timeout 839 | default_socket_timeout = 60 840 | 841 | ; If your scripts have to deal with files from Macintosh systems, 842 | ; or you are running on a Mac and need to deal with files from 843 | ; unix or win32 systems, setting this flag will cause PHP to 844 | ; automatically detect the EOL character in those files so that 845 | ; fgets() and file() will work regardless of the source of the file. 846 | ; http://php.net/auto-detect-line-endings 847 | ;auto_detect_line_endings = Off 848 | 849 | ;;;;;;;;;;;;;;;;;;;;;; 850 | ; Dynamic Extensions ; 851 | ;;;;;;;;;;;;;;;;;;;;;; 852 | 853 | ; If you wish to have an extension loaded automatically, use the following 854 | ; syntax: 855 | ; 856 | ; extension=modulename.extension 857 | ; 858 | ; For example, on Windows: 859 | ; 860 | ; extension=msql.dll 861 | ; 862 | ; ... or under UNIX: 863 | ; 864 | ; extension=msql.so 865 | ; 866 | ; ... or with a path: 867 | ; 868 | ; extension=/path/to/extension/msql.so 869 | ; 870 | ; If you only provide the name of the extension, PHP will look for it in its 871 | ; default extension directory. 872 | 873 | ;;;; 874 | ; Note: packaged extension modules are now loaded via the .ini files 875 | ; found in the directory /etc/php.d; these are loaded by default. 876 | ;;;; 877 | 878 | ;;;;;;;;;;;;;;;;;;; 879 | ; Module Settings ; 880 | ;;;;;;;;;;;;;;;;;;; 881 | 882 | [CLI Server] 883 | ; Whether the CLI web server uses ANSI color coding in its terminal output. 884 | cli_server.color = On 885 | 886 | [Date] 887 | ; Defines the default timezone used by the date functions 888 | ; http://php.net/date.timezone 889 | ;date.timezone = 890 | 891 | ; http://php.net/date.default-latitude 892 | ;date.default_latitude = 31.7667 893 | 894 | ; http://php.net/date.default-longitude 895 | ;date.default_longitude = 35.2333 896 | 897 | ; http://php.net/date.sunrise-zenith 898 | ;date.sunrise_zenith = 90.583333 899 | 900 | ; http://php.net/date.sunset-zenith 901 | ;date.sunset_zenith = 90.583333 902 | 903 | [filter] 904 | ; http://php.net/filter.default 905 | ;filter.default = unsafe_raw 906 | 907 | ; http://php.net/filter.default-flags 908 | ;filter.default_flags = 909 | 910 | [iconv] 911 | ; Use of this INI entory is deprecated, use global input_encoding instead. 912 | ; If empty, input_encoding is used. 913 | ;iconv.input_encoding = 914 | 915 | ; Use of this INI entory is deprecated, use global internal_encoding instead. 916 | ; If empty, internal_encoding is used. 917 | ;iconv.internal_encoding = 918 | 919 | ; Use of this INI entory is deprecated, use global output_encoding instead. 920 | ; If empty, output_encoding is used. 921 | ;iconv.output_encoding = 922 | 923 | [intl] 924 | ;intl.default_locale = 925 | ; This directive allows you to produce PHP errors when some error 926 | ; happens within intl functions. The value is the level of the error produced. 927 | ; Default is 0, which does not produce any errors. 928 | ;intl.error_level = E_WARNING 929 | 930 | [sqlite] 931 | ; http://php.net/sqlite.assoc-case 932 | ;sqlite.assoc_case = 0 933 | 934 | [sqlite3] 935 | ;sqlite3.extension_dir = 936 | 937 | [Pcre] 938 | ;PCRE library backtracking limit. 939 | ; http://php.net/pcre.backtrack-limit 940 | ;pcre.backtrack_limit=100000 941 | 942 | ;PCRE library recursion limit. 943 | ;Please note that if you set this value to a high number you may consume all 944 | ;the available process stack and eventually crash PHP (due to reaching the 945 | ;stack size limit imposed by the Operating System). 946 | ; http://php.net/pcre.recursion-limit 947 | ;pcre.recursion_limit=100000 948 | 949 | [Pdo] 950 | ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" 951 | ; http://php.net/pdo-odbc.connection-pooling 952 | ;pdo_odbc.connection_pooling=strict 953 | 954 | ;pdo_odbc.db2_instance_name 955 | 956 | [Pdo_mysql] 957 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 958 | ; http://php.net/pdo_mysql.cache_size 959 | pdo_mysql.cache_size = 2000 960 | 961 | ; Default socket name for local MySQL connects. If empty, uses the built-in 962 | ; MySQL defaults. 963 | ; http://php.net/pdo_mysql.default-socket 964 | pdo_mysql.default_socket= 965 | 966 | [Phar] 967 | ; http://php.net/phar.readonly 968 | ;phar.readonly = On 969 | 970 | ; http://php.net/phar.require-hash 971 | ;phar.require_hash = On 972 | 973 | ;phar.cache_list = 974 | 975 | [mail function] 976 | ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 977 | ; http://php.net/sendmail-path 978 | sendmail_path = /usr/sbin/sendmail -t -i 979 | 980 | ; Force the addition of the specified parameters to be passed as extra parameters 981 | ; to the sendmail binary. These parameters will always replace the value of 982 | ; the 5th parameter to mail(), even in safe mode. 983 | ;mail.force_extra_parameters = 984 | 985 | ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename 986 | mail.add_x_header = On 987 | 988 | ; The path to a log file that will log all mail() calls. Log entries include 989 | ; the full path of the script, line number, To address and headers. 990 | ;mail.log = 991 | ; Log mail to syslog (Event Log on NT, not valid in Windows 95). 992 | ;mail.log = syslog 993 | 994 | [SQL] 995 | ; http://php.net/sql.safe-mode 996 | sql.safe_mode = Off 997 | 998 | [ODBC] 999 | ; http://php.net/odbc.default-db 1000 | ;odbc.default_db = Not yet implemented 1001 | 1002 | ; http://php.net/odbc.default-user 1003 | ;odbc.default_user = Not yet implemented 1004 | 1005 | ; http://php.net/odbc.default-pw 1006 | ;odbc.default_pw = Not yet implemented 1007 | 1008 | ; Controls the ODBC cursor model. 1009 | ; Default: SQL_CURSOR_STATIC (default). 1010 | ;odbc.default_cursortype 1011 | 1012 | ; Allow or prevent persistent links. 1013 | ; http://php.net/odbc.allow-persistent 1014 | odbc.allow_persistent = On 1015 | 1016 | ; Check that a connection is still valid before reuse. 1017 | ; http://php.net/odbc.check-persistent 1018 | odbc.check_persistent = On 1019 | 1020 | ; Maximum number of persistent links. -1 means no limit. 1021 | ; http://php.net/odbc.max-persistent 1022 | odbc.max_persistent = -1 1023 | 1024 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1025 | ; http://php.net/odbc.max-links 1026 | odbc.max_links = -1 1027 | 1028 | ; Handling of LONG fields. Returns number of bytes to variables. 0 means 1029 | ; passthru. 1030 | ; http://php.net/odbc.defaultlrl 1031 | odbc.defaultlrl = 4096 1032 | 1033 | ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. 1034 | ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation 1035 | ; of odbc.defaultlrl and odbc.defaultbinmode 1036 | ; http://php.net/odbc.defaultbinmode 1037 | odbc.defaultbinmode = 1 1038 | 1039 | ;birdstep.max_links = -1 1040 | 1041 | [Interbase] 1042 | ; Allow or prevent persistent links. 1043 | ibase.allow_persistent = 1 1044 | 1045 | ; Maximum number of persistent links. -1 means no limit. 1046 | ibase.max_persistent = -1 1047 | 1048 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1049 | ibase.max_links = -1 1050 | 1051 | ; Default database name for ibase_connect(). 1052 | ;ibase.default_db = 1053 | 1054 | ; Default username for ibase_connect(). 1055 | ;ibase.default_user = 1056 | 1057 | ; Default password for ibase_connect(). 1058 | ;ibase.default_password = 1059 | 1060 | ; Default charset for ibase_connect(). 1061 | ;ibase.default_charset = 1062 | 1063 | ; Default timestamp format. 1064 | ibase.timestampformat = "%Y-%m-%d %H:%M:%S" 1065 | 1066 | ; Default date format. 1067 | ibase.dateformat = "%Y-%m-%d" 1068 | 1069 | ; Default time format. 1070 | ibase.timeformat = "%H:%M:%S" 1071 | 1072 | [MySQL] 1073 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 1074 | ; http://php.net/mysql.allow_local_infile 1075 | mysql.allow_local_infile = On 1076 | 1077 | ; Allow or prevent persistent links. 1078 | ; http://php.net/mysql.allow-persistent 1079 | mysql.allow_persistent = On 1080 | 1081 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 1082 | ; http://php.net/mysql.cache_size 1083 | mysql.cache_size = 2000 1084 | 1085 | ; Maximum number of persistent links. -1 means no limit. 1086 | ; http://php.net/mysql.max-persistent 1087 | mysql.max_persistent = -1 1088 | 1089 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1090 | ; http://php.net/mysql.max-links 1091 | mysql.max_links = -1 1092 | 1093 | ; Default port number for mysql_connect(). If unset, mysql_connect() will use 1094 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 1095 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 1096 | ; at MYSQL_PORT. 1097 | ; http://php.net/mysql.default-port 1098 | mysql.default_port = 1099 | 1100 | ; Default socket name for local MySQL connects. If empty, uses the built-in 1101 | ; MySQL defaults. 1102 | ; http://php.net/mysql.default-socket 1103 | mysql.default_socket = 1104 | 1105 | ; Default host for mysql_connect() (doesn't apply in safe mode). 1106 | ; http://php.net/mysql.default-host 1107 | mysql.default_host = 1108 | 1109 | ; Default user for mysql_connect() (doesn't apply in safe mode). 1110 | ; http://php.net/mysql.default-user 1111 | mysql.default_user = 1112 | 1113 | ; Default password for mysql_connect() (doesn't apply in safe mode). 1114 | ; Note that this is generally a *bad* idea to store passwords in this file. 1115 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") 1116 | ; and reveal this password! And of course, any users with read access to this 1117 | ; file will be able to reveal the password as well. 1118 | ; http://php.net/mysql.default-password 1119 | mysql.default_password = 1120 | 1121 | ; Maximum time (in seconds) for connect timeout. -1 means no limit 1122 | ; http://php.net/mysql.connect-timeout 1123 | mysql.connect_timeout = 60 1124 | 1125 | ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and 1126 | ; SQL-Errors will be displayed. 1127 | ; http://php.net/mysql.trace-mode 1128 | mysql.trace_mode = Off 1129 | 1130 | [MySQLi] 1131 | 1132 | ; Maximum number of persistent links. -1 means no limit. 1133 | ; http://php.net/mysqli.max-persistent 1134 | mysqli.max_persistent = -1 1135 | 1136 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 1137 | ; http://php.net/mysqli.allow_local_infile 1138 | ;mysqli.allow_local_infile = On 1139 | 1140 | ; Allow or prevent persistent links. 1141 | ; http://php.net/mysqli.allow-persistent 1142 | mysqli.allow_persistent = On 1143 | 1144 | ; Maximum number of links. -1 means no limit. 1145 | ; http://php.net/mysqli.max-links 1146 | mysqli.max_links = -1 1147 | 1148 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 1149 | ; http://php.net/mysqli.cache_size 1150 | mysqli.cache_size = 2000 1151 | 1152 | ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use 1153 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 1154 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 1155 | ; at MYSQL_PORT. 1156 | ; http://php.net/mysqli.default-port 1157 | mysqli.default_port = 3306 1158 | 1159 | ; Default socket name for local MySQL connects. If empty, uses the built-in 1160 | ; MySQL defaults. 1161 | ; http://php.net/mysqli.default-socket 1162 | mysqli.default_socket = 1163 | 1164 | ; Default host for mysql_connect() (doesn't apply in safe mode). 1165 | ; http://php.net/mysqli.default-host 1166 | mysqli.default_host = 1167 | 1168 | ; Default user for mysql_connect() (doesn't apply in safe mode). 1169 | ; http://php.net/mysqli.default-user 1170 | mysqli.default_user = 1171 | 1172 | ; Default password for mysqli_connect() (doesn't apply in safe mode). 1173 | ; Note that this is generally a *bad* idea to store passwords in this file. 1174 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") 1175 | ; and reveal this password! And of course, any users with read access to this 1176 | ; file will be able to reveal the password as well. 1177 | ; http://php.net/mysqli.default-pw 1178 | mysqli.default_pw = 1179 | 1180 | ; Allow or prevent reconnect 1181 | mysqli.reconnect = Off 1182 | 1183 | [mysqlnd] 1184 | ; Enable / Disable collection of general statistics by mysqlnd which can be 1185 | ; used to tune and monitor MySQL operations. 1186 | ; http://php.net/mysqlnd.collect_statistics 1187 | mysqlnd.collect_statistics = On 1188 | 1189 | ; Enable / Disable collection of memory usage statistics by mysqlnd which can be 1190 | ; used to tune and monitor MySQL operations. 1191 | ; http://php.net/mysqlnd.collect_memory_statistics 1192 | mysqlnd.collect_memory_statistics = Off 1193 | 1194 | ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. 1195 | ; http://php.net/mysqlnd.net_cmd_buffer_size 1196 | ;mysqlnd.net_cmd_buffer_size = 2048 1197 | 1198 | ; Size of a pre-allocated buffer used for reading data sent by the server in 1199 | ; bytes. 1200 | ; http://php.net/mysqlnd.net_read_buffer_size 1201 | ;mysqlnd.net_read_buffer_size = 32768 1202 | 1203 | [OCI8] 1204 | 1205 | ; Connection: Enables privileged connections using external 1206 | ; credentials (OCI_SYSOPER, OCI_SYSDBA) 1207 | ; http://php.net/oci8.privileged-connect 1208 | ;oci8.privileged_connect = Off 1209 | 1210 | ; Connection: The maximum number of persistent OCI8 connections per 1211 | ; process. Using -1 means no limit. 1212 | ; http://php.net/oci8.max-persistent 1213 | ;oci8.max_persistent = -1 1214 | 1215 | ; Connection: The maximum number of seconds a process is allowed to 1216 | ; maintain an idle persistent connection. Using -1 means idle 1217 | ; persistent connections will be maintained forever. 1218 | ; http://php.net/oci8.persistent-timeout 1219 | ;oci8.persistent_timeout = -1 1220 | 1221 | ; Connection: The number of seconds that must pass before issuing a 1222 | ; ping during oci_pconnect() to check the connection validity. When 1223 | ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables 1224 | ; pings completely. 1225 | ; http://php.net/oci8.ping-interval 1226 | ;oci8.ping_interval = 60 1227 | 1228 | ; Connection: Set this to a user chosen connection class to be used 1229 | ; for all pooled server requests with Oracle 11g Database Resident 1230 | ; Connection Pooling (DRCP). To use DRCP, this value should be set to 1231 | ; the same string for all web servers running the same application, 1232 | ; the database pool must be configured, and the connection string must 1233 | ; specify to use a pooled server. 1234 | ;oci8.connection_class = 1235 | 1236 | ; High Availability: Using On lets PHP receive Fast Application 1237 | ; Notification (FAN) events generated when a database node fails. The 1238 | ; database must also be configured to post FAN events. 1239 | ;oci8.events = Off 1240 | 1241 | ; Tuning: This option enables statement caching, and specifies how 1242 | ; many statements to cache. Using 0 disables statement caching. 1243 | ; http://php.net/oci8.statement-cache-size 1244 | ;oci8.statement_cache_size = 20 1245 | 1246 | ; Tuning: Enables statement prefetching and sets the default number of 1247 | ; rows that will be fetched automatically after statement execution. 1248 | ; http://php.net/oci8.default-prefetch 1249 | ;oci8.default_prefetch = 100 1250 | 1251 | ; Compatibility. Using On means oci_close() will not close 1252 | ; oci_connect() and oci_new_connect() connections. 1253 | ; http://php.net/oci8.old-oci-close-semantics 1254 | ;oci8.old_oci_close_semantics = Off 1255 | 1256 | [PostgreSQL] 1257 | ; Allow or prevent persistent links. 1258 | ; http://php.net/pgsql.allow-persistent 1259 | pgsql.allow_persistent = On 1260 | 1261 | ; Detect broken persistent links always with pg_pconnect(). 1262 | ; Auto reset feature requires a little overheads. 1263 | ; http://php.net/pgsql.auto-reset-persistent 1264 | pgsql.auto_reset_persistent = Off 1265 | 1266 | ; Maximum number of persistent links. -1 means no limit. 1267 | ; http://php.net/pgsql.max-persistent 1268 | pgsql.max_persistent = -1 1269 | 1270 | ; Maximum number of links (persistent+non persistent). -1 means no limit. 1271 | ; http://php.net/pgsql.max-links 1272 | pgsql.max_links = -1 1273 | 1274 | ; Ignore PostgreSQL backends Notice message or not. 1275 | ; Notice message logging require a little overheads. 1276 | ; http://php.net/pgsql.ignore-notice 1277 | pgsql.ignore_notice = 0 1278 | 1279 | ; Log PostgreSQL backends Notice message or not. 1280 | ; Unless pgsql.ignore_notice=0, module cannot log notice message. 1281 | ; http://php.net/pgsql.log-notice 1282 | pgsql.log_notice = 0 1283 | 1284 | [Sybase-CT] 1285 | ; Allow or prevent persistent links. 1286 | ; http://php.net/sybct.allow-persistent 1287 | sybct.allow_persistent = On 1288 | 1289 | ; Maximum number of persistent links. -1 means no limit. 1290 | ; http://php.net/sybct.max-persistent 1291 | sybct.max_persistent = -1 1292 | 1293 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1294 | ; http://php.net/sybct.max-links 1295 | sybct.max_links = -1 1296 | 1297 | ; Minimum server message severity to display. 1298 | ; http://php.net/sybct.min-server-severity 1299 | sybct.min_server_severity = 10 1300 | 1301 | ; Minimum client message severity to display. 1302 | ; http://php.net/sybct.min-client-severity 1303 | sybct.min_client_severity = 10 1304 | 1305 | ; Set per-context timeout 1306 | ; http://php.net/sybct.timeout 1307 | ;sybct.timeout= 1308 | 1309 | ;sybct.packet_size 1310 | 1311 | ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure. 1312 | ; Default: one minute 1313 | ;sybct.login_timeout= 1314 | 1315 | ; The name of the host you claim to be connecting from, for display by sp_who. 1316 | ; Default: none 1317 | ;sybct.hostname= 1318 | 1319 | ; Allows you to define how often deadlocks are to be retried. -1 means "forever". 1320 | ; Default: 0 1321 | ;sybct.deadlock_retry_count= 1322 | 1323 | [bcmath] 1324 | ; Number of decimal digits for all bcmath functions. 1325 | ; http://php.net/bcmath.scale 1326 | bcmath.scale = 0 1327 | 1328 | [browscap] 1329 | ; http://php.net/browscap 1330 | ;browscap = extra/browscap.ini 1331 | 1332 | [Session] 1333 | ; Handler used to store/retrieve data. 1334 | ; http://php.net/session.save-handler 1335 | session.save_handler = files 1336 | 1337 | ; Argument passed to save_handler. In the case of files, this is the path 1338 | ; where data files are stored. Note: Windows users have to change this 1339 | ; variable in order to use PHP's session functions. 1340 | ; 1341 | ; The path can be defined as: 1342 | ; 1343 | ; session.save_path = "N;/path" 1344 | ; 1345 | ; where N is an integer. Instead of storing all the session files in 1346 | ; /path, what this will do is use subdirectories N-levels deep, and 1347 | ; store the session data in those directories. This is useful if 1348 | ; your OS has problems with many files in one directory, and is 1349 | ; a more efficient layout for servers that handle many sessions. 1350 | ; 1351 | ; NOTE 1: PHP will not create this directory structure automatically. 1352 | ; You can use the script in the ext/session dir for that purpose. 1353 | ; NOTE 2: See the section on garbage collection below if you choose to 1354 | ; use subdirectories for session storage 1355 | ; 1356 | ; The file storage module creates files using mode 600 by default. 1357 | ; You can change that by using 1358 | ; 1359 | ; session.save_path = "N;MODE;/path" 1360 | ; 1361 | ; where MODE is the octal representation of the mode. Note that this 1362 | ; does not overwrite the process's umask. 1363 | ; http://php.net/session.save-path 1364 | 1365 | ; RPM note : session directory must be owned by process owner 1366 | ; for mod_php, see /etc/httpd/conf.d/php.conf 1367 | ; for php-fpm, see /etc/php-fpm.d/*conf 1368 | ;session.save_path = "/tmp" 1369 | 1370 | ; Whether to use strict session mode. 1371 | ; Strict session mode does not accept uninitialized session ID and regenerate 1372 | ; session ID if browser sends uninitialized session ID. Strict mode protects 1373 | ; applications from session fixation via session adoption vulnerability. It is 1374 | ; disabled by default for maximum compatibility, but enabling it is encouraged. 1375 | ; https://wiki.php.net/rfc/strict_sessions 1376 | session.use_strict_mode = 0 1377 | 1378 | ; Whether to use cookies. 1379 | ; http://php.net/session.use-cookies 1380 | session.use_cookies = 1 1381 | 1382 | ; http://php.net/session.cookie-secure 1383 | ;session.cookie_secure = 1384 | 1385 | ; This option forces PHP to fetch and use a cookie for storing and maintaining 1386 | ; the session id. We encourage this operation as it's very helpful in combating 1387 | ; session hijacking when not specifying and managing your own session id. It is 1388 | ; not the be-all and end-all of session hijacking defense, but it's a good start. 1389 | ; http://php.net/session.use-only-cookies 1390 | session.use_only_cookies = 1 1391 | 1392 | ; Name of the session (used as cookie name). 1393 | ; http://php.net/session.name 1394 | session.name = PHPSESSID 1395 | 1396 | ; Initialize session on request startup. 1397 | ; http://php.net/session.auto-start 1398 | session.auto_start = 0 1399 | 1400 | ; Lifetime in seconds of cookie or, if 0, until browser is restarted. 1401 | ; http://php.net/session.cookie-lifetime 1402 | session.cookie_lifetime = 0 1403 | 1404 | ; The path for which the cookie is valid. 1405 | ; http://php.net/session.cookie-path 1406 | session.cookie_path = / 1407 | 1408 | ; The domain for which the cookie is valid. 1409 | ; http://php.net/session.cookie-domain 1410 | session.cookie_domain = 1411 | 1412 | ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. 1413 | ; http://php.net/session.cookie-httponly 1414 | session.cookie_httponly = 1415 | 1416 | ; Handler used to serialize data. php is the standard serializer of PHP. 1417 | ; http://php.net/session.serialize-handler 1418 | session.serialize_handler = php 1419 | 1420 | ; Defines the probability that the 'garbage collection' process is started 1421 | ; on every session initialization. The probability is calculated by using 1422 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator 1423 | ; and gc_divisor is the denominator in the equation. Setting this value to 1 1424 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1425 | ; the gc will run on any give request. 1426 | ; Default Value: 1 1427 | ; Development Value: 1 1428 | ; Production Value: 1 1429 | ; http://php.net/session.gc-probability 1430 | session.gc_probability = 1 1431 | 1432 | ; Defines the probability that the 'garbage collection' process is started on every 1433 | ; session initialization. The probability is calculated by using the following equation: 1434 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and 1435 | ; session.gc_divisor is the denominator in the equation. Setting this value to 1 1436 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1437 | ; the gc will run on any give request. Increasing this value to 1000 will give you 1438 | ; a 0.1% chance the gc will run on any give request. For high volume production servers, 1439 | ; this is a more efficient approach. 1440 | ; Default Value: 100 1441 | ; Development Value: 1000 1442 | ; Production Value: 1000 1443 | ; http://php.net/session.gc-divisor 1444 | session.gc_divisor = 1000 1445 | 1446 | ; After this number of seconds, stored data will be seen as 'garbage' and 1447 | ; cleaned up by the garbage collection process. 1448 | ; http://php.net/session.gc-maxlifetime 1449 | session.gc_maxlifetime = 1440 1450 | 1451 | ; NOTE: If you are using the subdirectory option for storing session files 1452 | ; (see session.save_path above), then garbage collection does *not* 1453 | ; happen automatically. You will need to do your own garbage 1454 | ; collection through a shell script, cron entry, or some other method. 1455 | ; For example, the following script would is the equivalent of 1456 | ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): 1457 | ; find /path/to/sessions -cmin +24 -type f | xargs rm 1458 | 1459 | ; Check HTTP Referer to invalidate externally stored URLs containing ids. 1460 | ; HTTP_REFERER has to contain this substring for the session to be 1461 | ; considered as valid. 1462 | ; http://php.net/session.referer-check 1463 | session.referer_check = 1464 | 1465 | ; How many bytes to read from the file. 1466 | ; http://php.net/session.entropy-length 1467 | ;session.entropy_length = 32 1468 | 1469 | ; Specified here to create the session id. 1470 | ; http://php.net/session.entropy-file 1471 | ; Defaults to /dev/urandom 1472 | ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom 1473 | ; If neither are found at compile time, the default is no entropy file. 1474 | ; On windows, setting the entropy_length setting will activate the 1475 | ; Windows random source (using the CryptoAPI) 1476 | ;session.entropy_file = /dev/urandom 1477 | 1478 | ; Set to {nocache,private,public,} to determine HTTP caching aspects 1479 | ; or leave this empty to avoid sending anti-caching headers. 1480 | ; http://php.net/session.cache-limiter 1481 | session.cache_limiter = nocache 1482 | 1483 | ; Document expires after n minutes. 1484 | ; http://php.net/session.cache-expire 1485 | session.cache_expire = 180 1486 | 1487 | ; trans sid support is disabled by default. 1488 | ; Use of trans sid may risk your users' security. 1489 | ; Use this option with caution. 1490 | ; - User may send URL contains active session ID 1491 | ; to other person via. email/irc/etc. 1492 | ; - URL that contains active session ID may be stored 1493 | ; in publicly accessible computer. 1494 | ; - User may access your site with the same session ID 1495 | ; always using URL stored in browser's history or bookmarks. 1496 | ; http://php.net/session.use-trans-sid 1497 | session.use_trans_sid = 0 1498 | 1499 | ; Select a hash function for use in generating session ids. 1500 | ; Possible Values 1501 | ; 0 (MD5 128 bits) 1502 | ; 1 (SHA-1 160 bits) 1503 | ; This option may also be set to the name of any hash function supported by 1504 | ; the hash extension. A list of available hashes is returned by the hash_algos() 1505 | ; function. 1506 | ; http://php.net/session.hash-function 1507 | session.hash_function = 0 1508 | 1509 | ; Define how many bits are stored in each character when converting 1510 | ; the binary hash data to something readable. 1511 | ; Possible values: 1512 | ; 4 (4 bits: 0-9, a-f) 1513 | ; 5 (5 bits: 0-9, a-v) 1514 | ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") 1515 | ; Default Value: 4 1516 | ; Development Value: 5 1517 | ; Production Value: 5 1518 | ; http://php.net/session.hash-bits-per-character 1519 | session.hash_bits_per_character = 5 1520 | 1521 | ; The URL rewriter will look for URLs in a defined set of HTML tags. 1522 | ; form/fieldset are special; if you include them here, the rewriter will 1523 | ; add a hidden field with the info which is otherwise appended 1524 | ; to URLs. If you want XHTML conformity, remove the form entry. 1525 | ; Note that all valid entries require a "=", even if no value follows. 1526 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" 1527 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1528 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1529 | ; http://php.net/url-rewriter.tags 1530 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" 1531 | 1532 | ; Enable upload progress tracking in $_SESSION 1533 | ; Default Value: On 1534 | ; Development Value: On 1535 | ; Production Value: On 1536 | ; http://php.net/session.upload-progress.enabled 1537 | ;session.upload_progress.enabled = On 1538 | 1539 | ; Cleanup the progress information as soon as all POST data has been read 1540 | ; (i.e. upload completed). 1541 | ; Default Value: On 1542 | ; Development Value: On 1543 | ; Production Value: On 1544 | ; http://php.net/session.upload-progress.cleanup 1545 | ;session.upload_progress.cleanup = On 1546 | 1547 | ; A prefix used for the upload progress key in $_SESSION 1548 | ; Default Value: "upload_progress_" 1549 | ; Development Value: "upload_progress_" 1550 | ; Production Value: "upload_progress_" 1551 | ; http://php.net/session.upload-progress.prefix 1552 | ;session.upload_progress.prefix = "upload_progress_" 1553 | 1554 | ; The index name (concatenated with the prefix) in $_SESSION 1555 | ; containing the upload progress information 1556 | ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" 1557 | ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" 1558 | ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" 1559 | ; http://php.net/session.upload-progress.name 1560 | ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" 1561 | 1562 | ; How frequently the upload progress should be updated. 1563 | ; Given either in percentages (per-file), or in bytes 1564 | ; Default Value: "1%" 1565 | ; Development Value: "1%" 1566 | ; Production Value: "1%" 1567 | ; http://php.net/session.upload-progress.freq 1568 | ;session.upload_progress.freq = "1%" 1569 | 1570 | ; The minimum delay between updates, in seconds 1571 | ; Default Value: 1 1572 | ; Development Value: 1 1573 | ; Production Value: 1 1574 | ; http://php.net/session.upload-progress.min-freq 1575 | ;session.upload_progress.min_freq = "1" 1576 | 1577 | [MSSQL] 1578 | ; Allow or prevent persistent links. 1579 | mssql.allow_persistent = On 1580 | 1581 | ; Maximum number of persistent links. -1 means no limit. 1582 | mssql.max_persistent = -1 1583 | 1584 | ; Maximum number of links (persistent+non persistent). -1 means no limit. 1585 | mssql.max_links = -1 1586 | 1587 | ; Minimum error severity to display. 1588 | mssql.min_error_severity = 10 1589 | 1590 | ; Minimum message severity to display. 1591 | mssql.min_message_severity = 10 1592 | 1593 | ; Compatibility mode with old versions of PHP 3.0. 1594 | mssql.compatibility_mode = Off 1595 | 1596 | ; Connect timeout 1597 | ;mssql.connect_timeout = 5 1598 | 1599 | ; Query timeout 1600 | ;mssql.timeout = 60 1601 | 1602 | ; Valid range 0 - 2147483647. Default = 4096. 1603 | ;mssql.textlimit = 4096 1604 | 1605 | ; Valid range 0 - 2147483647. Default = 4096. 1606 | ;mssql.textsize = 4096 1607 | 1608 | ; Limits the number of records in each batch. 0 = all records in one batch. 1609 | ;mssql.batchsize = 0 1610 | 1611 | ; Specify how datetime and datetim4 columns are returned 1612 | ; On => Returns data converted to SQL server settings 1613 | ; Off => Returns values as YYYY-MM-DD hh:mm:ss 1614 | ;mssql.datetimeconvert = On 1615 | 1616 | ; Use NT authentication when connecting to the server 1617 | mssql.secure_connection = Off 1618 | 1619 | ; Specify max number of processes. -1 = library default 1620 | ; msdlib defaults to 25 1621 | ; FreeTDS defaults to 4096 1622 | ;mssql.max_procs = -1 1623 | 1624 | ; Specify client character set. 1625 | ; If empty or not set the client charset from freetds.conf is used 1626 | ; This is only used when compiled with FreeTDS 1627 | ;mssql.charset = "ISO-8859-1" 1628 | 1629 | [Assertion] 1630 | ; Assert(expr); active by default. 1631 | ; http://php.net/assert.active 1632 | ;assert.active = On 1633 | 1634 | ; Issue a PHP warning for each failed assertion. 1635 | ; http://php.net/assert.warning 1636 | ;assert.warning = On 1637 | 1638 | ; Don't bail out by default. 1639 | ; http://php.net/assert.bail 1640 | ;assert.bail = Off 1641 | 1642 | ; User-function to be called if an assertion fails. 1643 | ; http://php.net/assert.callback 1644 | ;assert.callback = 0 1645 | 1646 | ; Eval the expression with current error_reporting(). Set to true if you want 1647 | ; error_reporting(0) around the eval(). 1648 | ; http://php.net/assert.quiet-eval 1649 | ;assert.quiet_eval = 0 1650 | 1651 | [mbstring] 1652 | ; language for internal character representation. 1653 | ; This affects mb_send_mail() and mbstrig.detect_order. 1654 | ; http://php.net/mbstring.language 1655 | ;mbstring.language = Japanese 1656 | 1657 | ; Use of this INI entory is deprecated, use global internal_encoding instead. 1658 | ; internal/script encoding. 1659 | ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) 1660 | ; If empty, default_charset or internal_encoding is used in order. 1661 | ; http://php.net/mbstring.internal-encoding 1662 | ;mbstring.internal_encoding = 1663 | 1664 | ; Use of this INI entory is deprecated, use global input_encoding instead. 1665 | ; http input encoding. 1666 | ; If empty, input_encoding is used. 1667 | ; mbstring.encoding_traslation = On is needed to use this setting. 1668 | ; http://php.net/mbstring.http-input 1669 | ;mbstring.http_input = 1670 | 1671 | ; Use of this INI entory is deprecated, use global output_encoding instead. 1672 | ; http output encoding. 1673 | ; mb_output_handler must be registered as output buffer to function. 1674 | ; If empty, output_encoding is used. 1675 | ; http://php.net/mbstring.http-output 1676 | ;mbstring.http_output = 1677 | 1678 | ; enable automatic encoding translation according to 1679 | ; mbstring.internal_encoding setting. Input chars are 1680 | ; converted to internal encoding by setting this to On. 1681 | ; Note: Do _not_ use automatic encoding translation for 1682 | ; portable libs/applications. 1683 | ; http://php.net/mbstring.encoding-translation 1684 | ;mbstring.encoding_translation = Off 1685 | 1686 | ; automatic encoding detection order. 1687 | ; "auto" detect order is changed accoding to mbstring.language 1688 | ; http://php.net/mbstring.detect-order 1689 | ;mbstring.detect_order = auto 1690 | 1691 | ; substitute_character used when character cannot be converted 1692 | ; one from another 1693 | ; http://php.net/mbstring.substitute-character 1694 | ;mbstring.substitute_character = none 1695 | 1696 | ; overload(replace) single byte functions by mbstring functions. 1697 | ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), 1698 | ; etc. Possible values are 0,1,2,4 or combination of them. 1699 | ; For example, 7 for overload everything. 1700 | ; 0: No overload 1701 | ; 1: Overload mail() function 1702 | ; 2: Overload str*() functions 1703 | ; 4: Overload ereg*() functions 1704 | ; http://php.net/mbstring.func-overload 1705 | ;mbstring.func_overload = 0 1706 | 1707 | ; enable strict encoding detection. 1708 | ; Default: Off 1709 | ;mbstring.strict_detection = On 1710 | 1711 | ; This directive specifies the regex pattern of content types for which mb_output_handler() 1712 | ; is activated. 1713 | ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) 1714 | ;mbstring.http_output_conv_mimetype= 1715 | 1716 | [gd] 1717 | ; Tell the jpeg decode to ignore warnings and try to create 1718 | ; a gd image. The warning will then be displayed as notices 1719 | ; disabled by default 1720 | ; http://php.net/gd.jpeg-ignore-warning 1721 | ;gd.jpeg_ignore_warning = 0 1722 | 1723 | [exif] 1724 | ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. 1725 | ; With mbstring support this will automatically be converted into the encoding 1726 | ; given by corresponding encode setting. When empty mbstring.internal_encoding 1727 | ; is used. For the decode settings you can distinguish between motorola and 1728 | ; intel byte order. A decode setting cannot be empty. 1729 | ; http://php.net/exif.encode-unicode 1730 | ;exif.encode_unicode = ISO-8859-15 1731 | 1732 | ; http://php.net/exif.decode-unicode-motorola 1733 | ;exif.decode_unicode_motorola = UCS-2BE 1734 | 1735 | ; http://php.net/exif.decode-unicode-intel 1736 | ;exif.decode_unicode_intel = UCS-2LE 1737 | 1738 | ; http://php.net/exif.encode-jis 1739 | ;exif.encode_jis = 1740 | 1741 | ; http://php.net/exif.decode-jis-motorola 1742 | ;exif.decode_jis_motorola = JIS 1743 | 1744 | ; http://php.net/exif.decode-jis-intel 1745 | ;exif.decode_jis_intel = JIS 1746 | 1747 | [Tidy] 1748 | ; The path to a default tidy configuration file to use when using tidy 1749 | ; http://php.net/tidy.default-config 1750 | ;tidy.default_config = /usr/local/lib/php/default.tcfg 1751 | 1752 | ; Should tidy clean and repair output automatically? 1753 | ; WARNING: Do not use this option if you are generating non-html content 1754 | ; such as dynamic images 1755 | ; http://php.net/tidy.clean-output 1756 | tidy.clean_output = Off 1757 | 1758 | [soap] 1759 | ; Enables or disables WSDL caching feature. 1760 | ; http://php.net/soap.wsdl-cache-enabled 1761 | soap.wsdl_cache_enabled=1 1762 | 1763 | ; Sets the directory name where SOAP extension will put cache files. 1764 | ; http://php.net/soap.wsdl-cache-dir 1765 | 1766 | ; RPM note : cache directory must be owned by process owner 1767 | ; for mod_php, see /etc/httpd/conf.d/php.conf 1768 | ; for php-fpm, see /etc/php-fpm.d/*conf 1769 | soap.wsdl_cache_dir="/tmp" 1770 | 1771 | ; (time to live) Sets the number of second while cached file will be used 1772 | ; instead of original one. 1773 | ; http://php.net/soap.wsdl-cache-ttl 1774 | soap.wsdl_cache_ttl=86400 1775 | 1776 | ; Sets the size of the cache limit. (Max. number of WSDL files to cache) 1777 | soap.wsdl_cache_limit = 5 1778 | 1779 | [sysvshm] 1780 | ; A default size of the shared memory segment 1781 | ;sysvshm.init_mem = 10000 1782 | 1783 | [ldap] 1784 | ; Sets the maximum number of open links or -1 for unlimited. 1785 | ldap.max_links = -1 1786 | 1787 | [mcrypt] 1788 | ; For more information about mcrypt settings see http://php.net/mcrypt-module-open 1789 | 1790 | ; Directory where to load mcrypt algorithms 1791 | ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) 1792 | ;mcrypt.algorithms_dir= 1793 | 1794 | ; Directory where to load mcrypt modes 1795 | ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) 1796 | ;mcrypt.modes_dir= 1797 | 1798 | [dba] 1799 | ;dba.default_handler= 1800 | 1801 | [curl] 1802 | ; A default value for the CURLOPT_CAINFO option. This is required to be an 1803 | ; absolute path. 1804 | ;curl.cainfo = 1805 | 1806 | ; Local Variables: 1807 | ; tab-width: 4 1808 | ; End: 1809 | --------------------------------------------------------------------------------