2012年7月2日 星期一

[Linux] iptables 防火牆筆記 @ Ubuntu 12.04

很久沒碰機器了,自從大學畢業後,就打定不佔用學術資源,所以就沒擺任何機器來使用(但用別人管的機器XD),隨著經濟能力的好轉,上次被同事勸敗 Linode 512 後,開始進入管自己的機器啦,首先就是要設定防火牆,這東西以前修課有印象,記得那時是 FreeBSD 4 跟 ipfw ,只是差不多都忘光了 XD


首先 Linode 的 Ubuntu 12.04 server 預設有裝 iptables ,所以就用 iptables 了,網路上資源還不少,這次就試著用安全性較高的防火牆規則,那就是預設從外頭來進來連線都是不給過的。痛過之後,就可以慢慢加東西了 XD


$ iptables [-P 策略(INPUT,OUTPUT,FORWARD)][-t 表格(filter,nat,mangle,raw,security)] [-A 新增規則(end)] [-I 新增規則(begin)] [-I 網路卡(in)] [-O 網路卡(out)] [-s 封包IP來源] [-d 封包IP目的地] [-p 通訊協定(tcp,udp,icmp,all)] [-sport 來源阜] [-dport 輸出阜] [-j 動作(Accept,Drop)]


查看目前的設定:


$ sudo iptables -L



$ sudo iptables-save


簡易 Script:


#!/bin/sh


# BIN
BIN_IPTABLES=`which iptables`


# reset rules
$BIN_IPTABLES -F
$BIN_IPTABLES -X
$BIN_IPTABLES -Z


# init policies
$BIN_IPTABLES -P INPUT DROP
$BIN_IPTABLES -P OUTPUT ACCEPT
$BIN_IPTABLES -P FORWARD ACCEPT


# setup connection state
$BIN_IPTABLES -A INPUT -i lo -j ACCEPT
$BIN_IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


# service port
$BIN_IPTABLES -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$BIN_IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT


設定開機啟動:


$ mkdir ~/conf/
$ vim ~/conf/firewall.sh
$ sudo ln -s ~/conf/firewall.sh /etc/init.d/firewall.sh
$ sudo chmod 755 /etc/init.d/firewall.sh
$ sudo update-rc.d -f firewall.sh defaults


如此一來,應該就暫時夠用吧 :p 剩下的慢慢惡搞囉


1 則留言:

  1. 我有按照你的方式去寫一個 iptalbes firewall 檔案, 也看到他順利被執行起來了, 但是還是無法使用 ssh 去遠端連進去這台被弄好的電腦!

    回覆刪除