Banana Pi 測試 – Bananian 篇 iptables 防火牆

為了系統的安全,所以加上了 iptables 防火牆規則,主要是參考 ols3 的防火牆規則。

# vim /etc/firewall.server[@more@]#! /bin/bash
#
# $IPTABLES 範本
# written by OLS3 (ols3@lxer.idv.tw)
#
# 請自行參考修改,把註解拿掉即可啟用該項設定
#

###—————————————————–###
# 設定 $IPTABLES 的路徑
###—————————————————–###
echo “Set path of iptables”
echo

IPTABLES=”/sbin/iptables”

#載入相關模組
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp

###—————————————————–###
# 外部網段 IP 及介面
###—————————————————–###
echo “Set external ……”
echo

#FW_IP=”192.168.1.1″
#FW_IP_RANGE=”192.168.1.0/24″
FW_IFACE=”ppp0″

# loopback interface
LO_IFACE=”lo”
LO_IP=”127.0.0.1″

## 設定核心的安全相關參數
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 3 > /proc/sys/net/ipv4/tcp_retries1
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1400 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 0 > /proc/sys/net/ipv4/tcp_timestamps

###—————————————————–###
# 清除先前的設定
###—————————————————–###
echo “Flush fiter table ……”
echo

# Flush filter
$IPTABLES -F
$IPTABLES -X

echo “Flush mangle table ……”
echo
# Flush mangle
$IPTABLES -F -t mangle
$IPTABLES -t mangle -X

echo “Flush nat table ……”
echo
# Flush nat
$IPTABLES -F -t nat
$IPTABLES -t nat -X

###—————————————————–###
# 設定 filter table 的預設政策
###—————————————————–###
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# 允許流經 lookback 介面的封包進出
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# 阻可疑封包
$IPTABLES -A INPUT -i $FW_IFACE -m state –state INVALID -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp ! –syn -m state –state NEW -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ALL NONE -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags FIN,RST FIN,RST -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ACK,FIN FIN -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ACK,URG URG -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ACK,PSH PSH -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –tcp-flags ALL FIN -j DROP

# 允許已建立連線和回應的封包通過
$IPTABLES -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $FW_IFACE -m state –state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $FW_IFACE -m state –state ESTABLISHED,RELATED -j ACCEPT

# 開放本機的 ssh port 22 服務
$IPTABLES -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –dport 22 -j ACCEPT

# 開放本機的 http port 80 服務
$IPTABLES -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –dport 80 -j ACCEPT

# 開放本機的 https port 443 服務
$IPTABLES -A INPUT -i eth0 -p tcp –dport 443 -j ACCEPT
$IPTABLES -A INPUT -i $FW_IFACE -p tcp –dport 443 -j ACCEPT

$IPTABLES -A INPUT -p icmp -s 0/0 –icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT -p icmp -s 0/0 –icmp-type 0 -j ACCEPT

更改檔案權限
# chmod 700 /etc/firewall.server

設定開機時執行
/etc/rc.local 最後一行 exit 0 之前加入 sh /etc/firewall.server
# sed -i ‘/^exit 0/ish /etc/firewall.server’ /etc/rc.local

Banana Pi 測試 – Bananian 篇 使用 No-IP

首先到 No-IP 網站申請帳號
No-IP 官方網站:https://www.noip.com/
[@more@]安裝編譯程式時所須要的套件
# apt-get install build-essential

下載 No-IP Linux Client
下載網址:https://www.noip.com/download?page=linux
# wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz

解壓縮
# tar xvzf noip-duc-linux.tar.gz

切換目錄
# cd noip-2.1.9-1

進行安裝
# make install

複製設定檔到 /etc/init.d 目錄
# cp debian.noip2.sh /etc/init.d/noip2

改變檔案權限
# chmod 755 /etc/init.d/noip2

設定開機時執行
# update-rc.d noip2 defaults

手動執行
 # /etc/init.d/noip2 start
Starting dynamic address update: noip2.

檢查 No-IP 狀態
# /usr/local/bin/noip2 -S

Banana Pi 測試 – Bananian 篇 使用 pppoe 上網

安裝 pppoe 套件
# apt-get install pppoe

進行設定
# pppoeconf
[@more@]如果之前有做過 pppoe 設定,要先備份 /etc/ppp/peers/dsl-provider

要使用 noauth/defaultroute 選項而清除 nodetach 選項,請選擇 Yes

輸入帳號,中華電信 xxxxxxxx@hinet.net

輸入密碼

是否要使用 ISP 提供的 DNS 設定

是否開機時要立即啟用 PPPD 服務

可以使用 pon dsl-provider 來建立連線
可以使用 poff 來斷線

設定完成

使用 ifconfig ppp0 來查看 IP

再入手了一片 Lamobo M1

再入手了一片 Lamobo M1,會再買的原因是,原本的 Banana Pi 已經上線,用來當成 LAMP / FTP / OpenVPN Server 等等,還會陸續增加之中,需要有其它的板子試試其它的玩意,但購買的不是 Banana Pi,而是 Lamobo M1。
其實 Banana Pi 和 Lamobo M1 幾乎相同,原本製作給 Banana Pi 的 RaspBian 作業系統,在 Lamobo M1 都可以直接使用,有興趣的人,可以直接參考 其他電腦綜合討論 – Lamobo M1開箱初體驗 – 電腦討論區 – Mobile01 網站上的介紹。

組裝起來

和 Banana Pi 的比較

