2017年5月12日 星期五

NFS 設定搭配 NIS Users Home 目錄

設定 NIS Users Home 目錄
NFS 操作:
yum install -y nfs-utils rpcbind

NFS 伺服器的設定(192.168.60.50)
1.設定 NFS 伺服器開放的資源:
# mkdir /nishome
# vi /etc/exports
/nishome          192.168.60.0/24(rw,no_root_squash)

2.重新啟動 NFS
# systemctl enable nfs.service
# systemctl restart nfs.service
# showmount -e localhost

/nishome     192.168.60.0/24




2017年5月9日 星期二

Windows 10 Creator update 版本系統文字太小的問題

微軟 04/12 推出 Windows 10 Creator update 版本後,一時沒忍住就給他更新了,
更新完才發現微軟居然把調整系統文字大小的功能拿掉了,天啊!!!

眼睛看到更新後的螢幕畫面,心裡出現了無數的.........................

是我自己沒忍住,造成自己看著更新後的畫面眼睛快要脫窗,之後每天上網搜尋著是否有方法可以變更 Windows 10 Creator update 系統文字大小。

終於,找到網友 (KREEN) 所寫得一篇圖文並茂的使用說明。有需要的人可以到 KREEN 的

Windows 10 版本 1703 創意者更新(Creators)後字體太小解決辦法

查看如何變更系統文字大小或修改系統字型及大小的方法。

我自己只有修改系統文字大小的需求,所以只需下載 changesize.exe 工具軟體就可以變更文字大小。

下圖是我的設定值提供給大家參考:



2017年5月4日 星期四

CentOS 7 & Samba(File Server) 使用 SSSD 加入 Active Directory

一、CentOS 7 加入網域:
1.安裝相關套件:
yum install -y krb5-workstation realmd sssd samba-common adcli oddjob oddjob-mkhomedir samba samba-common-tools

2.查詢 AD 相關資訊及所需套件都已安裝:
realm discover tw.example
或者
realm list

3.Samba 加入 AD 網域
realm join tw.example --user administrator

Samba 退出 AD 網域
realm leave tw.example --user administrator

4.加入網域後,AD 上的帳號都可登入主機,若要限制可登入的使用者:
realm permit --all    #允許任何 AD 帳號登入
realm deny --all    #拒絕任何 AD 帳號登入
realm permit user@example.com    #允許使用UPN格式的 user 帳號登入
realm permit DOMAIN\\User2    #允許使用SAM格式的 user2 帳號登入
realm permit --withdraw user@example.com     #從主機刪除可登入的帳號
realm permit -g mis   #mis 群組可登入主機

5.查詢網域內使用者帳號資訊:
id tw\\hansen

6.修改 sssd.conf 帳號資訊服務:
[sssd]
domains = tw.example
config_file_version = 2
services = nss, pam

[domain/tw.example]
ad_domain = tw.example
krb5_realm = TW.EXAMPLE
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False    #登入時,不需輸入網域
fallback_homedir = /home/%d/%u    #登入後所自動建立的 home 目錄不會加上@DomainName
enumerate = True    #使用 getent 指令時,從LDAP查詢帳號資訊
access_provider = ad

7.重啟 sss 服務:
systemctl restart sssd.service

8.列出帳號資訊:
列出使用者:
getent passwd

列出群組:
getent group

二、Samba 加入網域:
1.修改 smb.conf:
[global]
        workgroup = TW
        realm = TW.EXAMPLE
        server string = Samba Server Version %v
        security = ADS
        kerberos method = secrets and keytab
        log file = /var/log/samba/log.%m
        max log size = 50
        idmap config * : backend = tdb
        cups options = raw

[homes]
        comment = Home Directories
        read only = No
        browseable = No
        root preexec = /opt/create-home.sh %S %H   #自動建立使用者 HOME 目錄 script

[MIS]
        comment = 資訊部
        path = /home/mis
        public = yes
       ;writable = yes
        valid users = @"資訊部門"
        write list = @"資訊部門"


2.自動建立使用者 HOME 目錄 script:
vi /opt/create-home.sh

#!/bin/bash
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

user=$1
group="domain users"
home=$2

if [ "$user" == "" ] || [ "$home" == "" ]; then
    exit 1
fi

if [ ! -d $home ]; then
    mkdir -m 700 -p $home 2>> /tmp/smb_err.log
    chown -Rf "$user:$group" $home 2>> /tmp/smb_err.log
fi

3.授予執行的權限:
chmod 700 /opt/create-home.sh

4.變更 MIS 目錄權值:
mkdir /home/mis
chown root:"資訊部門" -R /home/mis
chmod 775 -R /home/mis

5.重啟相關服務
systemctl restart sssd.service smb.service nmb.service
systemctl enable sssd.service smb.service nmb.service

6.測試使用者可不輸入密碼登入目錄

7.查看使用者使用情況:
smbstatus


2017年4月28日 星期五

Docker 改用 overlayFS 檔案系統

Docker 要改用 Overlay 檔案系統,系統的 kernel 必須是 kernel-3.18 以上,
kernel-3.10 不支援 Overlay 格式。

