linux基本介紹與環境搭建

1.1 Linux版本

linux kernel 2.2、2.4、2.6、3.0、4.0...
發行商:Red hat、CentOS、Ubuntu
選擇適合的Linux系統學習
桌面系統:Ubuntu
穩定服務器系統:CentOS
土豪(有售後):Red Hat
對安全性有更高要求:Debian、FreeBSD
新技術,測試版:Fedora


1.2 CentOS

64位的系統版本是當前企業使用的主流
6.5 6.6版本的系統,穩定
學習平臺爲6.5版本X86_64系統


1.3 學習環境的重要建議

虛擬機軟件:VMWare Virtual Box
windows7 建議用VM8.0
內存安裝的時候最好1G,安裝之後可以降到512M
網卡的模式選擇:bridged橋接、NAT、host-only僅主機
NAT模式的虛擬機就是通過宿主機上網和交換數據的
bridged 邏輯對等,虛擬機可以被分配與物理機相同網段的獨立IP,最接近真實網絡環境的
Host-only 虛擬機的網卡連接到VMnet1上,宿主系統不爲虛擬機提供路由服務,因此虛擬機只能和宿主機進行通信


1.4 32和64區別

設計時的定位不同 普通用戶和企業
安裝要求配置不同 64只能安裝在64位電腦上,針對64位發揮最佳性能
運算速度不同 64一次提取8個字節的數據,比32快一倍
尋址能力不同 32CPU理論最大隻支持4G,可以通過PAE技術支持到8G,64可支持128G
uname -m/a 查看裝的是32還是64


1.5 基本分區方案
IDE /dev./hda
hda第一塊盤 hda1,hda2...
hdb第二塊盤 ...
SCSI /dev./sds

分區的編號1-4,只能給P+E
L分區的編號只能從5開始

Linux分區要求:
/ 根分區 用來存放系統文件及程序 5GB以上
swap(交換)分區 相當於虛擬分區,一般爲物理內存容量的1.5倍,此分區不是必須
/boot分區 引導分區 一般爲100-200M,不是必須的


1.6 linux系統相關設置

uname -r 查看內核版本
# 超級管理員
setup配置
保存網卡配置
ifdown eth0 && ifup eth0或者/etc/init.d/network restart==service network restart 前者更好
不要忘了更改配置:vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes 《===控制網卡是不是開機啓動
提示:vi是編輯器,相當於記事本,打開後,按i編輯修改,保存命令:wq

CRT連不上linux
1.iptables防火牆關閉 /etc/init.d/iptables stop chkconfig iptables off永久關閉
2.ping

ps -ef 查看進程 ps -ef|grep ssh ps aux 類unix風格顯示
netstat/ss -lntup 查看端口 netstat -lntup|grep sshd
ifconfig/ip add 查看IP

windows《=====》linux 互傳數據
ftp/winscp/http/rz-sz
yum install lrzsz -y 安裝rzsz
rz 回車 選擇要上傳的文件(不能是目錄)
sz 文件 回車,下載到CRT指定的路徑
-y是覆蓋
halt==shutdown -h now
yum upgrade –y 更新系統 yum update –y
yum grouplist 用於查看包組列表
額外安裝一些有用的軟件包
yum install tree telnet dos2unix sysstat lrzsz nc nmap -y

