• 欢迎访问春风博客

Linux下开放端口 防火墙常用命令

运维笔记 xiaogang 9年前 (2015-08-23) 2044次浏览 0个评论

最近春风把音乐站转移到了Linux系统上,转移过去后网站后台音乐远程FTP扫描入库程序不能用了,连接不上、获取不到目录检查了PHP配置没有发现问题,后来把防火墙关了就正常了,下面介绍下Linux防火墙的配置方法。
操作系统:Linux (CentOS)
网站程序:PHP音乐远程FTP扫描入库程序
ssh客户端设置有两种方法:
1.命令添加防火墙端口

/*添加80端口*/
#/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
/*添加21端口*/
#/sbin/iptables -I INPUT -p tcp –dport 21 -j ACCEPT
/*写入到配置文件*/
#/etc/rc.d/init.d/iptables save
/*重启防火墙*/
#/etc/init.d/iptables restart

2.更改/etc/sysconfig/iptables添加防火墙端口

#vi /etc/sysconfig/iptables

增加如下两行:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT

重启防火墙:

#/etc/init.d/iptables restart
关闭开启防火墙:
关闭防火墙服务:
#/etc/init.d/iptables stop
开启防火墙服务:
#/etc/init.d/iptables start
重启防火墙服务
/etc/rc.d/init.d/iptables restart
永久关闭 重启后不会复原:
#chkconfig iptables off
开启:
chkconfig iptables on
查看防火信息:
/etc/init.d/iptables status

服务器遭受到大量的大量SYN_RECV,80端号占死,网站打不开,没有硬防,可以解决吗?
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)。


ChunBlog.Com , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux下开放端口 防火墙常用命令
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址