顯示具有 LINUX-網路 標籤的文章。 顯示所有文章
顯示具有 LINUX-網路 標籤的文章。 顯示所有文章

核心升級問題-無線網卡

無線網卡安裝舊文:Broadcom 802.11 BCM43227 驅動程式安裝步驟

無線網卡通常在核心升級後都必需重新產生並載入模組(驅動程式),此次由 3.3.4-5 升級至 3.6.10-2 後,使用舊的方法產生無線模組時發生了一些問題,在編譯的過程中找不到 asm/system.h 檔案,導致編譯失敗。

使用舊方式產生模組發生編譯的過程中找不到 asm/system.h 檔案問題 # yum install -y kernel-devel kernel-headers
# yum groupinstall "Development tools"
# make
 KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
 make[1]: Entering directory `/usr/src/kernels/3.6.10-2.fc17.x86_64'
 Wireless Extension is the only possible API for this kernel version
 Using Wireless Extension API
  LD /root/wireless/built-in.o
  CC [M] /root/wireless/src/shared/linux_osl.o
  CC [M] /root/wireless/src/wl/sys/wl_linux.o
 /root/wireless/src/wl/sys/wl_linux.c:43:24: fatal error:asm/system.h:No such file or directory compilation
 terminated.

 make[2]: *** [/root/wireless/src/wl/sys/wl_linux.o] Error 1
 make[1]: *** [_module_/root/wireless] Error 2
 make[1]: Leaving directory `/usr/src/kernels/3.6.10-2.fc17.x86_64'
 make: *** [all] Error 2

system.h 的核心版本為 3.3.4-5.fc17.x86_64,沒有目前核心版本(3.6.10-2.fc17.x86_64)的 system.h # find / -name system.h
 /usr/src/kernels/3.3.4-5.fc17.x86_64/include/asm-generic/system.h
 /usr/src/kernels/3.3.4-5.fc17.x86_64/arch/x86/include/asm/system.h

# ll /usr/src/kernels/$(uname -r)/arch/x86/include/asm/system.h
 ls: cannot access /usr/src/kernels/3.6.10-2.fc17.x86_64/arch/x86/include/asm/system.h: No such file or directory

解決方法請依照以下步驟操作: # find / -name wl_linux.c
 /root/broadcom/src/wl/sys/wl_linux.c
# vim /root/broadcom/src/wl/sys/wl_linux.c
 #include   // 移除此行設定
 .ndo_set_rx_mode = wl_set_multicast_list,  // 找到字串.ndo_set_multicast_list 改成.ndo_set_rx_mode

# make
 KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
 make[1]: Entering directory `/usr/src/kernels/3.6.10-2.fc17.x86_64'
 Wireless Extension is the only possible API for this kernel version
  Using Wireless Extension API
  CC [M] /root/broadcom/src/wl/sys/wl_linux.o
  CC [M] /root/broadcom/src/wl/sys/wl_iw.o
  CC [M] /root/broadcom/src/wl/sys/wl_cfg80211.o
  LD [M] /root/broadcom/wl.o
  Building modules, stage 2.
 Wireless Extension is the only possible API for this kernel version
 Using Wireless Extension API
  MODPOST 1 modules
 WARNING: modpost: missing MODULE_LICENSE() in /root/broadcom/wl.o
 see include/linux/module.h for more information
  CC /root/broadcom/wl.mod.o
  LD [M] /root/broadcom/wl.ko  // 編譯成功
 make[1]: Leaving directory `/usr/src/kernels/3.6.10-2.fc17.x86_64'

# ll wl.ko
 -rw-r--r--. 1 root root 4256993 12 月 25 23:33 wl.ko
# cp wl.ko /lib/modules/$(uname -r)/kernel/net/wireless
# depmod
# modprobe wl
# reboot

ntop

資料來源:軟體開箱文~~ 使用 ntop 好用的圖型化介面監控網路管理資訊

network-top 是統計目前網量流量的軟體(類似 Linux 的 top 指令),如果你的主機是網域的出入口,可以知道網域內的主機瀏覽那些網頁以及使用那些網路協定進行資料傳輸。

安裝 # yum install ntop  // 必須有 epel 安裝來源
設定系統管理者密碼,帳號預設是 admin。 # ntop -A
 Fri Dec 14 09:29:22 2012 Initializing gdbm databases
 Fri Dec 14 09:29:22 2012 Setting administrator password...

 ntop startup - waiting for user response!

 Please enter the password for the admin user:123456  // 至少 5 個字元
 Please enter the password again: 123456
 Fri Dec 14 09:29:53 2012 Admin user password has been set
 Fri Dec 14 09:29:53 2012 Admin password set...

