2018年12月14日 星期五

proxmox nested virtualization

檢查 kernel >= 3.10

檢查目前狀態
cat /sys/module/kvm_intel/parameters/nested
cat /sys/module/kvm_amd/parameters/nested   

設定
echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf


重新載入 KVM 模組 (必須確認沒有 KVM VM執行中)
modprobe -r kvm_intel 
modprobe kvm_intel nested=1

modprobe -r kvm_amd 
modprobe kvm_amd nested=1

設定 Guest CPU type
CPU type to "host"

2018年12月7日 星期五

Proxmox disable apparmor

/etc/init.d/apparmor stop
/etc/init.d/apparmor teardown
update-rc.d apparmor disable

Browser 來源 IP 相關訊息

HTTP Header
HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
HTTP_X_FORWARDED
HTTP_X_CLUSTER_CLIENT_IP
HTTP_FORWARDED_FOR
HTTP_FORWARDED
REMOTE_ADDR
HTTP_VIA

Proxy
REMOTE_ADDR: 最後一個代理伺服器 IP
HTTP_VIA: 代理伺服器 IP
HTTP_X_FORWARDED_FOR

debian 檔案權限備份

安裝
apt-get install acl

備份
getfacl -R /data > permissions.acl

還原
setfacl --restore=permissions.acl

proxmox mount zfs drive

mount -t fs_type /dev/zvol/pool_name/zvol_name /mount_point

mount /dev/zd32p1 /mount_point

2018年11月19日 星期一

open source nas default password

FreeNAS
root / freenas

xigmaNAS
http://[[ip]]
admin / xigmanas

openmediavault
http://[[ip]]
admin / openmediavault

Operfiler
https://[[ip]]:446
openfiler /password

mount /dev/loop0p1

sudo losetup -Pf disk.img
sudo mkdir /mnt/loop0p1
sudo mount /dev/loop0p1 /mnt/loop0p1

2018年11月16日 星期五

busybox nc 取代 telnet

server端
busybox nc -lp 1400 -e /bin/bash

連線方式
busybox nc [host ip]  1400

2018年11月9日 星期五

Netgear M4300 Vlan 設定

(Netgear Switch) #vlan data
(Netgear Switch) (Vlan)#vlan 200
(Netgear Switch) (Vlan)#exit

(Netgear Switch) #config
(Netgear Switch) (Config)#interface 1/0/6
(Netgear Switch) (Interface 1/0/6)#vlan participation include 200
#vlan acceptframe vlanonly
(Netgear Switch) (Interface 1/0/6)#vlan pvid 200
(Netgear Switch) (Interface 1/0/6)#exit

Netgear M4300、Cisco switch 設定 vlan trunk

Cisco switch
switchport trunk encapsulation dot1q
switchport mode trunk

Netgear M4300
interface 1/0/1
switchport mode trunk

2018年11月1日 星期四

Under-voltage detected! (0x00050005)

raspberry pi 出現 Under-voltage detected! (0x00050005)
檢查HDMI 線材是否過長

2018年10月15日 星期一

2018年10月11日 星期四

NetGear M4300 port 相關資訊查詢

show stack-port
show port all
show vlan port all

2018年10月10日 星期三

NetGear M4300 設定 stack

每一台 stack 交換皆需設定
>enable
#configure
(Config)#stack
(Config-stack)#stack-port 1/0/25 stack
(Config-stack)#stack-port 1/0/26 stack
(Config-stack)#exit
(Config)#exit
#save

2018年10月9日 星期二

取代 netstat-nat

Linux kernel >2.4
cat /proc/net/nf_conntrack /proc/net/ip_conntrack |grep dst=[[nat-ip]] |grep src=192.168

LEAF 6.x shorewall 設定 NAT, DNAT Fail

錯誤訊息
ERROR: iptables-restore Failed. Input is im /var/lib/shorewall/.iptables-restore-input

解法
cd /lib/modules/4.9.128-x86_64/kernel/net/netfilter/
for i in  nf_*;do insmod $i;done
 

2018年10月8日 星期一

2018年10月5日 星期五

2018年10月4日 星期四

Debian 9 + PHP7 + ssh2 安裝設定

apt-get install libssh2-1-dev libssh2-1

wget https://github.com/Sean-Der/pecl-networking-ssh2/archive/php7.zip
unzip pecl-networking-ssh2-php7.zip
cd pecl-networking-ssh2-php7/
phpize
./configure
make
make install

echo extension=ssh2.so >>/etc/php/7.0/apache2/php.ini
echo extension=ssh2.so >>/etc/php/7.0/cli/php.ini

2018年9月28日 星期五

NetGear M4300 光纖設定速度 1G

設定為 1G
interface 1/0/1
auto-negotiate
speed auto 1000 full-duplex
exit

設定為 10G
no auto-negotiate
speed 10G full-duplex

PHP Sqlite3 筆記

try {
//建立連線
$dbh = new PDO('sqlite:./test.db3');

//建表格
$dbh->exec("CREATE TABLE a(id integer,name varchar(255))");

//增加資料
$dbh->exec("INSERT INTO a values(1,'test')");
$dbh->beginTransaction();

//取得資料
$sth = $dbh->prepare('SELECT * FROM a');
$sth->execute();

//獲取結果
$result = $sth->fetchAll();
print_r($result);
}
catch (PDOException $e)
{  echo 'Connection failed: ' . $e->getMessage(); }
if(isset($dsn))  $dsn=null;

