<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://thelinuxsource.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://thelinuxsource.org/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages</id>
		<title>The Linux Source - New pages [en]</title>
		<link rel="self" type="application/atom+xml" href="http://thelinuxsource.org/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages"/>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Special:NewPages"/>
		<updated>2026-04-15T22:08:13Z</updated>
		<subtitle>From The Linux Source</subtitle>
		<generator>MediaWiki 1.23.15</generator>

	<entry>
		<id>http://thelinuxsource.org/index.php/Permissions</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Permissions"/>
				<updated>2020-05-11T16:55:44Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Basic perms ===&lt;br /&gt;
&lt;br /&gt;
Depending on scripts/processes being run, some only need to read files (read-only), but some need read/write access, to the alternate account (or an application account)&lt;br /&gt;
&lt;br /&gt;
Limitations/Issues&lt;br /&gt;
* additional app/process users will all be set to either all read/write access or all read-only access, if both are needed, ACL's must be used (like in some samba env's)&lt;br /&gt;
* umask may need to be modified where multiple processes are creating files/directories (i.e.; umask settings for both files and directories in samba, umask settings in ftp server configuration, etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multiple users/processes needing access to a single account (or an application account)&lt;br /&gt;
&lt;br /&gt;
1. Add users to proper group&lt;br /&gt;
&lt;br /&gt;
 # usermod -aG appuser nrpe                                                                &lt;br /&gt;
 OR if you have many users                                                                  &lt;br /&gt;
 # for U in nrpe snmp cacti applog ; do usermod -aG appuser $U ; done                      &lt;br /&gt;
&lt;br /&gt;
2. Set directory perms so that new files all belong to the same group&lt;br /&gt;
&lt;br /&gt;
 read-only&lt;br /&gt;
 # find /home/appuser -type d -exec chmod g=rxs '{}' ;&lt;br /&gt;
 read/write&lt;br /&gt;
 # find /home/appuser -type d -exec chmod g=rwxs '{}' ;&lt;br /&gt;
&lt;br /&gt;
3. Optionally set write access, for read/write option&lt;br /&gt;
&lt;br /&gt;
 # find /home/appuser -type f -exec chmod g+w '{}' ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Single user/process needing access to a multiple accounts&lt;br /&gt;
&lt;br /&gt;
1. Add users to proper group&lt;br /&gt;
&lt;br /&gt;
 # usermod -aG buildapp1 scmadmins&lt;br /&gt;
 OR if you have many users&lt;br /&gt;
 # for U in buildapp1 buildapp2 ; do usermod -aG $U scmadmins ; done&lt;br /&gt;
&lt;br /&gt;
2. Set directory perms so that new files all belong to the same group&lt;br /&gt;
&lt;br /&gt;
 read-only&lt;br /&gt;
 # find /home/buildapp1 -type d -exec chmod g=rxs '{}' ;&lt;br /&gt;
 read/write&lt;br /&gt;
 # find /home/buildapp1 -type d -exec chmod g=rwxs '{}' ;&lt;br /&gt;
 OR if you have many users&lt;br /&gt;
 # for U in buildapp1 buildapp2 ; do find /home/$U -type d -exec chmod g=rxs '{}' ; ; done&lt;br /&gt;
&lt;br /&gt;
3. Optionally set write access, for read/write option&lt;br /&gt;
&lt;br /&gt;
 # find /home/buildapp1 -type f -exec chmod g+w '{}' ;                                     &lt;br /&gt;
 OR if you have many users&lt;br /&gt;
 # for U in buildapp1 buildapp2 ; do find /home/$U -type f -exec chmod g+w '{}' ; ; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  ACL's ===&lt;br /&gt;
&lt;br /&gt;
Limitations/Issues&lt;br /&gt;
* umask may need to be modified where multiple processes are creating files/directories (i.e.; umask settings for both files and directories in samba, umask settings in ftp server configuration, etc.)&lt;br /&gt;
&lt;br /&gt;
Note: m - modify, R - recursive, d - default perms (for new files, as opposed to leaving out the -d, which would be existing files)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For a directory tree;&lt;br /&gt;
&lt;br /&gt;
Read/write users;&lt;br /&gt;
&lt;br /&gt;
 # setfacl -Rm u:joe:rw /home/Shared/Reports&lt;br /&gt;
 # setfacl -dRm u:joe:rw /home/Shared/Reports&lt;br /&gt;
&lt;br /&gt;
Read-Only users;&lt;br /&gt;
&lt;br /&gt;
 # setfacl -Rm u:gary:r /home/Shared/Reports&lt;br /&gt;
 # setfacl -dRm u:gary:r /home/Shared/Reports&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For a file;&lt;br /&gt;
&lt;br /&gt;
 # setfacl -m u:joe:rw /home/Shared/Reports/Weekly_Client_Report-20100704.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
ls output&lt;br /&gt;
&lt;br /&gt;
Note: the + means some ACL's have been set&lt;br /&gt;
&lt;br /&gt;
 # ls -ld somedir&lt;br /&gt;
   drwxrwxr-x+ 2 buildapp1 scmadmins 6 May 12 04:08 somedir&lt;br /&gt;
&lt;br /&gt;
 # ls -l somefile&lt;br /&gt;
   -rw-rw-r--+ 1 joe scmadmins 9 May 12 04:12 somefile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
getfacl output&lt;br /&gt;
&lt;br /&gt;
 # getfacl somedir&lt;br /&gt;
   # file: somedir/&lt;br /&gt;
   # owner: lisa&lt;br /&gt;
   # group: staff&lt;br /&gt;
   # flags: -s-&lt;br /&gt;
   user::rwx&lt;br /&gt;
   user:joe:rwx               #effective:r-x&lt;br /&gt;
   group::rwx                 #effective:r-x&lt;br /&gt;
   group:cool:r-x&lt;br /&gt;
   mask::r-x&lt;br /&gt;
   other::r-x&lt;br /&gt;
   default:user::rwx&lt;br /&gt;
   default:user:joe:rwx       #effective:r-x&lt;br /&gt;
   default:group::r-x&lt;br /&gt;
   default:mask::r-x&lt;br /&gt;
   default:other::---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  chmod details/usage ===&lt;br /&gt;
&lt;br /&gt;
 The format for chmod's symbolic mode used in this doc is [ugoa...][[+-=][perms...]...]&lt;br /&gt;
 &lt;br /&gt;
 The letters 'ugoa' control which user/group/etc the access to the file or directory will be changed&lt;br /&gt;
 'u' (user) permissions for the user who owns the file/directory (u)&lt;br /&gt;
 'g' (group) permissions for other users who are members of the group (g)&lt;br /&gt;
 'o' (other) other users that are not in the group permissions (o) (aka world readable)&lt;br /&gt;
 'a' (all) all of the above                                                                &lt;br /&gt;
 The '+-=' operators control how the permissions are set on the file or directory&lt;br /&gt;
 '+' (add) causes the selected permissions to be added to the existing permissions&lt;br /&gt;
 '-' (remove) causes them to be removed&lt;br /&gt;
 '=' (set) causes them to be the only permissions&lt;br /&gt;
 &lt;br /&gt;
 The  letters  'rwxXst' select the new permissions for the affected users:&lt;br /&gt;
 'rwx' (r) read, (w) write, (x) execute (or search/access for directories)&lt;br /&gt;
 'X' execute/search only if the file is a directory or already has execute permission for some user&lt;br /&gt;
 's' set user or group ID on execution&lt;br /&gt;
 't' restricted deletion flag or sticky bit&lt;br /&gt;
 &lt;br /&gt;
 Options (some)&lt;br /&gt;
  -c like verbose but report only when a change is made&lt;br /&gt;
  -R change files and directories recursively&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  setfacl details/usage ===&lt;br /&gt;
&lt;br /&gt;
 Options (some)&lt;br /&gt;
  -b remove all extended ACL entries&lt;br /&gt;
  -d operations apply to the default ACL&lt;br /&gt;
  -k remove the default ACL&lt;br /&gt;
  -m modify the current ACL(s) of file(s)&lt;br /&gt;
  -n don't recalculate the effective rights mask&lt;br /&gt;
  -R recurse into subdirectories&lt;br /&gt;
  -x remove entries from the ACL(s) of file(s)&lt;br /&gt;
  --mask do recalculate the effective rights mask&lt;br /&gt;
  --set  set the ACL of file(s), replacing the current ACL&lt;br /&gt;
  --test test mode (ACLs are not modified)&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Convert_RH/OL_To_CentOS</id>
		<title>Convert RH/OL To CentOS</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Convert_RH/OL_To_CentOS"/>
				<updated>2017-06-14T19:59:42Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: 'cat /etc/redhat-release' shows RedHat or Oracle before these steps&lt;br /&gt;
&lt;br /&gt;
1. browse to the centos repo to get the link for the latest centos-release package, right-click/copy link/url&lt;br /&gt;
 http://mirror.centos.org/centos/5/os/x86_64/CentOS&lt;br /&gt;
 http://mirror.centos.org/centos/6/os/x86_64/Packages&lt;br /&gt;
 http://mirror.centos.org/centos/7/os/x86_64/Packages&lt;br /&gt;
2. wget the package/url (may need to specify a proxy, or use 'curl --proxy sc9-proxy.example.net:3128 -O http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-8.el6.centos.12.3.x86_64.rpm')&lt;br /&gt;
 ENT 5&lt;br /&gt;
 # wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/centos-release-5-11.el5.centos.x86_64.rpm &lt;br /&gt;
 [http://mirror.centos.org/centos/5/os/x86_64/CentOS/centos-release-notes-5.11-0.x86_64.rpm&lt;br /&gt;
 ENT 6&lt;br /&gt;
 # wget http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-9.el6.centos.12.3.x86_64.rpm&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # wget http://mirror.centos.org/centos/7/os/x86_64/Packages/centos-release-7-3.1611.el7.centos.x86_64.rpm&lt;br /&gt;
3. install centos-release (plus release notes dependency for RedHat 5) and remove redhat-release&amp;lt;br&amp;gt;&lt;br /&gt;
Note: 'cat /etc/redhat-release' shows CentOS after this step&lt;br /&gt;
 RedHat 5&lt;br /&gt;
 # rpm -i --force centos-release-5-11.el5.centos.x86_64.rpm centos-release-notes-5.11-0.x86_64.rpm&lt;br /&gt;
 # rpm -e redhat-release-5Server redhat-release-notes-5Server&lt;br /&gt;
 RedHat 6&lt;br /&gt;
 # rpm -i --force centos-release-6-9.el6.centos.12.3.x86_64.rpm&lt;br /&gt;
 # rpm -e redhat-release-server&lt;br /&gt;
 RedHat 7&lt;br /&gt;
 # rpm -e --nodeps redhat-release-server&lt;br /&gt;
 # rm -rf /usr/share/redhat-release /usr/share/doc/redhat-release /etc/system-release-cpe.rpmsave /etc/os-release.rpmsave&lt;br /&gt;
 # rpm -i --force centos-release-7-3.1611.el7.centos.2.10.x86_64.rpm&lt;br /&gt;
4. system can now be subscribed to CentOS spacewalk channel with --force option, or add CentOS-Base.repo to /etc/yum.repos.d/CentOS-Base.repo&lt;br /&gt;
&lt;br /&gt;
5. remove additional RedHat packages and replace with corresponding CentOS packages&lt;br /&gt;
 RedHat 5&lt;br /&gt;
 # yum update redhat-logos&lt;br /&gt;
 # rpm -e redhat-support-tool redhat-support-lib-python redhat-menus htmlview Deployment_Guide-en-US &lt;br /&gt;
 NOTE : order is important for RPM dependencies&lt;br /&gt;
 RedHat 6&lt;br /&gt;
 # rpm -e --nodeps redhat-indexhtml&lt;br /&gt;
 # yum install centos-indexhtml&lt;br /&gt;
 # yum update redhat-logos&lt;br /&gt;
 # rpm -e redhat-support-tool redhat-support-lib-python redhat-access-insights subscription-manager&lt;br /&gt;
 IF you see a yum message about lynx-2.x.x-xx.el6.x86_64 has missing requires of redhat-indexhtml&lt;br /&gt;
 # yum reinstall lynx&lt;br /&gt;
 RedHat 7&lt;br /&gt;
 # rpm -e --nodeps redhat-indexhtml redhat-logos&lt;br /&gt;
 # yum install centos-indexhtml centos-logos&lt;br /&gt;
 # yum update abrt redhat-menus&lt;br /&gt;
 # rpm -e redhat-support-tool redhat-support-lib-python redhat-access-insights subscription-manager Red_Hat_Enterprise_Linux-Release_Notes-7-en-US&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Distro</id>
		<title>Distro</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Distro"/>
				<updated>2017-06-14T19:59:28Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;CentOS  RedHat  OracleLinux  Convert RH/OL To CentOS&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[CentOS]]&lt;br /&gt;
&lt;br /&gt;
[[RedHat]]&lt;br /&gt;
&lt;br /&gt;
[[OracleLinux]]&lt;br /&gt;
&lt;br /&gt;
[[Convert RH/OL To CentOS]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/LogAnalyzer_Mods</id>
		<title>LogAnalyzer Mods</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/LogAnalyzer_Mods"/>
				<updated>2017-06-12T20:44:16Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PARENT PAGE LINK: [[LogAnalyzer]]&lt;br /&gt;
&lt;br /&gt;
===  Purging mySQL database ===&lt;br /&gt;
This rsyslog configuration writes everything to a mySql database, as well as to the standard log files. The OS has the logrotate process to manage the log files, but if you wish to manage or periodically purge the mySql data, you can set up the following cron job (thanks to Michael Meckelein for posting this in a forum):&amp;lt;br&amp;gt;&lt;br /&gt;
NOTE: you may want to setup another user which has delete permissions (like syslog-purge) to do the periodic cleanup for this cron process&lt;br /&gt;
 mysql -u syslog-purge -p somepwA -e “delete from SystemEvents where ReceivedAt &amp;lt; date_add(current_date, interval -28 day)” Syslog&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/LogAnalyzer</id>
		<title>LogAnalyzer</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/LogAnalyzer"/>
				<updated>2017-06-12T20:40:14Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PARENT PAGE LINK: [[Syslog]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[LogAnalyzer Setup]]&lt;br /&gt;
&lt;br /&gt;
[[LogAnalyzer Mods]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/SSH</id>
		<title>SSH</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/SSH"/>
				<updated>2017-06-01T00:36:03Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Policy ===&lt;br /&gt;
{include:SSH-Policy}&lt;br /&gt;
&lt;br /&gt;
===  Key Usage/Issues ===&lt;br /&gt;
* Only public keys should be on the various servers (required for external facing systems; ex: app systems, proxy servers, sc9-admin1), and the critical private keys should be on an internal 'admin' type box (such as a grid server, puppet master, or other trusted host system).&lt;br /&gt;
&lt;br /&gt;
* Our laptops must not be configured with a key such that it can automatically connect to an externally available server. This is required, due to the security around our products, since we're allowed to take our laptops outside of the office, and they occasionally get stolen.&lt;br /&gt;
&lt;br /&gt;
* Keys should not be automatically invoked. when generating keys, do not take the default filename (which will automatically get used for all ssh related connections), but use a different filename which includes the name of the system it was generated on, and a name for the function the key will be used for (ex; id_dsa-app1_named for syncing DNS/named configs to the various nameservers, 'named' is the user that the process is running under).&lt;br /&gt;
&lt;br /&gt;
* When keys are used, they should be locked down to access from specific systems (authorized_keys file), and disallow any port forwarding that can be initiated by a user or hacker, AND if possible, locked down to a specific command, ex;&lt;br /&gt;
 # cat authorized_keys&lt;br /&gt;
 # remote commands, no ssh (no pty) but works with scp/sftp&lt;br /&gt;
 from=&amp;quot;200.140.190.210,172.170.180.120&amp;quot;,no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1...&lt;br /&gt;
 OR&lt;br /&gt;
 # remote commands &amp;amp; ssh (w/pty)&lt;br /&gt;
 from=&amp;quot;200.140.190.210,172.170.180.120&amp;quot;,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1...&lt;br /&gt;
 OR&lt;br /&gt;
 # a single remote command (you would need an entry for each command allowed, or have one key per command)&lt;br /&gt;
 command=&amp;quot;/bin/myscript&amp;quot;,from=&amp;quot;200.140.190.210,172.170.180.120&amp;quot;,no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1...&lt;br /&gt;
 OR&lt;br /&gt;
 # a single remote scp copy (you would need an entry for each directory allowed, or have one key per directory)&lt;br /&gt;
 command=&amp;quot;/usr/bin/scp -p -t /home/appuser/data&amp;quot;,from=&amp;quot;200.140.190.210,172.170.180.120&amp;quot;,no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1...&lt;br /&gt;
 OR&lt;br /&gt;
 # a single remote rsync copy (you would need an entry for each directory allowed, or have one key per directory)&lt;br /&gt;
 command=&amp;quot;/usr/bin/rsync --server -logDtpre.iLs --partial . /home/appuser/data&amp;quot;,from=&amp;quot;200.140.190.210,172.170.180.120&amp;quot;,no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1...&lt;br /&gt;
&lt;br /&gt;
* Keys should not be under a normal application user account, if possible..&amp;lt;br&amp;gt;&lt;br /&gt;
Explanation/example;&amp;lt;br&amp;gt;&lt;br /&gt;
The appuser contains the perms for the app (for the app running as appuser), plus this acct is used generally for deployments and making any changes to the app. Anyone using this account, or breaching this acct, would have access to all the other envs/servers, if such a key existed.&lt;br /&gt;
&lt;br /&gt;
Solution:&amp;lt;br&amp;gt;&lt;br /&gt;
The applog user is used to pull logs out of an appuser log dir and the transfer keys are owned by applog user, appuser does not have access/perms to the key to get to all the other envs. In this particular case, the group for the appuser home dir was set to applog, and the group perms were set to read-only (r-x for dir, r-- for files). The applog user is not an actual account (cannot login directly, like the appuser acct cannot login directly), but is used by an automated script that is pulling the logs. To further define 'pulling', only public keys exist on the individual servers (must be this way (w/a public key), if system is external facing), and the logs are copied from a central/internal system (appadmin1).&lt;br /&gt;
&lt;br /&gt;
===  Key Setup Example / Trusted Host Setup Example ===&lt;br /&gt;
example for hostname gwikip-nhpm1&amp;lt;br&amp;gt;&lt;br /&gt;
1. generate key on an internal/admin system/trusted host system (not allowed on systems with public IP's), naming convention is id_rsa-`hostname -s`_`whoami` OR (optional) id_rsa-`hostname -s`_`whoami`-keyfunctionORscriptname&amp;lt;br&amp;gt;&lt;br /&gt;
Note: as mentioned above; default path/default keys MUST NOT BE USED (keys must not be automatically picked up/used by ssh), using a particular key must be specified with ssh/scp/sftp/rsync options, hostname field in the naming convention can be `hostname -s` or another abbreviated representation of the host (enough to distinguish that particular host)&lt;br /&gt;
 # ssh-keygen&lt;br /&gt;
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa-nhpm1_root&lt;br /&gt;
&lt;br /&gt;
2. remove domain info (leave `hostname -s` at end of key but remove the domain, .prd.example.com, .stg.example.net, etc.) and lock down the pub key (the key that gets pushed out to the various systems)&amp;lt;br&amp;gt;&lt;br /&gt;
Note: check the list of possible lockdown strings above, use of the non-shell (non-tty) lockdown is preferred, but may not work for your use case (scenario)&lt;br /&gt;
 # vi /root/.ssh/id_rsa-nhpm1_root.pub&lt;br /&gt;
 CHANGE (example)&lt;br /&gt;
 ...BtJ9bww== ice@gwikip-nhpm1.prd.example.net&lt;br /&gt;
 TO&lt;br /&gt;
 ...BtJ9bww== ice@gwikip-nhpm1&lt;br /&gt;
 AND add&lt;br /&gt;
 from=&amp;quot;172.220.210.130&amp;quot;,no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1...&lt;br /&gt;
 OR&lt;br /&gt;
 from=&amp;quot;172.220.210.130&amp;quot;,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC1...&lt;br /&gt;
&lt;br /&gt;
3. setup the .pub key on the other systems which this internal box needs to access&lt;br /&gt;
3a. copy the .pub key to another system&lt;br /&gt;
 # scp -pP 222 /root/.ssh/id_rsa-nhpm1_root.pub yourlogin@glis1p-nhpm1r1:/tmp/&lt;br /&gt;
3b. connect to that system to setup the key&lt;br /&gt;
 # ssh -p 222 yourlogin@gwikip-nhpm1r1&lt;br /&gt;
3c. become the user you are setting up the key for (usually an app user), in this case; root&lt;br /&gt;
 # su -&lt;br /&gt;
 OR&lt;br /&gt;
 # sudo su - webapp&lt;br /&gt;
3d. make sure the .ssh dir exists, if not, you can have it automatically generated with the proper permissions for SSH&amp;lt;br&amp;gt;&lt;br /&gt;
Note: answer 'yes' but don't login (simply answering 'yes' creates the dir and sets the perms)&lt;br /&gt;
 # ssh -p 222 localhost&lt;br /&gt;
3e. copy the .pub key into the .ssh dir and copy it into/append it to the authorized_keys file&lt;br /&gt;
 # cat /tmp/id_rsa-nhpm1_root.pub &amp;gt;~/.ssh/id_rsa-nhpm1_root.pub&lt;br /&gt;
 # cp ~/.ssh/id_rsa-nhpm1_root.pub ~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
4. On Trusted Host systems for an application, we normally add all application users (wikiapp, webapp, hornetq, oracle, etc.) to the trusted host, and setup keys for each user to be able to connect to the nodes/systems which have one of those accounts. For general accounts like root and monitoring users (monupdate), the keys would be distributed to all systems in that application env (Beagle Production, Squawk QA, etc.).&lt;br /&gt;
!th.jpg|thumbnail!&lt;br /&gt;
&lt;br /&gt;
===  Reference ===&lt;br /&gt;
Locking Down Specific Users&amp;lt;br&amp;gt;&lt;br /&gt;
Note: this is just some additional info on how to do something like this, this is not currently used on any of our systems&amp;lt;br&amp;gt;&lt;br /&gt;
User Fred cannot access anything outside of his home directory (cannot see /tmp/, /etc/, etc..)&lt;br /&gt;
 Match User fred.jones&lt;br /&gt;
    ChrootDirectory %h&lt;br /&gt;
Note: %h refers to the home directory of the user&lt;br /&gt;
&lt;br /&gt;
Trusted Host Reverse Copy (forall suite of scripts)&lt;br /&gt;
 # forall p-all 'cp -p /etc/postfix/main.cf /tmp/main.cf-$(hostname -s)'&lt;br /&gt;
 # forcpr p-all /tmp/main.cf-* /tmp/&lt;br /&gt;
&lt;br /&gt;
===  SSH Clients ===&lt;br /&gt;
If you are using a windows system, you should be able to run putty (Google for putty)&amp;lt;br&amp;gt;&lt;br /&gt;
If you are using a Mac (or Linux) system, you can use command line ssh if you open a Terminal window. Syntax would be something like:&lt;br /&gt;
 # ssh -p 222 user@hostname&lt;br /&gt;
 # ssh -p 222 jerry.jones@ops-smail1.prd.example.com&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Tricks/Reference</id>
		<title>Tricks/Reference</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Tricks/Reference"/>
				<updated>2017-05-30T20:58:26Z</updated>
		
		<summary type="html">&lt;p&gt;Support: /* Developer Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Developer Mode ===&lt;br /&gt;
On the Settings screen, scroll down to the bottom and select About phone or About tablet. Find the Build number and tap on it seven times.&amp;lt;br&amp;gt;A Developer options menu will now appear in the Settings screen&lt;br /&gt;
&lt;br /&gt;
=== System UI Tuner ===&lt;br /&gt;
More fine-grained control of notifications, more control over your status bar and its pull-down menus, etc&lt;br /&gt;
1. Pull down the notification shade twice (to expose the Quick Settings menu), then press and hold the cog icon for a few seconds.&amp;lt;br&amp;gt;&lt;br /&gt;
It will begin to spin, then a little wrench icon will appear next to it—this is your indicator that the System UI Tuner has been enabled&lt;br /&gt;
&lt;br /&gt;
2. Scroll all the way down to the bottom of the Settings menu. Depending on what version of Android you’re using, “System UI Tuner” will either be the last or next-to-last option in this menu&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/ADB</id>
		<title>ADB</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/ADB"/>
				<updated>2017-05-30T20:57:03Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Useful Docs ===&lt;br /&gt;
ADB is part of the Platform Tools software - https://developer.android.com/studio/releases/platform-tools.html&amp;lt;br&amp;gt;&lt;br /&gt;
Update Images/Manual update steps/commands - https://developers.google.com/android/ota&amp;lt;br&amp;gt;&lt;br /&gt;
Factory Images/Manual update steps/commands - https://developers.google.com/android/images&amp;lt;br&amp;gt;&lt;br /&gt;
USB Vendor Device ID List - https://developer.android.com/studio/run/device.html#VendorIds&lt;br /&gt;
&lt;br /&gt;
=== Update (OTA) Image Steps ===&lt;br /&gt;
Note: requires adb tool, download an appropriate image, and verify checksum&amp;lt;br&amp;gt;&lt;br /&gt;
1. With the device powered on and USB debugging enabled (in Developer mode/menu on the phone), reboot into recovery mode&lt;br /&gt;
 # adb reboot recovery&lt;br /&gt;
2. Ready the device to accept an update&amp;lt;br&amp;gt;&lt;br /&gt;
Hold the Power button and press Volume Up once, and a menu will appear. Select: Apply update from ADB.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Check if you system see the device and that it is ready, should show up with &amp;quot;sideload&amp;quot; next to its name&lt;br /&gt;
 # adb devices&lt;br /&gt;
4. Update the device&lt;br /&gt;
 # adb sideload ota_file.zip&lt;br /&gt;
5. Once the update finishes, reboot the device by choosing: Reboot system now&lt;br /&gt;
6. Disable USB debugging on the Developer menu, for security, it should not be active when the device is not being updated&lt;br /&gt;
&lt;br /&gt;
=== Factory Image Steps ===&lt;br /&gt;
Note: requires adb tool, unlock the bootloader, download an appropriate image, verify checksum, and unzip the image&amp;lt;br&amp;gt;&lt;br /&gt;
1. Run the flash-all script. This script installs the necessary bootloader, baseband firmware(s), and operating system&lt;br /&gt;
 # ./flash-all.sh&lt;br /&gt;
2. Lock your bootloader&lt;br /&gt;
&lt;br /&gt;
=== Unlock Bootloader ===&lt;br /&gt;
1. With the device powered on and USB debugging and OEM unlocking enabled (in Developer mode/menu on the phone), reboot into fastboot mode&lt;br /&gt;
 # adb reboot bootloader&lt;br /&gt;
2. Unlock the bootloader. The target device will show you a confirmation screen. (This erases all data on the target device.)&lt;br /&gt;
2a. If you are updating a newer device (2015 and later devices, like Nexus 5X or Nexus 6P using hammerhead or angler builds)&lt;br /&gt;
 # fastboot flashing unlock&lt;br /&gt;
2b. OR, If you are updating an older device (2014 and earlier)&lt;br /&gt;
 # fastboot oem unlock&lt;br /&gt;
&lt;br /&gt;
=== Lock Bootloader ===&lt;br /&gt;
1. With the device powered on and USB debugging and OEM unlocking enabled (in Developer mode/menu on the phone), reboot into fastboot mode&lt;br /&gt;
 # adb reboot bootloader&lt;br /&gt;
2. Lock the bootloader. This will wipe the data (not the OS) on some devices.&lt;br /&gt;
2a. If you are updating a newer device (2015 and later devices, like Nexus 5X or Nexus 6P using hammerhead or angler builds)&lt;br /&gt;
 # fastboot flashing lock&lt;br /&gt;
2b. OR, If you are updating an older device (2014 and earlier)&lt;br /&gt;
 # fastboot oem lock&lt;br /&gt;
3. Disable OEM unlocking (in Developer mode/menu on the phone)&lt;br /&gt;
&lt;br /&gt;
=== Adding ADB To Path ===&lt;br /&gt;
Temporary&lt;br /&gt;
 # export PATH=$PATH:/path/to/adb/dir&lt;br /&gt;
Permanent&amp;lt;br&amp;gt;&lt;br /&gt;
add the Temporary line to the end of the .bashrc for the user&lt;br /&gt;
 # vi ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
=== Linux udev Rules ===&lt;br /&gt;
If running adb on Linux, you may need to setup udev to allow access to your android device over USB&amp;lt;br&amp;gt;&lt;br /&gt;
Add a udev rules file that contains a USB configuration for each device you want to use for adb/development (you may want to view files in /etc/udev/rules.d/ to check syntax for your specific udev version). Each device manufacturer is identified by a unique vendor ID, as specified by the ATTR{idVendor} property. There is a list of these ID's available, but you can get this information from dmesg (dmesg|tail) after plugging in your device via USB.&amp;lt;br&amp;gt;&lt;br /&gt;
As root, create /etc/udev/rules.d/51-android.rules with contents similar to this&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTR{idVendor}==&amp;quot;18d1&amp;quot;, MODE=&amp;quot;0666&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
Note: MODE specifies read/write permissions, GROUP defines which Unix group owns the device node.&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Rsyslog</id>
		<title>Rsyslog</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Rsyslog"/>
				<updated>2017-05-22T23:46:11Z</updated>
		
		<summary type="html">&lt;p&gt;Support: /* Docs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PARENT PAGE LINK: [[Syslog]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Docs ===&lt;br /&gt;
http://www.rsyslog.com/guides-for-rsyslog/&lt;br /&gt;
&lt;br /&gt;
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/ch-Viewing_and_Managing_Log_Files.html (7.4.x)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.rsyslog.com/doc/v7-stable/&lt;br /&gt;
&lt;br /&gt;
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Viewing_and_Managing_Log_Files.html (5.8.x)&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.rsyslog.com/doc/v5-stable/&lt;br /&gt;
&lt;br /&gt;
=== Logfile Format ===&lt;br /&gt;
Older Rsyslog versions were not logging in a traditional syslog format, and fields like time &amp;amp; date were not human-readble. To modify its behaviour and make the logs more decipherable, we would add or uncomment the following line (this may be the default on newer Rsyslog versions, but has not been verified)&lt;br /&gt;
 # Use traditional timestamp format&lt;br /&gt;
 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Katello</id>
		<title>Katello</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Katello"/>
				<updated>2017-05-22T17:59:48Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: Katello has been merged into Foreman as a Foreman plugin https://theforeman.org/plugins/katello&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Install Foreman https://theforeman.org/manuals/latest/quickstart_guide.html&amp;lt;br&amp;gt;&lt;br /&gt;
Install/setup the Katello plugin https://theforeman.org/plugins&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Satellite/Spacewalk/Katello</id>
		<title>Satellite/Spacewalk/Katello</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Satellite/Spacewalk/Katello"/>
				<updated>2017-05-22T17:28:38Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Satellite]]&lt;br /&gt;
&lt;br /&gt;
[[Spacewalk]]&lt;br /&gt;
&lt;br /&gt;
[[Foreman/Katello]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Rsyslog_client</id>
		<title>Rsyslog client</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Rsyslog_client"/>
				<updated>2017-05-19T23:17:52Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Support moved page Rsyslog client to Rsyslog Client without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PARENT PAGE LINK: [[Syslog]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. See generic [[Rsyslog]] page for other config options&lt;br /&gt;
&lt;br /&gt;
2. /etc/rsyslog.conf, add @sys.log.server.ip lines to the bottom of the file (optionally add logging rules, example lines are commented out at the bottom of a default rsyslog.conf file)&lt;br /&gt;
 UDP:&lt;br /&gt;
 # centralized logging&lt;br /&gt;
 *.* @172.160.135.160:514&lt;br /&gt;
 OR TCP:&lt;br /&gt;
 # centralized logging&lt;br /&gt;
 *.* @@172.160.135.160:514&lt;br /&gt;
&lt;br /&gt;
3. Restart rsyslog service&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl restart rsyslog&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service rsyslog restart&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Rsyslog_server</id>
		<title>Rsyslog server</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Rsyslog_server"/>
				<updated>2017-05-19T21:41:38Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PARENT PAGE LINK: [[Syslog]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. See generic [[Rsyslog]] page for other config options&lt;br /&gt;
&lt;br /&gt;
2. Update /etc/rsyslog.conf, add the following line to end of ModLoad/MODULES section to enable the desired server mode&lt;br /&gt;
 UDP:&lt;br /&gt;
 # UDP server module&lt;br /&gt;
 $ModLoad imudp&lt;br /&gt;
 # enable UDP server and port&lt;br /&gt;
 $UDPServerRun 514&lt;br /&gt;
 OR TCP:&lt;br /&gt;
 # TCP server module&lt;br /&gt;
 $ModLoad imtcp                                                                  &lt;br /&gt;
 # enable TCP server and port&lt;br /&gt;
 $InputTCPServerRun 514                                                          &lt;br /&gt;
&lt;br /&gt;
3. Restart rsyslog service&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl restart rsyslog&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service rsyslog restart&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/MySQL/MariaDB_Reference</id>
		<title>MySQL/MariaDB Reference</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/MySQL/MariaDB_Reference"/>
				<updated>2017-05-19T21:17:34Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*List Databases&lt;br /&gt;
  mysql&amp;gt; show databases;&lt;br /&gt;
&lt;br /&gt;
*List Tables&lt;br /&gt;
  mysql&amp;gt; show tables;&lt;br /&gt;
&lt;br /&gt;
*Change Passwords&amp;lt;br&amp;gt;&lt;br /&gt;
Note: the mysqladmin command should be run from a shell script, so as to not have this critical password exposed in the command history (preferred/more secure method) - make sure to delete the shell script after running&lt;br /&gt;
  # mysqladmin -u root password 'new-password'&lt;br /&gt;
&lt;br /&gt;
*Delete Database&lt;br /&gt;
  mysql&amp;gt; drop database test;&lt;br /&gt;
&lt;br /&gt;
*Creating a new DB and assigning permissions&lt;br /&gt;
&lt;br /&gt;
Command line/scripted&amp;lt;br&amp;gt;&lt;br /&gt;
Note: the echo command should be run from a shell script, so as to not have a critical password exposed in the command history (preferred/more secure method) - make sure to delete the shell script after running&lt;br /&gt;
  # mysqladmin -p create wikidb&lt;br /&gt;
  # echo &amp;quot;grant index, create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by 'password';&amp;quot; | mysql -p&lt;br /&gt;
&lt;br /&gt;
mySQL command line&amp;lt;br&amp;gt;&lt;br /&gt;
Note: this is added to the mysql command history (not a good idea to leave the password exposed):&lt;br /&gt;
  # mysql -p&lt;br /&gt;
  mysql&amp;gt; create database wikidb;&lt;br /&gt;
  mysql&amp;gt; grant index, create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by 'password';&lt;br /&gt;
&lt;br /&gt;
*Table Structure&lt;br /&gt;
 describe SystemEvents;&lt;br /&gt;
&lt;br /&gt;
*View Data (Some Query Examples)&lt;br /&gt;
 select * from user;&lt;br /&gt;
 select Host,User,Grant_priv from user;&lt;br /&gt;
 select Host,Db,User,Grant_priv from db;&lt;br /&gt;
 select * from SystemEvents where SysLogTag='CROND';&lt;br /&gt;
 select * from SystemEvents limit 5;&lt;br /&gt;
 select * from SystemEvents where SysLogTag like '%[%' limit 5; &lt;br /&gt;
&lt;br /&gt;
*Modify Data&lt;br /&gt;
 update SystemEvents set SysLogTag='CROND:' where SysLogTag='CROND';&lt;br /&gt;
 update SystemEvents set SysLogTag='sshd:' where SysLogTag like 'sshd[%';&lt;br /&gt;
&lt;br /&gt;
*Delete From Table&lt;br /&gt;
 delete from SystemEvents where SysLogTag='CROND';&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/MySQL/MariaDB</id>
		<title>MySQL/MariaDB</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/MySQL/MariaDB"/>
				<updated>2017-05-19T21:15:04Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Overview ===&lt;br /&gt;
mySQL is depreciated in favor of the mariaDB replacement in newer OS version (i.e. &amp;gt;=7). mariaDB is created by the previous mySQL team, but the mySQL name is now owned by Oracle Corporation (so they had to change it). The new server package (yum install) is now mariadb, but the client/command line names are still mysql.&lt;br /&gt;
&lt;br /&gt;
[[MySQL/MariaDB Setup]]&lt;br /&gt;
&lt;br /&gt;
[[MySQL/MariaDB Reference]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/LogAnalyzer</id>
		<title>LogAnalyzer</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/LogAnalyzer"/>
				<updated>2017-05-18T00:08:11Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PARENT PAGE LINK: [[LogAnalyzer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: this document has been used with the following loganalyzer versions: 3.0.2 (and a few before 3.0.2), 4.1.5&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
 Rsyslog - any version that supports/includes the mySQL module or has the rsyslog-mysql rpm available&lt;br /&gt;
 MySQL/MariaDB - See [[MySQL/MariaDB Setup]] to make sure you have MySQL or MariaDB set up/running&lt;br /&gt;
 Apache - any version, but please use something recent, or the version included with a distro that is still receiving updates&lt;br /&gt;
 PHP - most versions, but please use something recent, or the version included with a distro that is still receiving updates&lt;br /&gt;
&lt;br /&gt;
===  Software Setup ===&lt;br /&gt;
1. Install rsyslog and PHP mySQL modules&lt;br /&gt;
 # yum install rsyslog-mysql php-mysql&lt;br /&gt;
&lt;br /&gt;
2. Get the latest loganalyzer package (http://loganalyzer.adiscon.com/) and copy to /tmp&lt;br /&gt;
&lt;br /&gt;
3. Uncompress and move to standard RedHat/CentOS compatible 3rd party software location (/usr/share)&amp;lt;br&amp;gt;&lt;br /&gt;
NOTE: 4.1.5 is probably not the version being installed, please use the version number being  installed in place of 4.1.5&lt;br /&gt;
 # mkdir /tmp/work-syslog ; cd /tmp/work-syslog/&lt;br /&gt;
 # tar xzvf /tmp/loganalyzer-4.1.5.tar.gz&lt;br /&gt;
 # mkdir /usr/share/loganalyzer-4.1.5 /usr/share/doc/loganalyzer-4.1.5&lt;br /&gt;
 # mv loganalyzer-4.1.5/* /usr/share/doc/loganalyzer-4.1.5/&lt;br /&gt;
 # mv /usr/share/doc/loganalyzer-4.1.5/src/* /usr/share/loganalyzer-4.1.5/&lt;br /&gt;
 # mv /usr/share/doc/loganalyzer-4.1.5/doc/* /usr/share/doc/loganalyzer-4.1.5/&lt;br /&gt;
 # rm -rf /usr/share/doc/loganalyzer-4.1.5/doc /usr/share/doc/loganalyzer-4.1.5/src /usr/share/loganalyzer-4.1.5/doc&lt;br /&gt;
 # ln -s /usr/share/loganalyzer-4.1.5 /usr/share/loganalyzer&lt;br /&gt;
 # touch /usr/share/loganalyzer-4.1.5/config.php&lt;br /&gt;
 # chown apache.apache /usr/share/loganalyzer-4.1.5/config.php&lt;br /&gt;
&lt;br /&gt;
===  Rsyslog Server Setup ===&lt;br /&gt;
1. set up user and grant proper perms;&lt;br /&gt;
 # mysql -p mysql&lt;br /&gt;
 mysql&amp;gt; grant insert on Syslog.* to 'syslog-insert'@'localhost' identified by 'somepwA';&lt;br /&gt;
 mysql&amp;gt; flush privileges;&lt;br /&gt;
&lt;br /&gt;
2. Update /etc/rsyslog.conf, make sure the following lines are added&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following to the end of the ModLoad/MODULES section&lt;br /&gt;
 # enable mySql plugin/module&lt;br /&gt;
 $ModLoad ommysql&lt;br /&gt;
Add the following to the beginning of the logging/RULES section (before #kern.* line)&lt;br /&gt;
 # log all to mySql&lt;br /&gt;
 *.*       :ommysql:127.0.0.1,Syslog,syslog-insert,somepwA&lt;br /&gt;
&lt;br /&gt;
3. Create database/tables&lt;br /&gt;
 # mysql -p &amp;lt;/usr/share/doc/rsyslog-mysql-*/createDB.sql&lt;br /&gt;
&lt;br /&gt;
4. Restart rsyslog service&lt;br /&gt;
 # service rsyslog restart&lt;br /&gt;
&lt;br /&gt;
=== Apache Setup ===&lt;br /&gt;
NOTE: this assumes this is on the company image, which creates most of the needed dirs/files/configs)&amp;lt;br&amp;gt;&lt;br /&gt;
1. setup doc root&amp;lt;br&amp;gt;&lt;br /&gt;
NOTE: syslog1 is the short hostname (hostname -s) of the system you are installing on&lt;br /&gt;
 # cd /home/httpd/syslog1/&lt;br /&gt;
 # rm -rf public_html&lt;br /&gt;
 # ln -s /usr/share/loganalyzer-3.0.2 public_html&lt;br /&gt;
2. setup vhost file&amp;lt;br&amp;gt;&lt;br /&gt;
add the following to /etc/httpd/conf/vhost-ssl.d/0-syslog1 (hostname -s) after ServerAdmin and before proxy section&amp;lt;br&amp;gt;&lt;br /&gt;
Note: enabling the use of a symlink is done for the dir in which the symlink resides&lt;br /&gt;
 &amp;lt;Directory /home/httpd/syslog1&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
3. enable php&lt;br /&gt;
 # cp -p /etc/httpd/conf.d/php.conf /etc/httpd/conf.d-run/&lt;br /&gt;
4. start up or restart apache (and make sure it starts on boot)&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl start httpd&lt;br /&gt;
 # systemctl enable httpd&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service httpd restart&lt;br /&gt;
 # chkconfig httpd on&lt;br /&gt;
&lt;br /&gt;
===  Web Interface Setup ===&lt;br /&gt;
1. setup user and permissions&lt;br /&gt;
 # mysql -p&lt;br /&gt;
 mysql&amp;gt; grant select, update, insert, create, drop, alter on Syslog.* to 'syslog-read'@'localhost' identified by 'somepwB';&lt;br /&gt;
 mysql&amp;gt; flush privileges;&lt;br /&gt;
&lt;br /&gt;
2. web interface configuration&amp;lt;br&amp;gt;&lt;br /&gt;
2a. go to the new URL (configured in; Web Interface setup, step 3a) in a browser, you will get the following message;&lt;br /&gt;
 Error, main configuration file is missing!&lt;br /&gt;
2b. click 'here' on the following message;&lt;br /&gt;
 Click here to Install Adiscon LogAnalyzer!&lt;br /&gt;
2c. click 'next' on the following page;&lt;br /&gt;
 Step 1 - Prerequisites&lt;br /&gt;
2d. click 'next' on the following page;&lt;br /&gt;
 Step 2 - Verify File Permissions&lt;br /&gt;
2e. click 'next' on the following page;&lt;br /&gt;
 Step 3 - Basic Configuration&lt;br /&gt;
2f. Fill in the following and click 'next';&lt;br /&gt;
 Source Type: MYSQL Native&lt;br /&gt;
 Database Name: Syslog&lt;br /&gt;
 Database Tablename: SystemEvents&lt;br /&gt;
 Database User: syslog-read&lt;br /&gt;
 Database Password: somepwB&lt;br /&gt;
2g. Click 'here' on the following message;&lt;br /&gt;
 Step 8 - Done&lt;br /&gt;
 Click here to go to your installation.&lt;br /&gt;
&lt;br /&gt;
===  Web Interface Fix ===&lt;br /&gt;
There was an issue (in older vers), that appeared more than once (possibly due to apache or php settings), where a config was populated but was not usable due to missing values. The following needed to be set in this situation to configure these settings for their default values&amp;lt;br&amp;gt;&lt;br /&gt;
1. fix config.php&amp;lt;br&amp;gt;&lt;br /&gt;
1a. edit config.php&lt;br /&gt;
 # vi /usr/share/loganalyzer-3.0.2/config.php&lt;br /&gt;
1b. set ViewMessageCharacterLimit&lt;br /&gt;
 $CFG['ViewMessageCharacterLimit'] = 80;&lt;br /&gt;
1c. set ViewStringCharacterLimit&lt;br /&gt;
 $CFG['ViewStringCharacterLimit'] = 30;&lt;br /&gt;
1d. set ViewEntriesPerPage&lt;br /&gt;
 $CFG['ViewEntriesPerPage'] = 50;&lt;br /&gt;
1e. set ViewEnableDetailPopups&lt;br /&gt;
 $CFG['ViewEnableDetailPopups'] = 1;&lt;br /&gt;
1f. set EnableIPAddressResolve&lt;br /&gt;
 $CFG['EnableIPAddressResolve'] = 1;&lt;br /&gt;
&lt;br /&gt;
===  Client Rsyslog Setup ===&lt;br /&gt;
configure clients to connect to this central syslog server [[Rsyslog Client]]&lt;br /&gt;
&lt;br /&gt;
===  Recreating mySQL database ===&lt;br /&gt;
If you have to recreate mySQL data from scratch (due to corruption, or other issues)&amp;lt;br&amp;gt;&lt;br /&gt;
1. make sure mysql is down&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl stop mariadb&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service mysqld stop&lt;br /&gt;
&lt;br /&gt;
2. wipe out all the data (make sure this is what you want to do, otherwise if you are wiping it out due to running out of diskspace or database corruption, google how to repair mysql/mariadb innodb databases)&lt;br /&gt;
 # rm -rf /var/lib/mysql/* /var/lib/mysql/.my*&lt;br /&gt;
&lt;br /&gt;
3. restart mysql&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl start mariadb&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service mysqld start&lt;br /&gt;
&lt;br /&gt;
4. purge unneeded users (link)&lt;br /&gt;
&lt;br /&gt;
5. rebuild mysql &amp;amp; loganalyzer tables&amp;lt;br&amp;gt;&lt;br /&gt;
Rerun the following steps from above&lt;br /&gt;
 Rsyslog Server Setup; step 1&lt;br /&gt;
 Server mySQL Setup; steps 2-4&lt;br /&gt;
 Web Interface Setup; step 1&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Syslog</id>
		<title>Syslog</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Syslog"/>
				<updated>2017-05-17T21:49:17Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Rsyslog]]&lt;br /&gt;
&lt;br /&gt;
[[Rsyslog Client]]&lt;br /&gt;
&lt;br /&gt;
[[Rsyslog Server]]&lt;br /&gt;
&lt;br /&gt;
[[LogAnalyzer]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Kickstart</id>
		<title>Kickstart</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Kickstart"/>
				<updated>2017-05-10T06:27:54Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;===  Policy === {{Kickstart-Policy}}  ===  Running Kickstart === *Preamble* Instructions assume you have logged into one of the local kickstart servers (on example.net) and ha...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Policy ===&lt;br /&gt;
{{Kickstart-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  Running Kickstart ===&lt;br /&gt;
*Preamble*&lt;br /&gt;
Instructions assume you have logged into one of the local kickstart servers (on example.net) and have sudo'd to the ks user, ex;&lt;br /&gt;
 # ssh -p 222 sj-ks1&lt;br /&gt;
 # sudo su - ks&lt;br /&gt;
&lt;br /&gt;
1a. When building a new system, our standard is CentOS. Please try to use Enterprise 7 for everything, unless there is a specific requirement to use 6 (even when rebuilding older env's that were built under 5, per Dev Teams requirements, we've been building them under 6 instead).&lt;br /&gt;
&lt;br /&gt;
When building a hadoop mgmt node, use the app image and specify these users;&lt;br /&gt;
 hadoop hdfs mapred hbase zookeeper hue cloudera-scm hive&lt;br /&gt;
&lt;br /&gt;
When building a hadoop slave node (data/jobtracker/mapreduce nodes), use the hadoop image for the hardware you're using, and specify these users (note: hadoop image now adds these users, add these users if not using the hadoop image);&lt;br /&gt;
 hadoop hdfs mapred hbase&lt;br /&gt;
&lt;br /&gt;
1b. Run the config build script (it is OK to ^C out of the process and run it again);&lt;br /&gt;
 # mkks&lt;br /&gt;
&lt;br /&gt;
2a. If you are building a VM, please configure at least the following minimum requirements (also required for physical systems, but they are normally higher than these values by default).&lt;br /&gt;
{{defaults}}&lt;br /&gt;
&lt;br /&gt;
2b. Connect a server to the build network. If this is a new VM with an new unformatted disk, you should get the PXE menu upon booting. Alternately, you can hit F12 during the BIOS screen to get the PXE menu. If your VM already has a formatted disk and you are having trouble PXE booting; hit F12 to PXE boot, hit ESC for boot menu, or delete and re-add your hard disk.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: use Firefox if kicking a Dell, IE has issues with the F12 button&lt;br /&gt;
&lt;br /&gt;
3. choose the entry with the new hostname from the PXE menu&lt;br /&gt;
&lt;br /&gt;
4. reboot&lt;br /&gt;
&lt;br /&gt;
5. login to your new system, change the password (for the new/secure password settings, it was changed to; changeM3now!), and check for OS security updates;&lt;br /&gt;
 # ssh -p 222 `newsystem`&lt;br /&gt;
 # passwd&lt;br /&gt;
 note: see the Updates section below about pushing updates back into kickstart for your next build&lt;br /&gt;
 # yum update&lt;br /&gt;
&lt;br /&gt;
6. all avail space is allocated to /home, due to this, we would normally move other user/process dirs requiring space to /home (normally ice &amp;amp; mysql, do not move /var/www - this dir should not be used for any of our sites/functionality). Please do not change configs or home paths (passwd file), and please continue to refer to these dirs via their original location (/var/lib/ice, /var/lib/mysql, etc). There will be many many scripts/configs that would have to be changed, it's much easier to stay with their current path designations (as long as you have the link for the existing configs/scripts to continue working). Examples;&lt;br /&gt;
 # cd /var/lib ; mv ice /home/ ; ln -s /home/ice&lt;br /&gt;
 # cd /var/lib ; mv mysql /home/ ; ln -s /home/mysql&lt;br /&gt;
&lt;br /&gt;
7. cleanup; remove your new hostname from the PXE menu on kickstart, move your hostname.cfg file to the &amp;quot;old&amp;quot; dir (don't delete it), kickstart is now efi enabled, which has it's own/separate PXE menu (now there are 2 PXE menu files)&lt;br /&gt;
 # mv ~/ks.cfg/hostname.cfg ~/ks.cfg/old/&lt;br /&gt;
 On older 5.x systems (:wn to get to next file);&lt;br /&gt;
 # vi /tftpboot/pxelinux.cfg/default /tftpboot/efidefault&lt;br /&gt;
 On newer 6.x systems (:wn to get to next file);&lt;br /&gt;
 # vi /var/lib/tftpboot/pxelinux.cfg/default /var/lib/tftpboot/efidefault&lt;br /&gt;
&lt;br /&gt;
8. maintenance; kickstart is highly customized for our company, and patching can break bug fixes.&lt;br /&gt;
Please refer to /home/ks/scripts/* on any kickstart server as a reference. Of special note is the OSfixes script.&lt;br /&gt;
&lt;br /&gt;
===  Suggestions ===&lt;br /&gt;
If you run into any issues or have suggestions, please email support, and/or add them to:&lt;br /&gt;
[[Kickstart ToDo List]]&lt;br /&gt;
&lt;br /&gt;
===  Layout ===&lt;br /&gt;
 iso (OS) files are in ~/iso/&lt;br /&gt;
 mkks configs are in ~/bin/&lt;br /&gt;
 lists of profiles/configs avail are in ~/bin/mkks.lists&lt;br /&gt;
 list of iso's avail are in ~/bin/mkks.iso&lt;br /&gt;
 ks.cfg configs are in ~/ks.cfg/&lt;br /&gt;
 software (non-OS) is in ~/software/ (java, nrpe, etc..)&lt;br /&gt;
 boot menu is at /tftpboot/pxelinux.cfg/default or /var/lib/tftpboot/pxelinux.cfg/default (depending on OS ver)&lt;br /&gt;
 boot (pxe) files are in /tftpboot/images/ or /var/lib/tftpboot/images/ (depending on OS ver)&lt;br /&gt;
 (the iso &amp;amp; pxe dir (images) tree's should be an identical directory structure)&lt;br /&gt;
&lt;br /&gt;
===  Replicating kickstart files ===&lt;br /&gt;
tar up the master ks home dir, and use scripts/ksdiff to audit, when updating ks servers (should be a svn checkout/export);&lt;br /&gt;
 cd ; tar cjvf /tmp/ks.tbz --exclude=.svn --exclude=iso --exclude=bin/mkks.conf --exclude=bin/mkks.iso --exclude=ks.cfg/comps --exclude=ks.cfg/old --exclude=ks.cfg/*.cfg --exclude=ks.cfg/*.prf --include=hostname.prf-sample* --exclude=ks.cfg/templates/old --exclude=stage --exclude=software/desktop *&lt;br /&gt;
Note: if creating a new kickstart server, a bin/mkks.iso will have to be created for the iso's that have been downloaded/copied to that system (see bin/mkks.iso-sample). Also, the tftp path may need to be modified in bin/mkks.conf (both examples are there for 6.x, or a pre-6.x env). The following packages are required; dhcp tftp-server xinetd syslinux (nfs is also, but is part of kernel / is already there). The ~/scripts/kson may be helpful, to startup services for the 1st time. Example configs are in ~/ks.cfg/etc/ (so they can be checked into subversion), and tftp boot files are in ~/ks.cfg/tftpboot/.&lt;br /&gt;
&lt;br /&gt;
===  Updates ===&lt;br /&gt;
1. Updates can be pushed to the kickstart system and they'll get applied to a new system during build time. Normally the updates are not saved and are removed from the system after the update process. To save updates (so they can be pushed to kickstart), edit yum.conf and change keepcache to 1, before applying any of the updates;&lt;br /&gt;
 # vi /etc/yum.conf&lt;br /&gt;
&lt;br /&gt;
2. After updating your system, the update files can be pushed to kickstart. The files from the 'cachedir' defined in yum.conf (usually /var/cache/yum/updates/packages/ or /var/cache/yum/x86_64/6Server/rhel-x86_64-server-6/packages/ for RedHat 6.x) will need to be copied to the kickstart server, into the appropriate iso/`distro`/`ver`/updates dir (note, if you built a CentOS 5.2 system and have updated it to 5.3, put the updates under 5.2, NOT 5.3 - if you built a CentOS 5.5 system, the updates would go in iso/CentOS/5.5/updates/)&lt;br /&gt;
&lt;br /&gt;
3. Make sure and turn off the keepcache setting and remove the leftover updates files;&lt;br /&gt;
 # vi /etc/yum.conf&lt;br /&gt;
 # rm -f /var/cache/yum/updates/packages/* (or /var/cache/yum/x86_64/6Server/rhel-x86_64-server-6/packages/* for RedHat 6.x)&lt;br /&gt;
&lt;br /&gt;
===  Files we touch ===&lt;br /&gt;
[[Kickstart Files Changed]]&lt;br /&gt;
&lt;br /&gt;
===  ISO Integration ===&lt;br /&gt;
1. periodically new Distro versions need to be added to the iso &amp;amp; tftpboot/images dir. Here is an example with a fictitious CentOS 9.7;&lt;br /&gt;
 # mkdir -p ~/iso/CentOS/9.7/x86_64&lt;br /&gt;
 # mkdir -p path-to-tftpboot-dir/images/CentOS/9.7/x86_64&lt;br /&gt;
 # cd ~/iso/CentOS/9.7/x86_64&lt;br /&gt;
 (download new iso(s) into this dir)&lt;br /&gt;
 # sudo mount -o loop CentOS-9.7-x86_64-bin-DVD.iso /mnt/cdrom&lt;br /&gt;
 # cp -p /mnt/cdrom/images/pxeboot/[org8io8public:iv]* path-to-tftpboot-dir/images/CentOS/9.7/x86_64/&lt;br /&gt;
 (there is a new step for 6.x; mkdir images ; cp -p /mnt/cdrom/images/install.img images/ ; cp -p /mnt/cdrom/images/product.img images/)&lt;br /&gt;
 # sudo umount /mnt/cdrom&lt;br /&gt;
 (add new iso versions to /home/ks/bin/mkks.iso, convention is to have the highest/latest version only)&lt;br /&gt;
 # vi ~/bin/mkks.iso&lt;br /&gt;
&lt;br /&gt;
===  New Kickstart Server Setup ===&lt;br /&gt;
1. Kickstart a new system with latest CentOS (currently 6.x) and add the ks user and the ksadmins group&lt;br /&gt;
&lt;br /&gt;
2. Install needed packages&lt;br /&gt;
 # yum install dhcp tftp-server xinetd syslinux&lt;br /&gt;
&lt;br /&gt;
3. Grab lastest kickstart setup from subversion under ks user, OR, on sj-ks1, cd to and tar the /home/work/ks dir excluding the subversion tracking files (cd /home/work/ks ; tar cjvf /tmp/ks.tbz [!i]* --exclude=.svn)&lt;br /&gt;
&lt;br /&gt;
4. As root, copy various configs;&lt;br /&gt;
 # chmod o+r /home/ks&lt;br /&gt;
 # chown ks:ks /var/lib/tftpboot/&lt;br /&gt;
 # cat /home/ks/ks.cfg/etc/exports &amp;gt;/etc/exports&lt;br /&gt;
 # cp -p /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf-original&lt;br /&gt;
 # cat /home/ks/ks.cfg/etc/dhcpd.conf &amp;gt;/etc/dhcp/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
5. setup secondary network interface on 192.168.0.1 per example NIC config;&lt;br /&gt;
 # cat /home/ks/ks.cfg/etc/ifcfg-eth1&lt;br /&gt;
 # vi /etc/sysconfig/network-scripts/ifcfg-eth1&lt;br /&gt;
 # ifup eth1&lt;br /&gt;
&lt;br /&gt;
6. startup services&lt;br /&gt;
 /home/ks/scripts/kson&lt;br /&gt;
&lt;br /&gt;
7. As ks user, copy various configs;&lt;br /&gt;
 # rsync -a ~/ks.cfg/tftpboot/ /var/lib/tftpboot/&lt;br /&gt;
 # mkdir -p /var/lib/tftpboot/images/{CentOS,RedHat,Oracle}&lt;br /&gt;
 # mkdir -p ~/iso/{CentOS,RedHat,Oracle}&lt;br /&gt;
&lt;br /&gt;
8. Create mkks.conf and mkks.iso files in bin from the sample files provided, mkks.iso has the list of iso files that were downloaded to the new system based on the steps in the ISO section (previous section above). The main build script (mkks) will also look for a mkks.lists-$DOMDEF (if it's set to xyz.com, it will look for a mkks.lists-xyz.com), which may be helpful if you're not using a company domain, but still syncing with a company kickstart.&lt;br /&gt;
&lt;br /&gt;
===  Building Custom ISO/USB Flash Image ===&lt;br /&gt;
1. extract the DVD into a temporary work area&lt;br /&gt;
 # mkdir /home/kickstart/iso ; cd /home/kickstart/iso&lt;br /&gt;
 # mount -o loop /home/kickstart/CentOS-7-x86_64-DVD-1511.iso /mnt/cdrom&lt;br /&gt;
 # rsync -a /mnt/cdrom/* .&lt;br /&gt;
 # cp -p /mnt/cdrom/.discinfo .&lt;br /&gt;
 IF there's a 2nd DVD:&lt;br /&gt;
 # mount -o loop /home/kickstart/CentOS-6-x86_64-DVD2.iso /mnt/cdrom&lt;br /&gt;
 # rsync -a /mnt/cdrom/Packages/* Packages/&lt;br /&gt;
&lt;br /&gt;
2. modify isolinux/isolinux.cfg file&lt;br /&gt;
2a. set timeout, change the following (timeout 0 means to never timeout, so don't set it to 0 unless you want to sit at the menu, and not jump right into the automated installation);&lt;br /&gt;
 FROM:&lt;br /&gt;
 timeout 600&lt;br /&gt;
 TO:&lt;br /&gt;
 timeout 1&lt;br /&gt;
&lt;br /&gt;
2b. change 'linux' menu section;&amp;lt;br&amp;gt;&lt;br /&gt;
NOTE: label must match the original distro iso's label&lt;br /&gt;
 CHECK/ADD (under &amp;quot;menu label ..&amp;quot; line), if not there already:&lt;br /&gt;
 menu default&lt;br /&gt;
 CHANGE, remove the &amp;quot;quiet&amp;quot; argument on the append line, ex:&lt;br /&gt;
 append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 quiet&lt;br /&gt;
 TO, and add a kickstart line:&lt;br /&gt;
 append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 inst.ks=hd:LABEL=CentOSx207x20x86_64:/ks.cfg/ks-c7a.cfg&lt;br /&gt;
&lt;br /&gt;
2c. remove the following line from all other menu sections (like the DVD &amp;quot;check&amp;quot; menu);&lt;br /&gt;
 menu default&lt;br /&gt;
&lt;br /&gt;
3. copy the needed files from a kickstart system (the software tarball will be quite large);&lt;br /&gt;
Note: in your temporary work area for building your iso or USB image, you might want to remove 'software' files for other releases, i.e. if you are building a CentOS 7 image, remove all the el5 &amp;amp; el6 files, ex; rm -f software/*/*.el[56].*&lt;br /&gt;
 IN /home/ks on a kickstart system;&lt;br /&gt;
 # tar cjvf /tmp/ks-min.tbz ks.cfg/ks-c7a.cfg scripts&lt;br /&gt;
 # tar cjvf /tmp/ks-sw.tbz software&lt;br /&gt;
 IN /home/kickstart/iso on your build system;&lt;br /&gt;
 # tar xjf /home/kickstart/ks-min.tbz&lt;br /&gt;
 # tar xjf /home/kickstart/ks-sw.tbz&lt;br /&gt;
 REMOVE the following;&lt;br /&gt;
 # rm -rf software/certs.prd&lt;br /&gt;
 (assuming you're not installing any of these)&lt;br /&gt;
 # rm -rf software/jboss&lt;br /&gt;
 # rm -rf software/oracle&lt;br /&gt;
 # rm -rf software/hornetq&lt;br /&gt;
 # rm -rf software/ice&lt;br /&gt;
 # rm -rf software/vmware&lt;br /&gt;
 IF not needed (if not doing a Desktop install/etc);&lt;br /&gt;
 # rm -rf software/desktop&lt;br /&gt;
 SETUP users &amp;amp; groups files (remove unneeded users, add needed users);&lt;br /&gt;
 # vi scripts/mkusers/users scripts/mkusers/groups&lt;br /&gt;
 REMOVE rest of company user info;&lt;br /&gt;
 # rm -f scripts/mkusers/users[.-]*                                                                                                                                                   &lt;br /&gt;
 # rm -f scripts/mkusers/ufx-*                                                                                                                                                        &lt;br /&gt;
 # rm -f scripts/mkusers/groups-master&lt;br /&gt;
&lt;br /&gt;
4. build the bootable media&lt;br /&gt;
4a. build a DVD .iso file. make sure the mkiso software is installed, and run the mkiso command;&lt;br /&gt;
 # yum install genisoimage&lt;br /&gt;
 # mkisofs -o /home/iso/CentOS-7.2-x86_64-kick-20160114a.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -boot-info-table -R -J -v -T iso/&lt;br /&gt;
 OR&lt;br /&gt;
4b. build a bootable USB Flash drive. plug a USB Flash into your system, make it linux bootable (will be ext2)&lt;br /&gt;
 # fdisk /dev/sdb&lt;br /&gt;
 # mkfs /dev/sdb1&lt;br /&gt;
 NOTE: label must match the original distro iso's label&lt;br /&gt;
 # e2label /dev/sdb1 &amp;quot;CentOS 7 x86_64&amp;quot;&lt;br /&gt;
 # yum install syslinux syslinux-extlinux&lt;br /&gt;
 # cat /usr/share/syslinux/mbr.bin &amp;gt;/dev/sdb&lt;br /&gt;
 # mount /dev/sdb1 /mnt/cdrom/&lt;br /&gt;
 # rsync -a iso/ /mnt/cdrom/&lt;br /&gt;
 # mv /mnt/cdrom/isolinux /mnt/cdrom/syslinux&lt;br /&gt;
 # mv /mnt/cdrom/syslinux/&lt;br /&gt;
 # cd /mnt/cdrom/syslinux/isolinux.cfg /mnt/cdrom/syslinux/syslinux.cfg&lt;br /&gt;
 # extlinux -i .&lt;br /&gt;
&lt;br /&gt;
Optional: Minimizing packages (.rpm's)&lt;br /&gt;
To save room on the DVD disk or USB Flash drive (and to make it easier to copy/replicate), you might want to minimize the repository of available packages (after the install it pulls any new packages from the internet). The easiest way to determine the list of packages needed, is to do an install based on your current ks.cfg. Once you have an installed system, you can just save the 'rpm -qa' output and remove all files except the ones needed for your install (this saved us over 3.5G on our first DVD).&lt;br /&gt;
 # cd Packages&lt;br /&gt;
 # for OLDFILE in * ; do FILE=$(echo &amp;quot;$OLDFILE&amp;quot; | sed 's/.rpm$//') ; if ! grep &amp;quot;^$FILE$&amp;quot; /home/kickstart/rpm-qa_c7a.txt &amp;gt;/dev/null ; then echo &amp;quot;deleting $OLDFILE..&amp;quot; ; rm -f $OLDFILE ; fi ; done&lt;br /&gt;
 # cd ..&lt;br /&gt;
 # cp repodata/*-comps.xml.gz ../comps.xml.gz                                              &lt;br /&gt;
 # gunzip ../comps.xml.gz                                                                  &lt;br /&gt;
 # yum install createrepo                                                                                                                                                             &lt;br /&gt;
 # createrepo -g ../comps.xml .&lt;br /&gt;
 # rm -f repodata/*-comps.xml*&lt;br /&gt;
&lt;br /&gt;
===  Setting grub password ===&lt;br /&gt;
Enterprise 7&lt;br /&gt;
1. The following command will ask for a password and change grub config files (creates /boot/grub2/user.cfg)&lt;br /&gt;
 # grub2-setpassword&lt;br /&gt;
&lt;br /&gt;
Ent 4/5/6&lt;br /&gt;
1. create password hash. The following will ask for a password and display a sha512 hash of the password&lt;br /&gt;
 # grub-crypt&lt;br /&gt;
&lt;br /&gt;
2. edit grub config and add/change the password&lt;br /&gt;
 # vi /boot/grub/grub.conf&lt;br /&gt;
 ADD/edit the following line (should be after the timeout line)&lt;br /&gt;
 password --encrypted $6$XrbtG7T7KxjKCYEz$uo4QGG9d5kEJkvVv7JBg3jB.kphXGpanpdDj7MGqsHHcdZpCOUP2dJjFI1db7RdcD.CzesOpmEEIjdqwAOEY2/&lt;br /&gt;
&lt;br /&gt;
===  Reference ===&lt;br /&gt;
Disks &amp;gt;2Tb&amp;lt;br&amp;gt;&lt;br /&gt;
when using kickstart on systems that have drives greater than 2.2Tb (tested on ent 6, probably not needed on ent 7), add the following to the ks.cfg profile that was generated for the system being kicked (if modifying partitions on these systems, use gdisk, don't use fdisk)&lt;br /&gt;
 %pre&lt;br /&gt;
 parted -s /dev/sda mklabel gpt&lt;br /&gt;
 %end&lt;br /&gt;
&lt;br /&gt;
Legacy eth* NIC Names&amp;lt;br&amp;gt;&lt;br /&gt;
to force NIC naming to legacy eth* convention, use the following kernel params&lt;br /&gt;
 BEFORE ENT 7&lt;br /&gt;
 biosdevname=0&lt;br /&gt;
 ENT 7&lt;br /&gt;
 net.ifnames=0&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Legacy_INIT_vs_systemd</id>
		<title>Legacy INIT vs systemd</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Legacy_INIT_vs_systemd"/>
				<updated>2017-05-10T06:01:52Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Preamble&amp;lt;br&amp;gt;&lt;br /&gt;
SysVinit (before Enterprise 7) was the standard init scripts &amp;amp; init structure everyone has gotten familiar with, using service &amp;amp; chkconfig commands, with Enterprise 7 we have systemd which no longer uses the traditional init scripts or SysVinit init script location, and uses the systemctl command&lt;br /&gt;
&lt;br /&gt;
===  Init Scripts Locations ===&lt;br /&gt;
(existing ones are good examples for creating new ones)&amp;lt;br&amp;gt;&lt;br /&gt;
SysVinit:&lt;br /&gt;
 /etc/init.d/ - the actual init scripts&lt;br /&gt;
 /etc/rc.d/rc#.d/ - # for the different run levels, having symlinks to the actual init scripts in /etc/init.d/&lt;br /&gt;
&lt;br /&gt;
systemd:&lt;br /&gt;
 /usr/lib/systemd/system/ - for system/OS related config files (analogous to init scripts)&lt;br /&gt;
 /etc/systemd/system/ &amp;amp; /etc/systemd/system/*/ - symlinks to the actual init scripts (there are no &amp;quot;run levels&amp;quot; per se, at least not &amp;quot;run level&amp;quot; numbers)&lt;br /&gt;
 /run/systemd/system/ - temporary runtime generated scripts (overrides system scripts)&lt;br /&gt;
 /etc/systemd/user/ - user created scripts (overrides runtime scripts)&lt;br /&gt;
&lt;br /&gt;
===  Quick Reference ===&lt;br /&gt;
(.service is optional, and is assumed)&lt;br /&gt;
 # systemctl status name[.service]&lt;br /&gt;
 # systemctl enable name[.service]&lt;br /&gt;
 # systemctl disable name[.service]&lt;br /&gt;
 # systemctl start name[.service]&lt;br /&gt;
 # systemctl stop name[.service]&lt;br /&gt;
 # systemctl restart name[.service]&lt;br /&gt;
 # systemctl reload name[.service]&lt;br /&gt;
 # systemctl is-active name[.service]&lt;br /&gt;
 # systemctl list-units --type service --all&lt;br /&gt;
 # systemctl list-units --type target --all&lt;br /&gt;
 # systemctl get-default&lt;br /&gt;
 # systemctl set-default graphical.target&lt;br /&gt;
&lt;br /&gt;
===  systemd Logging ===&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Find</id>
		<title>Find</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Find"/>
				<updated>2017-05-10T05:55:55Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;Cleanup/remove files older than 14 days  # find /path/dir -daystart -mtime +14 -type f -delete  Find/change dir perms (or execute a command based on find)  # find /path/dir -t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cleanup/remove files older than 14 days&lt;br /&gt;
 # find /path/dir -daystart -mtime +14 -type f -delete&lt;br /&gt;
&lt;br /&gt;
Find/change dir perms (or execute a command based on find)&lt;br /&gt;
 # find /path/dir -type d -exec chmod g+rxs '{}'\;&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Shell</id>
		<title>Shell</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Shell"/>
				<updated>2017-05-10T05:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;Awk  Bash  Find  Perl - command line quickies  Sed&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Awk]]&lt;br /&gt;
&lt;br /&gt;
[[Bash]]&lt;br /&gt;
&lt;br /&gt;
[[Find]]&lt;br /&gt;
&lt;br /&gt;
[[Perl]] - command line quickies&lt;br /&gt;
&lt;br /&gt;
[[Sed]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/MySQL/MariaDB</id>
		<title>MySQL/MariaDB</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/MySQL/MariaDB"/>
				<updated>2017-05-10T04:15:27Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. install packages&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # yum install mariadb-server mariadb&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # yum install mysql-server mysql&lt;br /&gt;
&lt;br /&gt;
2. set to start at bootup&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl enable mariadb&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # chkconfig mysqld on&lt;br /&gt;
&lt;br /&gt;
3. start mysql server&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl start mariadb&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service mysqld start&lt;br /&gt;
&lt;br /&gt;
4. secure mysql; setup root password, disallow root remote access, remove test database&lt;br /&gt;
 # mysql_secure_installation&lt;br /&gt;
 answer Y to all of the questions and set root password  (sometimes same as OS root pw - NOT A GOOD IDEA!)&lt;br /&gt;
 OR (see [[Changing Passwords]] for issues before running)&lt;br /&gt;
 # mysqladmin -u root password 'new-password'&lt;br /&gt;
 # mysql -p mysql&lt;br /&gt;
 mysql&amp;gt; delete from user where User!='root';&lt;br /&gt;
 mysql&amp;gt; delete from user where Host!='localhost';&lt;br /&gt;
 mysql&amp;gt; delete from db;&lt;br /&gt;
 mysql&amp;gt; drop database test;&lt;br /&gt;
&lt;br /&gt;
5. remove additional/unneeded root acct&lt;br /&gt;
 # mysql -p&lt;br /&gt;
 mysql&amp;gt; use mysql;&lt;br /&gt;
 mysql&amp;gt; delete from user where Host='127.0.0.1';&lt;br /&gt;
&lt;br /&gt;
6. move database directory&amp;lt;br&amp;gt; &lt;br /&gt;
6a. stop mysql first&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl stop mariadb&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service mysqld stop&lt;br /&gt;
6b. move db directory to a partition that has space (/home or the partition which has space allocated for applications)&lt;br /&gt;
 # cd /var/lib ; mv mysql /home/ ; ln -s /home/mysql&lt;br /&gt;
6c. start mysql&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # systemctl start mariadb&lt;br /&gt;
 BEFORE Ent 7&lt;br /&gt;
 # service mysqld start&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/ABRT</id>
		<title>ABRT</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/ABRT"/>
				<updated>2017-05-10T04:08:53Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;====  Disabling Correctly ==== To disable correctly, all abrt services should be disabled via chkconfig (or systemctl) and the services stopped (Note: ccpp is a kernel loadabl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====  Disabling Correctly ====&lt;br /&gt;
To disable correctly, all abrt services should be disabled via chkconfig (or systemctl) and the services stopped (Note: ccpp is a kernel loadable module, the stop command should rmmod it, and status should show that it is unloaded):&lt;br /&gt;
 ENT 6 or earlier:&lt;br /&gt;
 # chkconfig abrtd off&lt;br /&gt;
 # chkconfig abrt-ccpp off&lt;br /&gt;
 # chkconfig abrt-oops off&lt;br /&gt;
 # service abrt-ccpp stop&lt;br /&gt;
 # service abrt-oops stop&lt;br /&gt;
 # service abrtd stop&lt;br /&gt;
 OR, more correctly (some systems have more abrt modules installed)&lt;br /&gt;
 # for FILE in /etc/init.d/abrt-* ; do SERVICE=$(basename $FILE) ; chkconfig $SERVICE off ; service $SERVICE stop ; done ; chkconfig abrtd off ; service abrtd stop&lt;br /&gt;
 ENT 7&lt;br /&gt;
 # for SERVICE in $(systemctl list-unit-files | grep 'abrt-' | awk '{print $1}') ; do systemctl disable $SERVICE ; systemctl stop $SERVICE ; done ; systemctl disable abrtd ; systemctl stop abrtd&lt;br /&gt;
&lt;br /&gt;
====  Running/Fixing Email ====&lt;br /&gt;
If enabled, it needs to be setup to have a valid From: (EmailFrom=) address (defaults to user@localhost, which causes it to bounce/not be accepted by our mail servers)&lt;br /&gt;
 # cat /etc/libreport/plugins/mailx.conf&lt;br /&gt;
 &lt;br /&gt;
 # Uncomment and specify these parameters if you want to use&lt;br /&gt;
 # reporter-mailx tool outside of libreport's GUI&lt;br /&gt;
 # (i.e. from command line or in custom scripts)&lt;br /&gt;
 # and you don't want to specify parameters in every tool invocation.&lt;br /&gt;
 #&lt;br /&gt;
 # String parameters:&lt;br /&gt;
 # Subject=&lt;br /&gt;
 # EmailFrom=&lt;br /&gt;
 # EmailTo=&lt;br /&gt;
 #&lt;br /&gt;
 # Boolean parameter:&lt;br /&gt;
 # SendBinaryData=yes/no&lt;br /&gt;
SET THESE (minimal settings needed to fix email routing):&lt;br /&gt;
 EmailFrom=sa-general@example.net&lt;br /&gt;
 EmailTo=sa-general@example.net&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Apache</id>
		<title>Apache</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Apache"/>
				<updated>2017-05-10T02:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Support: /* Files/Directories Layout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Policy ===&lt;br /&gt;
{{Apache-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  Overview ===&lt;br /&gt;
Our Changes&amp;lt;br&amp;gt;&lt;br /&gt;
The Apache configuration has been modified slightly to address several security concerns.&amp;lt;br&amp;gt;&lt;br /&gt;
When installing additional apache modules, and some optional software, a config file is added to the conf.d directory, which automatically enables the module/software by default. However, most of these are not actually wanted or needed, nor ever get used. In our case, these end up being disabled by default, since we actually use a conf.d-run directory instead (the module/software configs that are actually needed/desired are copied from conf.d to conf.d-run).&amp;lt;br&amp;gt;&lt;br /&gt;
We also create vhost.d (for http URL's) and vhost-ssl.d (for https URL's) directories for virtual host/URL config files. Our current policy is to also include a 0-mask file in these directories which does not serve out any of the sites (when going to the servers IP), but require a valid URL to get to a real/application page.&amp;lt;br&amp;gt;&lt;br /&gt;
There are some slight differences with enterprise 7 (and newer/Fedora), which changes the vhost naming, with conf.vhost.d and conf.vhost-ssl.d directories. 7 also adds a conf.modules.d, and thus has our corresponding conf.modules.d-run directory is configured/added.&amp;lt;br&amp;gt;&lt;br /&gt;
SSL/Certificates&amp;lt;br&amp;gt;&lt;br /&gt;
For IP/certs used for any/all URL's, the first cert defined for the IP (in our mask file) is the cert used for all subsequent URL definitions for that IP (essentially all other cert directives are unused/ignored). To use more than one cert (or more than one domain where wildcard certs are used), additional IP's would need to be used (and the mask section duplicated for the additional IP).&amp;lt;br&amp;gt;&lt;br /&gt;
Note: recent changes to kickstart no longer install a cert on every system. This breaks Apache, as it will not start out of the chute from kickstart. Install a valid prod or non-prod cert via yum to resolve.&amp;lt;br&amp;gt;&lt;br /&gt;
Note: 2.2.9 added support for ProxyPassReverse balancer://&lt;br /&gt;
&lt;br /&gt;
===  Documentation References ===&lt;br /&gt;
Enterprise 6&lt;br /&gt;
 http://httpd.apache.org/docs/2.2/&lt;br /&gt;
 http://httpd.apache.org/docs/2.2/mod/mod_proxy.html&lt;br /&gt;
 http://httpd.apache.org/docs/2.2/howto/auth.html&lt;br /&gt;
&lt;br /&gt;
Enterprise 7&lt;br /&gt;
 http://httpd.apache.org/docs/2.4/&lt;br /&gt;
 http://httpd.apache.org/docs/2.4/mod/mod_proxy.html&lt;br /&gt;
 http://httpd.apache.org/docs/2.4/howto/auth.html&lt;br /&gt;
&lt;br /&gt;
===  VHost Example ===&lt;br /&gt;
Note: the mask section we put in a file named 0-mask (we add the '0-' so it shows up in the dir listing first, i.e. it gets loaded first by apache), the real virtual host (or many virtual host files) should be in their own file(s) based on their URL(s) (a file named 'syslog' in this case)&lt;br /&gt;
&lt;br /&gt;
 # mask server name &amp;amp; url's&lt;br /&gt;
 &amp;lt;VirtualHost 172.16.1.11:443&amp;gt;&lt;br /&gt;
    ServerName 172.16.1.11&lt;br /&gt;
    DocumentRoot /home/httpd/syslog1/public_html&lt;br /&gt;
 &lt;br /&gt;
    # ssl settings&lt;br /&gt;
    Header edit Set-Cookie ^(.*)$ $1;Secure;HttpOnly&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/pki/tls/certs/star.example.com.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/pki/tls/private/star.example.com.key&lt;br /&gt;
    SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle.crt&lt;br /&gt;
    #SSLCARevocationFile /etc/pki/tls/certs/LatestCRL.pem&lt;br /&gt;
 &lt;br /&gt;
    # uncomment if used for the real url's below&lt;br /&gt;
    #SSLVerifyClient require&lt;br /&gt;
    #SSLVerifyDepth  10&lt;br /&gt;
    #SSLCACertificateFile /etc/pki/tls/certs/companyCA.crt&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # real url's below&lt;br /&gt;
 &amp;lt;VirtualHost 172.16.1.11:443&amp;gt;&lt;br /&gt;
    ServerName syslog.example.com&lt;br /&gt;
    ServerAlias syslog1.prd.example.net syslog1&lt;br /&gt;
    DocumentRoot /home/httpd/syslog1/public_html&lt;br /&gt;
    ServerAdmin webmaster@example.com&lt;br /&gt;
 &lt;br /&gt;
    SetOutputFilter DEFLATE&lt;br /&gt;
 &lt;br /&gt;
    # settings for being a proxy&lt;br /&gt;
    #ProxyTimeout 1200&lt;br /&gt;
    #ProxyStatus Full&lt;br /&gt;
    #Header add Set-Cookie &amp;quot;ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/&amp;quot; env=BALANCER_ROUTE_CHANGED&lt;br /&gt;
    # load balancer settings for multiple app servers&lt;br /&gt;
    #&amp;lt;Proxy balancer://cluster1&amp;gt;&lt;br /&gt;
    #   BalancerMember http://172.16.1.12:8080 route=1&lt;br /&gt;
    #   BalancerMember http://172.16.1.13:8080 route=2&lt;br /&gt;
    #   ProxySet stickysession=ROUTEID&lt;br /&gt;
    #&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
    #ProxyPass        /apache-info      !&lt;br /&gt;
    #ProxyPass        /apache-status    !&lt;br /&gt;
    #ProxyPass        /balancer-manager !&lt;br /&gt;
    #ProxyPass        /jmx-console      !&lt;br /&gt;
    #ProxyPass        /web-console      !&lt;br /&gt;
    # single app server settings&lt;br /&gt;
    #ProxyPass        /               http://172.16.1.12:8080/app-path/&lt;br /&gt;
    #ProxyPassReverse /               http://172.16.1.12:8080/app-path/&lt;br /&gt;
    # multiple app servers settings&lt;br /&gt;
    #ProxyPass / balancer://cluster1/app-path/&lt;br /&gt;
    #ProxyPassReverse / balancer://cluster1/app-path/&lt;br /&gt;
 &lt;br /&gt;
    # turn on some minimal caching (on disk) - causes issues where authentication is used&lt;br /&gt;
    #CacheEnable disk /&lt;br /&gt;
    #CacheRoot &amp;quot;/var/cache/mod_proxy&amp;quot;&lt;br /&gt;
    #CacheDirLevels 3&lt;br /&gt;
    #CacheDirLength 5&lt;br /&gt;
    #CacheIgnoreCacheControl On&lt;br /&gt;
    #CacheMaxFileSize 100000&lt;br /&gt;
    #CacheIgnoreNoLastMod On&lt;br /&gt;
    #CacheMaxExpire 1209600&lt;br /&gt;
    #CacheIgnoreQueryString On&lt;br /&gt;
 &lt;br /&gt;
    # ssl settings&lt;br /&gt;
    Header edit Set-Cookie ^(.*)$ $1;Secure;HttpOnly&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/pki/tls/certs/star.example.com.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/pki/tls/private/star.example.com.key&lt;br /&gt;
    SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle.crt&lt;br /&gt;
    #SSLCARevocationFile /etc/pki/tls/certs/LatestCRL.pem&lt;br /&gt;
 &lt;br /&gt;
    # require client certs&lt;br /&gt;
    #SSLVerifyClient require&lt;br /&gt;
    #SSLVerifyDepth  10&lt;br /&gt;
    #SSLCACertificateFile /etc/pki/tls/certs/companyCA.crt&lt;br /&gt;
 &lt;br /&gt;
    # logging&lt;br /&gt;
    ErrorLog logs/syslog1-error_log&lt;br /&gt;
    # for log analyzers&lt;br /&gt;
    CustomLog logs/syslog1-access_log combined&lt;br /&gt;
    # for humans&lt;br /&gt;
    CustomLog logs/syslog1-custom_log custom&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VirtualHost line should have :80 instead of :443 if not ssl/https (and should be in vhost.d dir)&lt;br /&gt;
All SSL* lines are ssl only, do not include these if not ssl/https&lt;br /&gt;
Proxy* lines are only if this is a proxy for another app server(s) or a local app (use appropriate IP's)&lt;br /&gt;
&lt;br /&gt;
===  Proxy VHost Example ===&lt;br /&gt;
Note: the mask section should be/is in a file named 0-mask, the real virtual host(s) (syslog in this case) should be in their own file(s) based on their URL (a file named 'syslog' in this case)&lt;br /&gt;
&lt;br /&gt;
 # mask server name &amp;amp; url's&lt;br /&gt;
 &amp;lt;VirtualHost 172.16.1.11:443&amp;gt;&lt;br /&gt;
    ServerName 172.16.1.11&lt;br /&gt;
    DocumentRoot /home/httpd/syslog1/public_html&lt;br /&gt;
 &lt;br /&gt;
    # ssl settings&lt;br /&gt;
    Header edit Set-Cookie ^(.*)$ $1;Secure;HttpOnly&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/pki/tls/certs/star.example.com.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/pki/tls/private/star.example.com.key&lt;br /&gt;
    SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle.crt&lt;br /&gt;
    #SSLCARevocationFile /etc/pki/tls/certs/LatestCRL.pem&lt;br /&gt;
 &lt;br /&gt;
    # uncomment if used for the real url's below&lt;br /&gt;
    # require client certs&lt;br /&gt;
    #SSLVerifyClient require&lt;br /&gt;
    #SSLVerifyDepth  10&lt;br /&gt;
    #SSLCACertificateFile /etc/pki/tls/certs/companyCA.crt&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # real url's below&lt;br /&gt;
 &amp;lt;VirtualHost 172.16.1.11:443&amp;gt;&lt;br /&gt;
    ServerName syslog1.example.com&lt;br /&gt;
    ServerAlias syslog1.prd.example.net syslog1&lt;br /&gt;
    DocumentRoot /home/httpd/syslog1/public_html&lt;br /&gt;
    ServerAdmin webmaster@example.com&lt;br /&gt;
 &lt;br /&gt;
    SetOutputFilter DEFLATE&lt;br /&gt;
 &lt;br /&gt;
    # settings for being a proxy&lt;br /&gt;
    ProxyTimeout 1200&lt;br /&gt;
    ProxyStatus Full&lt;br /&gt;
    SSLProxyEngine on&lt;br /&gt;
    # load balancer settings for multiple app servers&lt;br /&gt;
    #Header add Set-Cookie &amp;quot;ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/&amp;quot; env=BALANCER_ROUTE_CHANGED&lt;br /&gt;
    #&amp;lt;Proxy balancer://cluster1&amp;gt;&lt;br /&gt;
    #   BalancerMember http://172.16.1.12:8080 route=1&lt;br /&gt;
    #   BalancerMember http://172.16.1.13:8080 route=2&lt;br /&gt;
    #   ProxySet stickysession=ROUTEID&lt;br /&gt;
    #&amp;lt;/Proxy&amp;gt;&lt;br /&gt;
    ProxyPass        /apache-info      !&lt;br /&gt;
    ProxyPass        /apache-status    !&lt;br /&gt;
    ProxyPass        /balancer-manager !&lt;br /&gt;
    ProxyPass        /jmx-console      !&lt;br /&gt;
    ProxyPass        /web-console      !&lt;br /&gt;
    # single app server settings&lt;br /&gt;
    #ProxyPass        /               http://172.16.1.12:8080/app-path/&lt;br /&gt;
    #ProxyPassReverse /               http://172.16.1.12:8080/app-path/&lt;br /&gt;
    # multiple app servers settings (requires Header &amp;amp; Proxy balancer section above)&lt;br /&gt;
    #ProxyPass / balancer://cluster1/app-path/&lt;br /&gt;
    #ProxyPassReverse / balancer://cluster1/app-path/&lt;br /&gt;
 &lt;br /&gt;
    # turn on some minimal caching (on disk) - causes issues where authentication is used&lt;br /&gt;
    #CacheEnable disk /&lt;br /&gt;
    #CacheRoot &amp;quot;/var/cache/mod_proxy&amp;quot;&lt;br /&gt;
    #CacheDirLevels 3&lt;br /&gt;
    #CacheDirLength 5&lt;br /&gt;
    #CacheIgnoreCacheControl On&lt;br /&gt;
    #CacheMaxFileSize 100000&lt;br /&gt;
    #CacheIgnoreNoLastMod On&lt;br /&gt;
    #CacheMaxExpire 1209600&lt;br /&gt;
    #CacheIgnoreQueryString On&lt;br /&gt;
 &lt;br /&gt;
    # ssl settings&lt;br /&gt;
    Header edit Set-Cookie ^(.*)$ $1;Secure;HttpOnly&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/pki/tls/certs/star.example.com.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/pki/tls/private/star.example.com.key&lt;br /&gt;
    SSLCertificateChainFile /etc/pki/tls/certs/gd_bundle.crt&lt;br /&gt;
    #SSLCARevocationFile /etc/pki/tls/certs/LatestCRL.pem&lt;br /&gt;
 &lt;br /&gt;
    # require client certs&lt;br /&gt;
    #SSLVerifyClient require&lt;br /&gt;
    #SSLVerifyDepth  10&lt;br /&gt;
    #SSLCACertificateFile /etc/pki/tls/certs/companyCA.crt&lt;br /&gt;
 &lt;br /&gt;
    # logging&lt;br /&gt;
    ErrorLog logs/syslog1-error_log&lt;br /&gt;
    # for log analyzers&lt;br /&gt;
    CustomLog logs/syslog1-access_log combined&lt;br /&gt;
    # for humans&lt;br /&gt;
    CustomLog logs/syslog1-custom_log custom&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== httpd.conf Example ===&lt;br /&gt;
We change the following lines in the default httpd.conf file&amp;lt;br&amp;gt;&lt;br /&gt;
Note: for ent 7: many of these lines are not in the main httpd.conf file any longer (as they were split out into several additional files that could be copied into a conf.d type dir), and the last line is: Include conf.vhost.d/*.conf&lt;br /&gt;
 ServerTokens Prod&lt;br /&gt;
 &lt;br /&gt;
 KeepAlive On&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule authn_file_module modules/mod_authn_file.so&lt;br /&gt;
 #LoadModule authn_alias_module modules/mod_authn_alias.so&lt;br /&gt;
 #LoadModule authn_anon_module modules/mod_authn_anon.so&lt;br /&gt;
 #LoadModule authn_dbm_module modules/mod_authn_dbm.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule authz_owner_module modules/mod_authz_owner.so&lt;br /&gt;
 #LoadModule authz_groupfile_module modules/mod_authz_groupfile.so&lt;br /&gt;
 #LoadModule authz_dbm_module modules/mod_authz_dbm.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule ldap_module modules/mod_ldap.so&lt;br /&gt;
 #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so&lt;br /&gt;
 #LoadModule include_module modules/mod_include.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule logio_module modules/mod_logio.so&lt;br /&gt;
 #LoadModule env_module modules/mod_env.so&lt;br /&gt;
 #LoadModule ext_filter_module modules/mod_ext_filter.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule expires_module modules/mod_expires.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule dav_module modules/mod_dav.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule dav_fs_module modules/mod_dav_fs.so&lt;br /&gt;
 #LoadModule vhost_alias_module modules/mod_vhost_alias.so&lt;br /&gt;
 #LoadModule negotiation_module modules/mod_negotiation.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule actions_module modules/mod_actions.so&lt;br /&gt;
 #LoadModule speling_module modules/mod_speling.so&lt;br /&gt;
 #LoadModule userdir_module modules/mod_userdir.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule substitute_module modules/mod_substitute.so&lt;br /&gt;
 #LoadModule rewrite_module modules/mod_rewrite.so&lt;br /&gt;
 #LoadModule proxy_module modules/mod_proxy.so&lt;br /&gt;
 #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so&lt;br /&gt;
 #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so&lt;br /&gt;
 #LoadModule proxy_http_module modules/mod_proxy_http.so&lt;br /&gt;
 #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so&lt;br /&gt;
 #LoadModule proxy_connect_module modules/mod_proxy_connect.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule suexec_module modules/mod_suexec.so&lt;br /&gt;
 &lt;br /&gt;
 #LoadModule cgi_module modules/mod_cgi.so&lt;br /&gt;
 #LoadModule version_module modules/mod_version.so&lt;br /&gt;
 &lt;br /&gt;
 Include conf.d-run/*.conf&lt;br /&gt;
 &lt;br /&gt;
 ExtendedStatus On&lt;br /&gt;
 &lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Directory /home/httpd/*/public_html&amp;gt;&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    &amp;lt;Limit GET POST OPTIONS&amp;gt;&lt;br /&gt;
       Order allow,deny&lt;br /&gt;
       Allow from all&lt;br /&gt;
    &amp;lt;/Limit&amp;gt;&lt;br /&gt;
    &amp;lt;LimitExcept GET POST OPTIONS&amp;gt;&lt;br /&gt;
       Order deny,allow&lt;br /&gt;
       Deny from all&lt;br /&gt;
    &amp;lt;/LimitExcept&amp;gt;&lt;br /&gt;
 &amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 LogFormat &amp;quot;%t \&amp;quot;%v -&amp;gt; %U\&amp;quot; \&amp;quot;%{Referer}i %r\&amp;quot; %&amp;gt;s %Bb %Ts # %h (%a) %u \&amp;quot;%{User-Agent}i\&amp;quot;&amp;quot; custom&lt;br /&gt;
 #LogFormat &amp;quot;%t \&amp;quot;%v -&amp;gt; %U\&amp;quot; \&amp;quot;%{Referer}i %r\&amp;quot; %&amp;gt;s %Bb %Ob %Ts # %h (%a) %Ib %u \&amp;quot;%{User-Agent}i\&amp;quot;&amp;quot; customio&lt;br /&gt;
 &lt;br /&gt;
 ServerSignature Off&lt;br /&gt;
 &lt;br /&gt;
     Options MultiViews FollowSymLinks&lt;br /&gt;
 &lt;br /&gt;
 #AddLanguage ca .ca&lt;br /&gt;
 #AddLanguage cs .cz .cs&lt;br /&gt;
 #AddLanguage da .dk&lt;br /&gt;
 #AddLanguage de .de&lt;br /&gt;
 #AddLanguage el .el&lt;br /&gt;
 #AddLanguage en .en&lt;br /&gt;
 #AddLanguage eo .eo&lt;br /&gt;
 #AddLanguage es .es&lt;br /&gt;
 #AddLanguage et .et&lt;br /&gt;
 #AddLanguage fr .fr&lt;br /&gt;
 #AddLanguage he .he&lt;br /&gt;
 #AddLanguage hr .hr&lt;br /&gt;
 #AddLanguage it .it&lt;br /&gt;
 #AddLanguage ja .ja&lt;br /&gt;
 #AddLanguage ko .ko&lt;br /&gt;
 #AddLanguage ltz .ltz&lt;br /&gt;
 #AddLanguage nl .nl&lt;br /&gt;
 #AddLanguage nn .nn&lt;br /&gt;
 #AddLanguage no .no&lt;br /&gt;
 #AddLanguage pl .po&lt;br /&gt;
 #AddLanguage pt .pt&lt;br /&gt;
 #AddLanguage pt-BR .pt-br&lt;br /&gt;
 #AddLanguage ru .ru&lt;br /&gt;
 #AddLanguage sv .sv&lt;br /&gt;
 #AddLanguage zh-CN .zh-cn&lt;br /&gt;
 #AddLanguage zh-TW .zh-tw&lt;br /&gt;
 &lt;br /&gt;
 #LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW&lt;br /&gt;
 &lt;br /&gt;
 #ForceLanguagePriority Prefer Fallback&lt;br /&gt;
 &lt;br /&gt;
 #AddHandler type-map var&lt;br /&gt;
 &lt;br /&gt;
 #AddType text/html .shtml&lt;br /&gt;
 #AddOutputFilter INCLUDES .shtml&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Location /server-status&amp;gt;&lt;br /&gt;
     SetHandler server-status&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from 127.0.0.1 10.117.100&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;Location /server-info&amp;gt;&lt;br /&gt;
     SetHandler server-info&lt;br /&gt;
     Order deny,allow&lt;br /&gt;
     Deny from all&lt;br /&gt;
     Allow from 127.0.0.1 10.117.100&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 # Security Directives&lt;br /&gt;
 # note: FileETag changes break DAV&lt;br /&gt;
 FileETag MTime Size&lt;br /&gt;
 TraceEnable Off&lt;br /&gt;
 Header always append X-Frame-Options SAMEORIGIN&lt;br /&gt;
 &lt;br /&gt;
 Include conf/vhost.d/*&lt;br /&gt;
&lt;br /&gt;
=== SSL Example ===&lt;br /&gt;
We change the following lines in the default ssl.conf file (make sure there is no SSLProtocol &amp;amp; SSLCipherSuite lines in any VirtualHost configurations, or setting the default SSLProtocol &amp;amp; SSLCipherSuite lines in ssl.conf have no effect)&amp;lt;br&amp;gt;&lt;br /&gt;
Note: for ent 7, the last line is: Include conf.vhost-ssl.d/*.conf&lt;br /&gt;
 #&amp;lt;VirtualHost _default_:443&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #SSLEngine on&lt;br /&gt;
 &lt;br /&gt;
 SSLProtocol all -SSLv2 -SSLv3&lt;br /&gt;
 &lt;br /&gt;
 Header always set Strict-Transport-Security &amp;quot;max-age=15768000;includeSubDomains&amp;quot;&lt;br /&gt;
 SSLInsecureRenegotiation off&lt;br /&gt;
 SSLHonorCipherOrder on&lt;br /&gt;
 SSLCipherSuite &amp;quot;EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #SSLCertificateFile /etc/pki/tls/certs/localhost.crt&lt;br /&gt;
 &lt;br /&gt;
 #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key&lt;br /&gt;
 &lt;br /&gt;
 #&amp;lt;Files ~ &amp;quot;.(cgi|shtml|phtml|php3?)$&amp;quot;&amp;gt;&lt;br /&gt;
 #    SSLOptions +StdEnvVars&lt;br /&gt;
 #&amp;lt;/Files&amp;gt;&lt;br /&gt;
 #&amp;lt;Directory &amp;quot;/var/www/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
 #    SSLOptions +StdEnvVars&lt;br /&gt;
 #&amp;lt;/Directory&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Include conf/vhost-ssl.d/*&lt;br /&gt;
&lt;br /&gt;
===  Files/Directories Layout ===&lt;br /&gt;
&lt;br /&gt;
Files&lt;br /&gt;
&lt;br /&gt;
(before ent 7)&lt;br /&gt;
 /etc/httpd/conf/httpd.conf - main config (available from subversion)&lt;br /&gt;
 /etc/httpd/conf.d/ - default auto load config location - DISABLED - installation of new packages MAY add a config file here&lt;br /&gt;
 /etc/httpd/conf.d-run/ - active auto load config location (if you really want a config activated from conf.d, copy it here)&lt;br /&gt;
 /etc/httpd/conf.d-run/ssl.conf - ssl config (available from subversion)&lt;br /&gt;
 /etc/httpd/conf/vhost-ssl.d/0-mask (mask config &amp;amp; NameVirtualhost setting)&lt;br /&gt;
 /etc/httpd/conf/vhost-ssl.d/`hostname -s` (default virtual host config)&lt;br /&gt;
 /etc/httpd/conf/vhost.d/0-mask (non-https config - DISCOURAGED - mask config &amp;amp; NameVirtualhost setting)&lt;br /&gt;
 /etc/httpd/conf/vhost.d/`hostname -s` (non-https config - DISCOURAGED - default virtual host config)&lt;br /&gt;
&lt;br /&gt;
(ent 7)&lt;br /&gt;
 /etc/httpd/conf/httpd.conf - main config (minimal config - see conf.d-run (active/in use) or /usr/share/doc/httpd-2.4.*/ (not active) for others, available from subversion)&lt;br /&gt;
 /etc/httpd/conf.d/ - default auto load config location - DISABLED - installation of new packages MAY add a config file here&lt;br /&gt;
 /etc/httpd/conf.d-run/ - active auto load config location (if you really want a config activated from conf.d, copy it here) - we put additional config files of misc Directives (/home/httpd perms, apache TimeOuts, status pages settings, etc.)&lt;br /&gt;
 /etc/httpd/conf.d-run/ssl.conf - ssl config (ssl related directives, available from subversion)&lt;br /&gt;
 /etc/httpd/conf.vhost-ssl.d/0-mask.conf (mask config &amp;amp; NameVirtualhost setting)&lt;br /&gt;
 /etc/httpd/conf.vhost-ssl.d/`hostname -s`.conf (default virtual host config)&lt;br /&gt;
 /etc/httpd/conf.vhost.d/0-mask.conf (non-https config - DISCOURAGED - mask config &amp;amp; NameVirtualhost setting)&lt;br /&gt;
 /etc/httpd/conf.vhost.d/`hostname -s`.conf (non-https config - DISCOURAGED - default virtual host config)&lt;br /&gt;
 /etc/httpd/conf.modules.d-run/00-ssl.conf - ssl config (LoadModule setting only)&lt;br /&gt;
 /etc/httpd/conf.modules.d-run/ - additional LoadModule configs (needed to make apache function, proxy modules, etc.)&lt;br /&gt;
 /usr/share/doc/httpd-2.4.6/httpd-default.conf - additional config directives we use/change (see httpd.conf Example above), copied to conf.d-run&lt;br /&gt;
 /usr/share/doc/httpd-2.4.6/httpd-info.conf - additional config directives we use/change (see httpd.conf Example above), copied to conf.d-run&lt;br /&gt;
 /usr/share/doc/httpd-2.4.6/httpd-mpm.conf - additional config directives we use/change (see httpd.conf Example above), copied to conf.d-run&lt;br /&gt;
 /usr/share/doc/httpd-2.4.6/proxy-html.conf - additional config directives we use/change, copied to conf.d (as a reference and/or if needed as a proxy, and copied to conf.d-run)&lt;br /&gt;
&lt;br /&gt;
Dirs&lt;br /&gt;
&lt;br /&gt;
Notes: The use of .d-run directories protects the currently configured apache from being affected by updates changes and insecure additions of configuration files from installation of new packages. We want additions to be disabled by default, per policy. If a feature is needed, the file is copied from the corresponding .d directory to the .d-run equivalent (ex; from conf.d to conf.d-run).&lt;br /&gt;
&lt;br /&gt;
(before ent 7)&lt;br /&gt;
 /etc/httpd/&lt;br /&gt;
 |-- conf            : (main apache conf dir)&lt;br /&gt;
 |   |-- vhost-ssl.d : (ssl virtual host files)&lt;br /&gt;
 |   `-- vhost.d     : (non-ssl virtual host files)&lt;br /&gt;
 |-- conf.d          : (unused, new installs/updates go here)&lt;br /&gt;
 |-- conf.d-run      : (real/runtime conf.d dir)&lt;br /&gt;
 |-- logs            : (link to /var/log/httpd/)&lt;br /&gt;
 |-- modules         : (link to /usr/lib64/httpd/modules/)&lt;br /&gt;
 `-- run             : (link to /var/run/httpd/)&lt;br /&gt;
&lt;br /&gt;
(ent 7)&lt;br /&gt;
 /etc/httpd/&lt;br /&gt;
 |-- conf               : (main apache conf dir)&lt;br /&gt;
 |-- conf.d             : (unused, new installs/updates go here)&lt;br /&gt;
 |-- conf.d-run         : (real/runtime conf.d dir)&lt;br /&gt;
 |-- conf.modules.d     : (unused, new installs/updates go here)&lt;br /&gt;
 |-- conf.modules.d-run : (real/runtime conf.modules.d dir)&lt;br /&gt;
 |-- conf.vhost-ssl.d   : (ssl virtual host files)&lt;br /&gt;
 |-- conf.vhost.d       : (non-ssl virtual host files)&lt;br /&gt;
 |-- logs               : (link to /var/log/httpd/)&lt;br /&gt;
 |-- modules            : (link to /usr/lib64/httpd/modules/)&lt;br /&gt;
 `-- run                : (link to /run/httpd/)&lt;br /&gt;
&lt;br /&gt;
===  Apache Quick Reference ===&lt;br /&gt;
&lt;br /&gt;
Commands&lt;br /&gt;
&lt;br /&gt;
Preferred Restart (does not disconnect users/no downtime)&lt;br /&gt;
 # service httpd graceful&lt;br /&gt;
&lt;br /&gt;
Status&lt;br /&gt;
 # service httpd status&lt;br /&gt;
&lt;br /&gt;
Test Configuration&lt;br /&gt;
 # service httpd configtest&lt;br /&gt;
&lt;br /&gt;
Misc Settings&lt;br /&gt;
&lt;br /&gt;
Port 80/http redirect to https&lt;br /&gt;
 Redirect Permanent / https://wiki.example.com/&lt;br /&gt;
&lt;br /&gt;
redirect to login page&lt;br /&gt;
 Redirect Permanent / https://beagle.example.com/WORMS/login.htm&lt;br /&gt;
&lt;br /&gt;
Enable compression&lt;br /&gt;
 SetOutputFilter DEFLATE&lt;br /&gt;
&lt;br /&gt;
Interesting URL's&lt;br /&gt;
 https://hostname/apache-status (current traffic)&lt;br /&gt;
 https://hostname/apache-info   (configuration)&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/OS_Security_Configuration_Policy</id>
		<title>OS Security Configuration Policy</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/OS_Security_Configuration_Policy"/>
				<updated>2017-05-10T01:20:17Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===  OS / Kickstart Policy ===&lt;br /&gt;
{{Kickstart-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  User / Password Policy ===&lt;br /&gt;
{{User-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  Sudo Policy ===&lt;br /&gt;
{{Sudo-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  Security Policy ===&lt;br /&gt;
{{Security-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  SSH Policy ===&lt;br /&gt;
{{SSH-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  Software Policy ===&lt;br /&gt;
{{Software-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  Mail Policy ===&lt;br /&gt;
{{Mail-Policy}}&lt;br /&gt;
&lt;br /&gt;
===  Apache Policy ===&lt;br /&gt;
{{Apache-Policy}}&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/LVM</id>
		<title>LVM</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/LVM"/>
				<updated>2017-05-09T20:09:06Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(all of these apply to both VM and physical systems)&lt;br /&gt;
&lt;br /&gt;
=== Resizing Existing Mountpoints (adding more space) ===&lt;br /&gt;
1. if this is Enterprise 3 or older, umount partition (not needed under Ent 4 and newer)&lt;br /&gt;
 # umount /home/arsystem&lt;br /&gt;
&lt;br /&gt;
2. check free space available&lt;br /&gt;
 # vgdisplay pri | grep &amp;quot;Free  PE&amp;quot;&lt;br /&gt;
 Free  PE / Size       1413 / 44.16 GB&lt;br /&gt;
&lt;br /&gt;
3. add desired space to partition&lt;br /&gt;
 Ent 7&lt;br /&gt;
 # lvextend -l +1413 -r /dev/pri/arsystem&lt;br /&gt;
 OR&lt;br /&gt;
 # lvextend -l +1413 /dev/pri/arsystem&lt;br /&gt;
 # xfs_growfs /dev/pri/arsystem&lt;br /&gt;
 &lt;br /&gt;
 Ent 5/6&lt;br /&gt;
 # lvextend -l +1413 -r /dev/pri/arsystem&lt;br /&gt;
 OR&lt;br /&gt;
 # lvextend -l +1413 /dev/pri/arsystem&lt;br /&gt;
 # resize2fs /dev/pri/arsystem&lt;br /&gt;
 &lt;br /&gt;
 Ent 4 only (e2fsadm not avail on Ent 4);&lt;br /&gt;
 # lvextend -l +1413 /dev/pri/arsystem&lt;br /&gt;
 # ext2online /dev/pri/arsystem&lt;br /&gt;
 &lt;br /&gt;
 Ent 3 only;&lt;br /&gt;
 # e2fsadm -l +1413 /dev/pri/arsystem&lt;br /&gt;
Note: if you run this command and the fsck gives errors, fix the errors by running fsck manually, and then run the command again (it will not do it's resizing until fsck runs cleanly)&lt;br /&gt;
&lt;br /&gt;
4. if this is Ent 3 or older, mount partition (not needed under Ent 4 and newer)&lt;br /&gt;
 # mount /arsystem&lt;br /&gt;
&lt;br /&gt;
=== Resizing Existing Mountpoints (reducing space) ===&lt;br /&gt;
1. if this is Ent 3 or older, umount partition (not needed under Ent 4 and newer)&lt;br /&gt;
 # umount /home/arsystem&lt;br /&gt;
&lt;br /&gt;
2. check free space available&lt;br /&gt;
 # df -h | grep arsystem&lt;br /&gt;
 /dev/mapper/pri-arsystem     199G   13M   198G  1% /home/arsystem&lt;br /&gt;
&lt;br /&gt;
3. set desired space of partition&lt;br /&gt;
 Ent 7&lt;br /&gt;
 NOTE: if reducing xfs, backup your data, you have to recreate the filesystem, all will be lost!&lt;br /&gt;
 # lvreduce -L 10G /dev/pri/arsystem&lt;br /&gt;
 # mkfs -t xfs /dev/pri/arsystem&lt;br /&gt;
 &lt;br /&gt;
 Ent 5/6&lt;br /&gt;
 # lvreduce -L 10G /dev/pri/arsystem&lt;br /&gt;
 # resize2fs /dev/pri/arsystem&lt;br /&gt;
 &lt;br /&gt;
 Ent 4 only (e2fsadm not avail on Ent 4);&lt;br /&gt;
 # lvreduce -L 10G /dev/pri/arsystem&lt;br /&gt;
 # ext2online /dev/pri/arsystem&lt;br /&gt;
 &lt;br /&gt;
 Ent 3 only;&lt;br /&gt;
 # e2fsadm -L 10G /dev/pri/arsystem&lt;br /&gt;
Note: if you run this command and the fsck gives errors, fix the errors by running fsck manually, and then run the command again (it will not do it's resizing until fsck runs cleanly)&lt;br /&gt;
&lt;br /&gt;
4. if this is Ent 3 or older, mount partition (not needed under Ent 4 and newer)&lt;br /&gt;
 # mount /home/arsystem&lt;br /&gt;
&lt;br /&gt;
=== Resizing SWAP ===&lt;br /&gt;
1. unmount swap (the one you want to resize - 'usually' there is only one)&lt;br /&gt;
 # swapoff /dev/pri/swap&lt;br /&gt;
&lt;br /&gt;
2. check free space, then add desired space to partition&lt;br /&gt;
 # vgdisplay pri | grep &amp;quot;Free  PE&amp;quot;&lt;br /&gt;
 Free  PE / Size       1413 / 44.16 GB&lt;br /&gt;
 # lvextend -L +4g /dev/pri/swap&lt;br /&gt;
&lt;br /&gt;
3. rebuild swap filesystem (there is no swap resize command)&lt;br /&gt;
 # mkswap /dev/pri/swap&lt;br /&gt;
&lt;br /&gt;
4. re-enable swap&lt;br /&gt;
 # swapon /dev/pri/swap&lt;br /&gt;
&lt;br /&gt;
5. verify using 'free' command that new size is in use&lt;br /&gt;
 # free | grep Swap&lt;br /&gt;
 Swap:      4192924          0    4192924&lt;br /&gt;
&lt;br /&gt;
=== Adding Partitions (existing space available) ===&lt;br /&gt;
1. create new logical volume;&lt;br /&gt;
 # lvcreate -L 8G -n arsystem pri&lt;br /&gt;
 OR;&lt;br /&gt;
 to use all of the remaining space, check &amp;quot;Free PE&amp;quot; from vgdisplay, then use -l option instead of -L, example;&lt;br /&gt;
 # vgdisplay pri | grep &amp;quot;Free  PE&amp;quot;&lt;br /&gt;
 Free  PE / Size       1413 / 44.16 GB&lt;br /&gt;
 # lvcreate -l 1413 -n arsystem pri&lt;br /&gt;
&lt;br /&gt;
2. create filesystem;&lt;br /&gt;
 Ent 7&lt;br /&gt;
 # mkfs -t xfs /dev/pri/arsystem&lt;br /&gt;
 Ent 6&lt;br /&gt;
 # mkfs -t ext4 /dev/pri/arsystem&lt;br /&gt;
 Ent 5 or earlier&lt;br /&gt;
 # mkfs -t ext3 /dev/pri/arsystem&lt;br /&gt;
&lt;br /&gt;
3. make mountpoint;&lt;br /&gt;
 # mkdir /home/arsystem&lt;br /&gt;
&lt;br /&gt;
4. add to fstab;&lt;br /&gt;
 # vi /etc/fstab&lt;br /&gt;
&lt;br /&gt;
5. test fstab entry by mounting w/fstab info;&lt;br /&gt;
 # mount /home/arsystem&lt;br /&gt;
&lt;br /&gt;
=== Removing Partitions (for re-allocating/freeing up space) ===&lt;br /&gt;
1. umount partition&lt;br /&gt;
 # umount /u001&lt;br /&gt;
&lt;br /&gt;
2. remove LVM volume&lt;br /&gt;
 # lvremove /dev/pri/u001&lt;br /&gt;
&lt;br /&gt;
3. remove from fstab&lt;br /&gt;
 # vi /etc/fstab&lt;br /&gt;
&lt;br /&gt;
=== Snapshot Partitions ===&lt;br /&gt;
create a snapshot of an existing LVM partition&lt;br /&gt;
 # lvcreate -L 1G -s -n remedyss /dev/pri/remedy&lt;br /&gt;
Note: this can now be mounted and used to back up this frozen copy of your filesystem. To remove when done, follow Removing Partitions (above)&lt;br /&gt;
&lt;br /&gt;
=== Restore Snapshots ===&lt;br /&gt;
1. unmount the partition to make sure nothing else can write to it while restoring&lt;br /&gt;
 # umount /dev/pri/remedy&lt;br /&gt;
2. merge the snapshot back into the original partition&lt;br /&gt;
 # lvconvert --merge /dev/pri/remedyss&lt;br /&gt;
&lt;br /&gt;
=== Adding New Drives (existing space NOT available) ===&lt;br /&gt;
(this step assumes you added a new drive, whether physical for a physical sys, or virtual for a virtual sys)&lt;br /&gt;
1. create a single partition as type LVM (8e) for the whole drive&lt;br /&gt;
 # fdisk /dev/sdb&lt;br /&gt;
Note: if the new drive was added to a 'live' system, and it is not showing under 'fdisk -l', rescan with (may need to do this with more than host0, i.e. host0, host1, etc.):&lt;br /&gt;
 echo &amp;quot;- - -&amp;quot; &amp;gt; /sys/class/scsi_host/host0/scan&lt;br /&gt;
&lt;br /&gt;
2. initialize new drive as LVM&lt;br /&gt;
 # pvcreate /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
3. add new drive to existing LVM volume&lt;br /&gt;
 # vgextend pri /dev/sdb1&lt;br /&gt;
 OR&lt;br /&gt;
 # vgcreate sec /dev/sdb1&lt;br /&gt;
&lt;br /&gt;
=== Renaming Volume Group &amp;amp; Logical Volume Names ===&lt;br /&gt;
*Rename Logical Volume (partition name)*&lt;br /&gt;
 # lvrename /dev/pri/HomeVol home&lt;br /&gt;
(make sure to update fstab with the change)&lt;br /&gt;
&lt;br /&gt;
*Rename Volume Group*&lt;br /&gt;
 # vgrename VolGroup00 pri&lt;br /&gt;
(make sure to update fstab with the change)&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Filesystem</id>
		<title>Filesystem</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Filesystem"/>
				<updated>2017-05-09T19:56:37Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;===  create filesystem ===  Before enterprise 6  # mke2fs -t ext3 /dev/pri/arsystem  OR for ent6  # mke2fs -t ext4 /dev/pri/arsystem  OR for ent7  # mke2fs -t xfs /dev/pri/ars...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  create filesystem ===&lt;br /&gt;
 Before enterprise 6&lt;br /&gt;
 # mke2fs -t ext3 /dev/pri/arsystem&lt;br /&gt;
 OR for ent6&lt;br /&gt;
 # mke2fs -t ext4 /dev/pri/arsystem&lt;br /&gt;
 OR for ent7&lt;br /&gt;
 # mke2fs -t xfs /dev/pri/arsystem&lt;br /&gt;
&lt;br /&gt;
===  increasing inodes ===&lt;br /&gt;
if a filesystem has run out of inodes (df -i), the filesystem has to be recreated, there is currently no way to increase the inode limit on an existing filesystem. when the filesystem is created, the bytes per inode ratio (16384 is the default) needs to be modified (use appropriate filesystem type, see &amp;quot;create filesystem&amp;quot; above)&lt;br /&gt;
 # mke2fs -t ext4 -i 4096 /dev/pri/arsystem&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Disk</id>
		<title>Disk</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Disk"/>
				<updated>2017-05-09T19:55:35Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  add new drive ===&lt;br /&gt;
this step assumes a new drive was added, whether physical for a physical sys, or virtual for a virtual sys. if adding to a system using LVM, set the partition type to 8e (LVM), see &amp;quot;LVM Quick Reference&amp;quot; for adding to the LVM Disk Group for use with LVM partitions&lt;br /&gt;
 # fdisk /dev/sdb&lt;br /&gt;
&lt;br /&gt;
Note: if the new drive was added to a 'live' system, and it's not showing under 'fdisk -l', rescan with (may need to do this with more than host0, i.e. host0, host1, etc.);&lt;br /&gt;
 # echo &amp;quot;- - -&amp;quot; &amp;gt; /sys/class/scsi_host/host0/scan&lt;br /&gt;
&lt;br /&gt;
===  drives greater than 2Tb ===&lt;br /&gt;
 MBR (&amp;lt;=2.2Tb/32bit):&lt;br /&gt;
 # fdisk /dev/sda&lt;br /&gt;
 GPT (&amp;lt;=2.2Zb/64bit):&lt;br /&gt;
 # gdisk /dev/sda&lt;br /&gt;
&lt;br /&gt;
using kickstart on systems that have drives greater than 2.2Tb (tested on ent 6, probably not needed on ent 7)&amp;lt;br&amp;gt;&lt;br /&gt;
add the following to the ks.cfg profile that was generated for the system being kicked&lt;br /&gt;
&lt;br /&gt;
 %pre&lt;br /&gt;
 parted -s /dev/sda mklabel gpt&lt;br /&gt;
 %end&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Filesystems</id>
		<title>Filesystems</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Filesystems"/>
				<updated>2017-05-09T19:53:27Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;Disk  Filesystem  LVM&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Disk]]&lt;br /&gt;
&lt;br /&gt;
[[Filesystem]]&lt;br /&gt;
&lt;br /&gt;
[[LVM]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Multi-NIC</id>
		<title>Multi-NIC</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Multi-NIC"/>
				<updated>2017-05-09T19:29:43Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Multi-NIC Routing (ent 7) ===&lt;br /&gt;
The multi-NIC routing scenario has not yet been tried/tested on Enterprise 7. Things may work correctly based on (possibly) proper gateway settings per NIC (if this works correctly under ent 7). If not, we know how to add static routes on ent 7, and can replicate the configuration for pre-ent 7 envs via Network Manager (nmcli).&lt;br /&gt;
&lt;br /&gt;
There was some testing done here, we ended up doing the Source-based Routing (below).&lt;br /&gt;
&lt;br /&gt;
===  Multi-NIC Routing (before ent 7) ===&lt;br /&gt;
Before Enterprise 7, since we could not have a gateway (that works) per interface (even though it lets you set a gateway in every interface config file; but which overwrites the default gateway), we have to set the default gateway to the outside or customer facing network (since we cannot possibly know all IP's/networks these connections would be coming from), and then set static routes to every possible network and host it needs access to for our inside network. Here is an example for /etc/sysconfig/network-scripts/route-eth1 (where the eth0/default is the primary/outside/customer network, and eth1 is the secondary/internal/private network).&lt;br /&gt;
&lt;br /&gt;
Static list for NOTEL (example, the NOTEL data center no longer exists)&lt;br /&gt;
 # default network (set this for your specific env/stack)&lt;br /&gt;
 ADDRESS0=172.200.200.0&lt;br /&gt;
 NETMASK0=255.255.255.0&lt;br /&gt;
 GATEWAY0=172.200.200.1&lt;br /&gt;
 # VPN network&lt;br /&gt;
 ADDRESS1=10.100.100.0&lt;br /&gt;
 NETMASK1=255.255.255.0&lt;br /&gt;
 GATEWAY1=172.200.200.1&lt;br /&gt;
 # DNS host 1&lt;br /&gt;
 ADDRESS2=210.210.90.80&lt;br /&gt;
 NETMASK2=255.255.255.255&lt;br /&gt;
 GATEWAY2=172.200.200.1&lt;br /&gt;
 # DNS host 2&lt;br /&gt;
 ADDRESS3=210.210.120.140&lt;br /&gt;
 NETMASK3=255.255.255.255&lt;br /&gt;
 GATEWAY3=172.200.200.1&lt;br /&gt;
 # spacewalk host&lt;br /&gt;
 ADDRESS4=172.200.90.60&lt;br /&gt;
 NETMASK4=255.255.255.255&lt;br /&gt;
 GATEWAY4=172.200.200.1&lt;br /&gt;
 # trusted host&lt;br /&gt;
 ADDRESS5=172.200.90.50&lt;br /&gt;
 NETMASK5=255.255.255.255&lt;br /&gt;
 GATEWAY5=172.200.200.1&lt;br /&gt;
&lt;br /&gt;
===  Teaming (ent 7) ===&lt;br /&gt;
1. add the teaming inferface&lt;br /&gt;
 # nmcli con add type team con-name team0 ifname team0 config '{&amp;quot;runner&amp;quot;: {&amp;quot;name&amp;quot;: &amp;quot;loadbalance&amp;quot;}}'&lt;br /&gt;
&lt;br /&gt;
2. set IP address info&lt;br /&gt;
 # nmcli con mod team0 ipv4.method manual ipv4.addresses 172.100.200.140/24&lt;br /&gt;
&lt;br /&gt;
3. add the first NIC&lt;br /&gt;
 # nmcli con add type team-slave con-name team0-slave1 ifname em1 master team0&lt;br /&gt;
&lt;br /&gt;
4. add the second NIC&lt;br /&gt;
 # nmcli con add type team-slave con-name team0-slave2 ifname em2 master team0&lt;br /&gt;
&lt;br /&gt;
===  Bonding (before ent 7) ===&lt;br /&gt;
Before Enterprise 7, interface Bonding was configured via various config files in /etc/sysconfig/network-scripts/ (this has been rewritten in ent 7 and is now called Teaming), example setup;&lt;br /&gt;
&lt;br /&gt;
eth0 config (ifcfg-eth0)&lt;br /&gt;
 # Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet&lt;br /&gt;
 DEVICE=eth0&lt;br /&gt;
 BOOTPROTO=none&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 HWADDR=D4:BE:D9:AA:D7:16&lt;br /&gt;
 MASTER=bond0&lt;br /&gt;
 SLAVE=yes&lt;br /&gt;
&lt;br /&gt;
eth1 config (ifcfg-eth1)&lt;br /&gt;
 # Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet&lt;br /&gt;
 DEVICE=eth1&lt;br /&gt;
 BOOTPROTO=none&lt;br /&gt;
 ONBOOT=yes                                                                                 &lt;br /&gt;
 HWADDR=D4:BE:D9:AA:D7:18&lt;br /&gt;
 MASTER=bond0&lt;br /&gt;
 SLAVE=yes&lt;br /&gt;
&lt;br /&gt;
bond0 config (ifcfg-bond0)&lt;br /&gt;
 DEVICE=bond0&lt;br /&gt;
 BOOTPROTO=none&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BONDING_OPTS=&amp;quot;miimon=100 mode=1&amp;quot;&lt;br /&gt;
 IPADDR=172.200.110.140&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Additional bond IP's&lt;br /&gt;
bond0:0 config (ifcfg-bond0:0)&lt;br /&gt;
 DEVICE=bond0:0&lt;br /&gt;
 BOOTPROTO=none&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 IPADDR=172.200.110.200&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig output&lt;br /&gt;
 bond0    Link encap:Ethernet  HWaddr D4:BE:D9:AA:D7:16&lt;br /&gt;
          inet addr:172.200.110.140  Bcast:172.200.110.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::d6be:d9ff:feaa:d716/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:951518061 errors:0 dropped:244110 overruns:0 frame:0&lt;br /&gt;
          TX packets:377721364 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:868579848472 (808.9 GiB)  TX bytes:88332253777 (82.2 GiB)&lt;br /&gt;
 &lt;br /&gt;
 bond0:0  Link encap:Ethernet  HWaddr D4:BE:D9:AA:D7:16&lt;br /&gt;
          inet addr:172.200.110.200  Bcast:172.200.110.255  Mask:255.255.255.0&lt;br /&gt;
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
 &lt;br /&gt;
 eth0     Link encap:Ethernet  HWaddr D4:BE:D9:AA:D7:16&lt;br /&gt;
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:244110 errors:0 dropped:244110 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:15623040 (14.8 MiB)  TX bytes:0 (0.0 b)&lt;br /&gt;
 &lt;br /&gt;
 eth1     Link encap:Ethernet  HWaddr D4:BE:D9:AA:D7:18&lt;br /&gt;
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:3095102322 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:2613440853 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:2651544232860 (2.4 TiB)  TX bytes:1948544659918 (1.7 TiB)&lt;br /&gt;
&lt;br /&gt;
===  Renumbering Ports (ent 6) ===&lt;br /&gt;
Example is from a R630 system used as an appliance with 4 ports on the motherboard that had 2 coppper &amp;amp; 2 fiber. For this appliance they wanted the 2 copper ports to be eth0/1 and the fiber be eth2/3, but a recently built system had them designated in reverse. The renaming/mapping went as follows;&lt;br /&gt;
 eth0 (fiber)  -&amp;gt; eth2&lt;br /&gt;
 eth1 (fiber)  -&amp;gt; eth3&lt;br /&gt;
 eth2 (copper) -&amp;gt; eth0&lt;br /&gt;
 eth3 (copper) -&amp;gt; eth1&lt;br /&gt;
&lt;br /&gt;
Relabel the ports by changing the udev net rules file, change eth0 to eth2, etc, change only the NAME= lines (as mentioned in the comment at the top of the file)&lt;br /&gt;
 # vi /etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
&lt;br /&gt;
Rename all the network config files&lt;br /&gt;
 # cd /etc/sysconfig/network-script/&lt;br /&gt;
 # cp ifcfg-eth* /tmp/&lt;br /&gt;
 # cp /tmp/ifcfg-eth0 ifcfg-eth2&lt;br /&gt;
 etc&lt;br /&gt;
&lt;br /&gt;
Fix the device names in each file, new ifcfg-eth0 has DEVICE=eth2, change this to say eth0, etc&lt;br /&gt;
 # vi ifcfg-eth?&lt;br /&gt;
&lt;br /&gt;
Reboot when done to properly pick up all the udev/network config changes/etc&lt;br /&gt;
&lt;br /&gt;
=== Source-based Routing (ent 7) ===&lt;br /&gt;
Note: using NetworkManager&lt;br /&gt;
&lt;br /&gt;
In this scenario, the system is using the gateway on the primary NIC. Any incoming packets on the 2nd interface end up going out the primary interface, and packets are not returning to devices on the 2nd network.&lt;br /&gt;
&lt;br /&gt;
Note: table '2' was chosen since this is the 2nd NIC. Names can be used if the proper mapping is set in /etc/iproute2/rt_tables&lt;br /&gt;
&lt;br /&gt;
1. Add policy routing to NetworkManager&lt;br /&gt;
 # yum install NetworkManager-dispatcher-routing-rules&lt;br /&gt;
 # systemctl enable NetworkManager-dispatcher.service&lt;br /&gt;
 # systemctl start NetworkManager-dispatcher.service&lt;br /&gt;
&lt;br /&gt;
2. Add policy rule&amp;lt;br&amp;gt;&lt;br /&gt;
Note: ens33 is the 2nd NIC, 10.160.130.250 is the NIC IP&lt;br /&gt;
 # vi /etc/sysconfig/network-scripts/rule-ens33&lt;br /&gt;
 iif ens33 table 2&lt;br /&gt;
 from 10.160.130.250 table 2&lt;br /&gt;
&lt;br /&gt;
3. Add static routes using policy rules (may be able to do this w/nmcli)&amp;lt;br&amp;gt;&lt;br /&gt;
Note: 10.60.130.0/24 is the subnet/cidr of the 2nd network, 10.160.130.1 is the gateway&lt;br /&gt;
 # vi /etc/sysconfig/network-scripts/route-ens33&lt;br /&gt;
 10.160.130.0/24 dev ens33 table 2&lt;br /&gt;
 default via 10.160.130.1 dev ens33 table 2&lt;br /&gt;
&lt;br /&gt;
4. Load the new/changed config files&lt;br /&gt;
 # nmcli connection reload&lt;br /&gt;
 # nmcli connection down ens33 ; nmcli connection up ens33&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Network</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Network"/>
				<updated>2017-05-09T19:28:13Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;General - basic network configuration  Multi-NIC - multiple NIC related config (Teaming / Bonding / Etc.)  Firewall&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[General]] - basic network configuration&lt;br /&gt;
&lt;br /&gt;
[[Multi-NIC]] - multiple NIC related config (Teaming / Bonding / Etc.)&lt;br /&gt;
&lt;br /&gt;
[[Firewall]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Cert_Mgmt</id>
		<title>Cert Mgmt</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Cert_Mgmt"/>
				<updated>2017-05-09T18:16:40Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;====  Convert a certificate file (.crt) to .pem ====  # openssl x509 -in cert.crt -outform pem -out cert.pem  ====  Convert a certificate file and a private key with a CA cert...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====  Convert a certificate file (.crt) to .pem ====&lt;br /&gt;
 # openssl x509 -in cert.crt -outform pem -out cert.pem&lt;br /&gt;
&lt;br /&gt;
====  Convert a certificate file and a private key with a CA cert or intermediate bundle to PKCS#12 (.pfx .p12) ====&lt;br /&gt;
 # openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt&lt;br /&gt;
&lt;br /&gt;
====  Convert a certificate file and a private key to PKCS#12 (.pfx .p12) ====&lt;br /&gt;
 # openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt&lt;br /&gt;
&lt;br /&gt;
====  Convert a certificate file and a private key to PKCS#12 (.pfx .p12) with a friendlyName (used for Remedy cert) ====&lt;br /&gt;
 # openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -name mycert&lt;br /&gt;
&lt;br /&gt;
====  Convert a certificate file, or a CA cert, or an intermediate bundle to PKCS#12 (.pfx .p12) ====&lt;br /&gt;
 # openssl pkcs12 -export -out certificate.pfx -nokeys -nodes -in certificate.crt&lt;br /&gt;
&lt;br /&gt;
====  Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM ====&lt;br /&gt;
Note: you can add -nocerts to only output the private key or add -nokeys to only output the certificates&lt;br /&gt;
 # openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes&lt;br /&gt;
&lt;br /&gt;
====  Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to separate .crt/.key files ====&lt;br /&gt;
 # openssl pkcs12 -in keyStore.pfx -out keyStore.key -nocerts&lt;br /&gt;
 # openssl pkcs12 -in keyStore.pfx -out keyStore.crt -nokeys&lt;br /&gt;
&lt;br /&gt;
====  Convert a CRL/Certificate Revocation List file (.crl) to PEM (allows grep'ing for serial numbers) ====&lt;br /&gt;
 # openssl crl -inform DER -text -in gds1-53.crl -out gds1-53.pem&lt;br /&gt;
&lt;br /&gt;
====  Convert a OpenSSL &amp;gt;= 1.0 key file to a OpenSSL &amp;lt; 1.0 format key file ====&lt;br /&gt;
 # openssl rsa -in privateKey.pem -des3 -out newPrivateKey.pem&lt;br /&gt;
&lt;br /&gt;
====  Remove a passphrase from (or decrypt) a private key ====&lt;br /&gt;
 # openssl rsa -in privateKey.pem -out newPrivateKey.pem&lt;br /&gt;
&lt;br /&gt;
====  View expiry dates on a cert (works on most certs, .crt, .pem, etc.) ====&lt;br /&gt;
 # openssl x509 -noout -dates -in certificate.crt&lt;br /&gt;
&lt;br /&gt;
====  View URL/CN on a cert (works on most certs, .crt, .pem, etc.) ====&lt;br /&gt;
 # openssl x509 -noout -subject -in certificate.crt&lt;br /&gt;
&lt;br /&gt;
====  View a text dump of a cert's settings and configuration (works on most certs, .crt, .pem, etc.) ====&lt;br /&gt;
 # openssl x509 -noout -text -in certificate.crt&lt;br /&gt;
&lt;br /&gt;
====  View a text dump of a p7b cert ====&lt;br /&gt;
 # openssl pkcs7 -text -noout -print_certs -in gd_iis_intermediates.p7b&lt;br /&gt;
&lt;br /&gt;
====  View all ciphers available in the currently installed openssh ====&lt;br /&gt;
 # openssl ciphers 'ALL:eNULL' | sed -e 's/:/n/g' | sort&lt;br /&gt;
&lt;br /&gt;
====  View a cert bundle (file with many certs) ====&lt;br /&gt;
the problem with trying to query a cert bundle, openssl will only read the first cert in the bundle, so to query all of the certs, they would all need to be broken out into many files each containing only one of the certs from the bundle. But, here's how you can do that:&lt;br /&gt;
Note: you should do this in a temp dir/temp work area. ca-bundle.crt currently has approx. 170 certs, so this will gen approx. 170 files&lt;br /&gt;
 SCRIPT:&lt;br /&gt;
 # cat certsplit&lt;br /&gt;
 F=$1&lt;br /&gt;
 csplit -k -f $F -b '-%03d' -z $F '/END CERTIFICATE/+1' {*}&lt;br /&gt;
 # ./certsplit ca-bundle.crt&lt;br /&gt;
 # for C in ca-bundle.crt-* ; do echo $C ; openssl x509 -noout -subject -dates -in $C ; done&lt;br /&gt;
 OR command line:&lt;br /&gt;
 # F=ca-bundle.crt ; csplit -k -f $F -b '-%03d' -z $F '/END CERTIFICATE/+1' {*}&lt;br /&gt;
 # for C in ca-bundle.crt-* ; do echo $C ; openssl x509 -noout -subject -dates -in $C ; done&lt;br /&gt;
&lt;br /&gt;
====  Certificate Authority setup ====&lt;br /&gt;
A CA tree already exists on every system under /etc/pki/CA, to generate certs;&lt;br /&gt;
 # /etc/pki/tls/misc/CA -?&lt;br /&gt;
&lt;br /&gt;
Running the CA script with a modified openssl.cnf&lt;br /&gt;
 # SSLEAY_CONFIG=&amp;quot;-config /tmp/openssl.cnf&amp;quot; /etc/pki/tls/misc/CA -newca&lt;br /&gt;
&lt;br /&gt;
Generating sha256 certs&lt;br /&gt;
Make a copy of openssl.cnf&lt;br /&gt;
openssl.cnf, set [ CA_default ] and [ req ] sections&lt;br /&gt;
 75c75&lt;br /&gt;
 &amp;lt; default_md    = sha256                # use public key default MD&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; default_md    = default               # use public key default MD&lt;br /&gt;
 107c107&lt;br /&gt;
 &amp;lt; default_md            = sha256&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; default_md            = sha1&lt;br /&gt;
&lt;br /&gt;
Change number of days&lt;br /&gt;
Make a copy of the CA script and openssl.cnf&lt;br /&gt;
openssl.cnf, set [ CA_default ] section&lt;br /&gt;
 73c73&lt;br /&gt;
 &amp;lt; default_days  = 1825          # how long to certify for&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; default_days  = 365                   # how long to certify for&lt;br /&gt;
 &lt;br /&gt;
 CA, set CADAYS&lt;br /&gt;
 &lt;br /&gt;
 64c64&lt;br /&gt;
 &amp;lt; CADAYS=&amp;quot;-days 1825&amp;quot;   # 5 years&lt;br /&gt;
 ---&lt;br /&gt;
 &amp;gt; CADAYS=&amp;quot;-days 1095&amp;quot;   # 3 years&lt;br /&gt;
&lt;br /&gt;
====  Generating certs with extended attributes ====&lt;br /&gt;
Example for multiple DNS names (CN's)&lt;br /&gt;
&lt;br /&gt;
1. make a copy of the openssl config file (the changes will be specific to this one new cert being generated)&lt;br /&gt;
 # cp /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf-www&lt;br /&gt;
&lt;br /&gt;
2. modify the new config file&lt;br /&gt;
 # vi /etc/pki/tls/openssl.cnf-www&lt;br /&gt;
 UNDER [ req ] section, uncomment/change;&lt;br /&gt;
 # req_extensions = v3_req # The extensions to add to a certificate request&lt;br /&gt;
 TO&lt;br /&gt;
 req_extensions = v3_req # The extensions to add to a certificate request&lt;br /&gt;
 UNDER [ v3_req ] section, add your extended attributes, add the following line;&lt;br /&gt;
 subjectAltName = DNS:www.example.com, DNS:example.com&lt;br /&gt;
&lt;br /&gt;
3. run a openssl cert generation command using the new config file&lt;br /&gt;
 # openssl req -config /etc/pki/tls/openssl.cnf-www -utf8 -new -key www.example.com.key -out www.example.com.csr&lt;br /&gt;
&lt;br /&gt;
====  Add / Remove Certs To / From a Keystore ====&lt;br /&gt;
Note : default passwords are &amp;quot;changeit&amp;quot; or &amp;quot;changeme&amp;quot;, default alias is &amp;quot;mykey&amp;quot;&lt;br /&gt;
 # keytool -import -file cert.crt -keystore keystorefilename -alias certalias&lt;br /&gt;
 # keytool -delete -alias certalias -keystore keystorefilename&lt;br /&gt;
&lt;br /&gt;
====  List Certs in a Keystore ====&lt;br /&gt;
 # keytool -list -keystore keystorefilename&lt;br /&gt;
 Enter keystore password:&lt;br /&gt;
 &lt;br /&gt;
 Keystore type: JKS&lt;br /&gt;
 Keystore provider: SUN&lt;br /&gt;
 Your keystore contains 1 entry&lt;br /&gt;
 &lt;br /&gt;
 somecertalias, Dec 6, 2014, PrivateKeyEntry,&lt;br /&gt;
 Certificate fingerprint (MD5): 8D:5F:25:16:F0:53:99:FF:35:64:9E:9B:1D:FC:27:FF&lt;br /&gt;
&lt;br /&gt;
====  Export a Cert from a Keystore ====&lt;br /&gt;
Note : default passwords are &amp;quot;changeit&amp;quot; or &amp;quot;changeme&amp;quot;, default alias is &amp;quot;mykey&amp;quot;&lt;br /&gt;
 # keytool -export -alias certalias -file cert.crt -keystore keystorefilename&lt;br /&gt;
 Example:&lt;br /&gt;
 # keytool -export -alias ci-test-1 -file /tmp/ci-test.crt -keystore jssecacerts&lt;br /&gt;
 &lt;br /&gt;
 Hint : check content of exported cert&lt;br /&gt;
 # keytool -printcert -v -file star.example.com&lt;br /&gt;
&lt;br /&gt;
====  Jar Signing ====&lt;br /&gt;
 # jarsigner -verbose -keystore keystorefilename -storepass keystorepassword -keypass certkeypassword jarfilenametosign.jar aliasinkeystoreforcertkey&lt;br /&gt;
OR with Date Stamp, &amp;quot;-tsa&amp;quot; = Time Stamp Authority (below -tsa option specific for Godaddy certs)&lt;br /&gt;
 # jarsigner -verbose -keystore keystorefilename -storepass keystorepassword -keypass certkeypassword -tsa [http://tsa.starfieldtech.com/] jarfilenametosign.jar aliasinkeystoreforcertkey&lt;br /&gt;
OR if proxy is required&lt;br /&gt;
 # jarsigner -J-Dhttp.proxyHost=sc9-proxy.example.net -J-Dhttp.proxyPort=3128 -verbose -keystore keystorefilename -storepass keystorepassword -keypass certkeypassword -tsa [http://tsa.starfieldtech.com/] jarfilenametosign.jar aliasinkeystoreforcertkey&lt;br /&gt;
 &lt;br /&gt;
 updating: META-INF/MANIFEST.MF&lt;br /&gt;
 adding: META-INF/PRODUCTI.SF&lt;br /&gt;
 requesting a signature timestamp&lt;br /&gt;
 TSA location: [http://tsa.starfieldtech.com/]&lt;br /&gt;
 adding: META-INF/PRODUCTI.RSA&lt;br /&gt;
 adding: org/&lt;br /&gt;
 adding: org/openoces/&lt;br /&gt;
 adding: org/openoces/opensign/&lt;br /&gt;
 adding: org/openoces/opensign/client/&lt;br /&gt;
 adding: org/openoces/opensign/client/applet/&lt;br /&gt;
 adding: org/openoces/opensign/wrappers/microsoftcryptoapi/&lt;br /&gt;
 signing: org/openoces/opensign/wrappers/microsoftcryptoapi/MicrosoftCryptoApi.class&lt;br /&gt;
 signing: it-practice.license&lt;br /&gt;
 signing: opensign.license&lt;br /&gt;
 signing: opensign.version&lt;br /&gt;
&lt;br /&gt;
====  Verify Jar Signing ====&lt;br /&gt;
 # jarsigner -verify signedjarfilename.jar&lt;br /&gt;
 jar verified.&lt;br /&gt;
 OR for more info&lt;br /&gt;
 # jarsigner -verify -verbose -certs signedjarfilename.jar&lt;br /&gt;
&lt;br /&gt;
====  Troubleshooting ====&lt;br /&gt;
&lt;br /&gt;
=====  Test a ssl connection (https/imaps/pops/etc.s) =====&lt;br /&gt;
 # openssl s_client -connect 163.120.170.50:443&lt;br /&gt;
&lt;br /&gt;
=====  TXT_DB error number 2 =====&lt;br /&gt;
 failed to update database&lt;br /&gt;
 TXT_DB error number 2&lt;br /&gt;
 openssl command failed&lt;br /&gt;
&lt;br /&gt;
The cert you are trying to generate was already generated and is already listed in index.txt (ca/db/index.txt), you can edit index.txt and remove the line for the cert you are trying to generate. You should only get this error if you have set up a CA, and you are signing certs under that CA.&lt;br /&gt;
&lt;br /&gt;
=====  unknown pbe algorithm: TYPE=PBES2 =====&lt;br /&gt;
 unable to load private key&lt;br /&gt;
 unknown pbe algorithm: TYPE=PBES2&lt;br /&gt;
 pkcs12 algor cipherinit error&lt;br /&gt;
 pkcs12 pbe crypt error&lt;br /&gt;
 ASN1 lib&lt;br /&gt;
 PEM lib&lt;br /&gt;
&lt;br /&gt;
The key file was generated with openssl &amp;gt;= 1.0, a program built with OpenSSL &amp;lt; 1.0 fails to open the key file. OpenSSL &amp;gt;= 1.0 uses a different format for storing private keys and earlier versions are unable to open the file. Older versions are apparently able to open OpenSSL &amp;gt;= 1.0 key files which are not password protected. The key file needs to be converted to the pre OpenSSL &amp;gt;= 1.0 key file format.&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Work_Apps</id>
		<title>Work Apps</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Work_Apps"/>
				<updated>2017-05-09T17:56:01Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Apps being used on Tablet or Phone for Work envs&lt;br /&gt;
&lt;br /&gt;
===  Work Software ===&lt;br /&gt;
&lt;br /&gt;
keyboard - Hacker's Keyboard&amp;lt;br&amp;gt;&lt;br /&gt;
vpn client - AnyConnect&amp;lt;br&amp;gt;&lt;br /&gt;
ssh client - JuiceSSH&amp;lt;br&amp;gt;&lt;br /&gt;
scp client - DroidSCP (has probs, need better client)&amp;lt;br&amp;gt;&lt;br /&gt;
remote desktop client - Remote RDP (preferred, but doesn't allow android copy/paste, need better client)&amp;lt;br&amp;gt;&lt;br /&gt;
remote desktop client - aRDP Free (seems better, but android copy/paste still being worked on)&amp;lt;br&amp;gt;&lt;br /&gt;
VNC client - VNC Viewer (RealVNC client)&amp;lt;br&amp;gt;&lt;br /&gt;
IM - Skype&amp;lt;br&amp;gt;&lt;br /&gt;
IM - xabber (for internal jabber IM)&amp;lt;br&amp;gt;&lt;br /&gt;
soft phone/VOIP client - Bria (pay for app, expensed)&amp;lt;br&amp;gt;&lt;br /&gt;
compressing/archiving files - ZArchiver&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Conferencing ===&lt;br /&gt;
&lt;br /&gt;
e-Meeting&amp;lt;br&amp;gt;&lt;br /&gt;
GoToMeeting&amp;lt;br&amp;gt;&lt;br /&gt;
join.me&amp;lt;br&amp;gt;&lt;br /&gt;
WebEx&amp;lt;br&amp;gt;&lt;br /&gt;
ReadyTalk&amp;lt;br&amp;gt;&lt;br /&gt;
Sococo?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
device performance - PerformanceMonitor&amp;lt;br&amp;gt;&lt;br /&gt;
device performance - Quadrant Standard&amp;lt;br&amp;gt;&lt;br /&gt;
internet connection performance - Ookla Speedtest&amp;lt;br&amp;gt;&lt;br /&gt;
wireless performance - Wifi Analyzer&amp;lt;br&amp;gt;&lt;br /&gt;
network/wireless settings - WiFi Overview 360&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Other ===&lt;br /&gt;
&lt;br /&gt;
terminal - Terminal Emulator (or just use JuiceSSH)&amp;lt;br&amp;gt;&lt;br /&gt;
shell env - BusyBox (non-root)&amp;lt;br&amp;gt;&lt;br /&gt;
tethering - PdaNet Tablet (needed where provider blocks this functionality, like Sprint)&amp;lt;br&amp;gt;&lt;br /&gt;
hardware info - device info live wallpaper&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Android</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Android"/>
				<updated>2017-05-09T17:49:45Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ADB]] - Android Debug Bridge, control your android device from a computer via USB&lt;br /&gt;
&lt;br /&gt;
[[Tricks/Reference]]&lt;br /&gt;
&lt;br /&gt;
[[Work Apps]] - APPS used in a corporate work env to replicate apps normally run from a computer&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/VI_Quick_Reference</id>
		<title>VI Quick Reference</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/VI_Quick_Reference"/>
				<updated>2017-05-09T02:32:18Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;===  search and replace === global  :%s/search/replace/  global, multiple occurrences on each line  :%s/search/replace/g  remove end of line spaces  :%s/ +$//  ===  global com...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  search and replace ===&lt;br /&gt;
global&lt;br /&gt;
 :%s/search/replace/&lt;br /&gt;
&lt;br /&gt;
global, multiple occurrences on each line&lt;br /&gt;
 :%s/search/replace/g&lt;br /&gt;
&lt;br /&gt;
remove end of line spaces&lt;br /&gt;
 :%s/ +$//&lt;br /&gt;
&lt;br /&gt;
===  global commands ===&lt;br /&gt;
global delete&lt;br /&gt;
 :g/some text in lines to delete/d&lt;br /&gt;
&lt;br /&gt;
===  automatic formatting ===&lt;br /&gt;
check autoformat options&lt;br /&gt;
 :set formatoptions&lt;br /&gt;
&lt;br /&gt;
set autoformat options&lt;br /&gt;
 :set formatoptions=croql&lt;br /&gt;
&lt;br /&gt;
format options&lt;br /&gt;
 1 - single letter words on next line&lt;br /&gt;
 2 - keep 2nd line indent&lt;br /&gt;
 c - comments (plus leader)&lt;br /&gt;
 n - numbered lists&lt;br /&gt;
 q - allow 'gq' to work&lt;br /&gt;
 r - (in mail) comment leader after&lt;br /&gt;
 t - textwidth&lt;br /&gt;
&lt;br /&gt;
other format options&lt;br /&gt;
 :set autoindent&lt;br /&gt;
 :set noautoindent&lt;br /&gt;
 :set expandtab&lt;br /&gt;
 :set noexpandtab&lt;br /&gt;
 :set shiftwidth=3&lt;br /&gt;
 :set smartindent&lt;br /&gt;
 :set nosmartindent&lt;br /&gt;
 :set tabstop=3&lt;br /&gt;
 :set textwidth&lt;br /&gt;
 :set wrapmargin&lt;br /&gt;
 :set nowrapmargin&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Editors</id>
		<title>Editors</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Editors"/>
				<updated>2017-05-09T02:29:52Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[VI Quick Reference]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Network</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Network"/>
				<updated>2017-05-08T23:04:55Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Enterprise 7 Note ===&lt;br /&gt;
Networking drastically changed under Enterprise 7, which now has Network Manager fully integrated (which was recommended to be uninstalled in previous releases when used on a server/static configuration). On 7, the convention is now not to modify any config files (which may be auto-generated, and/or will get overwritten by updates), but to use command-line utilities to modify any of the configuration settings/parameters (which normally does not modify the primary config file, but creates an override config file usually in a separate location).&lt;br /&gt;
&lt;br /&gt;
===  Network Setup (ent 7) ===&lt;br /&gt;
1. determine interface and connection name setup for the subsequent nmcli commands, use what it shows for the Connection name (Device and Connection name are normally the same, but not always the same - this needs to be checked to verify what to use).&amp;lt;br&amp;gt;&lt;br /&gt;
Note: &amp;quot;show&amp;quot; is a default argument in most cases, and does not need to be specified, unless other &amp;quot;show&amp;quot; arguments/details are needed (as in: nmcli dev show eno16777728)&lt;br /&gt;
 # nmcli dev&lt;br /&gt;
&lt;br /&gt;
2. configure the interface, IP, and gateway (defaults to &amp;quot;automatic&amp;quot; (DHCP), change to &amp;quot;manual&amp;quot; to be able to configure static parameters - settings saved in an ifcfg-interface file in /etc/sysconfig/network-scripts/, in this example; ifcfg-eno16777728)&lt;br /&gt;
 # nmcli con mod eno16777728 ipv4.method manual ipv4.addresses 172.100.200.140/24 ipv4.gateway 172.100.200.1&lt;br /&gt;
&lt;br /&gt;
3. configure hostname (saved in /etc/hostname) and domain (saved in an ifcfg-interface file in /etc/sysconfig/network-scripts/ and in /etc/resolv.conf)&lt;br /&gt;
 # nmcli gen hostname ks-c7a.lab.example.com&lt;br /&gt;
 # nmcli con mod eno16777728 ipv4.dns-search lab.example.com&lt;br /&gt;
&lt;br /&gt;
4. configure DNS servers ((use DNS servers appropriate for your internet provider, for your own internal network, or for your local data center - saved in an ifcfg-interface file in /etc/sysconfig/network-scripts/ and in /etc/resolv.conf)&lt;br /&gt;
 # nmcli con mod eno16777728 ipv4.dns 172.100.170.90,172.100.130.90&lt;br /&gt;
&lt;br /&gt;
5. optional, list networking/connection info&lt;br /&gt;
 # nmcli con show eno16777728&lt;br /&gt;
&lt;br /&gt;
===  Network Setup (before ent 7) ===&lt;br /&gt;
most of this is common knowledge, but some of these additional steps have been added (moreso) as a comparison to the new ent 7 listing/steps (above)&lt;br /&gt;
&lt;br /&gt;
1. configure the IP and gateway&lt;br /&gt;
1a. set the following in an ifcfg-interface file (usually ifcfg-eth0) under /etc/sysconfig/network-scripts/&lt;br /&gt;
Note: ent 6 defaults to/prefers quotes around the params, i.e. BOOTPROTO=&amp;quot;none&amp;quot;, ent 6 also introduced CIDR notation, ex; PREFIX=&amp;quot;24&amp;quot; to replace the old/longer netmask convention (NETMASK=&amp;quot;255.255.255.0&amp;quot;)&lt;br /&gt;
 BOOTPROTO=none&lt;br /&gt;
 IPADDR=172.200.110.140&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
&lt;br /&gt;
1b. configure the default gateway and disable the dynamic link-local (DHCP network) address in /etc/sysconfig/network&amp;lt;br&amp;gt;&lt;br /&gt;
Note: ent 6 defaults to/prefers quotes around the params, i.e. GATEWAY=&amp;quot;172.100.130.1&amp;quot;&lt;br /&gt;
 GATEWAY=172.100.130.1&lt;br /&gt;
 NOZEROCONF=yes&lt;br /&gt;
&lt;br /&gt;
2. configure hostname&lt;br /&gt;
2a. set the FQDN hostname in /etc/sysconfig/network&lt;br /&gt;
 HOSTNAME=ks-c7a.lab.example.com&lt;br /&gt;
&lt;br /&gt;
2b. set the domain in /etc/resolv.conf&lt;br /&gt;
 domain lab.example.com&lt;br /&gt;
&lt;br /&gt;
2c. set the IP and hostname info in /etc/hosts (required for 'hostname -s' and other types of resolution)&lt;br /&gt;
 172.100.200.140   ks-c7a.lab.example.com ks-c7a&lt;br /&gt;
&lt;br /&gt;
3. configure the DNS servers in /etc/resolv.conf (use DNS servers appropriate for your internet provider, for your own internal network, or for your local data center)&lt;br /&gt;
 nameserver 172.100.170.90&lt;br /&gt;
 nameserver 172.100.130.90&lt;br /&gt;
&lt;br /&gt;
4. optional, list interface info&lt;br /&gt;
 Ent 5 or older&lt;br /&gt;
 # ifconfig&lt;br /&gt;
 Ent 6&lt;br /&gt;
 # ip addr&lt;br /&gt;
&lt;br /&gt;
===  Changing the IP (ent 7) ===&lt;br /&gt;
1. set the new IP and netmask&amp;lt;br&amp;gt;&lt;br /&gt;
Note: if the IP is not getting set, please check or go through the Network Setup steps (above), specifically see the note on the default setting with DHCP/manual mode&lt;br /&gt;
 # nmcli con mod eno16777728 ipv4.addresses 172.100.200.140/24 ipv4.gateway 172.100.200.1&lt;br /&gt;
 OR&lt;br /&gt;
 # nmcli con mod eno16777728 ipv4.addresses 172.100.200.140/24&lt;br /&gt;
 # nmcli con mod eno16777728 ipv4.gateway 172.100.200.1&lt;br /&gt;
&lt;br /&gt;
2. restart networking&amp;lt;br&amp;gt;&lt;br /&gt;
Note: this has worked remotely over ssh, as long as the two commands are entered together as per this example, otherwise doing the single down command will cause you to lose your connection and require console access to resolve/fix&lt;br /&gt;
 # nmcli con down eno16777728 ; nmcli con up eno16777728&lt;br /&gt;
&lt;br /&gt;
===  Changing the IP (before ent 7) ===&lt;br /&gt;
1. set the new IP and netmask in the ifcfg-interface file (usually ifcfg-eth0) under /etc/sysconfig/network-scripts/&amp;lt;br&amp;gt;&lt;br /&gt;
Note: ent 6 defaults to/prefers quotes around the params, i.e. NETMASK=&amp;quot;255.255.255.0&amp;quot;, ent 6 also introduced CIDR notation, ex; PREFIX=&amp;quot;24&amp;quot; to replace the old/longer netmask convention (NETMASK=&amp;quot;255.255.255.0&amp;quot;)&lt;br /&gt;
 IPADDR=172.200.110.140&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
&lt;br /&gt;
2. set the new default gateway in /etc/sysconfig/network&amp;lt;br&amp;gt;&lt;br /&gt;
Note: ent 6 defaults to/prefers quotes around the params, i.e. GATEWAY=&amp;quot;172.100.130.1&amp;quot;&lt;br /&gt;
 GATEWAY=172.100.130.1&lt;br /&gt;
&lt;br /&gt;
3. set the IP info in /etc/hosts (required for 'hostname -s' and other types of resolution)&lt;br /&gt;
 172.100.200.140   ks-c7a.lab.example.com ks-c7a&lt;br /&gt;
&lt;br /&gt;
4. restart networking&amp;lt;br&amp;gt;&lt;br /&gt;
Note: recommended to use &amp;quot;&amp;amp;&amp;quot; when connected remotely so the command will continue after the network gets disconnected (your session is normally not lost in this case, and you would normally stay connected)&lt;br /&gt;
 # service network restart &amp;amp;&lt;br /&gt;
&lt;br /&gt;
===  Adding Additional IP's/Aliases (ent 7) ===&lt;br /&gt;
1. add the additional IP&lt;br /&gt;
 # nmcli con mod eno16777728 +ipv4.addresses 172.100.200.140/24&lt;br /&gt;
&lt;br /&gt;
2. restart networking&amp;lt;br&amp;gt;&lt;br /&gt;
Note: this has worked remotely over ssh, as long as the two commands are entered together as per this example, otherwise doing the single down command will cause you to lose your connection and require console access to resolve/fix&lt;br /&gt;
 # nmcli con down eno16777728 ; nmcli con up eno16777728&lt;br /&gt;
&lt;br /&gt;
===  Adding Additional IP's/Aliases (before ent 7) ===&lt;br /&gt;
1. create an ifcfg-interface:aliasnumber file in /etc/sysconfig/network-scripts/ (ifcfg-eth0:0 for this example), with the following contents&lt;br /&gt;
 DEVICE=&amp;quot;eth0:0&amp;quot;&lt;br /&gt;
 IPADDR=&amp;quot;172.100.200.140&amp;quot;&lt;br /&gt;
 NETMASK=&amp;quot;255.255.255.0&amp;quot;&lt;br /&gt;
 ONPARENT=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. restart networking&amp;lt;br&amp;gt;&lt;br /&gt;
Note: recommended to use &amp;amp; when connected remotely so the command will continue after the network gets disconnected (your session is normally not lost in this case, and you would normally stay connected)&lt;br /&gt;
 # service network restart &amp;amp;&lt;br /&gt;
&lt;br /&gt;
===  Adding Static Routes (ent 7) ===&lt;br /&gt;
Set the address range and gateway address (saved in a route-interface file in /etc/sysconfig/network-scripts/, in this example; route-eno16777728)&lt;br /&gt;
 # nmcli con mod eno16777728 ipv4.routes &amp;quot;172.200.210.0/24 172.200.210.120&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===  Adding Static Routes (before ent 7) ===&lt;br /&gt;
Create a route-interface file (for IPv4), example /etc/sysconfig/network-scripts/route-eth0 (or route-bond0 for a bonding interface);&lt;br /&gt;
 ADDRESS0=172.200.210.0&lt;br /&gt;
 NETMASK0=255.255.255.0&lt;br /&gt;
 GATEWAY0=172.200.210.120&lt;br /&gt;
&lt;br /&gt;
===  Quick Reference ===&lt;br /&gt;
past what is shown above, here are a few additional/helpful commands&lt;br /&gt;
&lt;br /&gt;
Show IP Info (before ent 6)&lt;br /&gt;
 # ifconfig&lt;br /&gt;
&lt;br /&gt;
Show IP Info (ent 6 and newer)&lt;br /&gt;
 # ip addr&lt;br /&gt;
&lt;br /&gt;
Show IP Configuration (before ent 7)&lt;br /&gt;
 # cat /etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-e*&lt;br /&gt;
&lt;br /&gt;
Show IP Configuration (ent 7)&amp;lt;br&amp;gt;&lt;br /&gt;
Note: run 'nmcli dev' to find the device name&lt;br /&gt;
 # nmcli dev&lt;br /&gt;
 DEVICE  TYPE      STATE      CONNECTION&lt;br /&gt;
 ens32   ethernet  connected  ens32&lt;br /&gt;
 lo      loopback  unmanaged  --&lt;br /&gt;
 # nmcli con show ens32&lt;br /&gt;
&lt;br /&gt;
Show Listening Ports (only)&amp;lt;br&amp;gt;&lt;br /&gt;
Note: the : in the output normally denotes a listening port&lt;br /&gt;
 # lsof -nP | grep &amp;quot;:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Show Network Connections (before ent 7)&lt;br /&gt;
 # netstat -an&lt;br /&gt;
&lt;br /&gt;
Show Network Connections (ent 7)&lt;br /&gt;
 # ss -an&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Firewall</id>
		<title>Firewall</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Firewall"/>
				<updated>2017-05-08T02:14:38Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===  Overview / Gotcha's ===&lt;br /&gt;
Warning: making firewalld changes are either done to the running/active config or the permanent config, there is not one command for both configurations. However, this was done so you can test changes in the active config (which would not be permanent) and the system could simply be rebooted (if it became unavailable) to get it back to the previous working state. To update both the active and permanent configs, all commands would need to be run twice, once to affect the active state (without --permanent) and a second time (with --permanent) to save/make permanent the change. Alternately you can do all commands with --permanent and then do a 'firewall-cmd --reload', though is not recommended.&lt;br /&gt;
&lt;br /&gt;
===  iptables examples (before ent 7) ===&lt;br /&gt;
Allow https port:&lt;br /&gt;
 TEMPORARY&lt;br /&gt;
 # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
 PERMANENT&lt;br /&gt;
 do temporary step and &amp;quot;service iptables save&amp;quot;, OR&lt;br /&gt;
 # vi /etc/sysconfig/iptables&lt;br /&gt;
 ADD&lt;br /&gt;
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
 # service iptables restart&lt;br /&gt;
&lt;br /&gt;
Allow a custom ssh port:&lt;br /&gt;
 TEMPORARY&lt;br /&gt;
 # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 222 -j ACCEPT&lt;br /&gt;
 PERMANENT&lt;br /&gt;
 do temporary step and &amp;quot;service iptables save&amp;quot;, OR&lt;br /&gt;
 # vi /etc/sysconfig/iptables&lt;br /&gt;
 ADD&lt;br /&gt;
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 222 -j ACCEPT&lt;br /&gt;
 # service iptables restart&lt;br /&gt;
&lt;br /&gt;
Allow samba&lt;br /&gt;
figure out all it's udp &amp;amp; tcp ports and add the various needed lines for this in a similar fashion to the previous examples&lt;br /&gt;
&lt;br /&gt;
===  firewalld examples (ent 7) ===&lt;br /&gt;
Allow https port:&lt;br /&gt;
 TEMPORARY&lt;br /&gt;
 # firewall-cmd --add-port 443/tcp&lt;br /&gt;
 PERMANENT (to make active, also do temporary step, or after the permanent step do &amp;quot;firewall-cmd --reload&amp;quot;)&lt;br /&gt;
 # firewall-cmd --add-port 443/tcp --permanent&lt;br /&gt;
Note: you can use; '--add-service http' instead, but this adds a long list of ports 80/443/8080/8443/etc/etc, therefore it's more secure/preferable to only open the individual ports you need&lt;br /&gt;
&lt;br /&gt;
Allow a custom ssh port:&lt;br /&gt;
 TEMPORARY&lt;br /&gt;
 # firewall-cmd --add-port 222/tcp&lt;br /&gt;
 PERMANENT (to make active, also do temporary step, or after the permanent step do &amp;quot;firewall-cmd --reload&amp;quot;)&lt;br /&gt;
 # firewall-cmd --add-port 222/tcp --permanent&lt;br /&gt;
&lt;br /&gt;
Allow samba:&lt;br /&gt;
 # firewall-cmd --add-service smb --permanent&lt;br /&gt;
&lt;br /&gt;
===  firewalld - running/enabling firewalld ===&lt;br /&gt;
when running firewalld, this will conflict with the old iptables service, so if firewalld rules are set up and the iptables service gets started/enabled, this will cause problems/contention between the two services. To ensure this doesn't happen accidentally after you've gotten a firewalld setup configured/working correctly, it is recommended to 'mask' the conflicting services (where they could not just be enabled without someone finding out they've been masked, and explicitly having to disable the masking to enable iptables). Recommended enable procedure for firewalld:&lt;br /&gt;
 # systemctl mask   iptables&lt;br /&gt;
 # systemctl mask   ip6tables&lt;br /&gt;
 # systemctl mask   ebtables&lt;br /&gt;
 # systemctl enable firewalld&lt;br /&gt;
 # systemctl start  firewalld&lt;br /&gt;
&lt;br /&gt;
===  firewalld - zones ===&lt;br /&gt;
The following is a description of the default zones that currently come preconfigured on a system:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Zone !! Description &lt;br /&gt;
|-&lt;br /&gt;
| drop || Any incoming network packets are dropped, there is no reply. Only outgoing network connections are possible.&lt;br /&gt;
|-&lt;br /&gt;
| block || Any incoming network connections are rejected with an icmp-host-prohibited message for IPv4 and icmp6-adm-prohibited for IPv6. Only network connections initiated from within the system are possible.&lt;br /&gt;
|-&lt;br /&gt;
| public || For use in public areas. You do not trust the other computers on the network to not harm your computer. Only selected incoming connections are accepted.&lt;br /&gt;
|-&lt;br /&gt;
| external || For use on external networks with masquerading enabled especially for routers. You do not trust the other computers on the network to not harm your computer. Only selected incoming connections are accepted.&lt;br /&gt;
|-&lt;br /&gt;
| dmz || For computers in your demilitarized zone that are publicly-accessible with limited access to your internal network. Only selected incoming connections are accepted.&lt;br /&gt;
|-&lt;br /&gt;
| work || For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&lt;br /&gt;
|-&lt;br /&gt;
| home || For use in home areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&lt;br /&gt;
|-&lt;br /&gt;
| internal || For use on internal networks. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&lt;br /&gt;
|-&lt;br /&gt;
| trusted || All network connections are accepted.&lt;br /&gt;
|}&lt;br /&gt;
The primary zone defaults to public, but the primary interface (and others) can be moved into other zones. Adding new rules automatically go into the default zone, unless the zone is specified.&lt;br /&gt;
&lt;br /&gt;
===  firewall-cmd Quick Reference ===&lt;br /&gt;
Moving interfaces into other zones (actually done via NetworkManager, and not through firewalld):&lt;br /&gt;
 # nmcli con mod em1 connection.zone trusted&lt;br /&gt;
&lt;br /&gt;
Creating new Zones example (adding new zone, setting to ACCEPT (like the trusted zone) and accepting connections from a subnet for these rules):&lt;br /&gt;
 # firewall-cmd --new-zone=pinemgmt --permanent&lt;br /&gt;
 # firewall-cmd --zone=pinemgmt --set-target=ACCEPT --permanent&lt;br /&gt;
 # firewall-cmd --add-source=210.110.40.230/29 --zone=pinemgmt --permanent&lt;br /&gt;
 # firewall-cmd --add-port=222/tcp --zone=pinemgmt --permanent&lt;br /&gt;
&lt;br /&gt;
Viewing default Zone info:&lt;br /&gt;
 # firewall-cmd --list-all&lt;br /&gt;
&lt;br /&gt;
Viewing Zone info for a specific zone:&lt;br /&gt;
 # firewall-cmd --list-all --zone=trusted&lt;br /&gt;
&lt;br /&gt;
Viewing all Zones:&lt;br /&gt;
 # firewall-cmd --list-all-zones&lt;br /&gt;
&lt;br /&gt;
Removing a service&lt;br /&gt;
 # firewall-cmd --remove-service=ssh&lt;br /&gt;
 # firewall-cmd --remove-service=http&lt;br /&gt;
&lt;br /&gt;
Remove a port&lt;br /&gt;
 # firewall-cmd --remove-port=80/tcp&lt;br /&gt;
&lt;br /&gt;
Add a port (not recommended to add a service like http, which adds 8443/8080/etc/etc)&lt;br /&gt;
 # firewall-cmd --add-port=443/tcp&lt;br /&gt;
 # firewall-cmd --add-port=222/tcp&lt;br /&gt;
&lt;br /&gt;
Disallow connections from a hacking IP&lt;br /&gt;
 # firewall-cmd --add-source 98.200.183.180 --zone drop&lt;br /&gt;
 OR&lt;br /&gt;
 # firewall-cmd --add-source 98.200.183.180 --zone block&lt;br /&gt;
&lt;br /&gt;
=== Zone Examples ===&lt;br /&gt;
Example setup/scenario for a system at a client site using various zones (p2p1 is a capture interface):&lt;br /&gt;
 # nmcli con mod em1 connection.zone public&lt;br /&gt;
 # nmcli con mod p2p1 connection.zone trusted&lt;br /&gt;
 # systemctl mask iptables&lt;br /&gt;
 # systemctl mask ip6tables&lt;br /&gt;
 # systemctl enable firewalld&lt;br /&gt;
 # systemctl start firewalld&lt;br /&gt;
 # firewall-cmd --remove-service=ssh --permanent&lt;br /&gt;
 # firewall-cmd --new-zone=pinemgmt --permanent&lt;br /&gt;
 # firewall-cmd --zone=pinemgmt --set-target=ACCEPT --permanent&lt;br /&gt;
 # firewall-cmd --add-source=210.110.40.230/29 --zone=pinemgmt --permanent&lt;br /&gt;
 # firewall-cmd --reload&lt;br /&gt;
 OPTIONAL/FYI:&lt;br /&gt;
 # firewall-cmd --list-all&lt;br /&gt;
 # firewall-cmd --list-all --zone=trusted&lt;br /&gt;
 # firewall-cmd --list-all --zone=pinemgmt&lt;br /&gt;
&lt;br /&gt;
===  iptables Quick Reference ===&lt;br /&gt;
NAT'ing/forwarding&amp;lt;br&amp;gt;&lt;br /&gt;
We're not sure how to get NAT to work via command line (if you type these commands, it fails), however, NAT works if the following is set in the iptables rules file (/etc/sysconfig/iptables)&lt;br /&gt;
 *nat&lt;br /&gt;
 :PREROUTING ACCEPT&lt;br /&gt;
 :POSTROUTING ACCEPT&lt;br /&gt;
 :OUTPUT ACCEPT&lt;br /&gt;
 -A PREROUTING -i eth0 -p tcp -m tcp --dport 1904 -j DNAT --to-destination 163.120.170.170:1101&lt;br /&gt;
 -A POSTROUTING -d 163.120.170.170/32 -p tcp -m tcp -j MASQUERADE&lt;br /&gt;
 COMMIT&lt;br /&gt;
 *filter&lt;br /&gt;
 :INPUT ACCEPT&lt;br /&gt;
 :FORWARD ACCEPT&lt;br /&gt;
 :OUTPUT ACCEPT&lt;br /&gt;
 COMMIT&lt;br /&gt;
Note: the PREROUTING rule looks at anything (TCP) coming in to the local port 1904 and passes it on to 163.120.170.170 port 1101, the MASQUERADE rule is for anything going to/from 163.120.170.170 (only one MASQUERADE line is needed for all/any rules forwarding traffic to 163.120.170.170)&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/MediaWiki</id>
		<title>MediaWiki</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/MediaWiki"/>
				<updated>2017-05-07T05:09:04Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MediaWiki Issues/Notes&lt;br /&gt;
&lt;br /&gt;
CentOS 7&lt;br /&gt;
&lt;br /&gt;
The default CentOS 7 MediaWiki version does not work with InnoDB, even though docs strongly recommend InnoDB. To be able to use this version, select MyISAM during the online setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Rename Main page&lt;br /&gt;
&lt;br /&gt;
# Move Main page to new/desired name.&lt;br /&gt;
# Edit MediaWiki:Mainpage contents from &amp;quot;Main page&amp;quot; to your new/desired name.&lt;br /&gt;
# If you wish to also change the sidebar menu, edit MediaWiki:Sidebar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Documentation&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:FAQ&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Formatting&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.mediawiki.org/wiki/Manual:Contents&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.mediawiki.org/wiki/Category:Manual&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
User Mgmt&lt;br /&gt;
&lt;br /&gt;
https://www.mediawiki.org/wiki/Manual:User_rights&lt;br /&gt;
https://www.mediawiki.org/wiki/Special:UserRights&lt;br /&gt;
https://www.mediawiki.org/wiki/Help:Assigning_permissions&lt;br /&gt;
https://www.mediawiki.org/wiki/Manual:Setting_user_groups_in_MediaWiki&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Sevices</id>
		<title>Sevices</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Sevices"/>
				<updated>2017-05-07T04:40:07Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Starting and Stopping Services (including bootup configuration)&lt;br /&gt;
&lt;br /&gt;
[[Legacy INIT vs systemd]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Security</id>
		<title>Security</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Security"/>
				<updated>2017-05-07T04:39:45Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Security related topics&lt;br /&gt;
&lt;br /&gt;
[[OS Security Configuration Policy]]&lt;br /&gt;
&lt;br /&gt;
[[SSH &amp;amp; Key Usage]]&lt;br /&gt;
&lt;br /&gt;
[[SELinux]]&lt;br /&gt;
&lt;br /&gt;
[[ACL's]]&lt;br /&gt;
&lt;br /&gt;
[[Firewall]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Misc_Apps</id>
		<title>Misc Apps</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Misc_Apps"/>
				<updated>2017-05-07T04:39:30Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;Misc Apps  MediaWiki  IPPlan&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Misc Apps&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki]]&lt;br /&gt;
&lt;br /&gt;
[[IPPlan]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Mail</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Mail"/>
				<updated>2017-05-07T04:39:16Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;Mail Server &amp;amp; other Mail related configuration  Postfix  Dovecot  Maildir  Mail Client Configuration - preferred configuration once server services are optimal...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mail Server &amp;amp; other Mail related configuration&lt;br /&gt;
&lt;br /&gt;
[[Postfix]]&lt;br /&gt;
&lt;br /&gt;
[[Dovecot]]&lt;br /&gt;
&lt;br /&gt;
[[Maildir]]&lt;br /&gt;
&lt;br /&gt;
[[Mail Client Configuration]] - preferred configuration once server services are optimally configured&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/DNS</id>
		<title>DNS</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/DNS"/>
				<updated>2017-05-07T04:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;DNS Servers  Bind  Unbound  IPPlan&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DNS Servers&lt;br /&gt;
&lt;br /&gt;
[[Bind]]&lt;br /&gt;
&lt;br /&gt;
[[Unbound]]&lt;br /&gt;
&lt;br /&gt;
[[IPPlan]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Config_Mgmt</id>
		<title>Config Mgmt</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Config_Mgmt"/>
				<updated>2017-05-07T04:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Ansible]]&lt;br /&gt;
&lt;br /&gt;
[[Ambari]]&lt;br /&gt;
&lt;br /&gt;
[[Puppet]]&lt;br /&gt;
&lt;br /&gt;
[[Salt]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Database</id>
		<title>Database</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Database"/>
				<updated>2017-05-07T04:37:59Z</updated>
		
		<summary type="html">&lt;p&gt;Support: Created page with &amp;quot;Info on Databases  MySQL/MariaDB  PostgreSQL  MemCache&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Info on Databases&lt;br /&gt;
&lt;br /&gt;
[[MySQL/MariaDB]]&lt;br /&gt;
&lt;br /&gt;
[[PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
[[MemCache]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Notes</id>
		<title>Notes</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Notes"/>
				<updated>2017-05-07T04:37:24Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes / Overview&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Documentation on this site&lt;br /&gt;
&lt;br /&gt;
The documents on this site comprise information compiled over the last 25 years or so by many many Admins. Alot of this follows conventions of the companies we've worked for, and may or may not be the way you would do it, or the way you would want to do it. We will attempt to explain why and where you would want or wouldn't want to utilize some of these conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux Distros&lt;br /&gt;
&lt;br /&gt;
Initially these docs are based on what we've seen/used in enterprise environments at the companies we've worked for. So far, this has been RedHat Linux and RedHat Linux compatibles (CentOS Linux / Scientific Linux / OracleLinux / Whitebox Linux). While we have seen on job reqs, and understand there is also a demand for Admins who also use Suse or Ubuntu in Enterprise env's, we've not actually seen this in the Enterprise for the hundreds of companies we've worked for.&lt;br /&gt;
That being said, we wish that The Linux Source would be Distro agnostic, and would appreciate any help adding docs/details for some of these other major Distros as well.&lt;br /&gt;
&lt;br /&gt;
The term Enterprise mentioned in the docs is a general term for RHEL (RedHat Enterprise Linux) and compatibles (CentOS / OracleLinux / etc.). This is just a generic way to refer to a release without mentioning a specific Distro, since RHEL / CentOS / OracleLinux / etc. Release 5 aka Enterprise 5 is basically identical and where Enterprise 5 is mentioned, that command can be used on all of the RedHat compatible Distros. Fedora is slightly different, as the versioning is not in sync with these other distros. If using Fedora, it would be best to determine the applicable version the doc refers to by checking wikipedia release history to see which Fedora version coincides with which Enterprise version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Conventions&lt;br /&gt;
&lt;br /&gt;
Many examples show commands typed at a prompt. The convention is something like;&amp;lt;br&amp;gt;&lt;br /&gt;
 # commandtodosomething&lt;br /&gt;
This is not a comment, please don't include the # if copying/pasting from one of these documents. Also, note that the normal prompt as a non-priveledged user is $ and the normal prompt when root is # however the convention here is to use # for all prompts so please ignore the fact that the # prompt in the documents are also shown for a non-root user AND/OR don't assume that since the prompt is # that it means the command is typed in as root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All data on /home&lt;br /&gt;
&lt;br /&gt;
Most of the documentation follows various companies convention of separating their code and processes from the OS by dumping everything on/under /home and keeping data/logs/etc. there. This is fine if that is the convention you wish to follow, however, this is difficult to deal with if you are running a secure env using SELinux. There are some advantages with keeping everything on /home, primarily it is easy to reinstall the OS and reformat/rebuild all OS partitions without touching /home and keeping all your code/data/logs/etc. intact. One other primary reason to keep OS and application separate by using /home, when application logs fill up /tmp or /var, you don't crash the OS when it no longer has space left for temp files, or losing OS logs when there's no space left to record issues the OS is having when things go awry with the application.&lt;br /&gt;
&lt;br /&gt;
Whether you choose to keep app and OS separate and run your non-OS specifics from /home is up to you, if you don't (or if you are running SELinux), please ignore and DO NOT do the steps for moving items to home. For example, and using mySQL as a case in point, ignore the commands to move it off of /var;&amp;lt;br&amp;gt;&lt;br /&gt;
 mv /var/lib/mysql /home/ ; ln -s /home/mysql /var/lib/&lt;/div&gt;</summary>
		<author><name>Support</name></author>	</entry>

	<entry>
		<id>http://thelinuxsource.org/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://thelinuxsource.org/index.php/Main_Page"/>
				<updated>2017-05-07T04:28:41Z</updated>
		
		<summary type="html">&lt;p&gt;Support: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to The Linux Source&lt;br /&gt;
&lt;br /&gt;
Feel free to add pages/comments/etc.&lt;br /&gt;
&lt;br /&gt;
Due to excessive spam abuse, adding/editing/etc. now requires an approved login, which will also be verified via a valid email address. When creating an account, please state your desire to add appropriate Linux related content.&lt;br /&gt;
&lt;br /&gt;
Any Linux OS and any Linux subject matter is welcome here. If you do not see an appropriate section, please add it (though things may get reorganized/moved around from time-to-time as pages proliferate). If you have suggestions/input on the content or how things are organized, we would appreciate some input.&lt;br /&gt;
&lt;br /&gt;
[[Notes]] &amp;lt;- read this first!! Overview of some of the info / steps covered in the documentation on this site (i.e. you may not need/want to do all of the steps documented and why)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[ABRT]]&lt;br /&gt;
&lt;br /&gt;
[[Android]] - it runs Linux&lt;br /&gt;
&lt;br /&gt;
[[Apache]]&lt;br /&gt;
&lt;br /&gt;
[[Authorization]] - LDAP / IPA / Etc. (PAM?)&lt;br /&gt;
&lt;br /&gt;
[[Cert Mgmt]] - OpenSSL / Java / KeyTool&lt;br /&gt;
&lt;br /&gt;
[[Config Mgmt]] - Ansible / Puppet / Salt / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Cron]]&lt;br /&gt;
&lt;br /&gt;
[[Database]]&lt;br /&gt;
&lt;br /&gt;
[[Distro]] - distro specific procedures&lt;br /&gt;
&lt;br /&gt;
[[DNS]] - Bind / Unbound / IPPlan / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Docker]]&lt;br /&gt;
&lt;br /&gt;
[[Editors]] - VI / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Filesystems]] - Disk / Filesystem / LVM / RAM disks / Etc.&lt;br /&gt;
&lt;br /&gt;
[[FTP]]&lt;br /&gt;
&lt;br /&gt;
[[GPG]]&lt;br /&gt;
&lt;br /&gt;
[[Hardware]] - Dell Systems / SuperMicro / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Kickstart]] - Automating Installation&lt;br /&gt;
&lt;br /&gt;
[[Mail]] - Postfix / Dovecot / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Misc]]&lt;br /&gt;
&lt;br /&gt;
[[Misc Apps]]&lt;br /&gt;
&lt;br /&gt;
[[Misc OS]] - Logwatch / Logrotate / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Monitoring]] - Nagios / SNMP / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Network]] - Linux Network Configuration&lt;br /&gt;
&lt;br /&gt;
[[NFS]]&lt;br /&gt;
&lt;br /&gt;
[[Permissions]] (file / dir perms)&lt;br /&gt;
&lt;br /&gt;
[[Registration]] - registering a commercial Linux distro&lt;br /&gt;
&lt;br /&gt;
[[Samba]]&lt;br /&gt;
&lt;br /&gt;
[[Security]]&lt;br /&gt;
&lt;br /&gt;
[[Services]]&lt;br /&gt;
&lt;br /&gt;
[[Shell]] - Bash primarily&lt;br /&gt;
&lt;br /&gt;
[[Software Mgmt]] - YUM / DNF / RPM / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Squid]]&lt;br /&gt;
&lt;br /&gt;
[[SSH]] - Server / Client / Keys / Trusted Host&lt;br /&gt;
&lt;br /&gt;
[[Standards]] - some Standards &amp;amp; Conventions&lt;br /&gt;
&lt;br /&gt;
[[Sudo]]&lt;br /&gt;
&lt;br /&gt;
[[Syslog]]&lt;br /&gt;
&lt;br /&gt;
[[TCPwrappers]]&lt;br /&gt;
&lt;br /&gt;
[[Time Services]] - NTP / Chrony / Timezones / Etc.&lt;br /&gt;
&lt;br /&gt;
[[Update Mgmt]] - Satellite / Spacewalk / Foreman / Katello&lt;br /&gt;
&lt;br /&gt;
[[User Mgmt]]&lt;br /&gt;
&lt;br /&gt;
[[Versioning]] - Subversion / GIT / Etc.&lt;br /&gt;
&lt;br /&gt;
[[VPN]]&lt;br /&gt;
&lt;br /&gt;
[[Vulnerabilities]] - some Vulnerabilities mentioned, mainly some of the recent biggies&lt;/div&gt;</summary>
		<author><name>MediaWiki default</name></author>	</entry>

	</feed>