2013年5月23日 星期四

MySQL Unix timestamp 相關函式

FROM_UNIXTIME()   Format UNIX timestamp as a date

UNIX_TIMESTAMP() Return a UNIX timestamp

MySQL IP LONG 轉換函式

INET_ATON() Return the numeric value of an IP address


INET_NTOA() Return the IP address from a numeric value

2013年5月20日 星期一

CentOS 安裝 SOP

韌體更新

BIOS 的安全設置

GRUB / LILO 的密碼

更新軟體套件
yum update
TCP_WRAPPERS 阻止所有的主機連線
編輯 /etc/hosts.deny 加入
ALL: ALL@ALL, PARANOID

停用、反安裝不用的服務
acpid,apmd,atd,autofs,avahi-daemon,bluetooth,cpuspeed,cups,firstboot,gpm,haldaemon,hidd,hplip,ip6tables,isdn,lm_sensors,messagebus,nfslock,pcscd,portmap,rpcgssd,rpcidmapd,yum-updatesd,

修改系統 RunLevel
id:3:initdefault:

禁止 Control-Alt-Delete 鍵盤 重新啟動
編輯 /etc/inittab"
將 ca::ctrlaltdel:/sbin/shutdown -t3 -r now
改為:
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
執行:
/sbin/init q

限制 "/etc/rc.d/init.d" 存取權限
chmod -R 700 /etc/rc.d/init.d/*

隱藏系統資訊
編輯 /etc/rc.d/rc.local" 檔,最後一行加入
cat /dev/null > /etc/issue > /etc/issue.net
執行
mv /etc/issue /etc/issue.bak
mv /etc/issue.net /etc/issue.net.bak

修改DNS相關設定
編輯 /etc/host.conf,加入
order bind,hosts
multi on
nospoof on

設定本地時間及每天自動校對時間
yum -y install ntp
vi /etc/cron.daily/ntpdate.sh
#!/bin/sh
ntpdate -s watch.stdtime.gov.tw
chmod 755 /etc/cron.daily/ntpdate.sh

更新 Locate DB
updatedb
修改密碼相關設定
1.確認沒有空密碼
grep '^[^:]*::' /etc/passwd
2.限制密碼最短長度為 6
編輯 /etc/login.defs
修改 PASS_MIN_LEN 5 為 PASS_MIN_LEN 6

設定自動登出系統
編輯 /etc/profile ,添加這行
export TMOUT=300

清除歷史 Shell logging Bash
編輯 /etc/skel/.bash_logout ,添加這行
rm -f $HOME/.bash_history

封鎖 root 密碼
修改 /etc/shadow 的第二欄位將內容改成 *

設定 sudo
設定限制群組 wheel可以 sudo 不用再鍵入密碼就可變成 root 並開啟 sudo log 功能
yum install sudo
visudo
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL //預設值
%wheel ALL=(ALL) NOPASSWD: ALL //修改後
#Sudo log //並加入如下二行
Host_Alias SERVER = 127.0.0.1 //指定本機 IP
Defaults@SERVER log_year, logfile=/var/log/sudo.log //指定 log 格式及路徑設定 sudo log 二種格式 (log_host、log_year)寫入 /var/log/sudo.log 內容的差異

新增管理帳號及加入 wheel 群組

=============================================================================
取消普通用戶的控制臺使用許可權
rm -f /etc/security/console.apps/要消除的程式名

修改 /etc/services 權限,防止未經許可的刪除或添加服務
chattr +i /etc/services

不允許從不同的控制臺進行 root 登入
修改 /etc/securetty

化解外來 SYN 攻擊
編輯  /etc/rc.d/rc.local 加入以下設定,
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#降低 syn重試次數

echo 1 > /proc/sys/net/ipv4/tcp_syn_retries
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries

#加大syn_backlog (消耗記憶體)
echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_backlog

2013年5月17日 星期五

使用 openssl 利用 gmail smtp 寄件範例

openssl s_client -connect smtp.gmail.com:587 -starttls smtp -crlf

ehlo
250-mx.google.com at your service, [xx.xx.xx.xx]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2
250 ENHANCEDSTATUSCODES
auth login
334 VXNlcm5hbWU6
base64 email
334 UGFzc3dvcmQ6
base64 password
235 2.7.0 Accepted
mail from:
250 2.1.0 OK fr1sm9516362pbb.26 - gsmtp
rcpt to:
250 2.1.5 OK fr1sm9516362pbb.26 - gsmtp
data
354  Go ahead fr1sm9516362pbb.26 - gsmtp
test

.
250 2.0.0 OK 1368765135 fr1sm9516362pbb.26 - gsmtp

quit



其它:
產生 auth plain
printf "\0account@gmail.com\0password"  | base64

產生 auth login
echo account@gmail.com |base64
echo password |base64

參考資料
http://www.fehcom.de/qmail/smtpauth.html