作業系統: CentOS 7

1.將 OverlayFS 加到 module 目錄下
echo "overlay" > /etc/modules-load.d/overlay.conf

2.載入 overlay module
modprobe overlay
或者
reboot

3.增加 docker repo
vi /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

4.安裝 Docker
yum install docker-engine

確認 selinux 狀態
sestatus -v

5.修改 Docker(v1.2...) Daemon 用 OverlayFS 啟動
vi /usr/lib/systemd/system/docker.service
[Service]
.....................
ExecStart=/usr/bin/dockerd --storage-driver=overlay
.....................

systemctl daemon-reload
systemctl start docker.service
systemctl enable docker.service

6.檢查是否使用 overlay
docker info | grep 'Storage Driver'

如果看到下列訊息表示己經使用 overlay:
Storage Driver: overlay

檢查 Container 和 OS 的磁碟空間,正常啟用 overlay 時,磁碟空間應該是一樣的。


2017年4月26日 星期三

Hbase 安裝、設定 (Cluster)

相關軟體安裝、設定:
hadoop 安裝配置: http://sc8log.blogspot.tw/2017/04/hadoop-cluster.html
zookeeper 安裝、設定: http://sc8log.blogspot.tw/2017/04/zookeeper-cluster.html


下載 Hbase 套件
tar -zf hbase-1.3.1-bin.tar.gz
sudo mv hbase-1.3.1 /usr/local/hbase

修改 bash.bashrc
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin

重新載入 bash.bashrc
source /etc/bash.bashrc

建立 Log 目錄
mkdir -p /usr/local/hbase/{logs,tmp,pids}

修改 conf/hbase-env.sh
export JAVA_HOME=${JAVA_HOME}
export HBASE_PID_DIR=/usr/local/hbase/pids
export HBASE_MANAGES_ZK=true    //由 hbase 負責啟動、停止 zookeeper

修改 regionservers
vi $HBASE_HOME/conf/regionservers
master
slave01
slave02
slave03

修改 backup-masters
vi $HBASE_HOME/conf/backup-masters
slave03

修改 hbase-site.xml
vi $HBASE_HOME/conf/hbase-site.xml
<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave01,slave02,slave03</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>/usr/local/hbase/tmp</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/user/zookeeper</value>
  </property>
</configuration>