[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.5 (Final) 版本
[root@localhost ~]# uname -r
2.6.32-431.el6.x86_64 內核
[root@localhost ~]# uname -m
x86_64 32位還是64位
[root@localhost ~]# hostname
localhost 主機名

linux 多任務、多進程、多CPU、多用戶
[wangxian@localhost ~]$ 《======普通用戶提示符
[root@localhost ~]# 《======超級管理員


1.7 系統基本優化

1.7.1 關閉SELinux功能
[root@localhost ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 
[root@localhost ~]# grep =disabled /etc/selinux/config 
SELINUX=disabled
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@localhost ~]# setenforce 0

runlevel 運行級別0-6 7種
運行級別0:系統停機狀態,系統默認運行級別不能設爲0,否則不能正常啓動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制檯命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制檯,登陸後進入圖形GUI模式
運行級別6:系統正常關閉並重啓,默認運行級別不能設爲6,否則不能正常啓動

1.7.2 精簡開機啓動服務

開機必須保留的啓動
sshd,遠程連接linux服務器時需要的服務
rsyslog,日誌相關軟件,系統的守護程序通常會使用rsyslog程序將各種信息寫到各個系統日誌文件中
network,系統啓動時,若想激活/關閉各個網絡接口,則應開啓此服務
crond,該服務用於週期性的執行系統及用戶配置的任務計劃
sysstat,sysstat是一個軟件包,包含檢測系統性能及效率的一組工具
sysstat軟件包集成的主要工具爲:
iostat工具:提供CPU使用率及硬盤吞吐效率的數據
mpstat工具:提供與單個或多個處理器相關的數據
sar工具:負責收集、報告並存儲系統活躍的信息
設置開機自動服務的方法:
1)setup 勾選開機啓動的服務
2)ntsysv 設置
3)用腳本編寫chkconfig統一關閉

[root@localhost ~]# chkconfig --list atd
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@localhost ~]# chkconfig --level 3 atd off
[root@localhost ~]# chkconfig --list atd       
atd             0:off   1:off   2:off   3:off   4:on    5:on    6:off
[root@localhost ~]# chkconfig --level 2345 atd off
[root@localhost ~]# chkconfig --list atd          
atd             0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@localhost ~]# for name in `chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"`;do chkconfig $name off;done

關閉在3級別開啓的除了sshd,rsyslog,network,crond,sysstat之外所有服務

1.7.3 關閉防火牆

[root@localhost ~]# /etc/init.d/iptables stop
[root@localhost ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@localhost ~]# chkconfig iptables off

1.7.4 更改linux遠程SSH連接端口

vim /etc/ssh/sshd_config  :set  nu   表示顯示行數
#####2017-05-21#####
Port 52113
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
ListenAddress 192.168.4.180
#####2017-05-21#####

 /etc/init.d/sshd reload
 /etc/init.d/sshd restart
 netstat -lntup
 netstat -an|grep EST

利用sed命令實現快速增加
sed –ir ’13 i Port 52113\n PermitRootLogin no\n PermitEmptyPasswords no\n UseDNS no\n GSSAPIAuthentication no\n ListenAddress 192.168.4.180’ sshd_config

1.7.5 利用sudo工具來對用戶進行集權管理

visudo ==vi /etc/sudoers 不完全等價,前者更多功能
vi編輯器 輸入98gg切換到98行 yy複製 p粘貼

[wangxian@localhost ~]$ useradd yaoyao
-bash: /usr/sbin/useradd: 權限不夠
[wangxian@localhost ~]$ 
[wangxian@localhost ~]$ 
[wangxian@localhost ~]$ sudo useradd yaoyao
[sudo] password for wangxian: 
[wangxian@localhost ~]$ tail -l /etc/passwd
yaoyao:x:501:501::/home/yaoyao:/bin/bash

環境變量:
PATH 系統路徑變量,執行ls,cp等非內置命令時,系統會首先查找PATH裏對應的路徑是否有,如果沒有就報告找不到該命令
當執行which cp來查看命令所在路徑的時候,也是從PATH變量去搜索
臨時修改export PATH="/tmp:$PATH",永久修改前面臨時修改的命令放到/etc/profile下,
使用source /etc/profile使得修改立刻生效

1.7.6 字符集修改

