2018年11月22日 星期四

Linux虛擬機Clone後網卡重設問題

Linux作業系統如果想要在VMware中Clone後還能夠正確啟動網路,
在進行Clone之前先將系統做個修改:
1. 將網卡資訊刪除:
vi /etc/udev/rules.d/70-persistent-net.rules 將裡面所有網卡資訊刪除。
2.將網卡設定檔中的MAC位址刪除:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
將裡面的 HWADDR=XX:XX:XX:XX:XX:XX 那一行刪除。
3.關機後即可Clone,複製的虛擬機開機後的MAC位址會重設,系統會自動將資訊填到/etc/udev/rules.d/70-persistent-net.rules裡,ifcfg-ethX即可位據該資訊驅動裝置並依設定啟用。

2018年10月5日 星期五

mount 掛載目錄到另一個目錄

使用時機:當多個人共同主機時 每個人都有專屬的(如 home/使用者名稱 )資料夾
而假如www/html/ 你又不希望大家都能存取該資料夾,這時候只要將
home/使用者名稱 mount 到 www/html/使用者名稱 就可以

假設有一個使用者的資料夾為 home/david
網頁所在目錄為 www/html
掛載指令:
假如建一個資料夾
mkdir /www/html/david
mount –bind /home/david/www/html/david
mount -bind 來源資料夾 目的資料夾
缷載指令:
umount /www/html/david
註:若主機重新開機就需要重新掛載一次 不然就請寫入fstab

VMTOOLS setup for centOS

mount /dev/cdrom /mnt
cp /mnt/VMwareTools-* /tmp
umount /mnt
cd /tmp
tar zxvf VMwareTools-*
cd vmware-tools-distrib
./vmware-install.pl
全部依系統訂議安裝

2018年9月13日 星期四

防止 yum 更新 kernel的作法

vim /etc/yum.conf 
==
exclude=kernel* 
==
 
yum update 

公司wiki centos7 建置步驟

新增VM主機,規格為vcpu x2,ram 2G, 硬碟30GB(thin模式)
 
CentOS 6.x (64位元)安裝過程,
請選擇
1.Install system with basic video driver
2.英文介面,
3.時區為Asia/Taipei,system clock user utc不選
4.硬碟分割為:
  /boot  200MB
  /      27.8GGB
  SWAP 2GB
  /boot,/檔案格式皆為ext4
5.最小安裝(minimal)
 
系統設定
@網路卡設定
vi /etc/sysconfig/network-scripts/ifcfg-ethX
=
ONBOOT=yes
NM_CONTROLLED=no
=
 
@關掉 selinux
vi /etc/sysconfig/selinux     
=
SELINUX=disabled
=
 
@安裝套件
yum install vim bind-utils nfs-utils ntsysv setuptool telnet dig wget net-snmp sysstat openssh-clients dmidecode ntpdate rsync mlocate glibc libgcc unzip man mailx tcpdump tracert traceroute mutt
 
@安裝開發套件
yum groupinstall "Development Tools"
 
@安裝EPEL套件
rpm -ivh epel-release-6-8.noarch.rpm
 
@建立相關管理路徑
mkdir -p /manage/script
mkdir -p /manage/cronjob
 
@關閉IPv6
vi /etc/modprobe.d/blacklist-ipv6.conf
=
install ipv6 /bin/true
blacklist ipv6
=
yum remove iptables-ipv6
 
@5.4.2 Disable IPv6
vi /etc/sysconfig/network
=
NETWORKING_IPV6=no
=
 
vi /etc/sysconfig/network
=
IPV6INIT=no
=
 
vi /etc/modprobe.d/ipv6.conf
=
options ipv6 disable=1
=
 
@5.4.1.1 Disable IPv6 Router Advertisements
/sbin/sysctl -w net.ipv6.conf.all.accept_ra=0
/sbin/sysctl -w net.ipv6.conf.default.accept_ra=0
 
@5.4.1.2 Disable IPv6 Redirect Acceptance 
/sbin/sysctl -w net.ipv6.conf.all.accept_redirects=0
/sbin/sysctl -w net.ipv6.conf.default.accept_redirects=0
 
 
@自動斷線
Profile
echo "export TMOUT=600" >> /etc/profile
 