2018年9月25日 星期二

Debian9 設定 Apache 2 HTTPS

載入ssl模組
cd /etc/apache2/mods-enabled
ln -s ../mods-available/ssl.load ssl.load
ln -s ../mods-available/ssl.conf ssl.conf

編輯 /etc/apache2/sites-available/default-ssl.conf
SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

設定 SSL
a2ensite default-ssl
a2enmod ssl

systemctl restart apache2

2018年9月19日 星期三

LEAF shorewall NAT one to one

增加 /etc/shorewall/nat
192.168.10.42   eth0            192.168.201.1   no              no

增加 /etc/shorewall/rules
ACCEPT:NFLOG(4) net     dmz:192.168.201.1       tcp     22      -       192.168.10.42
ACCEPT:NFLOG(4) net     dmz:192.168.201.1       tcp     80      -       192.168.10.42

修改 /etc/shorewall/shorewall.conf 
ADD_IP_ALIASES=Yes

2018年9月17日 星期一

Debian9 設定PHP7 beast

busybox=/usr/local/bin/busybox
wget -q https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64 -O  ${busybox}&&chmod a+x ${busybox}||exit 1
apt-get -y install gcc make php php-dev

wget https://github.com/liexusong/php-beast/archive/master.zip
busybox unzip master.zip
cd php-beast-master
phpize
./configure
make
make install

echo extension=beast.so >>/etc/php/7.0/apache2/php.ini
echo extension=beast.so >>/etc/php/7.0/cli/php.ini

2018年9月13日 星期四

proxmox 5 移除cluster 資訊

systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm /etc/pve/corosync.conf
rm /etc/corosync/*
killall pmxcfs
systemctl start pve-cluster

2018年9月6日 星期四

proxmox lxc 使用 fuse

host machine
modprobe fuse

guest machine
mknod -m 666 /dev/fuse c 10 229

LEAF Bering-uClibc 6.1.4 ulogd + mariadb server 摘要

1.debian 9 安裝 mariadb server
apt-get install mysql-server ulogd2-mysql

2.開啟 mariadb server 遠端存取
修改 /etc/mysql/mariadb.conf.d/50-server.cnf
#bind-address            = 127.0.0.1

3.設定 mariadb server ulog 設定
echo create database nulog|mysql
cat /usr/share/doc/ulogd2-mysql/mysql-ulogd2.sql.gz |gzip -d |mysql nulog
grant all privileges on nulog.* to nupik@% identified by 'changeme';
flush privileges;

4.LEAF 安裝 ulogd-mysql 套件
apkg -i ulogd-mysql

5.LEAF 修改 ulogd 設定
編輯 /etc/ulogd.conf 加入
/usr/lib/ulogd/ulogd_output_MYSQL.so
stack=log4:NFLOG,base1:BASE,ifi1:IFINDEX,ip2bin1:IP2BIN,mac2str1:HWHDR,mysql1:MYSQL

[mysql1]
db="nulog"
host="192.168.1.1"
user="nupik"
table="ulog"
pass="changeme"
procedure="INSERT_PACKET_FULL"

[mysql2]
db="nulog"
host="192.168.1.1"
user="nupik"
table="conntrack"
pass="changeme"
procedure="INSERT_CT"

2018年9月4日 星期二

mount fail Structure needs cleaning

xfs 檔案系統異常,修復指令
xfs_repair /dev/devices

2018年9月3日 星期一

debian inotify-tools 摘要

安裝
apt-get install  inotify-tools incron

加入排程
incrontab -e

相關設定檔
/etc/incron.allow
/etc/incron.conf  
/etc/incron.d/    
/etc/incron.deny

dhclient 禁用取得的dns 設定

編輯 /etc/dhcp/dhclient.conf  加入
supersede domain-name-servers 192.168.1.100;
supersede domain-name "aaa.bbb";

其他相關
dhclient 取得 ip 後執行 script
/etc/dhcp/dhclient-exit-hooks.d

2018年8月29日 星期三

Linux 版本查詢

debian    /etc/debian_version
ubuntu    /etc/lsb-release
redhat    /etc/redhat-release
centos    /etc/centos-release /etc/redhat-release
devuan    /etc/devuan_version
opensuse  /etc/SuSE-brand
fedora    /etc/fedora-release
archlinux /etc/arch-release
alpine    /etc/alpine-release
gentoo    /etc/gentoo-release

proxmmox  指令 pveversion

2018年8月22日 星期三

sed 命令列輸入多個指令方法

使用;
sed -n -e '1p; 2p' /etc/passwd

使用 -e
sed -n -e 1p -e 2p /etc/passwd

使用 {}
sed -n -e '{1p; 2p}' /etc/passwd

2018年8月21日 星期二

解決 rsync error: protocol incompatibility (code 2) at compat.c(62)

可能是 rsync client (rsync  version 2.5.7  protocol version 26)版本太舊

修改 /etc/xinetd.d/rsync 加入 --protocol 30

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon  --protocol 30
log_on_failure += USERID
}

2018年8月16日 星期四

proxmox cluster 出現 TASK ERROR: cluster not ready – no quorum?

解決方法,把集叢的期待數量降低 pvecm expected 1

2018年8月15日 星期三

使用 wget 取得網頁內容,並去除 tag、空白

wget -q url -O -|sed -e 's/<[^>]*>//g'|sed '/^$/d'

2018年8月8日 星期三

proxmox 5.2 無法掛載 cifs

原因可能是cifs server 不支援 smb 3.0

proxmox 掛載預設 smb 3.0
修改 /etc/pve/storage.cfg
加入 smbversion 2.1 設定

2018年7月30日 星期一

proxmox 5.2 sssd + windows ad 認證

安裝相關軟體
apt-get -y install realmd sssd sssd-tools adcli krb5-user packagekit samba-common samba-common-bin samba-libs

resolvconf

啟動相關軟體
systemctl start realmd

編輯 /etc/pam.d/common-session
# add to the end if need (create home directory automatically at initial login)
session optional        pam_mkhomedir.so skel=/etc/skel umask=077

CentOS7 使用 sssd + windows ad 認證

安裝相關軟體
yum -y install krb5-workstation realmd sssd oddjob oddjob-mkhomedir adcli samba-common oddjob oddjob-mkhomedir sssd samba-common-tools

開啟相關服務
systemctl enable realm
systemctl start realm

加入網域
realm discover domainname
realm join domainname

realm 相關指令
查詢 AD 相關資訊
realm discover domain
realm list

加入網域
realm join domain --user administrator

退出網域
realm leave domain --user administrator

網域限制可登入的使用者:
realm permit --all  #允許任何帳號登入
realm deny --all    #拒絕任何帳號登入
realm permit user@domain      #允許使用UPN格式的 user 帳號登入
realm permit domain\\User2  #允許使用SAM格式的 user2 帳號登入
realm permit --withdraw user@domain     #從主機刪除可登入的帳號
realm permit -g mis   #mis 群組可登入主機

查詢使用者帳號資訊
id user\\donain
getent passwd
getent group

相關設定檔案
/etc/sssd/sssd.conf
/etc/nsswitch.conf
/etc/pam.d/fingerprint-auth
/etc/pam.d/fingerprint-auth-ac
/etc/pam.d/password-auth
/etc/pam.d/password-auth-ac
/etc/pam.d/system-auth
/etc/pam.d/system-auth-ac
/etc/pam.d/smartcard-auth
/etc/pamd./smartcard-auth-ac

/etc/sssd/sssd.conf  設定檔
[sssd]
domains = ad.example
config_file_version = 2
services = nss, pam

[domain/tw.example]
ad_domain = ad.example
krb5_realm = AD.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 查詢帳號資訊
access_provider = ad

相關指令

2018年7月27日 星期五

debian 9 出現 QSslSocket: cannot resolve CRYPTO_num_locks

出現以下訊息
QSslSocket: cannot resolve CRYPTO_num_locks
QSslSocket: cannot resolve CRYPTO_set_id_callback
QSslSocket: cannot resolve CRYPTO_set_locking_callback
QSslSocket: cannot resolve ERR_free_strings
QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
QSslSocket: cannot resolve EVP_CIPHER_CTX_init
QSslSocket: cannot resolve sk_new_null

解決方式
安裝 libssl1.0-dev

2018年7月17日 星期二

proxmox 5.2 取得所有cluster node 資訊

for i in $(grep "name\|ring0_addr" /etc/corosync/corosync.conf|grep -v cluster_name:);do [ $i = "name:" ]&&{ echo;continue; };[ $i = "ring0_addr:" ]&&continue;echo  $i;done;

proxmox 取得 cluster name

grep cluster_name /etc/pve/corosync.conf

Proxmox 5.2 安裝 nfs server

安裝 NFS server 軟體
apt-get install nfs-common nfs-kernel-server

啟動 NFS server 服務
systemctl start nfs-kernel-server
systemctl enable nfs-kernel-server

編輯 /etc/exports

重新載入 NFS server 設定檔
exportfs -a

Proxmox 5.x 安裝 LSI RAID GUI 工具

安裝 X window
apt-get install xfce4 chromium lightdm
apt-get install xrdp tigervnc-standalone-server
apt-get install mate
apt-get install task-mate-desktop

安裝 rpm -> deb 程式
apt-get install alien

取得 管理程式並安裝
wget https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/17.05.00.02_Linux-64_MSM.gz

tar xzvf 17.05.00.02_Linux-64_MSM.gz
cd 17.05.00.02_Linux-64_MSM/disk/
alien --scripts *.rpm
dpkg -i lib-utils2_1.00-9_all.deb                   
dpkg -i megaraid-storage-manager_17.05.00-3_all.deb  

啟動 MSM service
systemctl start vivaldiframeworkd.service
systemctl enable vivaldiframeworkd.service

執行 GUI 管理程式
cd "/usr/local/MegaRAID Storage Manager"
./startupui.sh

文字界面
/usr/local/MegaRAID\ Storage\ Manager/StorCLI/storcli64 /c0 show all

Proxmox 5.x 安裝 xrdp

apt-get install xfce4 chromium lightdm
apt-get install xrdp tigervnc-standalone-server

允許所有使用者皆可使用 XRDP
修改 /etc/X11/Xwrapper.config containing
allowed_users = anybody

2018年6月12日 星期二

Proxmox LXC Bind Mounts

編輯 /etc/pve/nodes/assus/lxc/[lxcid].conf 加入
mp0: /host/mnt,mp=/lxc/mnt
mp1: /host/mnt,mp=/lxc/mnt

Proxmox 5.1 LXC 掛載 CIFS

lxc 安裝 相關軟體
apt-get install cifs-utils
HOST 編輯 /etc/apparmor.d/lxc/lxc-default, 
/etc/apparmor.d/lxc/lxc-default-cgns 加入

mount fstype=cifs,

服務  重新啟動 service apparmor reload

CIFS umount:This utility only unmounts cifs filesystems.

 umount -i /mnt

syslinux/extlinux 除錯摘要

WARNING: No configuration file found
boot:


缺少 syslinux.cfg /extlinux.conf 設定檔

NO DEFAULT or UI configuration directive found!
boot:


syslinux.cfg 設定檔中缺少  default 設定
設定範例
default vm initrd=initrd.img root=/dev/root

proxmox 5.2 softraid /dev/md127 修改為 /dev/md0

1.mdadm --detail -scan >>/etc/mdadm/mdadm.conf

2.修改 /etc/mdadm/mdadm.conf
指定 ARRAY /dev/md0

3.更新 /boot/initramfs
update-initramfs -u -k all

NTI ENVIROMUX-SEMS-16 Object Identifiers (OIDs)

External Sensor / Device Values
Port 1: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.1
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.2
Port 2: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.3
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.4
Port 3: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.5
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.6
Port 4: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.7
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.8
Port 5: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.9
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.10
Port 6: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.11
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.12
Port 7: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.13
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.14
Port 8: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.15
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.16
Port 9: Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.17
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.18
Port 10:Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.19
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.20
Port 11:Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.21
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.22
Port 12:Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.23
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.24
Port 13:Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.25
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.26
Port 14:Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.27
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.28
Port 15:Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.29
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.30
Port 16:Device 1: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.31
 Device 2: .1.3.6.1.4.1.3699.1.1.2.1.5.1.1.7.32

Internal Sensor Values:
Temperature: .1.3.6.1.4.1.3699.1.1.2.1.4.1.1.6.1
Humidity: .1.3.6.1.4.1.3699.1.1.2.1.4.1.1.6.2
Battery: .1.3.6.1.4.1.3699.1.1.2.1.4.1.1.6.3

Digital Input Value:
Note: closed=0 open=1
Digital Input #1: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.1
Digital Input #2: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.2
Digital Input #3: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.3
Digital Input #4: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.4
Digital Input #5: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.5
Digital Input #6: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.6
Digital Input #7: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.7
Digital Input #8: .1.3.6.1.4.1.3699.1.1.2.1.6.1.1.5.8

Relay Output Value:
Note: Status syntax: closed=0 open=1
Relay Output #1: .1.3.6.1.4.1.3699.1.1.2.1.7.1.1.5.1
Relay Output #2: .1.3.6.1.4.1.3699.1.1.2.1.7.1.1.5.2
Relay Output #3: .1.3.6.1.4.1.3699.1.1.2.1.7.1.1.5.3
Relay Output #4: .1.3.6.1.4.1.3699.1.1.2.1.7.1.1.5.4

IP Device Status:
Note: Status syntax: closed=0 open=1
IP Device #1: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.1
IP Device #2: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.2
IP Device #3: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.3
IP Device #4: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.4
IP Device #5: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.5
IP Device #6: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.6
IP Device #7: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.7
IP Device #8: .1.3.6.1.4.1.3699.1.1.2.1.8.1.1.8.8

參考資料
http://www.networktechinc.com/enviro-sems-oid.html

2018年6月7日 星期四

Debian IPMI 筆記

1.安裝OpenIPMI與ipmitool
sudo apt-get install openipmi
sudo apt-get install ipmitool

2.載入IPMI
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si

3.顯示local端的BMC資訊
ipmitool lan print

2018年6月5日 星期二

取得所有網路卡界面名稱

 sed -n 4,100p /proc/net/dev|awk -F : '{print $1}'

2018年5月31日 星期四

iSCSI IQN 筆記

1.每個iSCSI節點都具備唯一的IP位址、TCP Socket埠號與iSCSI認證名稱(iSCSI Qualifier Name,IQN)

2.IQN是iSCSI所獨有的裝置識別機制,命名規則為「iqn」+「日期」+「反向Domain名稱或命名授權」+「主機名稱」,主機名稱必須是唯一的,最多255個字元,但不能有空白字元。

3.iSCSI SAN即是透過這3種機制來存取iSCSI裝置。

Linux iSCSI 摘要

Scan iSCSI target
iscsiadm --mode discovery --type sendtargets --portal 192.168.10.227

Show iSCSI target
iscsiadm -m node -p 172.0.0.1 -o show

Login iSCSI target
iscsiadm --mode node --targetname iqn.2000-01.com.synology:win7 --portal 192.168.10.227:3260 --login

Logout iSCSI target
iscsiadm -m node -p 192.168.10.227 --logout

修改 iSCSI 參數
iscsiadm -m node -o [delete|new|update] -T targetname

顯示 iSCSI 狀態
iscsiadm -m session -o show

iSCSI Rescanning session
iscsiadm -m node -R

顯示 iscsi target 與 /dev/sd* 對應關係
ls -lh /dev/disk/by-path/*

2018年5月29日 星期二

mdadm --scan --detail not found 摘要

1.使用 mdadm --assemble --scan

2. 編輯 /etc/mdadm.conf

2018年5月28日 星期一

dnsmasq query ns fordward(windows ad 支援)

編輯 /etc/dnsmasq.conf  加入
server=/DOMAIN-NAME/DC-IP

測試
set type=ns
_ldap._tcp.dc._msdcs.DOMAIN-NAME

set type=srv
_ldap._tcp.dc._msdcs.DOMAIN-NAME

2018年5月24日 星期四

LEAF Bering-uClibc 6.1.2 Rev 1 Bond + VLan 設定

LEAF Bering-uClibc 6.1.2 Rev 1

1.修改 /etc/network/interfaces
auto eth0
iface eth0 inet manual
  bond-master bond0

auto eth1
iface eth1 inet manual
  bond-master bond0

auto bond0
iface bond0 inet static
#iface bond0 inet dhcp
        address 192.168.10.1
        netmask 255.255.255.0
        bond-slaves eth0 eth1
        bond-mode 6
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200

auto bond0.20
iface bond0.20 inet static
        address 192.168.20.1
        netmask 255.255.255.0
        broadcast 192.168.20.255

2./etc/modules 加入
bonding mode=6

3. /etc/default/local.start 加入
ifenslave bond0 eth0 eth1

2018年5月21日 星期一

PHP 更改Windows AD 帳號密碼摘要

1.The password is stored in the AD and LDS database on a user object in the unicodePwd attribute

2.the client must have a 128-bit Transport Layer Security (TLS)/Secure Socket Layer (SSL) connection to the server.

3.設定 AD CS,確認 LDAPS:636 正常運作

4.用於 PHP 密碼編碼及更新程式碼
$userdata["unicodePwd"] = iconv("UTF-8", "UTF-16LE", '"' . $new_pass . '"');
ldap_mod_replace($ldapconn, 'CN=user,CN=Users,DC=domain,DC=com', $userdata);

5.參考資料
https://support.microsoft.com/en-us/help/269190/how-to-change-a-windows-active-directory-and-lds-user-password-through

6.認證程式碼
putenv('LDAPTLS_REQCERT=allow');

$ldapurl = "ldaps://domain.local";
$ldapurl = "ldaps://192.168.0.1";

$ldapconn = ldap_connect($ldapurl);

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

$ldapbind = ldap_bind($ldapconn, "php@domain.local", "p@ssw0rd");

2018年5月20日 星期日

安裝 php-beast

wget https://github.com/liexusong/php-beast/archive/master.zip
unzip master.zip
cd php-beast-master
phpize
./configure
make
make install

編輯 /etc/php.ini 加入
extension=beast.so

CentOS7 安裝 PHP 5.6

yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install yum-utils
yum-config-manager --enable remi

yum-config-manager --enable remi-php56
yum install php

2018年5月19日 星期六

設定 LDAPS on Windows Server 2012

1.安裝  AD Certificate Service
2.設定 AD CS
3.reboot

測試工具
ldp (full domain name)

PHP Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in

編輯 /etc/openldap/ldap.conf 加入 TLS_REQCERT never

PHP 程式加入環境變數
putenv('LDAPTLS_REQCERT=allow');

2018年5月18日 星期五

CentOS7 安裝 PHP 7

rpm -Uvh http://download.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

yum install yum-utils
yum-config-manager --enable remi

安裝 PHP 7.0
yum-config-manager --enable remi-php70

安裝 PHP 7.1
yum-config-manager --enable remi-php71

yum install php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

2018年5月17日 星期四

cifs mount fail

敘述
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

可能是 CIFS 版本問題
mount -t cifs //ip/name /mnt -o vers=1.0,user=admin
mount -t cifs //ip/name /mnt -o vers=2.0,user=admin



2018年5月11日 星期五

Debian 9 更改網路卡速度


apt-get install ethtool

ethtool eth0
ethtool -s eth0 speed 100 duplex full
ethtool -s eth0 speed 10 duplex half

2018年5月10日 星期四

設定 Debian 9 支援 Infiniband RDMA

1.確認 infiniband 界面 
/dev/ib0

2.確認 載入 module
rdmavt rdma_ucm rdma_cm
ib_uverbs ib_iser ib_ipoib ib_cm ib_umad ib_core      
mlx4_en mlx4_ib mlx4_core      

3.安裝相關套件
apt-get install libmlx4-1 infiniband-diags ibutils ibverbs-utils rdmacm-utils perftest

tgt target support

apt-get install tgt

LIO target support

apt-get install targetcli

iscsi client
apt-get install open-iscsi-utils open-iscsi

4.工具 : 
ibv_devinfo
ibv_devices

Glusterfs 使用 RDMA 傳輸模式

設定 rdma 傳輸模式
1.gluster volume stop volname
2.gluster volume set volname config.transport tcp,rdma

掛載方式
mount -t glusterfs -o transport=rdma server:/volname /mnt

2018年5月8日 星期二

Debian 9 (Stretch) 中啟用 rc.local

vi /etc/rc.local
chmod +x /etc/rc.local
systemctl start rc-local

Raspberry pi 使用遠端桌面

RDP client
sudo apt-get install rdesktop
rdesktop remote-host

Raspberry pi檢查圖片檔是否損毀

使用 imagemagick identify
sudo apt-get install imagemagick
identify foo.png
$? = 0 正確

使用 jpeginfo
sudo apt-get install jpeginfo
jpeginfo foo.jpg
$? = 0 正確

使用  djpeg
sudo apt-get install libjpeg-progs
djpeg -fast -onepass foo.jpg >/dev/null;
$? = 0 正確


identify 及 jpeginfo 無法確認圖片內容是否損毀,只能透過EXIF確認是否為圖片

2018年5月4日 星期五

Proxmox 5.1 :i2c i2c-2: sendbytes: NAK bailout. 摘要

可能是 radeon 顯示卡 module 造成

編輯 /etc/modprobe.d/pve-blacklist.conf
加入 blacklist radeon

module 開機,後另外載入

modprobe radeonfb
modprobe fb_ddc
modprobe radeon

2018年4月27日 星期五

busybox sendmail 指令用法

使用範例
sendmail -f from@mail.address -t to@mail.address -S smtp-server < mail.txt

參數說明
-f 送件信箱
-t 收件信箱
-au 送件帳號
-ap 送件帳號密碼
-S SMTP Server domain name 或 ip

mail.txt 信件內容範例
Subject: Test
CC:
To: to@mail.address
From: from@mail.address

        xxxxxx
        xxxxxx
        xxxxxx

2018年4月26日 星期四

Dlink dns323 fun_plug 設定 OpenSSH Secure Shell Server

1.安裝 fun_plug

2.sh /ffp/start/sshd.sh start

chsh -s /ffp/bin/bash root
chsh -s /ffp/bin/bash admin

store-passwd.sh

chmod a+wx /mnt/HD_a2/ffp/start/sshd.sh
chmod a+w /mnt/HD_a2/ffp/start/telnetd.sh
chmod -x /mnt/HD_a2/ffp/start/telnetd.sh

2018年4月20日 星期五

raspberry pi 中文設定

1.安裝中文字型
sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy

2.locale設定成繁體中文。
sudo dpkg-reconfigure locales
選擇 zh_TW BIG5、zh_TW.EUC_TW EUC-TW、zh_TW.UTF-8 UTF-8,
zh_TW.UTF-8設定為預設的locale

3.安裝中文輸入法
sudo apt-get install scim scim-tables-zh scim-chewing
使用 Ctrl-Space即可切換輸入法,輸入中文

raspberry pi 掛載 exfat

apt-get install ntfs-3g
apt-get install exfat-fuse exfat-utils

2018年4月9日 星期一

Proxmox LXC Root 無法登入 console

編輯 /etc/securetty 加入

lxc/console
lxc/tty1
lxc/tty2
lxc/tty3
lxc/tty4
pts/0

2018年4月2日 星期一

Proxmox 5.1 LXC 掛載 NFS Server

LXC 全部 開放
1.編輯 /etc/apparmor.d/lxc/lxc-default,/etc/apparmor.d/lxc/lxc-default-cgns加入
mount fstype=rpc_pipefs,
mount fstype=nfs,
mount options=(rw, bind, ro),

2.重啟 apparmor 服務
service apparmor reload

僅開放特定 LXC
1.編輯/etc/apparmor.d/lxc/lxc-default-with-nfs
profile lxc-container-default-with-nfs flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/lxc/container-base>

  # the container may never be allowed to mount devpts.  If it does, it
  # will remount the host's devpts.  We could allow it to do it with
  # the newinstance option (but, right now, we don't).
  deny mount fstype=devpts,
  mount fstype=cgroup -> /sys/fs/cgroup/**,
  mount fstype=nfs,
  mount fstype=nfs4,
  mount fstype=nfsd,
  mount fstype=rpc_pipefs,
}


2.編輯 /etc/pve/lxc/[vid].conf 加入
lxc.apparmor.profile: lxc-container-default-with-nfs


3.重啟 apparmor 服務
service apparmor reload


Proxmox 5.1 LXC 設定 NFS-server

echo "lxc.aa_profile: unconfined" >> /etc/pve/lxc/<LXC-ID>.conf
echo "lxc.aa_profile=unconfined" >> /var/lib/lxc/<LXC-ID>/config

2018年3月30日 星期五

CentOS 7 安裝 SGE

1.安裝 CentOS-7-x86_64-Minimal-1708.iso

2.安裝相關 rpm
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum install -y tcsh libhwloc* jemalloc libmunge* perl-Env perl-XML-Simple xterm mailx db4-utils xorg-x11-fonts-ISO8859-1-100dpi xorg-x11-fonts-ISO8859-1-75dpi  lesstif
yum groupinstall "X Window System" -y
yum install -y java gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

rpm -ivh https://copr-be.cloud.fedoraproject.org/results/loveshack/SGE/epel-7-x86_64/00164467-gridengine/gridengine-8.1.9-1.el7.centos.x86_64.rpm
rpm -ivh https://copr-be.cloud.fedoraproject.org/results/loveshack/SGE/epel-7-x86_64/00164467-gridengine/gridengine-execd-8.1.9-1.el7.centos.x86_64.rpm
rpm -ivh https://copr-be.cloud.fedoraproject.org/results/loveshack/SGE/epel-7-x86_64/00164467-gridengine/gridengine-qmaster-8.1.9-1.el7.centos.x86_64.rpm
rpm -ivh https://copr-be.cloud.fedoraproject.org/results/loveshack/SGE/epel-7-x86_64/00164467-gridengine/gridengine-qmon-8.1.9-1.el7.centos.x86_64.rpm
rpm -ivh https://copr-be.cloud.fedoraproject.org/results/loveshack/SGE/epel-7-x86_64/00164467-gridengine/gridengine-guiinst-8.1.9-1.el7.centos.noarch.rpm

3.進入 X window

4.執行 /opt/sge/start_gui_installer 安裝 SGE

2018年3月17日 星期六

Ubuntu 16 安裝 Glusterfs 摘要

安裝環境 Ubuntu 16
主機名稱 ubuntu

1.安裝設定
apt-get install glusterfs*
systemctl start glusterfs-server
systemctl enable glusterfs-server

2.建立單一節點  test volume 
gluster volume create test ubuntu:/brick1 ubuntu:/brick2 ubuntu:/brick3

3.設定 test volume  支援 NFS 存取
gluster volume start test
systemctl start rpcbind
gluster volume set volume_name nfs.disable off
gluster volume stop test
gluster volume start test

2018年3月16日 星期五

Torque 安裝(torque-6.1.2)

1.作業系統環境 CentOS Linux release 7.4.1708 (Core)  Minimal 安裝

2.相關開發軟體安裝
yum install -y libtool openssl-devel libxml2-devel gcc gcc-c++ make boost-devel wget libcgroup-tools

3.安裝 hwloc 1.9.1
yum remove hwloc -y
wget https://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.1.tar.gz
tar -xzvf hwloc-1.9.1.tar.gz
cd hwloc-1.9.1
./configure
make
make install
echo /usr/local/lib >/etc/ld.so.conf.d/hwloc.conf
ldconfig
cd $OLDPWD

4.安裝 torque (預設環境變數 /var/spool/torque/)
wget http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.2.tar.gz
tar -xzvf torque-6.1.2.tar.gz
cd torque-6.1.2
./configure --enable-cgroups --with-hwloc-path=/usr/local
make
make install
./torque.setup root

systemctl start pbs_server
systemctl enable pbs_server

systemctl start pbs_mom
systemctl enable pbs_mom

systemctl enable trqauthd
systemctl start trqauthd

systemctl start  pbs_sched
systemctl start pbs_sched

5.建立 Torque Package 提供 運算節點軟體安裝
make packages
產生
torque-package-clients-linux-x86_64.sh
torque-package-devel-linux-x86_64.sh
torque-package-doc-linux-x86_64.sh
torque-package-mom-linux-x86_64.sh
torque-package-server-linux-x86_64.sh

6.設定
編輯 /var/spool/torque/server_priv/nodes 內容如下
headnode
n1
n2

編輯 /var/spool/torque/mom_priv/config  內容如下
$pbsserver      headnode
$logevent       225

7建立 queue
qmgr -c "create queue dque queue_type=execution"
qmgr -c "set server default_queue=dque"
qmgr -c "set queue dque started=true"
qmgr -c "set queue dque enabled=true"
qmgr -c "set server scheduling=true"

8.測試
pbsnode -a
echo test | qsub

Torque 運算節點安裝(torque-6.1.2)

1.作業系統環境 CentOS Linux release 7.4.1708 (Core)  Minimal 安裝

2.安裝 hwloc 1.9.1套件
yum remove hwloc -y
yum install -y libcgroup-tools make gcc wget
wget https://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.1.tar.gz
tar -xzvf hwloc-1.9.1.tar.gz||exit 1;
cd hwloc-1.9.1
./configure
make
make install
echo /usr/local/lib >/etc/ld.so.conf.d/hwloc.conf
ldconfig

3.由 pbs_server 複製 torque-package-相關套件

4.安裝 torque 相關套件
./torque-package-clients-linux-x86_64.sh --install
./torque-package-mom-linux-x86_64.sh --install
systemctl enable pbs_mom
systemctl start pbs_mom
systemctl enable trqauthd
systemctl start trqauthd

5.測試
pbsnode -a

2018年3月10日 星期六

Raspberry pi 安裝 danted 摘要

安裝
apt-get install dante-server
cd /lib/arm-linux-gnueabihf
ln -s libc.so.6 libc.so

設定摘要
/etc/danted.conf
logoutput: syslog stdout /var/log/danted.log
internal: 192.168.2.11 port = 1080
external: 192.168.8.105
method: username none

pass {
from: 192.168.0.0/24 to: 0.0.0.0/0
protocol: tcp udp
}

Raspberry pi 連線 PPTP

安裝
apt-get update -y
apt-get upgrade -y
apt-get install pptpd
apt-get install -y pptp-linux

設定
pptpsetup --create  $TUNNEL --server $SERVER  --username $USERNAME --password  $PASSWORD --encrypt --

相關設定檔及指令
/etc/ppp/chap-secrets
/etc/ppp/peers/toVigor

pppd call
pkill pppd

2018年2月21日 星期三

Glusterfs 設定開啟 NFS

1.開啟 rpcbind 相關服務

2.設定 Glusterfs
gluster volume set volume_name nfs.disable off
gluster volume stop volume_name
gluster volume start volume_name


其他相關指令
gluster volume status
gluster volume info

Glusterfs Volume 模式

Distributed (JBOD):有機會發生因寫入的 brick 空間不足,而造成檔案寫入失敗。

Replicated (RAID1)

Striped (RAID0)

Distributed Striped (JBOD + RAID0)

Distributed Replicated (JBOD + RAID1):大數據分析建議使用。

Striped Replicated  (RAID 1 + 0)

Dispersed (RAID 5/6) 3.1商業版,3.6 以後版本提供,利用增加節點數降低網路流量。

Glusterfs 除錯

訊息:
Connection failed. Please check if gluster daemon is operational

原因:
1.glusterfs 相關服務未執行。
2.掛載節點無法查詢到所有 glusterfs node domain name。

解決方法:
執行 glusterfs 相關服務
編輯  /etc/hosts

Proxmox LXC 掛載 Glusterfs

host 中 /etc/pve/nodes/pve/lxc/.conf  加入 

lxc.hook.autodev: sh -c "mknod -m 0666 ${LXC_ROOTFS_MOUNT}/dev/fuse c 10 229"
#fuse
lxc.cgroup.devices.allow = c 10:229 rwm


其他裝置
#ppp
lxc.cgroup.devices.allow = c 108:0 rwm

#fuse
lxc.cgroup.devices.allow = c 10:229 rwm

#loop0
lxc.cgroup.devices.allow = b 7:0 rwm

#tun
lxc.cgroup.devices.allow = c 10:200 rwm

Bering-uClibc 5/6 開發環境建置

1.安裝 ubuntu 14

2.更新及安裝相關套件
apt-get update
apt-get install -y libconfig-general-perl libdatetime-perl liblist-moreutils-perl libhash-merge-perl
apt-get install -y autoconf automake bc binutils bzip2 cpio file flex gawk gcc  gzip libtool lzma m4 make sed sed tar wget lzop g++
apt-get install -y git patch nasm bison asciidoc fakeroot cmake intltool texinfo
apt-get install -y zlib-dev* libmpc* mpfr* libtool-*

3.下載 source 並解開

4../buildtool.pl -t x86_64-unknown-linux-uclibc source kernel

5 ./buildtool.pl -t x86_64-unknown-linux-uclibc build toolchain

取得 Linux kernel 版本資訊

cat /proc/version
cat /proc/sys/kernel/version
uname -mrs

2018年1月30日 星期二

PHP 使用 fgetcsv 無法正確剖析 UTF-8 中文

使用  fgetcsv 函式前,先執行
setlocale(LC_ALL, 'en_US.UTF-8')

PROXMOX 儲存空間管理 指令-pvesm

使用摘要
pvesm add dir img --path /img

pvesm set img --content "iso rootdir images backup vztmpl"

pvesm remove img

參考文件
https://pve.proxmox.com/wiki/Storage

Glusterfs 備份設定

#!/bin/bash
# backup glusterfs config

BACKUP_SRC="/var/lib/glusterd /etc/fstab /etc/glusterfs /etc/hosts /etc/hostname";

bakfile='';

bakdir=/etc/glusterfs/.bak;
[ -d "$bakdir" ]||mkdir $bakdir;
date +%Y-%m-%d-%H-%M-%S>$bakdir/volume.info;
gluster volume info >>$bakdir/volume.info;

[ -z "$bakfile" ]&&bakfile=`date +%Y-%m-%d-%H-%M-%S`;
find $BACKUP_SRC |tar zcf ${bakfile}.tar.gz -T - --null;

install X Windows on CentOS 7

yum groupinstall -y "X Window System"
yum install -y gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

Proxmox 安裝 x window

1.apt-get update && apt-get dist-upgrade

2.擇一安裝視窗管理程式
apt-get install -y xfce4 
apt-get install -y lxde
apt-get install -y gnome
apt-get install -y icewm
apt-get install -y kde
apt-get install -y mate

3.apt-get install -y chromium lightdm

4.systemctl start lightdm

建立 YUM 伺服器

1.安裝相關套件
yum install createrepo

2.建立 放置 rpm 的目錄
mkdir -p /var/www/html/repos

3.建立 repository
createrepo /var/www/html/repos

4.增加減少RPM時,更新 repository
createrepo --update /var/www/html/repos

5.安裝 web server
yum install httpd

6.要使用的裝置增加以下設定
編輯 /etc/yum.repos.d/local.repo 加入
[reposerver]
name=Local Repo
baseurl=http://repo-server/repos
gpgcheck=0

7. 清除 cache
yum clean all