Lamobo M1 的外殼是三層式的,第二層是放置 Lamobo M1,第三層可以放置 2.5″inch 硬碟,拿來外接硬碟使用,當做 NAS。
不過第二層固定 Lamobo M1 的螺絲孔竟然不能完全對到,只能鎖住一邊來固定。

Banana Pi 測試 – Bananian 篇 安裝 Apache 2 / MySQL / PHP Server

安裝 Apache 2 Web Server
# apt-get install apache2

安裝  MySQL Server
# apt-get install mysql-server mysql-client[@more@]
MySQL Server 安裝後設定
# /usr/bin/mysql_secure_installation

安裝 PHP
# apt-get install php5 php5-mysql libapache2-mod-php5
# apt-get install php5-adodb php5-memcache php5-cgi php5-cli php5-curl php5-gd php5-mcrypt php5-odbc php5-xmlrpc

測試 Apache Web Server

測試 PHP
# vim /var/www/index.php
<?php
phpinfo();
?>

強制啟用「來源不是 Chrome 線上應用程式商店」的附加元件

本來就很少使用 Google Chrome,因為它和 Internet Explorer 一樣,都是因為特殊目的才會使用。Internet Explorer 是公文系統,Google Chrome 是校務系統。
偶然在使用 Google Chrome 發現原本使用的 Fastesttube!: YouTube downloader tool 不能使用了!
[@more@]Google Chrome 可能會了安全的因素,所以停用了非 Chrome 線上應用程式商店的擴充功能

在網路上搜尋了一下,找到這一篇解決的方式:
教學 / 強制啟用「來源不是 Chrome 線上應用程式商店」的附加元件 @ Mival Fantasia :: 痞客邦 PIXNET ::

連線到 http://goo.gl/p9SKXP
找到 windows / adm / zh-TW / chrome.adm,並下載

按黑色向下的三角形,選擇 Download

選擇要儲存的位置

工具(L) / 擴充功能(E)

開啟 開發人員模式

請複製 紅色框框 框起來的 ID  phahnhbgfdhgobenebnjbgmacgpbfaag

在命令提示字元下執行 gpedit.msc

系統管理範本 上按滑鼠右鍵,選擇 新增/移除範本(A)

選擇 新增(A)

選擇剛下載下來的 chrome.adm

選擇 關閉(L)

選擇 系統管理範本
選擇 傳統系統管理範本(ADM)
選擇 擴充功能
選擇 設定擴充功能安裝許可清單

用滑鼠快速按二下,或按滑鼠右鍵,選擇 編輯(E)

選擇 已啟用(E)

選擇 顯示

將複製的 ID 貼上,並選擇 確定

選擇 確定

關閉視窗

原本不能勾選 啟用的,現在可以勾選了!

已經成功啟用了!

CentOS 5.x / 6.x / 7 bash 漏洞檢測及修正

參考網站:bash 漏洞檢測與修補 « Jamyy’s Weblog

bash 的漏洞造成的危害,請參考:
MyFirefox | Unix亮紅燈!大漏洞「Shellshock」可惡意挾持電腦系統

CentOS 5.x
# cat /etc/redhat-release
CentOS release 5.10 (Final)

目前安裝 bash 套件
# rpm -qa | grep bash
bash-3.2-32.el5_9.1

bash 版本
# bash –version
GNU bash, version 3.2.25(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.

檢查是否有漏洞()
# env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
vulnerable
this is a test

更新之後的 bash 套件
# rpm -qa | grep bash
bash-3.2-33.el5.1

bash-3.2-33.el5_10.4

bash 版本
# bash –version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.

檢查是否有漏洞()
# env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test[@more@]CentOS 6.x
# cat /etc/redhat-release
CentOS release 6.5 (Final)

bash 版本
# bash –version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

檢查是否有漏洞()
# env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
bash: warning: x: ignoring function definition attempt
bash: 錯誤,輸入的函數定義為 `x’
this is a test

更新之後的 bash 套件
# rpm -qa | grep bash
bash-4.1.2-15.el6_5.2.i686
bash-4.1.2-15.el6_5.2.x86_64

CentOS 7.x
# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)

目前安裝 bash 套件
# rpm -qa | grep bash
bash-4.2.45-5.el7.x86_64
bash-completion-2.1-6.el7.noarch

目前 bash 的版本
# bash –version
GNU bash, version 4.2.45(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.

檢查是否有漏洞()
# env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
vulnerable
this is a test

更新之後的 bash 套件
# rpm -qa | grep bash
bash-4.2.45-5.el7_0.4.x86_64
bash-completion-2.1-6.el7.noarch

更新之後的 bash 版本
# bash –version
GNU bash, version 4.2.45(1)-release (x86_64-redhat-linux-gnu)

出現這樣,不知道有沒有修補完成(?),但應該是有修正完成
# env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
this is a test

Banana Pi 測試 – Bananian 篇 解決無法使用 ssh 連線的問題

設定完 Bananian 後,想要以 Pietty 0.3.27 連線時出現無線連線的訊息

使用錯誤訊息在 Google 搜尋了一下,好像都是 SmartOS 相關,但我並不是使用 SmartOS。[@more@]後來以為是本機上沒有啟用 ssh 服務,或是防火牆上擋掉了,但都不是

後來改用 putty,發現竟然可以連線

使用 Pietty 0.3.27 / 0.4.00(beta 14) 都無法連線

Pietty 0.4.00(beta 14) 出現的錯誤訊息


但先使用 pietty 登入其它的 Server 後,再登入即可

使用 Xshell 4 正常