顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2021年5月18日 星期二

2019年2月12日 星期二

SSH使用的安全要領


提供幾個SSH的安全要領:
1.    變更 sshd 聆聽埠口
2.    禁止 root 登入 & 限制只有某些帳號可以登入
3.    使用金鑰登入
4.    不要每一台伺服器都對外開放 sshd 埠口

變更 sshd 聆聽埠口
作法一: 確實變更 sshd 聆聽埠口
# vi /etc/ssh/sshd_config
Port 22022
# service sshd restart
視需求調整 iptables、fail2ban 規則
作法二: 變更硬體防火牆 Port Forwarding 設定
1.    登入硬體防火牆 Web 管理界面
2.    修改 NAT / Port Forwarding 設定, 將 Public Port 改為 22022, Private Port 仍為 22
3.    變更防火牆規則
說明: 埠號自由選擇, 不衝突即可; 這是避免遭受騷擾的最有效辦法, 立竿見影!

禁止 root 登入 & 限制只有某些帳號可以登入
# vi /etc/ssh/sshd_config
PermitRootLogin no
AllowUsers userA userB userC
# service sshd restart
說明: 避免 root 帳號被破解, 一定要養成 "以一般帳號登入" 的習慣; 只允許需要 ssh 操作的帳號登入會更安全, 但要注意多個帳號以空白隔開, 弄錯的話只能到 console 登入處理了
補充: 允許 ssh 登入的帳號不要太普通, 密碼不能太弱, 都能有效提昇安全性



使用金鑰登入
Client:
$ ssh-keygen
$ ssh-copy-id -i ~/.ssh/id_rsa.pub myaccount@my.linux.host
Server:
# vi /etc/ssh/sshd_config
# 全面禁止密碼登入
PasswordAuthentication no
或
# 只限制某些帳號必須使用金鑰登入
PasswordAuthentication yes
Match User userA,userB
PasswordAuthentication no
# service sshd restart
說明: 使用金鑰登入可避免密碼外洩, 但必須妥善保管私鑰

不要每一台伺服器都對外開放 sshd 埠口
即使變更 sshd 聆聽埠口, 一旦暴露在 Internet 上就有被入侵的風險. 因此, 除非必要, 否則不建議每台伺服器都開放 Internet 登入 sshd. 只開放一台 Server 作為登入跳板、限制連線 IP 來源, 或 VPN 連線後才使用 ssh 服務, 都是保險的作法.


Zabbix 3.2 Install in CentOS 6.x



Zabbix 3.2 Install in CentOS 6.x

##參考所需套件Zabbix所需套件(官方網站)

##https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages

cd /usr/local/src/

mkdir zabbix

cd zabbix




#先安裝 mariaDB yum源

vim /etc/yum.repos.d/MariaDB.repo


