啟用防火牆 UFW
必要性:伺服器毌待贅言。若主機是個人使用,管理者也只有自己,有哪些服務使用哪些網路資源/協定/通道等自己也算清楚,似乎沒說服自己一定要用防火牆徒增麻煩。
然而沒有防火牆我們對內外的連線是𣈱通的,若發生/會發生,某些服務/程式/新裝套件啟動後取得使用了某些埠,那麼這樣的情況便是安全的隱憂。相對地有防火牆就會大喇喇地擋在那些情況面前,而需我們管理者明白地授權放行/打開它們欲使用的通道。或是已知的威脅便予以阻擋。所以防火牆的功用就是阻擋任何不安全或未明(未被我們明白)的連線。而這又有了衍申的問題,我們的明白(rules)必須是沒有漏洞或是符合我們預期的。
預設下 Ubuntu 都會安裝,只是不啟用而已。
查看狀態:
sudo ufw status verbose
若沒有此指令,就安裝:
sudo apt install ufw
啟用 ufw(在配置完成後才打開;配置前先關掉,的習慣):
sudo ufw enable
停用 ufw:
sudo ufw disable
假設 ufw 已被啟用且已有一連串的 rules,那麼欲重置到預設狀態就如下下法,並且,在配置防火牆前一定要先將它停用,否則不小心把自己關在門外就麻煩了:
sudo ufw reset (會自動停用)
預設拒絕(deny)所有連入:
sudo ufw default deny incoming
預設允許(allow)所有連出:
sudo ufw default allow outgoing
一般用 SSH 與遠端主機連線,所以我們一開始便先設置規則給 ssh(預設是使用埠 22),若隨即啟用 ufw 也不怕了。若沒指定 tcp,就是指 tcp/udp 皆引用。
sudo ufw allow ssh 或 sudo ufw allow ssh/tcp
或
sudo ufw allow 22 或 sudo ufw allow 22/tcp
允許一個區間範圍的埠,例如 port 5900 到 port 5910 這之間(/tcp 就要明白指定)
sudo ufw allow 5900:5910/tcp
使用 allow from 或 deny from 指定 ip address 或 ip 範圍予某 port number
sudo ufw allow from ip_addr_or_range to any port port_number
例如 sudo ufw allow from 192.168.1.0/24 to any port 5900
可用 allow in on 指定網路卡
例如網卡識別名 enp5s0:sudo ufw allow in on enp5s0 to any port 22
刪除規則表中的某項。先列出再指定哪一項:
sudo ufw status numbered
例如第二項,則 sudo ufw delete 2
上述未指明參數都是指連入。若要例如拒絕連外,則可例如
sudo ufw deny out 80 那麼我們的網頁就開不了了
最後,關於內部連內部預設就是開啟的
因此回顧筆者以前所使用到的 port 便一一開啟:
- sudo ufw disable
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
- sudo ufw allow ftp/tcp
- sudo ufw allow ssh/tcp
- sudo ufw allow http/tcp
- sudo ufw allow https/tcp
- sudo ufw allow 5902 (my ssh)
- sudo ufw allow 993 (email client)
- 其他視個人需要加入
- sudo ufw enable
發佈留言