2011年5月19日 星期四

限制一般 user 變成 root

限制一般 user 變成 root: "限制一般 user 變成 root

說明文件

man pam
pinfo pam

在 Linux 下,系統預設大家都可以變成超級使用者-root,玩過 Unix-Like 的人,也都知道 root 的權限之大。

有一天,小弟在一個偶然的機會裡,能有機會管理 FreeBSD 系統,結果發現不是每個人都是可以變成 root 的,也就是說,不是每個人都可以使用 su 轉換成別人的帳號,如果要可以使用 su 的功能,就必需為 wheel 的群組。

後來想一想,雖然 FreeBSD 有那麼一點點的不方便,但相對的,也是增加了一些安全的機制。而 Linux 現在也可以使用這種機制,限制非 wheel 的 group 都無法使用 wheel,然而,這就要使用 pam 的機制來幫我們實現了。現在我們就來看看如何讓這種機制在 Linux 中也可以使用!

讓系統中的人員中,只有 steven 才能使用 su。

編輯 /etc/pam.d/su,並把 pam_wheel.so 引用進來。
[root@rhel pam.d]# vi /etc/pam.d/su
_____________________________________________________
auth required /lib/security/$ISA/pam_wheel.so use_uid
:____________________________________________________


不用重開,什麼都不用,立既生效!不信的話,使用 steven 帳號看看是否還有能力變成 root 或其它帳號!
[steven@rhel steven]$ su - test
Password:
su: incorrect password
[steven@rhel steven]$ su -
Password:
su: incorrect password
[steven@rhel steven]$

看到了吧,就算變成一般的 test 或是 root 都無法讓你登入。

那麼要如何讓 steven 可以使用 su 呢?其實只要把 steven 加入 wheel 群組就可以了!
[root@rhel pam.d]# usermod -G wheel steven

Try again!看看 steven 是不可以使用 su 來切換使用者身份!
[steven@rhel steven]$ su -
Password:
[root@rhel root]#

看,這不就過了嗎?

雖然這樣是有點麻煩,但是確可以讓系統多了一些安全機制,其實安全性與方便是成反比的,越方便就越不安全,然而在不同的主機上,端看管理者如何去應用了。

- 已使用 Google 工具列寄出"
限制 root 不能使用ssh :Linux主機設定SSH限制
說明:
1.限制 root 不可使用ssh :
因為開放root就等於開放大門給有心人來試 root的密碼,如果猜對的話!
你的主機就變成對方的工具了!!

2.限制使用SU指令:
限制登入的使用者使用SU這指令,可以防止使用者用SU 變成root

3.設定某帳號才能使用ssh:
可以做控管,開放了哪些帳號可以用ssh登入主機

方法:
1.
編輯sshd_config檔
vi/etc/ssh/sshd_config
設定限制root不能使用ssh
將PermitRootLogin “YES” 改成 PermitRootLogin “NO”
存檔離開

2.
編輯su
vi /etc/pam.d/su
#auth required /lib/security/$ISA/pam_whelle.so use_uid
將前面的”#”刪除 存檔離開
設定只有wheel群組的成員才能使用su命令
usermod -G 10 帳號

3.
編輯sshd_config
vi/etc/ssh/sshd_config
在最後加入 AllowUsers 帳號

將上面設定好之後,重新讀取sshd
service sshd restart
----------------------------------------------------
Linux主機設定-SSH限制只能用protocol 2連線的設定
限制只能用SSH protocol 2連線的方式
1.登入主機後,
pico -w /etc/ssh/sshd_config

2.找到有井號的Protocol 2, 1等文字,然後移除井號及,1等文字之後,變成下面這樣
Protocol 2

3.儲存修正資料然後重新啟動SSH
/etc/rc.d/init.d/sshd restart

從此以後你就必須用SSH Protocol 2才能連上主機
---------------------------------------------
Linux主機設定-Apache修改與重新起動

1.登入主機後, 修改http.conf參數檔
vi /etc/httpd/conf/http.conf

2.重新起動 Apache 程式
/etc/rc.d/init.d/httpd restart

ref: http://apache.org
--------------------------------------------------
Linux主機設定-DNS與Bind修改與重新起動

1.登入主機後, 修改named.conf參數檔
vi /etc/named.conf

2.重新起動 Bind 程式
/etc/rc.d/init.d/named restart

ref: http://www.isc.org
---------------------------------
[文件]Linux主機設定-MySQL參數修改與重新起動

1.登入主機後, 修改my.cnf參數檔
vi /etc/my.cnf

2.重新起動 MySQL 程式
/etc/rc.d/init.d/mysql restart

ref: http://mysql.org

[文件]Linux主機設定-Mail_Exim參數修改與重新起動

1.登入主機後, 修改exim.conf參數檔
vi /etc/exim.conf

2.重新起動 Mail 程式
/etc/rc.d/init.d/exim restart

ref: http://exim.org
--------------------------------------------
限制root直接SSH登入
1.確認WHM裡已將另一位使用者名稱加入wheel裡

2.用pico修改sshd_config
pico -w /etc/ssh/sshd_config

3.尋找下列字串
#PermitRootLogin yes

4.移除井號並將yes改為no,修正後如下
PermitRootLogin no

5.重新啟動ssh

6.SSH登入時請使用已經加入wheel的帳號及密碼,再以su -變成管理者。

2011年4月6日 星期三

centos找不到IFCONFIG命令

[root@localhost dai]# ifconfig
bash: ipconfig: command not found
提示命令不存在

  使用 # /sbin/ifconfig 即可

  原因: 系统默认的环境变量设置不对

  在 普通用户 和root用户下分别执行echo $PATH,PATH里少了四个地址:/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbinbash: ipconfig: command not found

  而,ifconfig恰恰就在/sbin里面。

  或者

  下cat /etc/profile, 可以发现没有关于/sbin的环境变量。

[dai@localhost ~]$ su
口令:

[root@localhost dai]#
gedit /etc/profile

在文件末加入以下语句:

  PATH=$PATH:/sbin #在PATH变量后追加/sbin目录

  export PATH=$PATH:/sbin#设置变量为全局的

  保存并退出。

  修改/home/用户/.bash_profile,在PATH后面添加/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin这几个路径。

  改完之后,执行命令:. .bash_profile,也可以注销下或者重启才能使刚刚修改的内容生效。

  再来sudo ifconfig , 就OK了。ifconfig shutdown 多能用了。