1. 程式人生 > >Linux基礎優化與安全歸納總結

Linux基礎優化與安全歸納總結

sshd ssh get trie 全部 登錄 sysconf The som

一名運維工程師在運維崗位上時間久了,就會發現Linux優化的重要性,同時會給運維工作帶來很多的便利性。本人逐漸認識到了這一點,所以特意在工作閑暇之余,通過閱讀Linux相關書籍及向同事、同行高手咨詢,針對Linux系統的一些基本優化做了如下歸納總結,如有不足之處,還望大夥補充完善。

本文主要描述一些基本的系統優化知識點,並未涉及Linux深化優化,關於Linux的深化優化知識本人後期會更新。

第一點:Linux的管理盡量不用root用戶,利用sudo命令來控制普通用戶對系統的管理

新建一個用戶,使用sudo命令添加權限,詳細操作步驟如下:

(1)添加新的用戶: useradd 新的用戶名

(2)檢查是否已成功添加:id 新的用戶名

(3)設置該用戶的密碼:echo 123321|passwd --stdin 新的用戶名

接下來需將新的用戶添加管理員權限,這個新的用戶就相當於管理員

(4)備份之前的權限文件:\cp /etc/sudoers{,.back}

(5)將新的用戶添加管理員權限:

echo "新的用戶名 ALL=(ALL) NOPASSWD: ALL " >> /etc/sudoers

(6)檢查是否已成功添加:tail -1 /etc/sudoers

(7)配置生效:visudo -c

待以上操作完畢,那麽此時的新的用戶權限等同於root用戶。

第二點:更改默認的遠程連接SSH

服務端口

(1)修改配置文件/etc/ssh/sshd_config

Port 22,改為Port 52113(範圍0——65535);##默認端口為22

ListenAddress 0.0.0.0,改為ListenAddress 內網IP地址;##監聽內網ip地址

PermitRootLogion yes,改為PermitRootLogion no;##root用戶遠程連接)

(2)重啟生效:/etc/init.d/sshd reload

(3)查看端口狀態:netstat -lntup|grep sshd

第三點:定時自動更新服務器時間,使其和互聯網時間同步

(1)配置

echo ‘#time sync by 新的用戶名 at 2019-04-01‘ >> /var/spool/cron/root

echo ‘/5 /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1‘ >> /var/spool/cron/root

###每5分鐘執行一次同步

###至於以哪個時間服務器為基準,以下地址可自己選擇:

ntp1.aliyun.com

ntp2.aliyun.com

ntp3.aliyun.com

ntp4.aliyun.com

ntp5.aliyun.com

ntp6.aliyun.com

ntp7.aliyun.com

(2)查看是否已更新:crontab -l

(3)最後備份下:\cp /var/spool/cron/root{,.back}

第四點:配置yum配置源

(1)創建備份文件存放目錄

Mkdir -p /etc/yum.repos.d/{default,back}

(2)備份所有默認的配置文件

\mv /etc/yum.repos.d/repo /etc/yum.repos.d/default

(3)從阿裏雲獲取yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

(4)備份yum源

\cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/default

第五點:關閉selinux及iptables

(1)關閉iptables:/etc/init.d/iptables stop

(2)檢查是否已關閉:/etc/init.d/iptables status

(3)設置開機不自動啟動:chkconfig iptables off

(4)確認配置:chkconfig --list iptables

(5)關閉selinux:

sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config

(6)查看並確認配置:cat /etc/selinux/config

備註:永久生效,需要重啟計算機。(在工作場景中,如果有外部IP一般要打開iptables)

第六點:適當調整文件描述符的數量

鑒於進程及文件的打開都會消耗文件描述符,所以在運維過程中我們要調整下文件描述符的數量,表示形式為整數數字(0——65535)。

查看默認文件描述符:ulimit –n ###一般默認為1024

在/etc/sercurity/limits.conf裏面配置:

echo ‘* - nofile 65535‘ >>/etc/security/limits.conf

tail -1 /etc/security/limits.conf

第七點:定時自動清理郵件目錄垃圾文件

防止inodes節點被占滿。

第八點:精簡並保留必要的開機自啟動服務

(1)只保留重要的基礎服務,其余全部關閉

chkconfig --list|egrep -v "sysstat|crond|sshd|network|rsyslog"|awk ‘{print "chkconfig "$1,"off"}‘|bash

(2)確認配置:chkconfig --list|grep 3:on

第八點:優化Linux內核參數

(1)配置文件/etc/sysctl.conf,添加如下命令(可直接復制粘貼)

cat >>/etc/sysctl.conf<<EOF

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.ip_local_port_range = 4000 65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

以下參數是對iptables防火墻的優化,防火墻關閉的情況下會提示,可以略過提示。

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established = 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

EOF

(2)配置生效命令:sysctl -p

第九點:配置字符集

(1)查看配置文件:cat /etc/sysconfig/i18n

裏面默認應該有以下2行內容:

LANG="en_US.UTF-8" ###默認提示為英文

(2)先備份配置文件:cp /etc/sysconfig/i18n{,.back}

(3)修改配置文件:

說明:此項可將字符集修改為中文,也可不做修改。

echo ‘LANG="zn_CN.UTF-8"‘ > /etc/sysconfig/i18n

echo ‘SYSFONT="latarcyrheb-sun16"‘ >> /etc/sysconfig/i18n

(4)配置生效:source /etc/sysconfig/i18n

(5)確認配置是否成功:echo $LANG

第十點:鎖定關鍵性系統文件,防止被篡改

配置命令:

chattr +i /etc/{passwd,shadow,group,gshadow}

lsattr -a /etc/{passwd,shadow,group,gshadow}

解除鎖定命令:chattr -i

第十一點:禁止系統被ping

配置命令:echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf

配置生效命令:sysctl -p

第十二點:升級漏洞軟件

查看相關軟件的版本號:rpm -qa openssl openssh bash

執行升級:yum install openssl openssh bash

第十三點:優化SSH遠程連接

(1)先備份配置文件:cp /etc/ssh/sshd_config{,.back}

(2)編輯ssh服務配置文件

編輯ssh服務的配置文件(vim /etc/ssh/sshd_config),在第12行下面添加如下內容:

Port 52113 #使用大於10000的端口號

PermitRootLogin no #禁止root遠程登錄

PermitEmptyPasswords no #禁止空密碼登錄

UseDNS no #不使用dns解析

GSSAPIAuthentication no #連接慢的解決配置

(3)確認配置:grep -A 5 -i ‘Start by 新的用戶名‘ /etc/ssh/sshd_config

(4)重啟ssh服務:/etc/init.d/sshd restart

(5)確認配置是否成功:netstat -lntup | grep ssh

以上關於Linux系統的基礎優化,由於本人能力及知識點有限,總結歸納的不夠全面,還請大家多參考Linux工具書,如《Linux就該這麽學》等及同行高手。

Linux基礎優化與安全歸納總結