@密碼設定
PAM
#6.3.2 Set Password Creation Requirement Parameters Using pam_cracklib
sed -i 's/pam_cracklib.so try_first_pass retry=3 type= /pam_cracklib.so try_first_pass retry=3 type= minlen=7 difok=3 dcredit=-1/g' /etc/pam.d/system-auth
 
vi /etc/pam.d/system-auth
=
password    requisite     pam_cracklib.so try_first_pass retry=3 type= minlen=7 difok=3 dcredit=-1
=
 
vi /etc/login.defs
=
PASS_MAX_DAYS   90   --> 密碼有效天數,多久要變更密碼
PASS_MIN_DAYS     0       --> 變更密碼後要多久才能再修改密碼
PASS_MIN_LEN        5       --> 密碼的最小長度
PASS_WARN_AGE   7       --> 密碼失效之前幾天發出警告訊息
=
 
@系統日誌設定
log每日產生,保存30天。
vi /etc/logrotate.conf
=
daily 
rotate 30
#compress 如需壓縮取消#
notifempty 空白檔案,不留存
=
 
@校時設定
NTP setting
vi /etc/crontab
=
## Date 
0 * * * * root ntpdate 192.168.11.210 && /sbin/hwclock
=
 
@安全性設定  /etc/sysctl.conf
TCP TIMESTAMPS Security
/sbin/sysctl -w net.ipv4.tcp_timestamps=0
 
5.2.2 Disable ICMP Redirect Acceptance 
/sbin/sysctl -w net.ipv4.conf.all.accept_redirects=0
/sbin/sysctl -w net.ipv4.conf.default.accept_redirects=0
 
5.2.4 Log Suspicious Packets (Scored)
/sbin/sysctl -w net.ipv4.conf.all.log_martians=1
/sbin/sysctl -w net.ipv4.conf.default.log_martians=1
 
5.2.5 Enable Ignore Broadcast Requests (Scored)
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
 
5.2.6 Enable Bad Error Message Protection (Scored)
/sbin/sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
 
5.2.7 Enable RFC-recommended Source Route Validation
/sbin/sysctl -w net.ipv4.conf.all.rp_filter=1
/sbin/sysctl -w net.ipv4.conf.default.rp_filter=1
 
5.2.8 Enable TCP SYN Cookies 
/sbin/sysctl -w net.ipv4.tcp_syncookies=1
 
@SSH Server設定  /etc/ssh/sshd_config
#6.2.8 Disable SSH Root Login
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
 
#6.2.12 Set Idle Timeout Interval for User Login
sed -i 's/#ClientAliveInterval 0/ClientAliveInterval 600/g' /etc/ssh/sshd_config
sed -i 's/#ClientAliveCountMax 3/ClientAliveCountMax 1/g' /etc/ssh/sshd_config
 
檢查以下設定: /etc/ssh/sshd_config
#6.2.1 Set SSH Protocol to 2
Protocol 2
 
#6.2.2 Set LogLevel to INFO
LogLevel INFO
 
#6.2.4 Disable SSH X11 Forwarding
X11Forwarding no
 
#6.2.5 Set SSH MaxAuthTries to 4 or Less
MaxAuthTries 4
 
#6.2.6 Set SSH IgnoreRhosts to Yes
IgnoreRhosts yes
 
#6.2.9 Set SSH PermitEmptyPasswords to No
PermitEmptyPasswords no
 
#6.2.10 Do Not Allow Users to Set Environment Options
PermitUserEnvironment no
 
#Disable the Weak Encryption Algorithms
ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc
 
#Disable the Weak MAC Algorithms
macs hmac-sha1,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160
 
#Disable DNS reverse
echo ‘UseDNS no’ >> /etc/ssh/sshd_config
 
#Disable GSSAPIAuthentication
echo 'GSSAPIAuthentication no' >> /etc/ssh/sshd_config
 
 
@修改hostname
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=a.b.c
 
vim /etc/hosts
127.0.0.1 a.b.c a localhost localhost4 localhost4.localdomain4
192.168.111.xx a.b.c a
 
