CentOS 6查看和管理iptables 防火墙状态的命令

CentOS 6上面默认的是iptables防火墙,如果想要查看防火墙是否运行,只需要输入下面的命令。
service iptables status
如果防火墙没有运行会提示:
iptables: Firewall is not running.

启动iptables的话就输入下面的命令:
service iptables start

重新启动iptables的话就输入下面的命令:
service iptables restart

停止iptables的话就输入下面的命令:
service iptables stop

VPS防火墙一键屏蔽邮件、BT端口脚本

如果你购买的VPS会拿出去分享给他人使用,尤其是代理共享使用的话,难免会碰到有人用你的vps去发广告或者下bt之类的,这些操作都会让你的vps被服务商暂停,所以非常有必要用防火墙来屏蔽一下常见的邮件和bt端口。

这里给大家推荐一个很好用的一键包Get_Out_Spam

使用方法,直接输入下面这串命令即可。

wget -4qO- onekey.sh/Get_Out_Spam|bash

一键包具体内容如下:
#!/bin/bash
#########################################################################
# File Name: Get_Out_Spam.sh
# Author: LookBack
# Email: admin#dwhd.org
# Version:
# Created Time: 2015年09月15日 星期二 22时30分38秒
#########################################################################

smpt_port="25,26,465"
pop_port="109,110,995"
imap_port="143,218,220,993"
other_port="24,50,57,105,106,158,209,587,1109,24554,60177,60179"
key_word=(Subject HELO SMTP
"torrent" ".torrent" "peer_id=" "announce"
"info_hash" "get_peers" "find_node"
"BitTorrent" "announce_peer"
"BitTorrent protocol" "announce.php?passkey=")

v4iptables=`which iptables 2>/dev/null`
v6iptables=`which ip6tables 2>/dev/null`

cat_rules() { $1 -t $2 -L OUTPUT -nvx --line-numbers; }
mangle_key_word() { $1 -t mangle -A OUTPUT -m string --string "$2" --algo bm --to 65535 -j DROP; }
tcp_port_DROP() {
[ "$1" = "$v4iptables" ] && $1 -t filter -A OUTPUT -p tcp -m multiport --dports $2 -m state --state NEW,ESTABLISHED -j REJECT --reject-with icmp-port-unreachable
[ "$1" = "$v6iptables" ] && $1 -t filter -A OUTPUT -p tcp -m multiport --dports $2 -m state --state NEW,ESTABLISHED -j REJECT --reject-with tcp-reset
}
udp_port_DROP() { $1 -t filter -A OUTPUT -p udp -m multiport --dports $2 -j DROP; }
save_rules() {
if [ -f /etc/redhat-release ]; then
for i in $v4iptables $v6iptables;do ${i}-save > /etc/sysconfig/`basename $i`; done
else
for i in $v4iptables $v6iptables;do ${i}-save > /etc/`basename $i`.rules;done
cat > /etc/network/if-pre-up.d/iptables << EOF #!/bin/bash ${v4iptables}-restore < /etc/`basename $v4iptables`.rules EOF chmod +x /etc/network/if-pre-up.d/iptables fi } if [ -n "$v4iptables" -a -n "$v6iptables" ]; then for i in ${key_word[@]}; do for j in $v4iptables $v6iptables; do mangle_key_word $j $i; done; done for i in ${smpt_port} ${pop_port} ${imap_port} ${other_port}; do for j in $v4iptables $v6iptables; do tcp_port_DROP $j $i && udp_port_DROP $j $i; done; done clear && for i in $v4iptables $v6iptables; do for j in filter mangle; do cat_rules $i $j; done; done && save_rules elif [ -n "$v4iptables" ]; then for i in ${key_word[@]}; do mangle_key_word $v4iptables $i;done for i in ${smpt_port} ${pop_port} ${imap_port} ${other_port}; do tcp_port_DROP $v4iptables $i && udp_port_DROP $v4iptables $i; done clear && for i in filter mangle; do cat_rules $v4iptables $i;done && save_rules else echo "Your system don't find iptables" fi

Linux上使用iptables防火墙封禁IP的相关命令

iptables是Linux上面一款比较常见的防火墙,通常就是使用iptables来开放一些端口或者禁止一些ip访问。当你想要封禁一个ip的时候,就输入下面的命令。

iptables -I INPUT -s ip地址 -j DROP

如果要封整个段的ip地址,就输入下面的命令

iptables -I INPUT -s ip段 -j DROP

这个ip段可能不是很熟悉,举几个例子

211.3.0.0/16 封211.3.*.*

211.0.0.0/8 封211.*.*.*

61.37.80.0/24 封61.37.80.*

如果要解封的话输入下面的命令即可

iptables -D INPUT -s IP地址 -j REJECT

情况防火墙规则的话用

iptables -F

查看现在的防火墙规则的话

iptables -L -n