Thursday, January 11, 2007

How to manage Fedora Core 5

這是筆者以前用Wiki語法寫的,如何管理Fedora Core 5,現在重新編排後放在Blog上。
只適合用命令列管理Linux的人。
另有上一篇【How to minimum install Fedora Core 5】


一、簡易防火牆管理

可使用setup指令或是手動編輯防火牆組態檔。

  • 使用iptables指令管理防火牆
# 查看防火牆設定
iptables -L

  • 使用setup指令,設定防火牆對外的port
setup => 選擇Firewall configuration,再選擇Customize去設定
  • 手動編輯防火牆組態檔
# 設定對外的port
nano /etc/sysconfig/iptables

# 使其立即生效
service iptables restart

以下範例為開啟http(80)及https(443)兩個port

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT


二、系統服務管理

決定哪些程式、服務於作業系統啟動時自動執行,類似Windows Services,以下兩種方式擇一吧!
建議用setup統一管理。

  • 使用setup指令
setup => 然後選擇System services,設定開機時欲自動執行的程式
  • 手動編輯組態檔/etc/rc.local -> /etc/rc.d/rc.local,重開機時會自動執行此檔案內的指令
nano /etc/rc.local


三、使用者管理

新增一般使用者帳號。

# 新增使用者並設定密碼
useradd [-g GROUP] username
passwd username

# 查看group,username空白則查自己
groups username


四、SELinux管理

OS預設安裝為啟動SELinux狀況。

  • 檢查SELinux是否啟動
sestatus
  • 關閉整個SELinux
# 將 SELINUX=enforcing 改為 SELINUX=disabled
nano /etc/sysconfig/selinux

# 重開機後生效
shutdown -r now

  • 只關閉SELinux某項安全限制
# 查看各項安全限制
getsebool -a
getsebool -a | grep httpd

# 更改安全限制,加入-P表示永久變更,移除-P表示暫時變更,重開機後生效
# 以下範例為關掉SELinux對httpd的所有安全限制
setsebool -P httpd_disable_trans=1

# 需重新啟動相關程式,使其立即生效
service httpd restart


五、安裝Samba

安裝Samba目的在於讓Linux檔案分享機制加入到Windows網芳中,而不是讓Windows加入Linux中。

  • 使用yum指令線上安裝Samba
yum install samba
5.1 啟動Samba服務
  • 手動啟動Samba服務
service smb start
  • 使用setup指令,設定開機自動執行
setup => 選擇System services,勾選smb選項

5.2 設定防火牆對外的port
  • 使用setup指令,設定防火牆對外的port
setup => 選擇Firewall configuration,再選擇Customize,勾選Samba選項
  • 手動編輯防火牆組態檔,於iptables中加入此行
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
nano /etc/sysconfig/iptables
service iptables restart

5.3 開始使用Samba
  • 設定Samba使用者
# Samba密碼和作業系統密碼不同,須以smbpasswd指令設定
smbpasswd -a username

  • 設定Samba組態檔,預設開放User Home目錄,依需求更改其它設定,個人習慣將smb.conf內的[printers]區塊全部註解掉
nano /etc/samba/smb.conf
service smb restart

  • 開啟SELinux對User Home目錄的安全限制,若先前已關閉SELinux,則無須此動作
getsebool -a | grep samba
setsebool -P samba_enable_home_dirs=1
service smb restart


六、其它常用指令

備忘錄,好用、常用的指令就列上去囉!

# 最基本的,好像沒有列的必要
ls -al
ll (= ls -l)


# 查看執行中工作,太常用了
ps aux


# 從根目錄(/)找東西,超實用
find / | grep keyword


# 轉換身分,(-)號表示轉換身分並切換環境變數,username空白則轉換為root
su - username


# 變更檔案或目錄權限,-R表示目錄遞迴
# MODE為[ugoa]*([-+=]([rwxXst]*[ugo]))+
chmod -R MODE PATH
chmod -R +x PATH
chmod -R 700 PATH


# 變更檔案或目錄擁有者,-R表示目錄遞迴
chown -R user.group PATH


# 查看網卡IP
ifconfig


# 查看磁碟分割資訊
fdisk -l


# 查看磁碟剩餘空間(Disk Free),-h表示human容易閱讀的格式,就是單位為MB或GB
df -h


# 統計目錄及子目錄總大小(Disk Usage),-m表示單位為MB
du -m PATH


# 建立gzip檔
tar zcvf file1.tar.gz PATH

# 解壓縮gzip檔
tar zxvf file1.tar.gz PATH


# 建立bzip2檔
tar jcvf file1.tar.bz2 PATH

# 解壓縮bzip2檔
tar jxvf file1.tar.bz2 PATH


# 刪除目錄及目錄內所有檔案
rm -rf PATH


# 立即重開機,以下皆可
shutdown -r now
reboot


# 立即關機
shutdown -h now


# screen:類似shell manager(container),可執行一次screen指令,管理多個bash shell
# 開始一個screen,執行後預設產生一個bash shell
screen

# screen內指令
Ctrl+a " # 秀出所有shell列表
Ctrl+a c # 新增一個shell(預設名為bash)
Ctrl+a A # 更名一個shell
Ctrl+a d # 跳出screen manager(此時screen內的shell持續執行,即使User logout,依舊執行)

# 進入執行中的screen
screen -r

# 結束screen,將screen內的所有shell都exit,則screen亦會消失

大致上就這些吧!

0 comments:

Post a Comment