=======開發機先不安裝====
@防止暴力攻擊
FAIL2BAN
yum install -y fail2ban
 
vim /etc/fail2ban/jail.conf
=
[ssh-iptables]
maxretry = 3
=
 
主機名稱it-dev01~it-dev03
192.168.1.231~233

user加wheel 群組後 無法sudo問題

usermod -G wheel user

user已加入user wheel grooup後
is not in the sudoers file.  This incident will be reported.

vim /etc/sudoers

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL  <===去#
Defaults log_host,logfile=/var/log/sudo.log<==加這行記錄始用user sudo的log

2018年8月29日 星期三

lftp 使用方法

lftp 使用方法

大多數圖形界面的ftp客戶端,都有兩欄窗口,一欄為本地目錄,一欄為遠程目錄。lftp也採用這種方式工作,只不過沒有使用圖形界面直觀的顯示
命令本地遠程
顯示工作目錄lpwdpwd
切換目錄lcdcd
顯示文件列表!lscls
!ls -lls
  • 其中,! 表示執行本地命令,lftp中沒有與 ls對應的本地命令 lls,所以要使用!ls顯示本地目錄文件
使用以上命令確認當前工作目錄的情況。以下命令用於從本地目錄上傳,或者從遠程目錄下載:
 下載上傳
單個文件getput
多個文件mgetmput
多線程pget 
目錄mirrormirror -R
  • lftp配置文件 ~/.lftp/rc中設置pget使用的線程數
    set pget:default-n 5   
在遠程目錄中,可以使用以下命令操作文件
統計文件大小du
移動、重命名mv
刪除rm
創建文件夾mkdir
刪除文件夾rmdir

2018年8月17日 星期五

centos解决clone VM後eth0網卡找不到問題

vim /etc/udev/rules.d/70-persistent-net.rules

把新網卡ethx 改成etho

再進去網卡
vi /etc/sysconfig/network-script/ifcfg-eth0 
把UUID刪除 及變跟 HWADDR (打上新網卡MAC) 重開機 重啟網卡 收工

2018年8月9日 星期四

