當前位置:才華齋>計算機>作業系統>

Linux作業系統下防黑實用技巧

作業系統 閱讀(3.23W)

Linux作業系統下防黑技巧

Linux作業系統下防黑實用技巧

Linux是一個多使用者的系統,一旦人家取得你的root使用者之後,他就可以在你的系統上為所欲為了,由於單使用者對系統有完全的控制權限,如果操作不當或被他人進入,那麼後果將不堪設想,如何防止入行單使用者了,有以下幾個注意的方面。

1、對/etc/inittab檔案進行保護,如果把id:3: initdefault中的3改為成1,就可以每次啟動直接進入到單使用者方式。對/etc/inittab檔案,以root身份進入通過chown 700 /etc/inittab把屬性設為其它使用者不能修改就行了。

2、如果是使用的lilo方式進行引導,可能通過linuxconf或直接修改把引導時等待輸入時間設定為0或最短時行。這種情況下,如果進入單使用者方式,可以用軟盤進行引導。

3、如果使用是GRUB方式進行引導,最簡單的方法是使用GRUB密碼,對啟動選項進行保護。

4、為了防止他人遠端進行破壞,使系統重啟,除了對ROOT的密碼和/etc目錄下的檔案進行有效管理之外,還應當對CMOS進行密碼設定,這樣即使把系統改成單使用者方式了,也無法直接的啟動計算機進行操作。

VPS常用安全設定(linux)(一)

一、修改SSH埠

vi /etc/ssh/sshd_config

找到其中的#Port 22(第13行),去掉#,修改成Port 3333

使用如下命令,重啟SSH服務,注:以後用新埠登陸。

service sshd restart

二、禁止ROOT登陸

先新增一個新帳號80st ,可以自定義:

useradd 80st

給weidao 帳號設定密碼:

passwd 80st

仍舊是修改/etc/ssh/sshd_config檔案,第39行:#PermitRootLogin yes,去掉前面的#,並把yes改成no,然後,重啟SSH服務。以後,先使用weidao 登陸,再su root即可得到ROOT管理許可權。

login as: 80st

weidao@ip password:*****

Last login: Tue Nov 22 15:18:18 2011 from

su root

Password:*********** #注這裡輸入ROOT的`密碼

三、使用DDos deflate簡單防落CC和DDOS攻擊

使用netstat命令,檢視VPS當前連結確認是否受到攻擊:

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

IP前面的數字,即為連線數,如果說正常網站,幾十到一百都屬於正常連線,但出現幾百,或上千的就可以墾定這個IP與你的VPS之間可能存在可疑連線現象。

可以使用iptables直接BAN了這個IP的永久訪問:

iptables -A INPUT -s -j DROP

使用軟體DDos deflate來自動檢測並直接BAN掉的方法,首先要確認一下iptables服務狀態,預設CENTOS就安裝的,不看也行。

service iptables status

安裝DDos deflat:

wget

chmod +x

./

安裝後需要修改/usr/local/ddos/,主要是APF_BAN=1要設定成0,因為要使用iptables來封某些可疑連線,注意EMAIL_TO=”root”,這樣BAN哪個IP會有郵件提示:

##### Paths of the script and other files

PROGDIR=”/usr/local/ddos”

PROG=”/usr/local/ddos/”

IGNORE_IP_LIST=”/usr/local/ddos/” //IP地址白名單

CRON=”/etc/cron.d/”//定時執行程式

APF=”/etc/apf/apf”

IPT=”/sbin/iptables”

##### frequency in minutes for running the script

##### Caution: Every time this setting is changed, run the script with –cron

##### option so that the new frequency takes effect

FREQ=1 //檢查時間間隔,預設1分鐘

##### How many connections define a bad IP? Indicate

that below.

NO_OF_CONNECTIONS=150 //最大連接數,超過這個數IP就會被遮蔽,一般預設即可

##### APF_BAN=1 (Make sure your APF version is atleast 0.96)