清除 Log、tmp
rm -rf $HBASE_HOME/logs/*
rm -rf $HBASE_HOME/tmp/*

將 hbase 目錄複製到每台 slave
scp -r $HBASE_HOME slave01:~
scp -r $HBASE_HOME slave02:~
scp -r $HBASE_HOME slave03:~

移動 hbase 目錄(每台 slave)
sudo mv ~/hbase /usr/local/
sudo chown -R hadoop:hadoop /usr/local/hbase
sudo chmod +x /usr/local/hbase

啟動 Hbase
$HBASE_HOME/bin/start-hbase.sh

進入測試 hbase
hbase shell


運用範例:
學號                姓名        國文    英文 數學
105111111       boss         50        60        70
105111112       tom         60        70         80
105111113       max         90        95        100

建立 Table
create 'result','name','score'

寫入資料
put 'result','105111111','name','boss'
put 'result','105111111','score:chinese','50'
put 'result','105111111','score:english','60'
put 'result','105111111','score:math','70'
put 'result','105111112','name','tom'
put 'result','105111112','score:chinese','60'
put 'result','105111112','score:english','70'
put 'result','105111112','score:math','80'
put 'result','105111113','name','max'
put 'result','105111113','score:chinese','80'
put 'result','105111113','score:english','90'
put 'result','105111113','score:math','100'

查詢個人成績
get 'result','105111112'

查詢相同科目
scan 'result',{COLUMNS => 'score:english'}

查詢 result table 全部資料
scan 'result'

計算(統計不重覆的 row key 值,此範例為 3 人)
count 'result'

查看 table 結構
describe 'result'

刪除一列
delete 'result','105111112','name'

刪除相同 key 值的資料
deleteall 'result','105111112'

刪除 result table 的結構及資料
truncate 'result'

刪除 result table
disable 'result'
drop 'result'



zookeeper 安裝、設定 (Cluster)

相關軟體安裝、設定:
hadoop 安裝配置: http://sc8log.blogspot.tw/2017/04/hadoop-cluster.html
hbase 安裝、設定: http://sc8log.blogspot.tw/2017/04/hbase-cluster.html


下載 zookeeper:
wget http://apache.stu.edu.tw/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
tar -zxf zookeeper-3.4.9.tar.gz
sudo mv zookeeper-3.4.9 /usr/local/zookeeper
sudo chown hadoop:hadoop /usr/local/zookeeper
sudo mkdir -p /usr/local/zookeeper/logs

修改 /etc/bash.bashrc
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

重新載入 bash.bashrc
source /etc/bash.bashrc

修改 zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper
clientPort=2181
dataLogDir=/usr/local/zookeeper/logs
server.1=master:2888:3888
server.2=slave01:2888:3888
server.3=slave02:2888:3888
server.4=slave03:2888:3888
重要:1、2、3、4 對應 myid 中的編號

設定主機 myid 編號
master:
sudo echo "1" > /usr/local/zookeeper/myid
slave01:
sudo echo "2" > /usr/local/zookeeper/myid
slave02:
sudo echo "3" > /usr/local/zookeeper/myid
slave03:
sudo echo "4" > /usr/local/zookeeper/myid

啟動
/usr/local/zookeeper/bin/zkServer.sh start
重新啟動 Zookeeper
/usr/local/zookeeper/bin/zkServer.sh restart 
停止
/usr/local/zookeeper/bin/zkServer.sh stop
狀態
/usr/local/zookeeper/bin/zkServer.sh status

測試資料夾寫入 Zookeeper
進入 Zookeeper command 模式
/usr/local/hadoop/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

建立一個名為 mytest1 的資料夾進 File system
create /mytest test

查看 /mytest 資料夾檔案
ls /



2017年4月21日 星期五

MikroTik RouterOS RAW 設定

RouterOS 從 6.36 版後多了一個 RAW 功能,上網收集資料了解了解,順便整理起來。

(上圖是依網友的流程圖模仿重畫的)

firewall Raw 列表允許選擇性在 connection tracking 之前繞過或者丟棄封包,這樣能大大的降低 CPU 負載。
該功能非常有助於防御 DOS 攻擊,RAW 列表不能匹配連接狀態的追蹤,例如 connection-state 和 L7 協議。

Raw Policy 出現在 Prerouting chin 和 output chin,並在 connection-tracking 前執行。

Raw 目的是對指定的 IP 訪問可以不經過連接追蹤(connection-tracking),有助於減少 CPU 負載 ,
但對於私有網路做 NAT 轉換,connection-tracking 是必須的,Raw 又如何在實際網路應用中發揮作用。
例如遭到 DDoS 攻擊,可以通過 Raw 規則關閉掉攻擊來源 IP 的連接追蹤,不建立本地連接會話,不予回應,降低 CPU 負載 。

在 Raw 中有兩個連表,分別是 prerouting 和 output:
prerouting 用於處理任何進入路由器的封包
output 用於處理封包來自於路由器,並通過其中一個接口離開,即由路由器自身發出的封包

例如:
遭到 11.22.33.44 的 IP 通過 syn 的 DDoS 攻擊,可以拒絕對該 IP 做連接追蹤,減少 CPU 負載 :
/ip firewall raw
add chain=prerouting src-address=11.22.33.44 action=notrack


另一種情況, 如較大的網路環境,涉及內網和外網請求,在訪問外網時需要做 nat 轉換,而內網則不需要,
因此流量和對話增加的情況下,避免 CPU 負載過高,可以透過 Raw 關閉掉訪問內網的連接追蹤。

例如,在一個大型網絡,內網IP地址段是192.168.0.0/16,關閉掉內網的連接跟蹤,配置如下:
/ip firewall raw
add chain=prerouting dst-address=192.168.0.0/16 action=notrack

配置後,在 connection-tracking 列表將不會看到內網訪問 192.168.0.0/16 的連接訊息

其他 RAW policy:
/ip firewall raw
add action=drop chain=prerouting comment="Port scanners" protocol=tcp psd=21,3s,3,1
add action=drop chain=prerouting comment="Drop oversized unfragmented packets" packet-size=1492-65535 protocol=icmp
add action=drop chain=prerouting comment="SYN-FIN attack protection" protocol=tcp tcp-flags=fin,syn
add action=drop chain=prerouting comment="SYN-RST attack protection" protocol=tcp tcp-flags=syn,rst
add action=drop chain=prerouting comment="X-Mas attack protection" protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack
add action=drop chain=prerouting comment="NMAP FIN attack protection" protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg
add action=drop chain=prerouting comment="NMAP Push attack protection" protocol=tcp tcp-flags=fin,syn,rst,ack,urg,!psh
add action=drop chain=prerouting comment="NMAP FIN/PSH/URG attack protection" protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack
add action=drop chain=prerouting comment="NULLflags attack protection" protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg
add action=drop chain=prerouting comment="ALLflags attack protection" protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg

add action=drop chain=prerouting comment="Drop udp DNS queries from WAN" dst-port=53 in-interface="WAN" protocol=udp
add action=drop chain=prerouting comment="Drop tcp DNS queries from WAN" dst-port=53 in-interface="WAN" protocol=tcp




資料來源:
http://www.rosjb.com/803.html
https://quchao.com/entry/basic-rules-of-raw-table-in-the-routeros-firewall/


CubeCOS 虛擬機刪除網路介面,且主機內沒有 virtio 驅動程式成為孤島主機時,進行 virtio iso 掛載流程

 # 當 CubeCOS 虛擬機刪除網路介面,且主機內沒有 virtio 驅動程式成為孤島主機時,進行 virtio iso 掛載流程。 # 步驟一:確認目標虛擬機的底層名稱 # 在 Compute Node(計算節點)上列出運行中的 instance,並反查對應的 OpenSt...