啓動 ntop 服務測試 # /etc/init.d/ntop start
開啟防火牆 # iptables -A INPUT -i eth0 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -I INPUT -i eth0 -p tdp --dport 80 -m state --state NEW -j ACCEPT
# iptables -I INPUT -i eth0 -p tcp --dport 3000 -m state --state NEW -j ACCEPT
# /etc/init.d/iptables save

要求登入驗證密碼,不然外部只要連上主機的 3000port 就可以查看。
  1. Admin-->Configure-->Protect URLs

  2. 輸入管理者帳密 admin/123456

  3. 新增 Protect URLs


  4. 確認 URLs 清單中有出現 * 的網頁位置。

  5. 網頁存取被拒絕
  6. 不要使用 http://localhost:3000/,使用伺服器的 IP 登入。

    查看 ntop 設定檔內容,ntop 只接受 localhost 監聽 3000port,請註解這行設定後,重啟服務。 # vim /etc/ntop.conf
     # limit ntop to listening on a specific interface and port
     --http-server 127.0.0.1:3000 --https-server 127.0.0.1:3001

    # vim /etc/ntop.conf
     # limit ntop to listening on a specific interface and port
     # --http-server 127.0.0.1:3000 --https-server 127.0.0.1:3001

    # service ntop restart


  7. 統計畫面:功能實在太多,有需要的人請自行摸索!XD

檢測網卡狀態ethtool

檢測網卡狀態除了目視硬網卡的燈號是否閃爍以外,還可以用指令看到目前網卡速度是 100M 還是 10M,因為即使網卡支援 1000M,也會因為網路環境,而降速至 10M。

# ethtool eth0
 Settings for eth0:
 Supported ports: [ TP ]
 Supported link modes: 10baseT/Half 10baseT/Full
            100baseT/Half 100baseT/Full
            1000baseT/Full
 Supports auto-negotiation: Yes
 Advertised link modes: 10baseT/Half 10baseT/Full  // 目前最高速度可到 1000Mb/s
            100baseT/Half 100baseT/Full
            1000baseT/Full
 Advertised pause frame use: No
 Advertised auto-negotiation: Yes
 Speed: 1000Mb/s
 Duplex: Full
 Port: Twisted Pair
 PHYAD: 0
 Transceiver: internal
 Auto-negotiation: on
 MDI-X: Unknown
 Supports Wake-on: d
 Wake-on: d
 Current message level: 0x00000007 (7)
 Link detected: yes  // 接線正常

偵測遠端主機網路服務是否有開啟nmap

這裡介紹的是圖形界面的 zenmap,軟體會依照選取偵測的等級,自動調整 nmap 的參數。
套件名稱:nmap-frontend.noarch

安裝 Zenmap # yum install nmap-frontend.noarch
啟動 Zenmap,並查詢中華電信的 DNS 伺服器 168.95.1.1 # zenmap &

天殺的~webserver被入侵了

今天一早就聽到惡耗~~單位的 server 被入侵了。

我卻很高興,實戰終於來了,為了找出被偷埋的程式,也花了我一些時間,原來是被放置了一個 htaccess 在DocumentRoot底下,導到別的網站並且執行不知名的 JS。

雖然移除了,但目前已被 google 列為惡意網站,申請重新審核,據說要 1 天的回覆時間,期待明天就會有好消息。

解決方法:找出最新被修改或是新增的檔案,並將他移除。
# ls -ltrR > newfile.txt
# grep '2012-xx-xx' newfile.txt

完整FQDN設定

啟動 httpd 服務時,若出現以下訊息,表示主機的 FQDN(Fully Qualified Domain Name)沒有完整設定。
# service httpd start
 Starting httpd: httpd: apr_sockaddr_info_get() failed for mailserver131.example.com
 httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]

檢查主機名稱 # hostname
 mailserver131.example.com
# hostname -a
 hostname: Unknown host
# hostname -i
 hostname: Unknown host
# hostname -d
 hostname: Unknown host
# hostname -s
 mailserver131
# hostname -f
 hostname: Unknown host

修改 『/etc/hosts』『/etc/sysconfig/network』 等兩個設定檔 # vim /etc/hosts
 10.10.10.128 mailserver131.example.com mailserver131
# vim /etc/sysconfig/network
 HOSTNAME=mailserver131.example.com
# service httpd restart

想爬牆的要看這篇-SSH Tunnel