[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[root@localhost ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.wx.20170521
[root@localhost ~]# sed -i 's#en_US.UTF-8#zh_CN.UTF-8#g' /etc/sysconfig/i18n
[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[root@localhost ~]# source /etc/sysconfig/i18n  修改後執行
[root@localhost ~]# echo $LANG
zh_CN.UTF-8

1.7.7 linux服務器時間同步

[root@localhost ~]# date
2017年 05月 21日 星期日 20:53:12 CST
[root@localhost ~]# date -s "2017/05/21 20:55"
2017年 05月 21日 星期日 20:55:00 CST
[root@localhost ~]# hwclock
2017年05月21日 星期日 20時55分35秒  -0.861008 seconds

同步互聯網時間

/usr/sbin/ntpdate ntp1.aliyun.com

也可以將同步時間寫進crond定時任務

crontab -e
 */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1   #每5分鐘同步一次

/dev/null 空設備 黑洞
下面的方法是等價的,習慣選擇第二種
1) 1>/dev/null 2>/dev/null 正確的、錯誤的輸出都扔到黑洞
2)***** 1>/dev/null 2>&1
3) &>/dev/null
etc/init.d/ntpdate start 自身的時間同步服務器開啓

1.7.8 超時時間設置

export TMOUT=100 設置超時時間爲100S
echo "export TMOUT=100">/etc/profile 添加到配置
tail -l /etc/profile 查看是否修改成功
source /etc/profile或者. /etc/profile 永久生效配

1.7.9 歷史記錄條數修改

export HISTSIZE=100          命令行的歷史記錄修改成100條
[root@localhost ~]# echo "export HISTSIZE=100" >>/etc/profile
[root@localhost ~]# tail -l /etc/profile
export HISTSIZE=100
[root@localhost ~]# . /etc/profile
[root@localhost ~]# HISTFILESIZE=100     歷史記錄文件的命令數量修改
[root@localhost ~]# echo "export HISTFILESIZE=100" >>/etc/profile
[root@localhost ~]# cat ~/.bash_history 

1.7.10 增大文件描述符
文件描述符概念:
1、表示形式爲整數數字,一般使用範圍(0-65535)
2、進程使用的時候會佔用文件描述符(標識打開的文件)
查看默認文件描述符:
[root@localhost ~]# ulimit -n
1024
調整文件描述符:
[root@localhost ~]# ulimit -SHn 65535 臨時生效
[root@localhost ~]# ulimit -n
65535
斷開連接重新進入生效
[root@localhost ~]# echo "* - nofile 65535" >>/etc/security/limits.conf
[root@localhost ~]# tail -1 /etc/security/limits.conf

    • nofile 65535

      1.7.11 調整內核參數文件/etc/sysctl.conf

      vim /etc/sysctl.conf   shift+g切換到文件結尾  shift+insert粘貼
      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.ipv4.ip_conntrack_max = 25000000
      net.ipv4.netfilter.ip_conntrack_max = 25000000
      net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
      net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
      net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
      net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

      sysctl -p 生效

1.7.12 系統其他的一些優化設置

隱藏版本信息顯示,設置開機提示信息
> /etc/issue     /etc/motd
編輯界面
vi /etc/motd
爲grub引導菜單添加密碼     不是很重要
鎖定系統重要文件
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
禁止ping    一般不用   都用防火牆設置禁ping
[root@localhost ~]# echo "net.ipv4.icmp_echo_igore_all=1" >> /etc/sysctl.conf 
[root@localhost ~]# sysctl.conf
更新部分有漏洞軟件
yum install openssl openssh bash –y
定時清理/var/spool/clientsqueue/
定時清理/var/spool/clientsqueue/,寫腳本,放在定時任務裏面定時清理
搭建系統的yum源,以及進行優化(upgrade)
/etc/yum.repos.d/
清除多餘的系統虛擬帳號,例如:bin、adm、lp、halt、mail、dbus、postfix等

1.7.13 優化安全最小化思想

1、安裝系統最小化,開機啓動最小化,無用的東西不裝,不啓動;
2、操作命令最小化,例如:用rm -f test.txt 不用rm -fr test.txt
3、登錄linux用戶最小化,平時沒有需求不用root登錄
4、普通用戶授權權限最小化,只給必須的管理系統的命令
5、linux系統文件及目錄的權限設置最小化,禁止隨意創建、更改、刪除

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章