rsync 參數 用法

  • -v,-verbose增強可讀性
  • -q,-quiet忽略非錯誤信息
  • -no-motd忽略守護進程模式的MOTD信息(參見manpage告知)
  • -c,-checksum基於checksum校驗,而非mod-time和size
  • -a,-archive歸檔模式,和-rlptgoD(不要使用-H,-A,-X)參數相同
  • -no-OPTION關閉一些顯式的OPTION(比如-no-D)
  • -r,-recursive遞歸目錄
  • -R,-relative使用相對路徑
  • -no-implied-dirs不發送制定目錄的屬性,避免在目標使用-relative刪除連接重新傳輸文件
  • -b,-backup備份(查看-suffix&-backup-dir)
  • -backup-dir = DIR基於DIR來創建備份的目錄結構
  • -suffix = SUFFIX制定備份的後最(默認~w / o -backup-dir)
  • -u,-update跳過接受端較新的文件
  • -inplace直接在文件上更新(SEE MAN PAGE)
  • -append直接追加文件
  • -append-verify和-append很像,只是用文件的較舊的那部份做校驗和
  • -d,-dirs僅傳輸文件而非遞歸
  • -l,-links將軟鏈接當作軟鏈接來拷貝
  • -L,-copy-links拷貝鏈接對應的文件或者目錄而非鏈接本身
  • -copy-unsafe-links僅不安全的鏈接才被拷貝
  • -safe-links忽略那些鏈接到目錄樹外的鏈接
  • -k,-copy-dirlinks將鏈接翻譯成其鏈接的目錄
  • -K,-keep-dirlinks將目錄鏈接在接收端轉換成目錄
  • -H,-hard-links保留硬鏈接
  • -p,-perms保留權限
  • -E,-executability保留文件的可執行性
  • -chmod = CHMOD改變文件或者目錄的權限
  • -A,-acls保留ACL(暗示-perms)
  • -X,-xattrs保留擴展屬性
  • -o,-owner保留所有者(僅限超級用戶)
  • -g,-group保留組
  • -devices保留設備文件(僅限超級用戶)
  • -specials保留特殊文件
  • -D和-devices -specials一樣
  • -t,-times保留修改時間
  • -O,-omit-dir-times在-times選項裡忽略目錄的時間
  • -super允許接受方執行那個一些超級用戶的活動
  • -fake-super通過xattrs來存儲和回復權限
  • -S,-sparse高效處理稀疏文件
  • -n,-dry-run只運行,不做改變
  • -W,-whole-file拷貝貝整個文件(沒有delta-xfer算法)
  • -x,-one-file-system不跨越文件系統
  • -B,-block-size = SIZE強制指定checksum的塊大小
  • -e,-rsh = COMMAND指定要使用的遠程shell
  • -rsync-path = PROGRAM指定遠程要運行的rsync路徑
  • - 存在如果接收端不存在文件就不創建
  • -ignore-existing如果接收端存在就不更新文件
  • -remove-source-files發送端刪除已經同步的文件(非dirs)
  • -del -delete-during的別名
  • -delete刪除接收端上在發送端不存在的文件
  • -delete-before接收端在發送前刪除,而不是發送過程中
  • -delete-during接收端在發送過程中刪除
  • -delete-delay在發送過程中尋找文件,在發送完成後刪除
  • -delete-after接收端在發送完成後刪除
  • -delete-excluded在接收端刪除排除的文件
  • -ignore-errors即使有I / O錯誤也刪除
  • -force即使目錄不是空的也刪除
  • -max-delete = NUM​​最多刪除文件的數目
  • -max-size = SIZE最大傳輸文件的大小
  • -min-size = SIZE最小傳輸文件的大小
  • -partial保持部分傳輸的文件
  • -partial-dir = DIR制定部分傳輸文件的存放目錄
  • -delay-updates先傳輸,最後再更新,保持原子性
  • -m,-prune-empty-dirs接收端刪除空目錄
  • -numeric-ids接收端不要將uid / gid映射為用戶名和組名
  • -timeout = SECONDS設置I / O超時時間,s為單位
  • -contimeout = SECONDS設置鏈接服務端的時間
  • -I,-ignore-times即使mtime和size都相同也不跳過
  • -size-only只要大小相同就跳過
  • -modify-window = NUM​​比對時間時制定精確範圍,範圍內都認為時間相同
  • -T,-temp-dir = DIR指定創建臨時文件的目錄
  • -y,-fuzzy文件在接收端不存在的情況下,在當前目錄下尋找一個基礎文件,以加快傳輸
  • -compare-dest = DIR接收端除了和發送端對比還和這裡指定的目錄對比,適合備份上次備份改變的文件
  • -copy-dest = DIR和-compare-dest類似,只是接收端會用本地拷貝來複製那些未改變的文件
  • -link-dest = DIR和-compare-dest類似,只是接收端會建立那些未改變文件的硬鏈接
  • -z,-compress傳輸過程中壓縮
  • -compress-level = NUM​​指定壓縮等級
  • -skip-compress = LIST不壓縮指定後綴的文件
  • -C,-cvs-exclude以CSV的方式自動忽略文件
  • -f,-filter = RULE新增一個文件過濾規則
  • -F與-filter ='dir-merge /.rsync-filter'重複相同:-filter =' - .rsync-filter'
  • -exclude = PATTERN排除規則PATTERN
  • -exclude-from = FILE從文件中讀取排除規則
  • -include = PATTERN不要排除指定規則的文件
  • -include-from = FILE從文件中讀取包含的規則
  • -files-from = FILE從文件中讀取文件列表
  • -0,-from0 all
  • -from / filter文件由0分隔
  • -s,-protect-args參數不許要空格分割; 只有通配符特殊字符
  • -address = ADDRESS綁定監聽的地址
  • -port = PORT制定端口號
  • -sockopts = OPTIONS制定TCP選項
  • -blocking-io在遠程shell中使用阻塞I / O.
  • -stats給出文件統計信息
  • -8,-8-bit-output輸出時不對高位字符轉義
  • -h,-human-readable以易於閱讀的方式打印數字
  • -progress顯示傳輸進度
  • -P與-partial-progress相同
  • -i,-itemize-changes打印更新的總結信息
  • -out-format = FORMAT以特定的格式打印更新信息
  • -log-file = FILE日誌文件
  • -log-file-format = FMT日誌文件格式
  • -password-file = FILE密碼文件
  • -list-only僅列出文件
  • -bwlimit = KBPS限制帶寬; 每秒KBytes
  • -write-batch = FILE將批量更新寫入文件
  • -only-write-batch = FILE和-write-batch類似但沒有更新目的地
  • -read-batch = FILE從文件中讀取批量更新任務
  • -protocol = NUM​​使用舊版本的協議
  • -iconv = CONVERT_SPEC要求文件名字符轉義
  • -4,-ipv4更喜歡IPv4
  • -6,-ipv6更喜歡IPv6
  • -version打印幫助信息
  • (-h)-help打印這個幫組信息(-h僅在單獨使用時與-help同意)

