明明白白你的Linux服务器——网络篇
原文地址:http://os.51cto.com/art/201007/209530.htm
一、服務器的網絡配置
在服務器的網絡配置時,喜歡圖形的朋友可用setup或system-config-network來配置。
網卡配置文件為/etc/sysconfig/network-scripts/ifcfg-eth0,設置完畢后直接用service network restart生效
GATEWAY選項可以設置網關參數,這里注意下ONBOOT選項,它表示網卡是否隨系統啟動而啟動,此項一定要設置成on
這里介紹二個不是太常用的參數
USERCTL=no,即不允許普通用戶修改網卡 PEERDNS=yes,它表示允許從DHCP獲得的DNS覆蓋本地的DNS查看本機所有的網卡情況 ifconfig –a,更高級的網卡路由命令用ip addr,特別是你的服務器由keepalived綁定了虛擬VIP后用其查看很方便查看本機路由 netstat –rn或route
增加一條本機網絡路由用命令route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.25,即增加一條網絡172.16.6.0/24 經過172.16.2.254 ,這個地址也可以理解為你的下一跳的地址
如果要永久的生效可用文件編輯的辦法
vim /etc/sysconfig/network-scripts/route-eth0 172.16.6.0/24 via 172.16.2.25 查看本機的DNS服務器 cat /etc/resolv.conf 查看主機名hostname 查看主機名對應的IP地址 /etc/hosts它的執行順序是優于DNS的,現在多用于集群環境,比如Heartbeat;還有一個妙用,在沒用DNS的環境中做測試時,直接改服務器的此文件,達到優先解析的目的查看與本機直連的網絡設備用命令arp
這里跟大家介紹一個很有用的工具,mii-tool,判斷哪塊網卡連接了網線,同事們靠抽插網線來判斷哪個網卡連接了網線的辦法比較沒有效率
大家看這段文字可能沒什么感覺,但到了機房就非常有用了,特別是那些網卡多的服務器,我見得最多的某臺Linux服務器上綁定了六塊網卡。
二、查看你的服務器網絡連接狀態
狀態:描述
◆CLOSED:無連接是活動的或正在進行
◆LISTEN:服務器在等待進入呼叫
◆SYN_RECV:一個連接請求已經到達,等待確認
◆SYN_SENT:應用已經開始,打開一個連接
◆ESTABLISHED:正常數據傳輸狀態
◆FIN_WAIT1:應用說它已經完成
◆FIN_WAIT2:另一邊已同意釋放
◆ITMED_WAIT:等待所有分組死掉
◆CLOSING:兩邊同時嘗試關閉
◆TIME_WAIT:另一邊已初始化一個釋放
◆LAST_ACK:等待所有分組死掉
ESTABLISHED的值其實也是當前的并發數,這個可重點關注下;另外,可關注下TIME——WAIT這項的數值。Linux下高并發的Squid服務器,TCP TIME_WAIT套接字數量經常達到兩、三萬,服務器很容易被拖死。通過修改Linux內核參數,可以減少Squid服務器的TIME_WAIT套接字數量,具體可參見我的另一篇文章:優化Linux生產服務器的經驗之談。
三、 尋找惡意IP并用iptables禁止掉
找出惡意連接你的服務器80端口的IP,直接用iptables來drop掉它;這里建議寫腳本來運行,有興趣的請參考我在51cto.com里發表的自動分析黑名單及白名單的iptables腳本一文
netstat -an| grep :80 | grep -v 127.0.0.1 |awk '{ print $5 }' | sort|awk -F: '{print $1,$4}' | uniq -c | awk '$1 >50 {print $1,$2}'iptables腳本執行完畢后,用iptables –nv –L 可查看其規則,下面的iptables語法比較詳細,推薦記憶
iptables [-t表名] <-A| I |D |R > 鏈名[規則編號] [-i | o 網卡名稱] [-p 協議類型] [-s 源IP地址 | 源子網][--sport 源端口號] [-d 目標IP地址 | 目標子網][--dport 目標端口號] <-j 動作>
四、SMTP會話處理方式
捕獲一個SMTP會話,以下命令很管用,推薦下 ;不喜歡用命令的同學我推薦用wireshark
五、打印自動運行服務
打印出自動運行的服務,3、5級別的即可;當然喜歡圖形的同學可用ntsysv工具。
六、使用Netstat查看協議數據
Netstat用于顯示與IP、TCP、UDP和ICMP協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。
一般用得比較多的就是netstat -an與netstat –rn
七、使用lsof查看文件信息
在unix里面,一切皆文件;而Linux秉承了這一特性,將unix下的工具lsof移植過來得很成功。lsof可以列出被進程所打開的文件的信息。
被打開的文件可以是
1.普通的文件
2.目錄?
3.網絡文件系統的文件
4.字符設備文件?
5.(函數)共享庫?
6.管道,命名管道
7.符號鏈接
8.底層的socket字流。網絡socket,unix域名socket,用得比較多的用法是lsof -i:端口號,列出誰在使用某個端口,例如:lsof -i :3306,我喜歡用此用法來判斷服務到底有沒有正常啟用。
八、使用fuser查看和殺死相關進程
與lsof –i的用法相法,如果我想查找占用3306端口的程序,則用fuser –n tcp -v 8080,另外,fuser的其它功能也是很強大的,我常用的它的兩個功能:查看我需要的進程和我要殺死我查到的進程(撫琴煮酒是一般用來解決device is busy的問題)
比如當你想umount光驅的時候,結果系統提示你設備正在使用或者正忙,可是你又找不到到底誰使用了他。這個時候fuser可派上用場了。
示例中,我想彈出光驅,系統告訴我設備忙著,于是采用fuser命令,參數是你文件或scoket,fuser將查出那些使用了他。4561c,5382c表示目前用兩個進程在占用著/mnt/cdrom,分別是4561,5382,進程ID后的字母表示占用資源的方式。
九、TCP_wrappers防火墻
linux上一種特殊的防火墻TCP_wrappers防火墻,TCP 封包會先經過所謂的 IP 過濾機制( IP Filtering ),這是 Linux 提供的第一層保護,他可以將你不想要的來源 IP (經由 TCP 封包的 Head 資料)先當掉再說!如果可以通過的話,在就是要通過TCP_wrappers過濾。如果上面兩個都通過了,再就根據每個服務訪問控制的設定決定客戶機能得到不同的權限和信息.TCP_wrappers防火墻主要涉及到兩個文件/etc/hosts.allow和/etc/hosts.deny,可作iptables的補充來保護你的Linux安全,比如只允許內網IP訪問你的NFS服務器。
這里說下Linux是怎么識別其順序的,這里好多朋友容易混淆了;當某個ip想訪問你的Linux下的特定服務時,系統首先會檢查/etc/hosts.alllow文件,如是有的話就放行,沒有的話繼續檢查/etc/hosts.deny文件,有的話拒絕,沒有的就放行,不過一般的做法就直接在/etc/hosts.allow里放允許通行的ip,/etc/hosts.deny里放不允許通行的ip。另外,這里跟大家分享一個經驗心得吧: Linux下的服務眾多,samba,nfs,rsync,tcp_wrapper,xinetd等,而每個又都有各自支持的寫法,這樣對于考試學習及工作記憶很不方便,其實它們都支持192.168.0.1/255.255.255.0這樣的點分十進制寫法;另,iptables是不支持的,它只支持192.168.0.1/24比特建網制。
十、推薦下Linux/unix中常用的掃描端口工具-Nmap
下面是Nmap支持的四種最基本的掃描方式:
我這里以自己的線上郵件服務器為例說明下:
lsof -i:1014,發現又是rpc.statd,這東東,每次用的端口都不一樣啊;它不能正確處理SIGPID信號,遠程攻擊者可利用這個漏洞關閉進程,進行拒絕服務攻擊;發現rpc.statd是由服務nfslock開啟,關閉它即可service nfslock stop;chkconfig nfslock off
關于網站的安全,我這里也有一些自己的淺見,特與大家共享下:
【51CTO.com獨家特稿,合作站點轉載請注明原文譯者和出處。】
總結
以上是生活随笔為你收集整理的明明白白你的Linux服务器——网络篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 明明白白你的Linux服务器——硬件篇
- 下一篇: 明明白白你的Linux服务器——安全篇