linux远程访问权限控制(hosts.allow和hosts.deny)

http://www.gipsky.com/modules/newbb/viewtopic.php?forum=3&post_id=311

Linux开源频道资讯:

/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。

比如SSH服务,我们通常只对管理员开放,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。

使用:

修改/etc/hosts.allow文件

#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
sshd:210.13.218.*:allow
sshd:222.77.15.*:allow
以上写法表示允许210和222两个ip段连接sshd服务(这必然需要hosts.deny这个文件配合使用),当然:allow完全可以省略的。

当然如果管理员集中在一个IP那么这样写是比较省事的

all:218.24.129.110//他表示接受110这个ip的所有请求!

/etc/hosts.deny文件,此文件是拒绝服务列表,文件内容如下:

#
# hosts.deny    This file describes the names of the hosts which are
#               *not* allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!
sshd:all:deny


注意看:sshd:all:deny表示拒绝了所有sshd远程连接。:deny可以省略。

所以:当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准。

注意修改完后:

service xinetd restart 

才能让刚才的更改生效。

总结:通过这种方法可以控制部分非授权访问,但不是一劳永逸的方法!我们在看服务日志的时候或许会看到很多扫描记录,不是还是直接针对root用户的,这时控制你的访问列表就非常有作用了!
 

 

 

  • 前言
    那如果你已經將一些可能造成侵入的服務關掉之後,下一步要作什麼呢?當然就是限制連線進來電腦囉!通常,若你有開啟 http 或 mail 的情況下,在 apache 與 sendmail 的設定檔中限制連線的電腦,可能會造成一些網域無法登入,當然,除非你只對內部開放,否則的話,通常是不在該服務下關閉某一網域的電腦的!但是 telnet 這個服務就不是這樣囉!基本上,我們並不希望有任何人以 telnet 登入我們的主機,(除非你有架設 BBS)因為如果你開放 telnet 的話,那等於是請所有的人進入你的主機中,竊取你的資料,甚至以你的主機為中繼站去攻擊別人!因此,最好限制每一台主機可以連線的網域才好。
  • 參考資料:
    以下的部分內容,我是參考 study-area 『我本善良』兄寫的文章,另外,『臥龍小三』的文章也很值得參考!
  • 限制連線的範圍: 其實,你服務的項目除了 Proxy, WWW 與 e-mail 等之外,若要使用 Telnet 或其他的連線軟體連上你的主機的話,應該是要經過你的控管的,所以,限制適當的連線網路是有其必要性的。通常,我都只設定我上網工作(Windows 平台)的那部機器,及可能會使用到的外部網路的機器,讓他可以登入這部主機,其他的就將之deny(取消)掉!基本上,要設定連線範圍的程式與檔案有幾個:
    • tcp_wrappers 套件;
    • /etc/hosts.allow;
    • /etc/hosts.deny。
    簡單的說, hosts.allow 與 hosts.deny 這兩個檔案就是在限制 /etc/inetd.conf 這個檔案中,所允許的服務內容啦!
    1. 察看是否具有 tcp_wrappers 套件:
      要使連線電腦的設定啟動,以使用 /etc/hosts.allow 與 /etc/hosts.deny 檔案的話,需要這一套軟體『tcp_wrappers』,要察看你的 Linux 主機內是否有這一套軟體的話,請使用:
       
      1. rpm -q tcp_wrappers 或者 rpm -qa | grep tcp


      如果有這套軟體的話,自然就會顯示出來,如果沒有的話,請放入你的 Linux 光碟片,將 rpm 檔案裝上去吧!
       

    2. 設定允許登入的電腦(/etc/hosts.allow)
      其實很簡單,只要修改 /etc/hosts.allow(如果沒有此檔,請自行以 vi 編輯)這這檔案即可,例如,我家裡的電腦中,我的內部網域(區域網路)是 192.168.1.0/255.255.255.0,這樣的網域代表電腦 IP 在於 192.168.1.1 - 192.168.1.255 之間!所以,我就將 /etc/hosts.allow 這個檔案的內容設定成為如此:
       
      1. in.telnetd: 192.168.1.0/255.255.255.0, .ncku.edu.tw : Allow


      加入 .ncku.edu.tw 的原因是因為我人在成大,所以加入此行的話,可以使我在成大連上我家裡的 Linux 主機。
       

    3. 設定不許登入的電腦(/etc/hosts.deny)
      由於正常的情況下, Linux 會先判斷 hosts.allow 這個檔案,這個檔案中的電腦如果設定為可連線的話,則 hosts.deny 就不會被使用,因此,設定好了 hosts.allow 之後,將 /etc/hosts.deny 設定為『所有電腦都不許登入』的情況,如下所示:
       
      1. in.telnetd: ALL : Deny


      這樣一來,基本的防護措施就有了(不用重新開機就自動執行了!)。

  • 記錄限制登入的主機 IP:
    通常我們會希望如果有人嘗試登入我們的系統時,系統不但可以將他摒棄在外,並且可以將他的嘗試記錄下來!這時,我們可以藉由 /etc/hosts.deny 來達成這個目標!在這個檔案中(當然,您的 /etc/hosts.allow 必須已經先完成編輯了!),你可以這樣輸入:
     
    [root @tsai /etc]# vi hosts.deny

    in.telnetd: ALL : spawn (echo Security notice from host `/bin/hostname`; /
    echo; /usr/sbin/safe_finger @%h ) | /
    /bin/mail -s "%d-%h security" root & /
    : twist ( /bin/echo -e "/n/nWARNING connection not allowed. Your attempt has been logged. /n/n/n警告您尚未允許登入,您的連線將會被紀錄,並且作為以後的參考/n/n ". )

    在上面的例子中,黃色的 root 部分,可以寫成你的個人帳號或者其他 e-mail ,以免很少以 root 身份登入 Linux 主機時,容易造成不知道的情況,另外,最後幾行(顏色怪怪的那一行)為同一行。如此一來,當未經允許的電腦嘗試登入你的主機時,他的畫面就會顯示上面的最後一行,並且將他的 IP 寄到 root (或者是你自己的信箱)那裡去!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值