一、更改遠程連接用戶和端口
ls -l /etc/ssh/sshd_config
cp /etc/ssh/sshd_config /etc/ssh/sshd_configbak
vi /etc/ssh/sshd_config
:set nu #vi的功能,顯示行號
Port28888 #13行
PermitRootLoginno #42行,禁止root用戶ssh遠程登錄
PermitEmptyPasswordsno #65行,禁止空密碼登錄
GSSAPIAuthenticationno #爲防止GSSAPI導致SSH連接變慢
UseDNSno #122行,禁止使用DNS
vimdiff /etc/ssh/sshd_config/etc/ssh/sshd_configbak #對比修改的文件
/etc/init.d/sshd reload(或restart) #重新加載或重啓ssh
二、簡單優化Linux
1、關閉SELINUX
(1)查看配置文件
cat/etc/selinux/config
SELINUX=enforcing
enforcing:激活
permissive:打印警告,但沒激活
disabled:關閉
(2)修改配置文件
vi/etc/selinux/config
SELINUX=disabled
或者
sed-i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config
(3)檢查修改後的配置文件
grep"disable" /etc/selinux/config
SELINUX=disabled
(4)生效(重啓後才能生效)
查看配置文件當前狀態
getenforce
Enforcing(原文件生效狀態)
setenforce0 : 將 SELINUX改爲permissive狀態,相當於SeLinux不生效。
getenforce
permissive
重啓:不重啓則SELINUX處於警告狀態,SELINUX不起作用,重啓則處於失效狀態。(生產系統不允許隨便重啓)
2、將系統啓動級別調成文本模式
(1)查看系統啓動級別
cat/etc/inittab
或
runlevel
(2)修改
vi/etc/inittab
d:3:initdefault:
或者
sed-i s#d:5:initdefault:#d:3:initdefault:#g /etc/inittab
(3)切換啓動級別
init3 : 切換文本命令行模式
init5 : 切換到x11模式
init0 : 關機
init6 : 重啓
3、精簡開機系統啓動服務
(1)只啓動需要的服務
目前只需啓動crond(計劃任務)、network、ssh、rsyslog(系統日誌)等4個服務
(2)查看隨機啓動服務
chkconfig --list
chkconfig --list | grep "3:on"
chkconfig --level 35 service_name on:在級別3和5上隨機啓動指定服務
ntsysv(等同於setup)
setup-system service
(3)腳本一鍵完成處理: onlythirdrunlevel.sh
LANG=en
for servername in `chkconfig --list | grep"3:on" | awk '{print $1}' | grep -vE"crond|network|ssh|rsyslog"`;do chkconfig $servername off;done
4、 關閉iptables防火牆
(1)臨時關閉:/etc/init.d/iptables stop
service iptables stop
(2)永久關閉:chkconfig iptables off
chkconfig ip6tables off(redhat6上 iptables關閉後 ip6tables會起來,所以一併關掉。)
(3)查看防火牆關閉狀態
serviceiptables status
5、修改主機名
(1)首先臨時修改主機名
hostname myLinux
(2)修改/etc/sysconfig/network中的hostname
vi /etc/sysconfig/network
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= myLinux
(3)修改/etc/hosts文件
vi /etc/hosts
cat /etc/hosts
127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4
::1 localhostlocalhost.localdomain localhost6 localhost6.localdomain6
192.168.1.18 myLinux
6、修改RedHat的yum源
RHEL的YUM源需要註冊用戶才能更新使用,由於CentOS和RHEL基本沒有區別,並且CentOS已經被REHL收購。所以將RHEL的YUM源替換爲CentOS即可。
(1)清除原有RHEL的YUM及相關軟件包。
rpm -qa | grep yum | xargs rpm -e --nodeps
rpm -qa |grep python-urlgrabber|xargs rpm -e --nodeps
(2)下載centos6的相關軟件包。
wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
wgethttp://mirrors.163.com/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm
wget http://mirrors.163.com/centos/6/os/i386/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wgethttp://mirrors.163.com/centos/6/os/i386/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
(3)安裝yum 軟件包
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.i686.rpm
#下面兩個一起安裝先後順序不要亂(中間50%正常)
rpm -ivhyum-3.2.29-81.el6.centos.noarch.rpmyum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
如果按照遇到問題:發現錯誤,python-urlgrabber版本必須大於等於3.9.1-10
# rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpmyum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
warning: yum-3.2.29-73.el6.centos.noarch.rpm: Header V3 RSA/SHA1Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
python-urlgrabber >=3.9.1-10 is needed by yum-3.2.29-73.el6.centos.noarch
查看系統的python信息
# rpm -qa|grep python
發現python-urlgrabber-3.9.1-9.el6.noarch 版本低於3.9.1-10
卸載:python-urlgrabber-3.9.1-9.el6.noarch
rpm -epython-urlgrabber-3.9.1-9.el6.noarch
安裝:rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
(4)更改yum源 #我們使用網易的CentOS鏡像源
a、清空yum倉庫
cd /etc/yum.repos.d/
rm -rf *
b、設置源
wget http://mirrors.163.com/.help/CentOS6-base-163.repo
vi CentOS6-base-163.repo
編輯文件,把文件裏面所有的$releasever全部替換爲你得版本號,即6.4 最後保存!或者直接把下面的內存拷貝到CentOS6-base-163.repo文件中即可(已經修改好)
vim替換命令
:%s/$releasever/6/g
退出保存
c、清理yum緩存
#yum clean all
b、將服務器軟件包信息緩存至本地,提高搜索安裝效率
#yum makecache
二、用戶角色切換
1、su- root:切換到root用戶
2、sudo:讓普通用戶可以擁有指定的root權限功能,需root用戶提前授權
sudo su - : 切換到root
sudo -l : 查看當前用戶擁有的所有sudo權限
visudo : 進入sudo配置信息,相當於vi/etc/sudoers,但不建議用此方法,visudo檢查語法,vi /etc/sudoers不檢查語法
格式:
用戶 機器 命令
user MACHINE= COMMAND1,COMMAND2.....
%groupname MACHINE= COMMAND1,COMMAND2..... # 組名前必須加%
91gg : vi編輯器功能,快速定位到91行
yy : vi編輯器功能,拷貝當前行
p : vi編輯器功能,粘貼
修改:
root ALL=(ALL) ALL
oldboy ALL=(ALL) /usr/sbin/useradd
su - oldboy
sudo useradd kkk : 提示需oldboy密碼,輸入後執行完成
修改
oldboy ALL=(ALL) NOPASSWD: ALL :表示oldboy有所有權限,並不提示輸入oldboy密碼
sudo su - :此時可切換到root用戶
三、環境變量
PATH :環境變量大寫
全局生效 :/etc/profile
普通用戶生效:~/.bash_profile或~/.bashrc
四、中文字符集
1、配置文件 : /etc/sysconfig/i18n
2、cat/etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
echoLANG="zh_CN.GB18030" : 臨時調整字符集
echo LANG="zh_CN.UTF-8" : 也可以
3、locate:查看本地字符集
五、時間同步ntp
1、配置文件 : /var/spool/cron/root
2、whichntpdate
/usr/sbin/ntpdate
/usr/sbin/ntpdate10.108.68.100
3、定時同步
echo'#time sync by myLinux93.85 at 2017-01-05' >> /var/spool/cron/root
echo'*/60 * * * * /usr/sbin/ntpdate 10.108.68.100 > /dev/null 2>&1'>> /var/spool/cron/root #60分鐘同步一次時間
六、加大服務器文件描述符
1、配置文件:/etc/security/limits.conf
2、查看當前文件描述符
ulimit-n
3、加大文件描述符
臨時加大 :
ulimit HSn 65535
永久加大:
echo '* - nofile 65535' >>/etc/security/limits.conf
或用vi/etc/security/limits.conf
七、調整內核參數
1、配置文件:/etc/sysctl.conf
2、調優
#連接的超時,默認爲60秒,對應系統文件:/proc/sys/net/ipv4/tcp_fin_timout
net.ipv4.tcp_fin_timeout=2
#連接重用,默認爲0,表示關閉,對應系統文件:/proc/sys/net/ipv4/tcp_tw_reuse
net.ipv4.tcp_tw_reuse = 1
#連接回收,默認爲0,表示關閉,對應系統文件:/proc/sys/net/ipv4/tcp_tw_recycle
net.ipv4.tcp_tw_recycle=1
#開啓SYN cookies功能,當SYN等待隊列溢出時啓用cookies來處理,默認爲1,表示開啓,可以不添加。
#對應系統文件:/proc/sys/net/ipv4/tcp_syncookies
net.ipv4.tcp_syncookies = 1
#TCP連接保持的時間,默認爲7200秒(2小時),現改爲600秒(10分鐘)。
#對應系統文件:/proc/sys/net/ipv4/tcp_keepalive_time
net.ipv4.tcp_keepalive_time = 600
#設定系統打開的端口範圍。即用於向外連接的端口範圍,默認爲32768 61000。
#對應系統文件:/proc/sys/net/ipv4/ip_local_port_range
net.ipv4.ip_local_port_range = 4000 65000
#SYN隊列的長度,表示可經容納等待連接的網絡連接數,默認爲1024。
#對應系統文件:/proc/sys/net/ipv4/tcp_max_syn_backlog
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
3、重新生效
sysctl-p
4、其它可配置項
#Controls IP packet forwarding 控制IP包轉發
net.ipv4.ip_forward = 0 #0禁止,1允許
#控制ping命令。0表示可以ping能,1表示不能ping通
net.ipv4.icmp_echo_ignore_all = 0
八、定時清理clientmqueue目錄下的垃圾文件,防止佔滿磁盤空間
1、郵件服務的郵件臨時存放地點:/var/spool/clientmqueue/sendmail
CentOS5.8默認有sendmail,而CentOS6.4默認沒有。有時候該目錄下有許多小文件,將磁盤空間或文件inode的佔滿(每個文件對應一個inode,如果inode沒有了,就算有空間也不能寫文件了,df -i查看)
2、清理方法
(1)手動清理:
find /var/spool/clientmqueue/sendmail/ -type f | xargs rm -f
檢查:ll /var/spool/clientmqueue | wc -l
(2)定時清理:
echo"/var/spool/clientmqueue/sendmail/ -type f|xargs rm -f">
/server/scripts/del_sys_file.sh
echo "00 00 * * * /bin/sh /server/scripts/del_sys_file.sh>/del/null2>&1" >>
/var/spool/cron/root
檢查:cat /server/scripts/del_sys_file.sh
crontab -l
九、隱藏或修改登陸的提示信息(系統、版本號)
1、說明:系統漏洞一般與系統版本號有關係統。
2、查看系統登錄時的提示信息
cat/etc/issue
3、清空提示文件內容
echo> /etc/issue 或 > /etc/issue 或 cat /dev/null > /etc/issue
十、鎖定系統關鍵文件
1、關鍵文件
/etc/passwd:用戶文件
/etc/shadow:用戶密碼文件
/etc/group:用戶組文件
/etc/gshadow:用戶組密碼文件
/etc/inittab:開機啓動文件
2、鎖定
chattr+i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
3、解鎖
chattr-i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
4、將chattr命令刪除或改名
whichchattr
/usr/bin/chattr
mv/usr/bin/chattr /usr/bin/oldboy
5、查看文件是否加鎖
lsattr /etc/passwd /etc/shadow /etc/group/etc/gshadow /etc/inittab
----i--------e-/etc/passwd # i表示加鎖
----i--------e-/etc/shadow
----i--------e-/etc/group
----i--------e-/etc/gshadow
----i--------e-/etc/inittab