Facebook Twitter Instagram
    TecAdmin
    • Home
    • FeedBack
    • Submit Article
    • About Us
    Facebook Twitter Instagram
    TecAdmin
    You are at:Home»Databases»How To Install and Secure MongoDB on CentOS 8

    How To Install and Secure MongoDB on CentOS 8

    By RahulAugust 18, 20215 Mins Read

    MongoDB is a popularly used document-oriented, NoSQL, database program. The term NoSQL refers to not only SQL which is an approach to designing databases. A NoSQL database is modeled in a way that the storage and retrieval of data are done through documents, instead of using the tabular structure (tables and rows) used in the more traditional relational databases.

    Advertisement

    MongoDB is a general-purpose database in which data is stored in flexible JSON-like documents in key-value pairs. Each MongoDB database has collections that contain documents. These documents can have different sizes, contents, and numbers of fields. It supports an optional schema model which means that the blueprint of the database doesn’t need to be defined beforehand. The MongoDB databases are very scalable.

    The document-oriented model makes MongoDB very flexible. It is great at load balancing and duplicating data and can run on multiple servers. These features allow it to keep the system running even if there is hardware failure. Following are some of the key features of MongoDB:

    • Ad-hoc queries
    • Indexing
    • Aggregation
    • Load balancing
    • Capped collections
    • Replication

    How to install MongoDB on CentOS 8

    To install MongoDB on your system you must be logged in as a root user or have sudo privileges.

    MongoDB is not available by default in CentOS 8 repositories. So, first, we will have to create a new file and add MongoDB to the repositories of CentOS 8. Use the below-given command to create a new file:

    sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo 
    

    Now copy and paste the following text into the text file created above, so you can install MongoDB directly from the terminal:

    [mongodb-org-5.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
    

    Save the file and close it.

    Now to install MongoDB use the command given below:

    sudo dnf install mongodb-org -y
    
    dnf install mongodb on centos8
    Installing MongoDB with DNF

    The command given above will install the newest stable version of MongoDB. As of now, it is 5.0. You can visit MongoDB’s official website to check out the latest version. If you want to install a specific version then replace 5.0 with your preferred version in the text file.

    To verify the installation, run the MongoDB database:

    mongo
    
    Connect Mongo Shell
    Connect Mongo Shell via CLI

    Now execute the below-given command to check the version installed on your system:

    db.version() 
    
    Output:
    5.0.1

    Now, use the following command to exit the shell:

    exit 
    

    Once the installation process is completed, start MongoDB by using the below-mentioned command:

    sudo systemctl start mongod
    

    Now enable the MongoDB service using the command given below.

    sudo systemctl enable mongod
    

    You can use the below-given command to check the status of the MongoDB service:

    sudo systemctl status mongod
    
    Check MongoDB Service
    MongoDB Service Status

    How to Enable MongoDB Authentication

    Now that we have successfully installed MongoDB on our system, we will configure it to make it more secure.

    Authentication is disabled by default for MongoDB. This allows any user to modify, create, delete or interact with databases. It is recommended to enable authentication and restrict access to MongoDB. MongoDB authentication can be enabled by editing the following configuration file:

    nano /etc/mongod.conf 
    

    After opening the config file in your preferred browser search for #security. Uncomment the security section by removing the # sign and add authorization: enabled on the next line. The “authorization: enabled” line should be indented by using two spaces. The config file should look something like this after you are done editing it:

    Enabling authorization in Mongodb
    Enabling Authorization in Mongodb Server

    Save and exit the file using Ctrl + X if you’re using Nano. Now to apply the changes to MongoDB; restart the service using the following command:

    systemctl restart mongod 
    

    You can again check the status of the MongoDB service to verify if the service has restarted successfully by using the above-mentioned command.

    How to Create an Admin user for MongoDB

    Now we will create an admin user for MongoDB who will have all the administrative privileges. To create a new MongoDB admin user, first access the MongoDB service by using the following command:

    mongo 
    

    Now execute the following command to use the service as an admin:

    use admin
    

    Now use the below given command to create a new user:

    db.createUser( { user: "admin1", pwd: "pass", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )
    

    You can replace admin1 and pass with your preferred username and password.

    Create an Admin User in MongoDB
    Create an Admin User in MongoDB

    Now exit the shell by using the below-given command:

    exit
    

    How to verify MongoDB Authentication

    Now you will not be able to run a command on the MongoDB shell without authentication as we have configured it to make authentication necessary.

    You can open the MongoDB service and try to run different commands to verify this:

    show users
    
    MongoDB Authorization Error
    MongoDB Error without Authorization
    show dbs
    

    In the example above no output has been shown as the access is now restricted.

    You can access the MongoDB service with the administrative user by using the command given below:

    mongo -u admin1 -p --authenticationDatabase admin 
    

    Now if I use the show dbs command again, I get the following output:

    show dbs
    
    Output:
    admin 0.000GB config 0.000GB local 0.000GB

    Conclusion

    MongoDB is a free, open-source, NoSQL database. It offers developers a lot more flexibility than traditional relational-based databases. It stores data in JSON-like documents which allows faster and efficient data transfer between the client and the database.

    In this comprehensive guide, we learned to install and configure MongoDB on CentOS 8 operating system.

    mongo mongodb nosql
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp

    Related Posts

    Securing MySQL Database with Limited User Permissions

    How to Install and Secure MongoDB on Ubuntu 22.04

    How to Connect MongoDB Database in Python

    Add A Comment

    Leave A Reply Cancel Reply

    Advertisement
    Recent Posts
    • Implementing a Linux Server Security Audit: Best Practices and Tools
    • cp Command in Linux (Copy Files Like a Pro)
    • 15 Practical Examples of dd Command in Linux
    • dd Command in Linux (Syntax, Options and Use Cases)
    • Iptables: Common Firewall Rules and Commands
    Facebook Twitter Instagram Pinterest
    © 2023 Tecadmin.net. All Rights Reserved | Terms  | Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.