加固系統,從端口作起

每多開放一個端口就多一份危險,這是確定的。因此在系統裏,一切沒必要要的端口都得關閉! 查看端口使用狀況 # netstat -ant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address               Foreign Address             State       tcp        0      0 0.0.0.0:33936                0.0.0.0:*                   LISTEN       tcp        0      0 127.0.0.1:3306              0.0.0.0:*                   LISTEN       tcp        0      0 0.0.0.0:111                    0.0.0.0:*                   LISTEN       tcp        0      0 10.0.0.22:33831            207.46.107.42:1863          ESTABLISHED tcp        0      0 10.0.0.22:43127             219.133.60.250:80           ESTABLISHED tcp        0      0 10.0.0.22:42904             58.60.14.191:8000           ESTABLISHED tcp        0      0 :::111                      :::*                        LISTEN       tcp        0      0 :::80                       :::*                        LISTEN       --------------------------------------------------------------------------------------------- 那麼就從最小的開始吧~ 80是我開的,不理它 111呢,不瞭解~ 好,那就打開/etc/services看下~ sunrpc    rpcbind    111/tcp        portmapper rpcbind    # RPC 4.0 portmapper TCP sunrpc        111/udp        portmapper rpcbind    # RPC 4.0 portmapper UDP 第一列是服務名,第二列是端口號和協議類型,第三列是別名,第四列,也是就最後一列是註釋來的~ 到了這裏,我假定你和我同樣不懂英文。那麼咱們能夠求助,但不是跑到門外大叫一場~ 經過google得知,這個端口是RPC(Remote Procedure Call)服務開放的。像我這樣用電腦,都是不會或極少(少到什麼程序?可能到下次重裝系統仍是沒用到兩次)用到的,那很差意思,我得把你給關了~ 經過services文件裏的內容,我獲得了三個關鍵字:portmapper,rpcbind,RPC 那就到services裏找找看~ 只找到了個rpcbind,先停了看看狀況~ # netstat -ant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address               Foreign Address             State       tcp        0      0 127.0.0.1:3306              0.0.0.0:*                   LISTEN       tcp        0      0 0.0.0.0:33936               0.0.0.0:*                   LISTEN       tcp        0      0 10.0.0.22:33831             207.46.107.42:1863          ESTABLISHED tcp        0      0 10.0.0.22:43127             219.133.60.250:80           ESTABLISHED tcp        0      0 10.0.0.22:42904             58.60.14.191:8000           ESTABLISHED tcp        0      0 :::80                       :::*                        LISTEN       OK,肯定111端口是由rpcbind服務打開的,禁了就行~ --------------------------------------------------------------------------------------------- 3306是mysql的端口,跳過~ 33936端口沒法在/etc/services中查不到任何信息,那麼這個端口就有多是隨機產生的了~ 那就看下這個端口是由什麼進程使用的,還有就是進程的其它信息,而後順藤摸瓜,找到「×××」,達到咱們的目的 #netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name    tcp        0      0 0.0.0.0:33936               0.0.0.0:*                   LISTEN      1829/rpc.statd           ...... 獲得的信息太少了,得換一個工具才行~ # lsof -i COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME rpc.statd 1829 rpcuser    6u  IPv4   7003      0t0  UDP *:733 rpc.statd 1829 rpcuser    8u  IPv4   7010      0t0  UDP *:58417 rpc.statd 1829 rpcuser    9u  IPv4   7013      0t0  TCP *:33936 (LISTEN) ...... 經過"lsof -i"命令,又瞭解到了這個進程是由rpcuser用戶啓動的~ 那好,咱們如今得去看下"rpcuser"這個用戶的信息了~ #vim /etc/passwd rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 這就能夠確定它與nfs有關係,那我也不會用到,那就把nfs相關的服務都關了吧~(不知道哪些是?google!! ) 經過屢次的試驗,這個是nfslock使用的端口,而且是動態的,也驗證了前面的猜測~ 小結: 關閉一個使用固定端口的服務,咱們能夠經過/etc/services(在win下也有services:X:\windows\system32\dirvers\etc\services)查找相關的信息,而後直接關閉服務就好了~ 而對於一個使用動態端口的服務,在不瞭解服務的狀況下,咱們最早得知的是端口,而後經過了解這個端口是由哪一個進程打開的,進一步瞭解進程的信息,包括進程名,由哪一個用戶啓動的等等,而後順着這些信息去肯定這是一個什麼服務。一但肯定下來,咱們的目的也就達到了~
相關文章
相關標籤/搜索