Jump to content

rev.dennis

Administrators
  • Content Count

    214
  • Joined

  • Last visited

Community Reputation

0 Neutral

About rev.dennis

  • Rank
    Advanced Member

Recent Profile Visitors

229 profile views
  1. First it would be helpful to get a list of users that are already on your Linux box. Get a List of All Users using the /etc/passwd File Local user information is stored in the /etc/passwd file. Each line in this file represents login information for one user. less /etc/passwd Below is an example $ less /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:997:User for polkitd:/:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin nginx:x:998:996:nginx user:/var/cache/nginx:/bin/sh mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin dockerroot:x:997:993:Docker User:/var/lib/docker:/sbin/nologin netadm1n:x:1000:1000:netadm1n:/home/netadm1n:/bin/bash Each line has seven fields delimited by colons that contain the following information: User name Encrypted password (x means that the password is stored in the /etc/shadow file) User ID number (UID) User’s group ID number (GID) Full name of the user (GECOS) User home directory Login shell (defaults to /bin/bash) If you want to display only the username you can use either awk or cut commands to print only the first field containing the username: Using awk example: $ awk -F: '{ print $1}' /etc/passwd root bin daemon adm lp sync shutdown halt mail operator games ftp nobody systemd-network dbus polkitd postfix sshd tss nginx mysql apache dockerroot netadm1n Using cut example: $ cut -d: -f1 /etc/passwd root bin daemon adm lp sync shutdown halt mail operator games ftp nobody systemd-network dbus polkitd postfix sshd tss nginx mysql apache dockerroot netadm1n So you may have identified your Linux system doesn't have a user on it that needs to exist. Let's go to the next section that describes how to add a user How to Create Users in Linux In Linux, you can create a user account and assign the user to different groups using the useradd command. The general syntax for the useradd command is as follows: useradd [OPTIONS] USERNAME NOTE: To be able to use the useradd command and create new users you need to be logged in as root or a user with sudo access. To create a new user account type useradd followed by the username. For example to create a new user named username you would run: useradd username The command adds an entry to /etc/passwd /etc/shadow /etc/group /etc/gshadow files To be able to log in as the newly created user, you need to set the user password. To do that run the passwd command followed by the username: passwd username You will be prompted to enter and confirm the password. In most Linux distros, when creating a new user account with the useradd command the user home directory is not created. Use the -m (--create-home) option to create the user home directory as /home/username: useradd -m username The command above creates the new user’s home directory and copies files from /etc/skel directory to the user’s home directory.
  2. Common LB Application Patterns SSL Offload SSL offloading, also known as SSL termination, decrypts all HTTPS traffic on the load balancer. Layer 7 actions can be carried out and the data proceeds to the backend server as plain HTTP traffic. SSL offloading allows data to be inspected as it passes between the load balancer and server. It also reduces CPU demand on an application server by decrypting data in advance. SSL offloading is vulnerable to attack as the data travels unencrypted between the load balancer and application server. SSL Bridge SSL bridging is a process where a device, usually located at the edge of a network, decrypts SSL traffic and then re-encrypts it before sending it on to the Web server. SSL bridging can be useful when the edge device performs deep-packet inspection to verify that the contents of the SSL-encrypted transmission are safe, or if there are security concerns about unencrypted traffic traversing the internal network. Pass-through SSL passthrough happens when an incoming security sockets layer (SSL) request is not decrypted at the load balancer but passed along to a server for decryption. SSL passthrough is used when web application security is a top concern. SSL passthrough keeps the data encrypted as it travels through the load balancer. The web server does the decryption upon receipt. SSL passthrough uses TCP mode to pass encrypted data to servers. The data passes through fully encrypted, which precludes any layer 7 actions. LTM Policy GTM (Active/Active or Active/Passive) UnCommon Patterns 2-way SSL Openshift Patterns
  3. We were running into an issue and I thought it would be good to know what Virtual Servers have a lot of connections but the Statistics Module isn't good unless you clear statistics and start watching at that moment (don't forget to refresh) Here are two CLI commands that did me well Maximum Connections per Virtual Server tmsh show sys connection | egrep -v 'T|S' | awk '{print $2}' | sort -n | uniq -c | sort -n The output looks something like this with the Virtual Server at the bottom with 3655 connections 330 172.74.1.20:443 709 10.40.64.162:53 713 10.40.64.163:53 966 172.74.1.62:443 1086 10.40.32.50:53 1210 172.74.1.72:443 1460 10.47.53.25:389 1465 10.47.53.27:389 1467 10.47.53.26:389 1477 10.44.112.234:53 1580 10.44.112.233:53 2046 172.74.1.8:17533 2393 10.43.144.136:389 2395 10.47.144.151:389 3655 172.74.1.44:443 Maximum Connections per VIP (really just another way to get the same results) tmsh show sys connection | egrep -v 'T|S' | awk '{print $2}' | cut -d: -f 1 |sort -n | uniq -c | sort -n
  4. So I upgrade from 13.1.1.5 to 13.1.3 and out of 30 LTMs (all vCMP Guests) only about half are successful. What happens is after the system boots up on the new code it shows the configuration is unable to shown. First step in troubleshooting is go to the CLI and run tmsh load sys config See where it errors out (see below for my example) [root@txsat1slbco22:/S3-red-P::Offline:Disconnected] config # tmsh load sys config Loading system configuration... /defaults/asm_base.conf /defaults/config_base.conf /defaults/ipfix_ie_base.conf /defaults/ipfix_ie_f5base.conf /defaults/low_profile_base.conf /defaults/low_security_base.conf /defaults/policy_base.conf /defaults/wam_base.conf /defaults/analytics_base.conf /defaults/apm_base.conf /defaults/apm_oauth_base.conf /defaults/apm_saml_base.conf /defaults/app_template_base.conf /defaults/classification_base.conf /var/libdata/dpi/conf/classification_update.conf /defaults/ips_base.conf /var/libdata/ips/ips_update.conf /defaults/daemon.conf /defaults/pem_base.conf /defaults/profile_base.conf /defaults/sandbox_base.conf /defaults/security_base.conf /defaults/urldb_base.conf /usr/share/monitors/base_monitors.conf /defaults/cipher.conf /defaults/ilx_base.conf Loading configuration... Loading schema version: 13.1.1.4 /config/bigip_base.conf /config/bigip_user.conf /config/bigip.conf Loading schema version: 13.1.3 01071008:3: Provisioning failed with error 1 - 'Disk limit exceeded. 16188 MB are required to provision these modules, but only 15752 MB are available.' . Unexpected Error: Loading configuration process failed. [root@txsat1slbco22:/S3-red-P::Offline:Disconnected] config # 2019 Aug 14 13:05:35 slot3/txsat1slbco22 overdog[3111]: 01140043:0: Ha feature software_update reboot requested. I have four cores assigned to the vCMP Guest which per F5 that should be plenty for three modules provisioned. As a test I removed APM (especially since I don't use it yet so no risk) and then clicked System - Configuration - General - Reboot Guest Chassis to reboot and save the config first. Then reboot back to the partition (System - Software Management - Boot Locations and click HD1.1 or whatever the partition is that has the new code) see if the issue goes away. SAME issue.. CRAP! My next attempt is to reduce the amount of images/partitions on the drive to just two versus three. Run the following command to show you how many images/partitions you have tmsh show sys software --------------------------------------------------------- Sys::Software Status Volume Slot Product Version Build Active Status --------------------------------------------------------- HD1.1 3 BIG-IP 13.1.3 0.0.6 yes complete HD1.2 3 BIG-IP 12.1.3.5 0.0.10 no complete HD1.3 3 BIG-IP 13.1.1.4 0.0.4 no complete --------------------------- Sys::Software Update Check --------------------------- Check Enabled true Phonehome Enabled true Frequency weekly Status none Errors 0 My goal is to always keep two versions. The working one and the future one... always have 1 rollback. So in this case we are running 13.1.1.4 and "trying" to upgrade to 13.1.3 so we don't need HD1.2 so lets remove it in order to free up some space. The below is the command I ran to remove HD1.2 tmsh delete /sys software volume HD1.2 Then double check by re-running your show sys software command tmsh show sys software -------------------------------------------------------- Sys::Software Status Volume Slot Product Version Build Active Status -------------------------------------------------------- HD1.1 3 BIG-IP 13.1.3 0.0.6 yes complete HD1.3 3 BIG-IP 13.1.1.4 0.0.4 no complete --------------------------- Sys::Software Update Check --------------------------- Check Enabled true Phonehome Enabled true Frequency weekly Status none Errors 0 Okay now let's just do a quick verify loading the config tmsh load sys config verify Validating system configuration... /defaults/asm_base.conf /defaults/config_base.conf /defaults/ipfix_ie_base.conf /defaults/ipfix_ie_f5base.conf /defaults/low_profile_base.conf /defaults/low_security_base.conf /defaults/policy_base.conf /defaults/wam_base.conf /defaults/analytics_base.conf /defaults/apm_base.conf /defaults/apm_oauth_base.conf /defaults/apm_saml_base.conf /defaults/app_template_base.conf /defaults/classification_base.conf /var/libdata/dpi/conf/classification_update.conf /defaults/ips_base.conf /var/libdata/ips/ips_update.conf /defaults/daemon.conf /defaults/pem_base.conf /defaults/profile_base.conf /defaults/sandbox_base.conf /defaults/security_base.conf /defaults/urldb_base.conf /usr/share/monitors/base_monitors.conf /defaults/cipher.conf /defaults/ilx_base.conf Validating configuration... Loading schema version: 13.1.1.4 /config/bigip_base.conf /config/bigip_user.conf /config/bigip.conf /config/bigip_script.conf Loading schema version: 13.1.3 There were warnings: /Common/f5.bigiq-analytics definition:130: warning: [use curly braces to avoid double substitution][($start_hour] /Common/f5.bigiq-analytics definition:131: warning: [use curly braces to avoid double substitution][($end_hour] /Common/f5.bigiq-analytics definition:133: warning: [use curly braces to avoid double substitution][$end_minute] /Common/f5.bigiq-analytics definition:141: warning: [use curly braces to avoid double substitution][$start_random] /Common/f5.bigiq-analytics definition:145: warning: [use curly braces to avoid double substitution][round("00.[lindex $start_random 1]"] /Common/f5.bigiq-analytics definition:2189: warning: [use curly braces to avoid double substitution][$nonpriority] /Common/f5.bigiq-analytics definition:2192: warning: [use curly braces to avoid double substitution][$nonpriority] /Common/f5.bigiq-analytics definition:2249: warning: [use curly braces to avoid double substitution][$::time] /Common/f5.bigiq-analytics definition:2290: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2363: warning: [use curly braces to avoid double substitution][($start_hour] /Common/f5.bigiq-analytics definition:2363: warning: [use curly braces to avoid double substitution][($current_hour] /Common/f5.bigiq-analytics definition:2364: warning: [use curly braces to avoid double substitution][$time] /Common/f5.bigiq-analytics definition:2529: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2531: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2547: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2549: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2560: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2562: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2871: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2917: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2920: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2927: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2929: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:2968: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:3012: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:3016: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:3023: warning: [use curly braces to avoid double substitution][$::uniqueid] /Common/f5.bigiq-analytics definition:3025: warning: [use curly braces to avoid double substitution][$::uniqueid] curly braces error isn't critical and technically shouldn't be the reason we can't load the config so let's try and load the config. We do know based on the verify that it does appear to be making it further than before so I believe removing that partition may have solved the issue tmsh load /sys config Command line is looking positive (txsat1slbco21)(cfg-sync Disconnected)(/S3-green-P::Standby)(/Common)(tmos) Let's log into the GUI to make sure all is good.... DAMN it! Have to re-activate license on the Viprion chassis which will affect every vCMP Guest you have on that chassis.
  5. rev.dennis

    Clear Browser Cache

    Google Chrome On your computer, open Chrome. At the top right, click More . Click More tools Clear browsing data. At the top, select All time. Next to "Cookies and other site data" and "Cached images and files," check the boxes. Click Clear data. Safari <coming soon>
  6. Having an issue where my vCMP Guest will not run. I have tried to rebuild it, delete the img file, change what version of operating system and nothing. So there is currently a bug (ID 759968) that referencve a bug with clustering of the devices. In short, the guests end up having duplicate rebroad_mac on one or more slots. You can confirm this by running the following command clsh tmctl -d blade tmm/vcmp -w 200 Look at the “reborad_mac” field This is common when you run your guest on one blade. If you used more than one blade the issue typically goes away.
  7. Declarative Onboarding https://clouddocs.f5.com/products/extensions/f5-declarative-onboarding/latest/ App Services Extension https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/ Telemetry Streaming https://clouddocs.f5.com/products/extensions/f5-telemetry-streaming/latest/ Intro to DevOps https://clouddocs.f5.com/training/community/programmability/html/ Quick-hit learning material https://www.youtube.com/channel/UCtVHX3fmQVjVgj_cGRIxRSg
  8. Here are the steps that were followed to protect environment from Apache Struts vulnerabilities Security – app secuirty – attack signatures – attack signature configuration Enable Staging Save – Apply Policy Security – options – app security – attack signatures – attack signatures update Delivery Mode: Manual Browse to File Click Update Signatures Security – Options – Application Security – Attack Signatures – attack signature set Create apache_struts_CVE… Type: Manual 200004224 200003458 200003470 200004174 200003440 200100310 Security – Application Security – Attack Signatures – Attack Signature List Filter Details Search Signature ID (remove from Staging) 200004224 200003458 200003470 200004174 200003440 200100310 Search Containg String (remove from Staging) sig.java.lang.processbuilder “/bin” execution attempt (Headers) Automated client access “curl” Java Code Injection (java packages) (Header) Java code injection – java/lang/Process (Header) Java code injection java.lang.System (Header) Java code injection ognl.OgnlContext (Header) APPLY Policy Security – Application Security – Content Profiles – XML Profiles Create Apache_Struts_Profile Defense Configuration: Allow DTDs Tolerate Leading White Space Create Security – Application Security – URLs – Allowed URLs Next to HTTPS click * Advanced Header-Based Content Profiles Request Header Name: Content-Type Request Header Value: *xml* Request Body Handling: XML Click ADD Click UPDATE Same thing for HTTP APPLY Policy
  9. https://clouddocs.f5.com/training/community/analytics/html/
  10. This is extremely useful troubleshooting external URLs going through proxy / eGTMs / iGTMs and all other sort of combinations. What i really like about it is it really gives good data for different touch points. time_namelookup time_connect time_appconnect time_pretransfer time_redirect time_starttransfer It helped me handling extrenal 3rd party URLs and their response times, handshake failures. ***************************************************************************************************************************************************** $ cat curl-format.txt time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_appconnect: %{time_appconnect}\n time_pretransfer: %{time_pretransfer}\n time_redirect: %{time_redirect}\n time_starttransfer: %{time_starttransfer}\n ----------\n time_total: %{time_total}\n $ curl -p 10.43.196.140:80 -w "@curl-format.txt" -o /dev/null -k https://example.com/services/Soap/class/BridgeIntegrationService?wsdl % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 677 100 677 0 0 41924 0 --:--:-- --:--:-- --:--:-- 42312 time_namelookup: 0.000 time_connect: 0.007 time_appconnect: 0.000 time_pretransfer: 0.008 time_redirect: 0.000 time_starttransfer: 0.016 ---------- time_total: 0.016 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <title>Error 405 Only POST allowed</title> </head> <body><h2>HTTP ERROR 405</h2> <p>Problem accessing /services/Soap/class/BridgeIntegrationService. Reason: <pre> Only POST allowed</pre></p><hr /><br/> <!-- Body events --> <script type="text/javascript">function bodyOnLoad(){if(window.PreferenceBits){window.PreferenceBits.prototype.csrfToken="null";};}function bodyOnBeforeUnload(){}function bodyOnFocus(){}function bodyOnUnload(){}</script> </body> </html> <!-- ................................................................................................... ................................................................................................... ................................................................................................... ................................................................................................... -->time_namelookup: 0.012 time_connect: 0.013 time_appconnect: 0.251 time_pretransfer: 0.251 time_redirect: 0.000 time_starttransfer: 0.507 ---------- time_total: 0.507 *****************************************************************************************************************************************************
  11. Pre-Req that you have openssl installed on your linux box. I utilize Centos 7 but you can use any Linux distribution you prefer. Let's first discuss the different formats PEM Format The PEM format is the most common format that Certificate Authorities issue certificates in. PEM certificates usually have extentions such as .pem, .crt, .cer, and .key. They are Base64 encoded ASCII files and contain "-----BEGIN CERTIFICATE-----" and "-----END CERTIFICATE-----" statements. Server certificates, intermediate certificates, and private keys can all be put into the PEM format. Apache and other similar servers use PEM format certificates. Several PEM certificates, and even the private key, can be included in one file, one below the other, but most platforms, such as Apache, expect the certificates and private key to be in separate files. DER Format The DER format is simply a binary form of a certificate instead of the ASCII PEM format. It sometimes has a file extension of .der but it often has a file extension of .cer so the only way to tell the difference between a DER .cer file and a PEM .cer file is to open it in a text editor and look for the BEGIN/END statements. All types of certificates and private keys can be encoded in DER format. DER is typically used with Java platforms. The SSL Converter can only convert certificates to DER format. If you need to convert a private key to DER, please use the OpenSSL commands on this page. PKCS#7/P7B Format The PKCS#7 or P7B format is usually stored in Base64 ASCII format and has a file extention of .p7b or .p7c. P7B certificates contain "-----BEGIN PKCS7-----" and "-----END PKCS7-----" statements. A P7B file only contains certificates and chain certificates, not the private key. Several platforms support P7B files including Microsoft Windows and Java Tomcat. PKCS#12/PFX Format The PKCS#12 or PFX format is a binary format for storing the server certificate, any intermediate certificates, and the private key in one encryptable file. PFX files usually have extensions such as .pfx and .p12. PFX files are typically used on Windows machines to import and export certificates and private keys. When converting a PFX file to PEM format, OpenSSL will put all the certificates and the private key into a single file. You will need to open the file in a text editor and copy each certificate and private key (including the BEGIN/END statments) to its own individual text file and save them as certificate.cer, CACert.cer, and privateKey.key respectively. Now for the commands.... Convert x509 to PEM openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem Convert PEM to DER openssl x509 -outform der -in certificatename.pem -out certificatename.der Convert DER to PEM openssl x509 -inform der -in certificatename.der -out certificatename.pem Convert PEM to P7B Note: The PKCS#7 or P7B format is stored in Base64 ASCII format and has a file extension of .p7b or .p7c. A P7B file only contains certificates and chain certificates (Intermediate CAs), not the private key. The most common platforms that support P7B files are Microsoft Windows and Java Tomcat. openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer Convert PKCS7 to PEM openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem Convert pfx to PEM Note: The PKCS#12 or PFX format is a binary format for storing the server certificate, intermediate certificates, and the private key in one encryptable file. PFX files usually have extensions such as .pfx and .p12. PFX files are typically used on Windows machines to import and export certificates and private keys. openssl pkcs12 -in certificatename.pfx -out certificatename.pem Convert PFX to PKCS#8 Note: This requires 2 commands STEP 1: Convert PFX to PEM openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem STEP 2: Convert PEM to PKCS8 openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8 Convert P7B to PFX Note: This requires 2 commands STEP 1: Convert P7B to CER openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer STEP 2: Convert CER and Private Key to PFX openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer another example openssl pkcs12 -export -inkey zahsystems.com.key -in zahsystems.crt -certfile L1k.Chain.Bundle.2018.crt -out zahsystems.pfx
  12. My name is Rev.Dennis and I was born and raised Christian Catholic by my parents. Every Sunday we went to church and sat, kneeled and stood as the Priest tried to communicate with us what he believed we needed to know. For a few years I was an alter boy at St.Daniels Catholic church in Clarkston, Michigan which was better than sitting, kneeling and standing in a pew. Still at a young age I didn’t understand why we were forced to go to church every Sunday when obviously there was more fun things to do. I joined the Air Force while I was still in Brandon High School and was on the Delayed Enlistment Program so when I graduated I could go to basic training at Lackland Air Force Base. During the service I became closer to God and religion after I have had several close calls. I am now a non-denominational minister. I originally became an ordained minister to marry friends and family. As soon as I was ordained I felt this was a very big responsibility and started doing research. Read a bunch of books and I’m still the same person as I was just more aware of the significance of being labeled as a minister. I’m not just someone who can marry you but I can also be a friend, someone you can talk to or ask advice. When you need someone to lean or when you feel your faith is failing you, I can be there.
  13. This is our website to share and collaborate on whats important, believing, being good to each other. Why Believe? Why not Believe? Many times I get asked, "Why is it so important to believe?" I wonder how you can not believe. Everyone has been in a time in there life they weren't sure how they got through it. Maybe you feel unlucky because you don't win the lottery or get the person you want but God above has a plan for you. Just open your eyes, your heart and your soul and you'll see it. Just believe and it comes easy. You are never alone It is very easy to feel alone especially when times are rough and it feels the weight of the world is pushing you down. You have us, you have God and you have your faith which will keep you strong. Being open to receive his gift So many have a difficult time opening there heart and mind to the gift God wants to share with you. Everyone believes differently and none of them are wrong. What’s important is believing.
  14. Here are a list of the different Viprion models
  15. Training Material captured throughout time learning about the LTM's, GTM's and Viprion chassis
×
×
  • Create New...