1 在本地機器上對兩個目錄進行同步
rsync -zvr /var/opt/installation/inventory/ /root/temp
參數:
  1. -z 開啟壓縮
  2. -v 詳情輸出
  3. -r 表示遞歸
2 利用 rsync -a 讓同步時保留時間標記
rsync 選項 -a 稱為歸檔模式,執行以下操作
  1. 遞歸模式
  2. 保留符號鏈接
  3. 保留權限
  4. 保留時間標記
  5. 保留用戶名及組名
rsync -azv /var/opt/installation/inventory/ /root/temp/
3 僅同步一個文件
rsync -v /var/lib/rpm/Pubkeys /root/temp/
4 從本地同步文件到遠程服務器
rsync -avz /root/temp/ root@192.168.200.10:/home/root/temp/
就像你所看到的,需要在遠程目錄前加上 ssh 登錄方式,格式為 username@machinename:path
ADVERTISEMENT
5 同步遠程文件到本地
和上面差不多,做個相反的操作
rsync -avz root@192.168.200.10:/var/lib/rpm /root/temp
同步遠程服務器上的文件夾到本地,如果本地有的文件,遠程沒有,則刪除之。
rsync -rave "ssh -p 22 -l root" --delete 192.168.0.200:/www/web/ /www/web/
6 同步時指定遠程 shell
用 -e 參數可以指定遠程 ssh ,比如用 rsync -e ssh 來指定為 ssh
rsync -avz -e ssh root@192.168.200.10:/var/lib/rpm /root/temp
7 不要覆蓋被修改過的目的文件
使用 rsync -u 選項可以排除被修改過的目的文件
rsync -avzu root@192.168.200.10:/var/lib/rpm /root/temp
ADVERTISEMENT
8 僅僅同步目錄權(不同步文件)
使用 -d 參數
rsync -v -d root@192.168.200.10:/var/lib/
9 查看每個文件的傳輸進程
使用 – -progress 參數
rsync -avz –-progress root@192.168.200.10:/var/lib/rpm/ /root/temp/
10 刪除在目的文件夾中創建的文件
用 – -delete 參數
rsync -avz – -delete root@192.168.200.10:/var/lib/rpm/
11 不要在目的文件夾中創建新文件
有時能只想同步目的地中存在的文件,而排除源文件中新建的文件,可以使用 – -exiting 參數
rsync -avz –existing root@192.168.1.2:/var/lib/rpm/
12 查看源和目的文件之間的改變情況
用 -i 參數
rsync -avzi root@192.168.200.10:/var/lib/rpm/ /root/temp/
輸出結果中在每個文件最前面會多顯示 9 個字母,分別表示為
> 已經傳輸
f 表示這是一個文件
d 表示這是一個目錄
s 表示尺寸被更改
t 時間標記有變化
o 用戶被更改
g 用戶組被更改
13 在傳輸時啟用包含和排除模式
rsync -avz – -include ‘P*’ – -exclude ‘*’ root@192.168.200.10:/var/lib/rpm/ /root/temp/
14 不要傳輸大文件
使用 – – max-size 參數
rsync -avz – -max-size=’100K’ root@192.168.200.10:/var/lib/rpm/ /root/temp/
15 傳輸所有文件
不管有沒有改變,再次把所有文件都傳輸一遍,用 -W 參數
rsync -avzW root@192.168.200.10:/var/lib/rpm/ /root/temp