最近在CentOS Linux下安裝配置 ORACLE 數據庫的時候,總顯示由於網絡端口而致使的EM安裝失敗,遂打算先關閉一下防火牆。數據庫
偶然看到防火牆的配置操做說明,感受不錯。執行」setup」命令啓動文字模式配置實用程序,在」選擇一種工具」中選擇」防火牆配置」,而後選擇」運行工具」按鈕,出現防火牆配置界面,將」安全級別」設爲」禁用」,而後選擇」肯定」便可.centos
或者用命令:
#/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT
#/etc/rc.d/init.d/iptables save安全
這樣重啓計算機後,防火牆默認已經開放了80和22端口服務器
這裏應該也能夠不重啓計算機:
#/etc/init.d/iptables restartcookie
防火牆的關閉,關閉其服務便可:網絡
查看防火牆信息:
#/etc/init.d/iptables statustcp
關閉防火牆服務:
#/etc/init.d/iptables stop工具
永久關閉?不知道怎麼個永久法:
#chkconfig –level 35 iptables off網站
看了好幾個頁面內容都有錯,下面是正確方法:
#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
而後保存:
#/etc/rc.d/init.d/iptables save
再查看是否已經有了:
[root@vcentos ~]# /etc/init.d/iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
服務器遭受到大量的大量SYN_RECV,80端號佔死,網站打不開
沒有硬防
有什麼辦法能夠解決嗎spa
1
sysctl -w net.ipv4.tcp_syncookies=1 #啓用使用syncookies
sysctl -w net.ipv4.tcp_synack_retries=1 #下降syn重試次數
sysctl -w net.ipv4.tcp_syn_retries=1 #下降syn重試次數
sysctl -w net.ipv4.tcp_max_syn_backlog=6000 #最大半鏈接數
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.all.accept_redirects=0 #不接受重定向的icmp數據包
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_keepalive_time=60
sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.ipv4.icmp_echo_ignore_all=1 #禁止ICMP
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 #ICMP禁止廣播
2.限制單位時間內鏈接數
如
iptables -N syn-flood
iptables -A FORWARD -p tcp --syn -j syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -p tcp --syn -m limit --limit 3/s --limit-burst 1 -j ACCEP
iptables -A syn-flood -j DROP
iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP
3 若是仍是不行,
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEP
如攻擊過來的流量大於你的服務器的流量,那就沒有什麼辦法了,若是流量不大,以上方法,能夠暫時保證你的80能夠訪問
若是你的內核已經支持iptables connlimit能夠使用, iptables 設定部份,也能夠使用
iptables -I FORWARD -p tcp --syn -m connlimit --connlimit-above 5 -j DROP
或
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT
對付SYN FLOOD的話,真正起做用的是: sysctl -w net.ipv4.tcp_syncookies=1 #啓用使用syncookies sysctl -w net.ipv4.tcp_synack_retries=1 #下降syn重試次數 其餘IPTABLES的限制速度功能不能用來對付SYN FLOOD的(不能阻止拒絕服務,可是確實能夠防止服務器CRASH)。