##### APF_BAN=0 (Uses iptables for banning ips instead of APF)

APF_BAN=1 //使用APF還是iptables。推薦使用iptables,將APF_BAN的值改為0即可。

##### KILL=0 (Bad IPs are’nt banned, good for interactive execution of script)

##### KILL=1 (Recommended setting)

KILL=1 //是否遮蔽IP,預設即可

##### An email is sent to the following address when an IP is banned.

##### Blank would suppress sending of mails

EMAIL_TO=”root”//當IP被遮蔽時給指定郵箱傳送郵件,推薦使用,換成自己的郵箱即可

##### Number of seconds the banned ip should remain in blacklist.

BAN_PERIOD=600 //禁用IP時間,預設600秒,可根據情況調整

四、使用iftop檢視詳細網路狀況

安裝IFTOP軟體:

yum -y install flex byacc libpcap ncurses ncurses-devel libpcap-devel

wget

tar zxvf

cd iftop-0.17

./configure

make && make install

安裝後,使用iftop執行,檢視網路情況。TX,傳送流量;RX,接收流量;TOTAL,總流量;Cumm,執行iftop期間流量;peak,流量峰值;rates,分別代表2秒、10秒、40秒的平均流量。

快捷鍵:h幫助,n切換顯示IP主機名,s是否顯示本機資訊,d是否顯示遠端資訊,N切換埠服務名稱,b切換是否時數流量圖形條。

五、升級LNMP中的NGINX到最新版

現在最新版是0.8.53,如果以後出新版,只要更新版本號就可以,在SSH裡執行:

wget

tar zxvf

cd nginx-0.8.53

./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_sub_module

make

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/

cd objs/

cp nginx /usr/local/nginx/sbin/

/usr/local/nginx/sbin/nginx -t

kill -USR2 `cat /usr/local/nginx/logs/`

kill -QUI

T `cat /usr/local/nginx/logs/in`

/usr/local/nginx/sbin/nginx -v

cd ..

cd ..

rm -rf nginx-0.8.53

rm -rf

六、常用netstat命令:

1.檢視所有80埠的連線數

netstat -nat|grep -i “80″|wc -l

2.對連線的IP按連線數量進行排序

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

3.檢視TCP連線狀態

netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn

netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’

netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,” ”,state[key]}’

netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,” ”,arr[k]}’

netstat -n |awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn

netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]‘ | sort | uniq -c

4.檢視80埠連線數最多的20個IP

netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20

netstat -ant |awk ‘/:80/{split($5,ip,”:”);++A[ip[1]]}END{for(i in A) print A,i}’ |sort -rn|head -n20

5.用tcpdump嗅探80埠的訪問看看誰最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F”.” ‘{print $1″.”$2″.”$3″.”$4}’| sort | uniq -c | sort -nr |head -20

6.查詢較多time_wait連線

netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20

7.找查較多的SYN連線

netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

linux中php如何安裝CURL擴充套件方法

如果php已經在系統編譯好,後來又需要新增新的擴充套件。一種方式就是重新完全編譯php,另一種方式就是單獨編譯擴充套件庫,以extension的形式擴充套件。下面以安裝curl擴充套件為例:

1、下載curl安裝包。(我的php是4.4.4的,下載最新的curl 7.16 不能使用,最後下載7.14的才可以,所以要注意一下版本問題)

./configure

make

php要求curl的目錄要有include和lib目錄,並且include下要有easy.h 和curl.h兩個檔案,lib下要有libcurl.a。經編譯後include下的檔案有了,但是lib目錄下沒有。原來生成到lib/目錄下,所以要copy到lib目錄

2、進入安裝原php的原始碼目錄

cd ext

cd curl

phpize

./configure --with-curl=DIR

make

就會在PHPDIR/ext/curl/moudles/下生成的檔案。

3、複製檔案到extensions的配置目錄,修改就好