All posts by sodakuo

编译linux内核前用make menuconfig设置时 Unable to find the ncurses libraries的解决办法

我们在更新CentOS或者Ubuntu的内核时,执行make menuconfig可能看如这样的错误:

*** Unable to find the ncurses libraries or the
*** required header files.
*** ‘make menuconfig’ requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.

根据错误报告是缺少Ncurses库,需要安装该库(Ncurses 提供字符终端处理库,包括面板和菜单)

详见ncures_百度百科

解决办法如下:
CentOS:
yum install -y ncurses-devel

Ubuntu:
sudo apt-get install ncurses-dev

把 SFTP 關起來 (CHROOTED) CentOS 7.1

以下文章摘自http://blog.miniasp.com/post/2011/08/11/OpenSSH-SFTP-chroot-with-ChrootDirectory.aspx

要達到以上需求,我們必須修改 OpenSSH 的設定檔,並且在建立帳號時設定正確的參數,以及建立一個擁有者為 root 的 Chroot 目錄才行,以下是詳細的設定步驟說明:

1. 新增一個 SFTP 專用的群組

在這裡我們先建立一個 sftponly 群組(你當然也可以建立其他的名稱)

groupadd sftponly

2. 修改 OpenSSH 的設定檔

編輯 “/etc/ssh/sshd_config” 檔案,先找到以下 Subsystem 設定:

Subsystem sftp /usr/lib/openssh/sftp-server internal-sftp
並修改成:

Subsystem sftp internal-sftp
然後在該設定檔最後加上以下設定,其中的 ChrootDirectory 設定的 %u 代表使用者帳號:

Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

檢查 sshd_config 內容是否正確
sshd -T

重新啟動 sshd
service sshd restart

3. 建立新使用者,並加入 sftponly 群組

建立新使用者後,預設會建立 /home/USERNAME 家目錄 (Home Directory):

useradd sftpuser
由於我們在 sshd_config 設定檔中有宣告只要符合 sftponly 群組的使用者都套用 ChrootDirectory 的設定,因此必須將該使用者加入到 sftponly 群組中:

useradd -G sftponly sftpuser
另一個重點是,由於要套用 chroot() 的關係,該使用者登入後的根目錄必須擁有一些必要的目錄,為了節省設定上的麻煩,我們只要將該使用者的家目錄修改為根目錄 ( / ) 即可:

usermod -d / sftpuser

4. 修正使用者帳戶的家目錄權限

也是由於 chroot() 的特殊限制,這個要 chroot() 目錄的擁有者必須為 root,而且該目錄的權限也必須設定為 755 才行:

chown root:root /home/sftpuser
chmod 755 /home/sftpuser
這裡沒有設定正確的話將永遠無法成功登入,像我第一次設定時就遇到了以下錯誤: ( /var/log/auth.log )

sshd[8636]: pam_unix(sshd:session): session opened for user sftpuser by (uid=0)
sshd[8707]: fatal: bad ownership or modes for chroot directory “/home/sftpuser”
sshd[8636]: pam_unix(sshd:session): session closed for user

5. 在使用者目錄下建立允許上傳檔案的目錄,並賦予適當的目錄權限

這一個步驟也是蠻重要的,因為 chroot() 過的目錄擁有者必須為 root 且目錄權限為 755,所以使用者登入後一定無法上傳任何檔案到這個目錄,若要讓使用者能上傳檔案,則必須先幫使用者建立好適當的目錄與設定權限才能夠上傳檔案:

cd /home/sftpuser
mkdir upload
chown sftpuser:sftpuser upload
由於該帳戶只需讓使用者上傳檔案,不允許使用者登入使用 shell,所以也建議將一些家目錄內的隱藏檔刪除,以免使用者透過 WinSCP 或 FileZilla Client 登入時看到一些奇怪的檔案。

經過幾個簡單的設定過程,就能夠給客戶使用安全的檔案傳輸功能,又能兼顧開放 SSH 的安全性!

Linux开启SSH登录email通知

Linux服务器通常需要远程登录访问,尤其是当服务器或VPS还允许root直接登录时,应该为SSH登录成功配置一个自动的email提醒。

sendmail直接发送的话很可能会发送到垃圾邮箱里,需要把地址加入到白名单。

把下面的admin@hackhp.com更改为你要接收登录通知的电子邮件地址。

CentOS

vim ~/.bash_profile
IP="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
HOSTNAME=$(hostname)
NOW=$(date +"%e %b %Y, %a %r")

echo 'Someone from '$IP' logged into '$HOSTNAME' on '$NOW'.' | mail -s 'SSH Login Notification' admin@hackhp.com

1.jpg

2.jpg

Ubuntu/Debian

vim ~/.bashrc
IP="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
HOSTNAME=$(hostname)
NOW=$(date +"%e %b %Y, %a %r")

echo 'Someone from '$IP' logged into '$HOSTNAME' on '$NOW'.' | mail -s 'SSH Login Notification' admin@hackhp.com

如果不想接收到邮箱,只想重定向到一个文件的话。


IP="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
HOSTNAME=$(hostname)
NOW=$(date +"%e %b %Y, %a %r")
echo 'Someone from '$IP' logged into '$HOSTNAME' on '$NOW'.' >>/root/login.txt

denyhosts 設定檔簡易說明

Step One—Install Deny Hosts

We need to use a repository to install Deny Hosts on CentOS.

sudo rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
sudo yum install denyhosts

Once the program has finished downloading to the VPS, denyhosts is installed and configured.

 

 

 

yum install denyhosts

http://blogger.liaohaha.tw/2012/02/denyhosts.html