{"id":8113,"date":"2019-01-13T18:25:50","date_gmt":"2019-01-13T18:25:50","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw92\/?p=8113"},"modified":"2019-01-24T02:11:39","modified_gmt":"2019-01-24T02:11:39","slug":"introduction-to-linux-server-security-hardening","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/13\/introduction-to-linux-server-security-hardening\/","title":{"rendered":"Introduction to Linux Server Security Hardening"},"content":{"rendered":"<p>Securing your Linux server(s) is a difficult and time consuming task for System Administrators but its necessary to harden the server\u2019s security to keep it safe from Attackers and Black Hat Hackers. You can secure your server by configuring the system properly and installing as minimum softwares as possible. There are some tips which can help you secure your server from network and privilege escalation attacks.<\/p>\n<h3><strong>Upgrade your Kernel<\/strong><\/h3>\n<p>Outdated kernel is always prone to several network and privilege escalation attacks. So you can update your kernel using\u00a0<strong>apt<\/strong>\u00a0in Debian or\u00a0<strong>yum<\/strong>\u00a0in Fedora.<\/p>\n<div class=\"DBXsIZ1K\"><\/div>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\">$\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get update<\/span><br \/>\n$\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get dist-upgrade<\/span><\/div>\n<\/div>\n<h3><strong>Disabling Root Cron Jobs<\/strong><\/h3>\n<p>Cron jobs running by root or high privilege account can be used as a way to gain high privileges by attackers. You can see running cron jobs by<\/p>\n<div class=\"0PyyzUn4\"><\/div>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span><span class=\"kw2\">ls<\/span>\u00a0<span class=\"sy0\">\/<\/span>etc<span class=\"sy0\">\/<\/span>cron<span class=\"sy0\">*<\/span><\/div>\n<\/div>\n<h3><strong>Strict Firewall Rules<\/strong><\/h3>\n<p>You should block any unnecessary inbound or outbound connection on uncommon ports. You can update your firewalls rules by using\u00a0<strong>iptables<\/strong>. Iptables is a very flexible and easy to use utility used to block or allow incoming or outgoing traffic. To install, write<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get install<\/span>\u00a0iptables<\/div>\n<\/div>\n<p>Here\u2019s an example to block incoming on FTP port using iptables<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span>iptables\u00a0<span class=\"re5\">-A<\/span>\u00a0INPUT\u00a0<span class=\"re5\">-p<\/span>\u00a0tcp\u00a0<span class=\"re5\">&#8211;dport<\/span>\u00a0<span class=\"kw2\">ftp<\/span>\u00a0<span class=\"re5\">-j<\/span>\u00a0DROP<\/div>\n<\/div>\n<h3><strong>Disable unnecessary Services<\/strong><\/h3>\n<p>Stop any unwanted services and daemons running on your system. You can list running services using following commands.<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">ubuntu@ubuntu:~$\u00a0<\/span>service\u00a0<span class=\"re5\">&#8211;status-all<\/span><\/p>\n<p><span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 acpid<br \/>\n<span class=\"br0\">[<\/span>\u00a0&#8211;\u00a0<span class=\"br0\">]<\/span>\u00a0 alsa-utils<br \/>\n<span class=\"br0\">[<\/span>\u00a0&#8211;\u00a0<span class=\"br0\">]<\/span>\u00a0 anacron<br \/>\n<span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 apache-htcacheclean<br \/>\n<span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 apache2<br \/>\n<span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 apparmor<br \/>\n<span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 apport<br \/>\n<span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 avahi-daemon<br \/>\n<span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 binfmt-support<br \/>\n<span class=\"br0\">[<\/span>\u00a0+\u00a0<span class=\"br0\">]<\/span>\u00a0 bluetooth<br \/>\n<span class=\"br0\">[<\/span>\u00a0&#8211;\u00a0<span class=\"br0\">]<\/span>\u00a0 cgroupfs-mount<\/p>\n<p>\u2026snip&#8230;<\/p><\/div>\n<\/div>\n<p>OR using the following command<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span>chkconfig\u00a0<span class=\"re5\">&#8211;list<\/span>\u00a0<span class=\"sy0\">|<\/span>\u00a0<span class=\"kw2\">grep<\/span>\u00a0<span class=\"st_h\">&#8216;3:on&#8217;<\/span><\/div>\n<\/div>\n<p>To stop a service, type<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0service\u00a0<span class=\"br0\">[<\/span>SERVICE_NAME<span class=\"br0\">]<\/span>\u00a0stop<\/div>\n<\/div>\n<p>OR<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0systemctl stop\u00a0<span class=\"br0\">[<\/span>SERVICE_NAME<span class=\"br0\">]<\/span><\/div>\n<\/div>\n<h3><strong>Check for Backdoors and Rootkits<\/strong><\/h3>\n<p>Utilities like rkhunter and chkrootkit can be used to detect known and unknown backdoors and rootkits. They verify installed packages and configurations to verify system\u2019s security. To install write,<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">ubuntu@ubuntu:~$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get install<\/span>\u00a0rkhunter\u00a0<span class=\"re5\">-y<\/span><\/div>\n<\/div>\n<p>To scan your system, type<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">ubuntu@ubuntu:~$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0rkhunter\u00a0<span class=\"re5\">&#8211;check<\/span><\/p>\n<p><span class=\"br0\">[<\/span>\u00a0Rootkit Hunter version 1.4.6\u00a0<span class=\"br0\">]<\/span><\/p>\n<p>Checking system commands&#8230;<\/p>\n<p>Performing\u00a0<span class=\"st_h\">&#8216;strings&#8217;<\/span>\u00a0<span class=\"kw3\">command<\/span>\u00a0checks<br \/>\nChecking\u00a0<span class=\"st_h\">&#8216;strings&#8217;<\/span>\u00a0<span class=\"kw3\">command<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"br0\">[<\/span>\u00a0OK\u00a0<span class=\"br0\">]<\/span><\/p>\n<p>Performing\u00a0<span class=\"st_h\">&#8216;shared libraries&#8217;<\/span>\u00a0checks<br \/>\nChecking\u00a0<span class=\"kw1\">for<\/span>\u00a0preloading variables\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"br0\">[<\/span>\u00a0None found\u00a0<span class=\"br0\">]<\/span><br \/>\nChecking\u00a0<span class=\"kw1\">for<\/span>\u00a0preloaded libraries\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"br0\">[<\/span>\u00a0None found\u00a0<span class=\"br0\">]<\/span><br \/>\nChecking LD_LIBRARY_PATH variable\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"br0\">[<\/span>\u00a0Not found\u00a0<span class=\"br0\">]<\/span><\/p>\n<p>Performing\u00a0<span class=\"kw2\">file<\/span>\u00a0properties checks<br \/>\nChecking\u00a0<span class=\"kw1\">for<\/span>\u00a0prerequisites\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"br0\">[<\/span>\u00a0OK\u00a0<span class=\"br0\">]<\/span><br \/>\n<span class=\"sy0\">\/<\/span>usr<span class=\"sy0\">\/<\/span>sbin<span class=\"sy0\">\/<\/span>adduser\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"br0\">[<\/span>\u00a0OK\u00a0<span class=\"br0\">]<\/span><br \/>\n<span class=\"sy0\">\/<\/span>usr<span class=\"sy0\">\/<\/span>sbin<span class=\"sy0\">\/<\/span><span class=\"kw2\">chroot<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"br0\">[<\/span>\u00a0OK\u00a0<span class=\"br0\">]<\/span><\/p>\n<p>&#8230;snip&#8230;<\/p><\/div>\n<\/div>\n<h3><strong>Check Listening Ports<\/strong><\/h3>\n<p>You should check for listening ports that aren\u2019t used and disable them. To check for open ports, write.<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">azad@ubuntu:~$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">netstat<\/span>\u00a0<span class=\"re5\">-ulpnt<\/span><br \/>\nActive Internet connections\u00a0<span class=\"br0\">(<\/span>only servers<span class=\"br0\">)<\/span><br \/>\nProto Recv-Q Send-Q Local Address\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Foreign Address\u00a0\u00a0\u00a0State\u00a0\u00a0 \u00a0\u00a0\u00a0PID<span class=\"sy0\">\/<\/span>Program name<\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0127.0.0.1:<span class=\"nu0\">6379<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">2136<\/span><span class=\"sy0\">\/<\/span>redis-server\u00a0<span class=\"nu0\">1<\/span><\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a00.0.0.0:<span class=\"nu0\">111<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">1273<\/span><span class=\"sy0\">\/<\/span>rpcbind<\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0127.0.0.1:<span class=\"nu0\">5939<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">2989<\/span><span class=\"sy0\">\/<\/span>teamviewerd<\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0127.0.0.53:<span class=\"nu0\">53<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">1287<\/span><span class=\"sy0\">\/<\/span>systemd-resolv<\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a00.0.0.0:<span class=\"nu0\">22<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">1939<\/span><span class=\"sy0\">\/<\/span>sshd<\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0127.0.0.1:<span class=\"nu0\">631<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">20042<\/span><span class=\"sy0\">\/<\/span>cupsd<\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0127.0.0.1:<span class=\"nu0\">5432<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">1887<\/span><span class=\"sy0\">\/<\/span>postgres<\/p>\n<p>tcp\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a0 \u00a0\u00a0<span class=\"nu0\">0<\/span>\u00a00.0.0.0:<span class=\"nu0\">25<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00.0.0.0:<span class=\"sy0\">*<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LISTEN\u00a0 \u00a0\u00a0\u00a0<span class=\"nu0\">31259<\/span><span class=\"sy0\">\/<\/span>master<\/p>\n<p>&#8230;snip&#8230;<\/p><\/div>\n<\/div>\n<h3><strong>Use an IDS (Intrusion Testing System)<\/strong><\/h3>\n<p>Use an IDS to check network logs and to prevent any malicious activities. There\u2019s an open source IDS Snort available for Linux. You can install it by,<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\">$\u00a0<span class=\"kw2\">wget<\/span>\u00a0https:<span class=\"sy0\">\/\/<\/span>www.snort.org<span class=\"sy0\">\/<\/span>downloads<span class=\"sy0\">\/<\/span>snort<span class=\"sy0\">\/<\/span>daq-2.0.6.tar.gz<br \/>\n$\u00a0<span class=\"kw2\">wget<\/span>\u00a0https:<span class=\"sy0\">\/\/<\/span>www.snort.org<span class=\"sy0\">\/<\/span>downloads<span class=\"sy0\">\/<\/span>snort<span class=\"sy0\">\/<\/span>snort-2.9.12.tar.gz<br \/>\n$\u00a0<span class=\"kw2\">tar<\/span>\u00a0xvzf daq-2.0.6.tar.gz<br \/>\n$\u00a0<span class=\"kw3\">cd<\/span>\u00a0daq-2.0.6<br \/>\n$ .<span class=\"sy0\">\/<\/span>configure\u00a0<span class=\"sy0\">&amp;&amp;<\/span>\u00a0<span class=\"kw2\">make<\/span>\u00a0<span class=\"sy0\">&amp;&amp;<\/span>\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">make<\/span>\u00a0<span class=\"kw2\">install<\/span><br \/>\n$\u00a0<span class=\"kw2\">tar<\/span>\u00a0xvzf snort-2.9.12.tar.gz<br \/>\n$\u00a0<span class=\"kw3\">cd<\/span>\u00a0snort-2.9.12<br \/>\n$ .<span class=\"sy0\">\/<\/span>configure\u00a0<span class=\"re5\">&#8211;enable-sourcefire<\/span>\u00a0<span class=\"sy0\">&amp;&amp;<\/span>\u00a0<span class=\"kw2\">make<\/span>\u00a0<span class=\"sy0\">&amp;&amp;<\/span>\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">make<\/span>\u00a0<span class=\"kw2\">install<\/span><\/div>\n<\/div>\n<p>To monitor network traffic, type<span id=\"ezoic-pub-ad-placeholder-122\" class=\"ezoic-adpicker-ad\"><\/span><\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">ubuntu@ubuntu:~$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0snort<\/p>\n<p>Running\u00a0<span class=\"kw1\">in<\/span>\u00a0packet dump mode<br \/>\n<span class=\"re5\">&#8212;<\/span>== Initializing Snort ==&#8211;<\/p>\n<p>Initializing Output Plugins<span class=\"sy0\">!<\/span><br \/>\npcap DAQ configured to passive.<\/p>\n<p>Acquiring network traffic from\u00a0<span class=\"st0\">&#8220;tun0&#8221;<\/span>.<br \/>\nDecoding Raw IP4<\/p>\n<p><span class=\"re5\">&#8212;<\/span>== Initialization Complete ==&#8211;<\/p>\n<p>&#8230;snip&#8230;<\/p><\/div>\n<\/div>\n<h3><strong>Disable Logging as Root<\/strong><\/h3>\n<p>Root acts as a user with full privileges, it has power to do anything with the system. Instead, you should enforce using sudo to run administrative commands.<\/p>\n<h3><strong>Remove no owner Files<\/strong><\/h3>\n<p>Files owned by no user or group can be security threat. You should search for these files and remove them or assign them a proper user a group. To search for these files, type<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span><span class=\"kw2\">find<\/span>\u00a0<span class=\"sy0\">\/<\/span><span class=\"kw2\">dir<\/span>\u00a0<span class=\"re5\">-xdev<\/span>\u00a0\\<span class=\"br0\">(<\/span>\u00a0<span class=\"re5\">-nouser<\/span>\u00a0<span class=\"re5\">-o<\/span>\u00a0<span class=\"re5\">-nogroup<\/span>\u00a0\\<span class=\"br0\">)<\/span>\u00a0<span class=\"re5\">-print<\/span><\/div>\n<\/div>\n<h3><strong>Use SSH and sFTP<\/strong><\/h3>\n<p>For file transferring and remote administration, use SSH and sFTP instead of telnet and other insecure, open and unencrypted protocols. To install, type<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\">$\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get install<\/span>\u00a0vsftpd\u00a0<span class=\"re5\">-y<\/span><br \/>\n$\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get install<\/span>\u00a0openssh-server\u00a0<span class=\"re5\">-y<\/span><\/div>\n<\/div>\n<h3><strong>Monitor Logs<\/strong><\/h3>\n<p>Install and setup a log analyzer utility to check system logs and event data regularly to prevent any suspicious activity. Type<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\"><span class=\"co4\">$\u00a0<\/span><span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get install<\/span>\u00a0<span class=\"re5\">-y<\/span>\u00a0loganalyzer<\/div>\n<\/div>\n<h3><strong>Uninstall unused Softwares<\/strong><\/h3>\n<p>Install softwares as minimum as possible to maintain small attack surface. The more softwares you have, the more chances of attacks you have. So remove any unneeded software from your system. To see installed packages, write<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\">$\u00a0<span class=\"kw2\">dpkg<\/span>\u00a0<span class=\"re5\">&#8211;list<\/span><br \/>\n$\u00a0<span class=\"kw2\">dpkg<\/span>\u00a0<span class=\"re5\">&#8211;info<\/span><br \/>\n$\u00a0<span class=\"kw2\">apt-get<\/span>\u00a0list\u00a0<span class=\"br0\">[<\/span>PACKAGE_NAME<span class=\"br0\">]<\/span><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<p>To remove a package:<\/p>\n<div class=\"codecolorer-container bash default\">\n<div class=\"bash codecolorer\">$\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get remove<\/span>\u00a0<span class=\"br0\">[<\/span>PACKAGE_NAME<span class=\"br0\">]<\/span>\u00a0<span class=\"re5\">-y<\/span><br \/>\n$\u00a0<span class=\"kw2\">sudo<\/span>\u00a0<span class=\"kw2\">apt-get clean<\/span><\/div>\n<\/div>\n<h3>Conlusion<\/h3>\n<p>Linux server security hardening is very important for enterprises and businesses. Its a difficult and tiresome task for System Administrators. Some processes can be automated by some automated utilities like SELinux and other similar softwares. Also, keeping minimus softwares and disabling unused services and ports reduces the attack surface.<\/p>\n<p><a href=\"https:\/\/linuxhint.com\/linux_server_security_hardening\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Securing your Linux server(s) is a difficult and time consuming task for System Administrators but its necessary to harden the server\u2019s security to keep it safe from Attackers and Black Hat Hackers. You can secure your server by configuring the system properly and installing as minimum softwares as possible. There are some tips which can &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2019\/01\/13\/introduction-to-linux-server-security-hardening\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Introduction to Linux Server Security Hardening&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8113","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/8113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=8113"}],"version-history":[{"count":2,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/8113\/revisions"}],"predecessor-version":[{"id":8584,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/8113\/revisions\/8584"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=8113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=8113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=8113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}