[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


#先安裝LAMP環境

yum install -y httpd php php-mysql php-bcmath php-gd php-mbstring MariaDB-*


#下載zabbix套件至/usr/local/src/zabbix

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.1-1.el6.x86_64.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-get-3.2.1-1.el6.x86_64.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-proxy-mysql-3.2.1-1.el6.x86_64.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-sender-3.2.1-1.el6.x86_64.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/deprecated/zabbix-server-mysql-3.2.1-1.el6.x86_64.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/deprecated/zabbix-web-3.2.1-1.el6.noarch.rpm

wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/deprecated/zabbix-web-mysql-3.2.1-1.el6.noarch.rpm

wget http://repo.zabbix.com/non-supported/rhel/6/x86_64/fping-2.4b2-16.el6.x86_64.rpm

wget http://repo.zabbix.com/non-supported/rhel/6/x86_64/iksemel-1.4-2.el6.x86_64.rpm




#安裝zabbix套件

cd /usr/local/src/zabbix

yum -y localinstall *.rpm



#配置MySQL

service mysql start #啟動資料庫
mysql_secure_installation #初始化資料庫root的密碼
mysql -u root -p
mysql> create database zabbix character set utf8 collate utf8_bin;



#建置zabbix資料庫 格式設定UTF8

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'P@ssw0rd'; #授權

mysql>flush privileges;

mysql> quit;

zcat /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql.gz | mysql -uzabbix -pzabbix -b zabbix



#導入zabbix table至Mysql

##PS:先建資料庫再導入table最後再授權 要按照順序


#安裝yum源 (更新PHP5.6)

rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm


#使用yum list命令查看可安裝的套件(Packege)。

yum list --enablerepo=remi --enablerepo=remi-php56 | grep php



#升級PHP5.6

yum -y install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof



#通過WEB頁面設置ZABBIX

cp /usr/share/doc/zabbix-web-3.2.0/httpd22-example.conf /etc/httpd/conf.d/zabbix.conf #把ZABBIX的配置文件配置到HTTPD目錄中




#設定php.ini

vim /etc/php.ini

date.timezone= Asia/Taipei

max_execution_time 300

post_max_size 16M

max_input_time 300




#設定/etc/zabbix/zabbix_server.conf

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix




#重新啟動服務

service zabbix-server restart

service httpd restart

service mysqld restart




#設置重開機啟動服務

chkconfig --level 35 zabbix-server on

chkconfig --level 35 zabbix-agent on

chkconfig --level 35 httpd on

chkconfig --level 35 mysqld on




#進web 設定zabbix

http://yousrvip/zabbix

登入帳密:admin/yourpassword



##修改語系為中文

cd /usr/share/zabbix/include


cp locales.inc.php bak.locales.inc.php ##先備份設定檔

vim locales.inc.php

56 'zh_TW' => ['name' => _('Chinese (zh_TW)'), 'display' => true], ##將第56行zh_TW的 false改為 true

##修改亂碼

擷取Windows 的字形至桌面例如:msjhl.ttc -->修改附檔名為ttf

將其上傳至zabbix主機 /usr/share/zabbix/fonts

先將原有字形備份並修改參數

mv graphfont.ttf graphfont.ttf.bak




vim /usr/share/zabbix/include/defines.inc.php

約45行

define('ZBX_GRAPH_FONT_NAME', 'graphfont');graphfont 修改為 define('ZBX_GRAPH_FONT_NAME', 'msjhbd');




約93行

define('ZBX_FONT_NAME', 'graphfont'); 修改為

define('ZBX_FONT_NAME', 'msjhbd');







## Firewall所需開啟的port

Opened SSH port (22 TCP); #或自定義的port

Opened Zabbix agent (10050 TCP) and Zabbix trapper (10051 TCP) ports;

Opened HTTP (80 TCP) and HTTPS (443 TCP) ports;

Opened SNMP trap port (162 UDP);

Opened outgoing connections to NTP port (53 UDP);

ICMP pakets limited to 5 packets per second; ##可參考其他文件

All other incoming connections are dropped.




##https登入 使用openssl建置憑證

##可參閱設定 http://icodding.blogspot.tw/2015/10/centos-apache-ssl-https.html

#1安裝套件

yum install mod_ssl openssl

#2 產生私鑰

openssl genrsa -out ca.key 2048

#3 產生 CSR

openssl req -new -key ca.key -out ca.csr

#4 產生自我簽署的金鑰

openssl x509 -req -days 1095 -in ca.csr -sha256 -extensions v3_ca -signkey ca.key -out ca.crt

##PS:1095代表憑證有效天數這邊設定三年




#5 複製檔案至正確位置

cp ca.crt /etc/pki/tls/certs

cp ca.key /etc/pki/tls/private/ca.key

cp ca.csr /etc/pki/tls/private/ca.csr




##更新 Apache SSL 的設定檔

vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/pki/tls/certs/ca.crt ##約第105行

SSLCertificateKeyFile /etc/pki/tls/private/ca.key ##約第112行




##儲存及離開檔案,然後重新啟動 Apache

service httpd restart



#https://yourIP 試試

2019年2月10日 星期日

SCP 遠端檔案傳輸指令

指令說明   
1. 將檔案由本機複製到遠端主機。 
 [ jonny@local ~ ] $ scp FileName jonny@remote:/home/jonny/ FileName: 預複製的檔案名稱。 jonny: 遠端使用者。 remote: 遠端伺服器的位址,可以是 IP 也可以是網域名稱(Domain name)。 /home/jonny/: 遠端伺服器內的檔案位置。 

結合find 與 mv指令 將Log壓縮後移至特定目錄

  
  #!/bin/sh 
#宣告資料夾變數 
WEBAPDIR=/webap/appserver/apache-tomcat-8.0.36/ 
SMSLOGDIR=/smslogs/ 
  
#在該資料夾下找5天前,且附檔名為txt或log的檔案,並執行Gzip壓縮 
find $WEBAPDIR/logs -mtime +5 -type f -regex ".*\.\(txt\|log\)$" -exec gzip {} \; 
sleep 3 
  
#在該資料夾下找5天前,且檔名為catalina.out前綴,並執行Gzip壓縮 
find $$WEBAPDIR/logs/ -mtime +5 -type f -name "catalina.out-*" ! -name "*.gz" -exec gzip {} \; 
sleep 3 
  
  
#在該資料夾下找5天前,且附檔名為txt或log的檔案,並執行Gzip壓縮 
find $SMSLOGDIR -mtime +5 -type f -regex ".*\.\(txt\|log\)$" -exec gzip {} \; 
sleep 3 
  
  
#將下列目錄壓縮好的*.gz檔移動至以下路徑 
#1. /webap/appserver/apache-tomcat-8.0.36/logs -> /LOG/tomcat_logs 
#2. /smslogs -> /LOG/smslogs 
  
mv $WEBAPDIR/logs/*.gz  /LOG/tomcat_logs 
mv $SMSLOGDIR/*.gz /LOG/smslogs/ 
  
#crontab排程範例:(指令 crontab -e) 
0 1 * * * /script/CompressLogs.sh > /dev/null 2>&1 
  

[Linux]使用chattr 將檔案設定特殊屬性 讓任何帳號都無法對檔案 刪除或修改

範例一 
將qoo 這個檔案新增 i 這個特殊屬性 [root@server2 tmp]# chattr +i qoo 
用一般 ll 並無法看到特殊屬性 
[root@server2 tmp]# ll qoo -rw-r--r--  1 root root 0 Aug 31 13:50 qoo 
  

2018年6月23日 星期六

Ubuntu Server 16.x 上安裝 LAMP


sudo apt install apache2 mariadb-server php7.0-mysql php7.0-curl php7.0-json php7.0-cgi
php7.0 libapache2-mod-php7.0

2018年6月18日 星期一

XSHELL背景及字形顏色


點擊Xshell面板頂部的如下按鈕。

選擇ANSI Colors on Black,然後點擊右側save as按鈕,命名為zkl(自行命名)。
這裡其實就是複制一份ANSI Colors on Black的顏色方案,沿用ANSI顏色,
並加以修改,以得到自己想要的顏色方案。