2013年7月11日 星期四

疑似Fortigate 300a leak漏洞

你有聽過明明用防火牆阻擋了某個IP,但是該IP卻還是可以穿過防火牆嗎?
如果任何人聽到有此狀況發生,當下的第一個反應應該是說:IP打錯了
但再三檢查後,卻也不是IP打錯了,
最妙的是,也不是所有人的穿的過,而是少部份人可以穿過呢?
所以往往會不小心被忽略了~~~~~

最近發現了一個Fortigate 300A的漏洞, 我想可能也會出現在同產品中,所以提供給大家參考,例如在以下環境中,

                      Firewall----------IDP----Router------Internet
                           | DMZ
                           |
                           |
                    Webserver (xxx.yyy.zzz)

一般來說,在IPv4環境下,會採用NAT中的Port forwarding方式讓外界可以存取我們網站的內容,所以會有一條規則開通
Allow All to Webserver(xxx.yyy.zzz:80 -> 192.168.1:80)

另外一方面,為了防範一些網路上的攻擊,防火牆上也會加上規則來阻擋,例如:
Deny 8.8.8.8 to Any

而基於規則是有優先採用順序的,所以實際上應是

  1. Deny 8.8.8.8 to Any
  2. ..................
  3. Deny .......  to Any
  4. Allow All to Webserver(xxx.yyy.zzz:80 -> 192.168.1:80)
所以正常來說,應該是可以把所有已知的惡意連線都阻擋掉。
但是,就偏偏遇到仍然可以正常存取網站的惡意IP。


檢查開始.....
從檢查是哪條規則放人進來開始,
不看還好,看了才納悶,竟然是透過第4條規則進來,
莫名奇妙,防火牆竟眼睜睜地看著第1條規則不用,反而用上了第4條規則,這叫我百思不得其解呀?????
接著以為,是防火牆被攻破了嗎? 還是以前設定的阻擋規則失效了??
答案是..............NO..........一切正常
原先有被擋掉的還是被擋掉,原先可以進來的也是可以進來,偏偏就只有這個IP暢行無阻
更扯的是,接著再直接在Client端設定阻擋該IP,卻還是持續看到惡意連線產生,只能說是見到鬼啦~~~~~~
真的是差點選擇直接先斷線好了@@


在試過一些不同的擋法後,後來才發現,問題就出在原本的規則上
各位看倌,有沒有出來這幾條規則的微妙不同處呢?






問題就在
第1條是拒絕Any的連線,第4條是同意NAT port的連線(xxx.yyy.zzz:80 -> 192.168.1:80),這兩規則之間產生了奇妙的漏洞。

拒絕是拒絕8.8.8.8連線到xxx.yyy.zzz,但其實是同意8.8.8.8做NAT Port forwarding連線,防火牆在特定情況下,會判斷外界想連的不是xxx.yyy.zzz,所以就跳過第1條規則,反而使用到第4條規則。

因此解決方案即是加上新規則,
Deny 8.8.8.8  to (xxx.yyy.zzz:80 -> 192.168.1:80)

因為會通過此漏洞的人並不多,所以是會造成門戶大開,卻自以為狀況良好。

至於是如何通過此漏洞的原因還不明確得知(因為沒有繼續研究下去XD),只知道有可能是透過Proxy連線或是對方也是採用NAT連線時,就可避開此漏洞。

為了避免大家門戶大開而渾然不知,特在此分享。

2013年6月21日 星期五

OPENVPN ubuntu 12.04 安裝

參考




  1. sudo apt-get install openvpn
  2. sudo mkdir /etc/openvpn/easy-rsa/
    sudo cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
    sudo chown -R $USER /etc/openvpn/easy-rsa/
  3. sudo vi /etc/openvpn/easy-rsa/vars
  4. cd /etc/openvpn/easy-rsa/
  5. sudo chown -R root:root .
  6. sudo chmod g+w .
  7. source vars
  8. ./clean-all
  9. sudo vi /etc/openvpn/easy-rsa/vars
    1. export KEY_CONFIG=$EASY_RSA/openssl-1.0.0.cnf
  10. ./build-ca
  11. Note that in the above sequence, most queried parameters were defaulted to the values set in the vars or vars.bat files. The only parameter which must be explicitly entered is the Common Name. In the example above, I used "OpenVPN-CA".
  12. ./build-key-server server
  13. ./build-dh
  14. cd keys
  15. sudo cp server.crt server.key ca.crt dh2048.pem ../../
  16. sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
  17. sudo gzip -d /etc/openvpn/server.conf.gz
  18. vi  /etc/openvpn/server.conf
  19. sudo /etc/init.d/openvpn restart
  20. Generate Client keys
    1. ./build-key client1
    2. ./build-key client2
    3. ./build-key client3
  21. Download keys
    1. sudo apt-get install apache2
    2. cd /etc/openvpn/easy-rsa/
    3. tar -zpcv -f test.tar.gz keys
    4. mv test.tar.gz /var/www/
    5. Download keys
    6. rm /var/www/test.tar.gz
  22. Firewall set
    1. sysctl -w net.ipv4.conf.all.forwarding=1
    2. sysctl -w net.ipv4.ip_forward=1
    3. iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    4. iptables-save
  23. Change to UFW(這裡有點問題, 重開機後不行用, 要用上面的iptables才可出去)
    1. sudo vim /etc/default/ufw
    2. DEFAULT_FORWARD_POLICY="ACCEPT"
    3. sudo vim /etc/ufw/sysctl.conf
    4. # Uncomment this to allow this host to route packets between interfaces
      1. net/ipv4/ip_forward=1
      2. net/ipv6/conf/default/forwarding=1
      3. net/ipv6/conf/all/forwarding=1
    5. ufw disable
    6. ufw enable

IPV6設定參考
http://tomsalmon.eu/2013/04/openvpn-ipv6-with-tun-device/

2013年6月17日 星期一

ubuntu中的SAMBA設定


  1. sudo apt-get install samba
  2. Create a new section at the bottom of the file, or uncomment one of the examples, for the directory to be shared:
    [share]
        comment = Ubuntu File Server Share
        path = /srv/samba/share
        browsable = yes
        guest ok = yes
        read only = no
        create mask = 0755
    
  3. sudo mkdir -p /srv/samba/share
  4. sudo chown nobody.nogroup /srv/samba/share/
    /etc/init.d/smb restart
  5. sudo restart smbd

設定ubuntu自動安全性更新



參考http://askubuntu.com/questions/9/how-do-i-enable-automatic-updates

sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

設定Ubuntu使用PUTTY連線時可以看到中文

參考


1. ~$ sudo vim /var/lib/locales/supported.d/local
加入
zh_TW.UTF-8 UTF-8  
2.更新語系檔案
~$ sudo locale-gen
 


3. ~$ sudo vim /etc/default/locale
請確定檔案內容如下(特別是紅字的地方):
LANG="zh_TW.UTF-8"
LANGUAGE="zh_TW:zh"
LC_NUMERIC="zh_TW"
LC_TIME="zh_TW.UTF-8"
LC_MONETARY="zh_TW"
LC_PAPER="zh_TW"
LC_NAME="zh_TW"
LC_ADDRESS="zh_TW"
LC_TELEPHONE="zh_TW"
LC_MEASUREMENT="zh_TW"
LC_IDENTIFICATION="zh_TW"
之後使用pietty登入後,中文輸入與顯示就正常了

Putty要開UTF_8