若在公司使用 SSH Tunnel 必須非常小心,因為既然可以翻出去,別人也可以翻進來(Reverse SSH Tunnel),若沒有好好處理,可是安全的一大威脅!

範例:SSH_Client_A 無法直接存取 Web_Server,故透過 SSH_Server_B 存取 Web_Server。
使用 VM 準備 3 台電腦,每台電腦的角色如下:
SSH_Client_A(192.168.18.131):存取網頁伺服器(Web_Server)主頁
SSH_Server_B(192.168.18.129):與 SSH_Client_A 建立 SSH Tunnel
Web_Server(192.168.18.128):網頁伺服器


Web_Server(192.168.18.128):
# vim /var/www/html/index.html  // 記得防火牆要開
 <h1> SSH Tunnel </h1>

SSH_Client_A(192.168.18.131):輸入建立 SSH Tunnel 指令
# ssh -L 65534:192.168.18.128:80 lee@192.168.18.129

在 SSH_Client_A 測試:
# elinks http://localhost:65534

參數說明:
-L:本地主機(SSH_Client_A)開啟通訊埠,本範例為 65534
網頁伺服器:192.168.18.128:80
SSH_Server_B:192.168.18.129
elinks 是文字介面的瀏覽器(yum instll -y elinks)

SSH_Server_B 連線狀態
# netstat -anp | grep --color sshd
 tcp 0 0 192.168.18.129:22 192.168.18.131:60861 ESTABLISHED 3014/sshd

Web_Server 連線狀態
請注意來源 IP,雖然是 SSH_Client_A 存取 Web Server,但來源 IP 卻是 SSH_Server_B 的 IP。 # tail -f /var/log/httpd/access_log
 192.168.18.129 - - [25/Sep/2012:05:06:40 -0700] "GET / HTTP/1.1" 200 22 "-" "ELinks/0.12pre5 (textmode; Linux; 80x24-2)"

網路介面設定-靜態路由設定

方法一:
# route add -net network/netmask gw router_ip // network 是指網段,netmask 可以用 prefix

方法二:
# ip route add network/netmask via router_ip

寫入網路組態檔
# vim /etc/sysconfig/network-scripts/route-iface
 ADDRESSX = 網段    // 『X』從『0』開始 
 NETMASKX = netmask
 GATEWAYX = router_ip

網路介面設定-IP Aliases

2 種 IP 別名的設定方式

方法 1. 推薦此方法
# ifconfig eth0:0 192.168.0.1/24
方法 2.
# ip addr add 192.168.0.1/24 dev eth0 label eth0:0
寫入網路組態檔,重開機時不會消失
# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
 DEVICE=eth0:0
 IPADDR=192.168.0.1
 PREFIX=24   // NETMASK 255.255.255.0
 ONPARENT=yes
# service network restart

網路介面設定-Bonding

將多個網路介面整合成單一通道的技術
在 KVM 中新增 2 張網卡實作 Bonding,而網路卡組態檔路徑在 /etc/sysconfig/network-scripts/ifcfg-*
實作前請先關閉 NetworkManager 服務(含開機生效設定)

新增 Bonding 網路組態檔
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-band0
# vim /etc/sysconfig/network-scripts/ifcfg-band0
 DEVICE=bond0
 ONBOOT=yes
 BOOTPROTO=dhcp
 TYPE=Ethernet
 USERCTL=no
 PEERDNS=yes
 IPV6INIT=no
 BONDING="mode=1 miimon=50" // mode 1:Active-Backup

設定 eth0 的網路組態檔
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE=eth0
 HWADDR=52:54:00:6b:bf:b2
 NM_CONTROLLED=no
 ONBOOT=yes
 BOOTPROTO=dhcp
 TYPE=Ethernet
 USERCTL=no
 PEERDNS=yes
 IPV6INIT=no
 MASTER=bond0
 SLAVE=yes

設定 eth1 的網路組態檔
# vim /etc/sysconfig/network-scripts/ifcfg-eth1
 DEVICE=eth1
 HWADDR=52:54:00:11:fe:26
 NM_CONTROLLED=no
 ONBOOT=yes
 BOOTPROTO=dhcp
 TYPE=Ethernet
 USERCTL=no
 PEERDNS=yes
 IPV6INIT=no
 MASTER=bond0
 SLAVE=yes

設定 Bonding 設定檔
# vim /etc/modprobe.d/bonding.conf
  alias bond0 bonding

查看 Bonding 狀態
# cat /proc/net/bonding/band0