CentOS服务器iptables配置简单教程

iptables是Linux类服务器重要的网络安全防范系统工具,考虑到多数服务器有专门的团队托管,服务器管理员多数时间只能通过SSH进行远程管理,在安全允许的情况下,保证SSH的合法联通,需要做如下的配置。

iptables -P INPUT ACCEPT
iptables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -L -v

  这样能够保证SSH的22端口得到合法的通行,最后执行service iptables save,将刚才的配置保存。

  通过cat /etc/sysconfig/iptables可以查看iptables配置文件的信息,今后可以通过直接编辑该文件,增删配置条目。

  查看运行着的iptables的规则指令为:lsmod | grep ip_tables或iptables -L。

小编再补充一个知识点:防简单攻击iptables策略

#!/bin/sh
IPTABLES=/sbin/iptables

# clear
$IPTABLES -F

# if pkg type is allow, then accept
#$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 如果同时在80端口的连接数大于10,就Drop掉这个ip

netstat -an | grep :80 | awk -F: '{ print $8 }' | sort | uniq -c | awk -F\  '$1>10 && $2!="" { print $2 }' >> /etc/fw.list
less /etc/fw.list | sort | uniq -c | awk -F\  '$2!="" { print $2 }' > /etc/fw.list2
less /etc/fw.list2 > /etc/fw.list
while read line

    do
    t=`echo "$line"`
    $IPTABLES -A INPUT -p tcp -s $t -j DROP
done < /etc/fw.list2

# IP转发
$IPTABLES -A INPUT -p tcp --dport 20002 -j ACCEPT
$IPTABLES -A INPUT -d 172.16.204.7 -p tcp -m tcp --dport 20002 -i eth0 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -d 211.100.39.44 -p tcp -m tcp --dport 20002 -j DNAT --to-destination 172.16.204.7:20002
$IPTABLES -t nat -A POSTROUTING -d 172.16.204.7 -p tcp -m tcp --dport 20002 -j SNAT --to-source 10.6.39.44

# if pkg visit 80,7710 port then accept
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 8080 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 873 -j ACCEPT
# $IPTABLES -A INPUT -i eth0 -m limit --limit 1/sec --limit-burst 5 -j ACCEPT
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -m limit --limit 10/s -j ACCEPT
$IPTABLES -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

# if pkg from allow ip then accept

$IPTABLES -A INPUT -p tcp -s 127.0.0.1  -j ACCEPT

# if pkg not above then deny

$IPTABLES -A INPUT -p tcp --syn -j DROP

下面这个防火墙测试结果更正确,能起到一定的防攻击的功能

#!/bin/sh

IPTABLES="/sbin/iptables"

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -F
$IPTABLES -X

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT

$IPTABLES -A OUTPUT -p tcp -s 127.0.0.1 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s 192.168.1.102 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -s 127.0.0.1 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -s 192.168.1.102 -j ACCEPT

$IPTABLES -A INPUT -p tcp --syn -j DROP

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 修改iptables防火墙规则解决vsftp登录后不显示文件目录的问题

    iptables里面仅仅开放了80.21等常用端口,这样就导致了vsFTPd在被动模式时无法使用随机端口,从而造成了客户端连接FTP时无法列出目录这样的问题.解决方式很简单,给vsFTPd增加随机端口的范围,然后把这个端口范围添加到iptables.具体做法如下: 1.修改/etc/vsftpd/vsftpd.conf的配置文件,在文件末端添加: 复制代码 代码如下: pasv_max_port=6666pasv_min_port=5555/etc/init.d/vsftpd restart 2

  • shell脚本结合iptables防端口扫描的实现

    网上有现在的防端口工具,如psad.portsentry,但觉得配置有点麻烦,且服务器不想再装一个额外的软件.所以自己就写了个shell脚本实现这个功能.基本思路是:使用iptables的recent模块记录下在60秒钟内扫描超过10个端口的IP,并结合inotify-tools工具实时监控iptables的日志,一旦iptables日志文件有写入新的ip记录,则使用iptables封锁源ip,起到了防止端口扫描的功能. 1.iptables规则设置新建脚本iptables.sh,执行此脚本.

  • linux服务器下通过iptables+Denyhost抵御暴力破解的配置方法

    使用iptables 现在每分钟连接ssh的次数 #允许本地环回接口访问 iptables -A INPUT -i lo -j ACCEPT #对已经建立的所有链接都放行 iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT #每分钟对ssh的新连接只允许两个,已建立的连接不限制 复制代码 代码如下: iptables -A INPUT -p tcp –dport 22 -m limit –limit 2/minute –limit-bu

  • 分享一个实用的iptables脚本(各种过滤写法参考)

    这个iptables脚本不错,很实用,根据实际应用改一下就可以自己用.分享出来,供大家来参考.原作者佚名.源代码如下: 复制代码 代码如下: #!/bin/sh#modprobe ipt_MASQUERADEmodprobe ip_conntrack_ftpmodprobe ip_nat_ftpiptables -Fiptables -t nat -Fiptables -Xiptables -t nat -X###########################INPUT键###########

  • linux增加iptables防火墙规则的示例

    以下是我的iptables设置 复制代码 代码如下: *filter:INPUT DROP [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [49061:9992130]-A INPUT -i lo -j ACCEPT   不开启会有很多服务无法使用,开启回环地址-A INPUT -p icmp -j ACCEPT   允许icmp包通过,也就是允许别人ping自己-A INPUT -m state --state RELATED,ESTABLISHED -j

  • 阿里云Centos配置iptables防火墙教程

    虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptables服务状态 首先检查iptables服务的状态 [root@woxplife ~]# service iptables status iptables: Firewall is not running. 说明iptables服务是有安装的,但是没有启动服务. 如果没有安装的话可以直接yum安装 y

  • Linux防火墙iptables入门教程

    一.关于iptables Iptables是一个基于命令行的防火墙工具,它使用规则链来允许/阻止网络流量.当一条网络连接试图在你的系统中建立时,iptables会查找其对应的匹配规则.如果找不到,iptables将对其采取默认操作.几乎所有的Linux发行版都预装了iptables.在Ubuntu/Debian中更新/安装iptables的命令为: 复制代码 代码如下: sudo apt-get install iptables 现有的一些图形界面软件也可以替代iptables,如Firesta

  • 一键配置CentOS iptables防火墙的Shell脚本分享

    手里几台VPS配置iptables太繁琐,看到了朱哥的LNMP脚本里有一个自动配置iptables防火墙的脚本,借来改了一下,给需要的人用: 只提供常用端口的设置,如果你有特殊需求只需自行添加或减少相应的端口即可: 使用方法: 复制代码 代码如下: chmod +x iptables.sh ./iptables.sh 设置iptables开机自动启动: 复制代码 代码如下: chkconfig --level 345 iptables on 完整Shell: 复制代码 代码如下: #!/bin/

  • Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)

    脚本如下: 复制代码 代码如下: #!/bin/sh nginx_home = /Data/app_1/nginx log_path = /Data/logs /usr/bin/tail -n50000 $log_path/access.log \ |awk '$8 ~/aspx/{print $2,$13}' \ |grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou" \ |awk '{print $1}'|sort|uniq

  • CentOS服务器iptables配置简单教程

    iptables是Linux类服务器重要的网络安全防范系统工具,考虑到多数服务器有专门的团队托管,服务器管理员多数时间只能通过SSH进行远程管理,在安全允许的情况下,保证SSH的合法联通,需要做如下的配置. iptables -P INPUT ACCEPT iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -

  • web服务器iptables配置脚本实现代码

    web服务器iptables配置脚本 欢迎一起改进 实现代码: #!/bin/bash # ID 201510192126 # Author Ricky # E-mail 564001002@qq.com IT运维管理技术交流群 16548318 # CentOS 6 系统初始优化脚本 # version 1.0.0 #add iptables yum -y install iptables #iptables conf bak if [ ! -e "/etc/sysconfig/iptable

  • Sql Server2012 使用IP地址登录服务器的配置图文教程

    最近在使用NFineBase框架+c#做一个系统的时候,在使用sql server 2012 连接数据库的时候 ,遇到几个问题. 一. 就是在本地或者远程连接别人的数据库的时候,以ip地址作为服务器名称 以SQL Server 身份验证(即输入登录名和密码)的方式登录数据库 总会出现错误 比如说会提示一下错误: 用户 'sa' 登录失败,该用户与可信 SQL Server 连接无关联. 但是使用 计算机名\实例名 这种方式就可以登录 \ 最后发现还是数据库的配置问题,解决方案如下: 我使用的是w

  • jdk在centos中安装配置图文教程

    1下载jdk,地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html 历史版本下载:打开页面拉到底部. 选择自己要的版本下载.我这里下载的是jdk-7u80-linux-x64.rpm 2删除系统自带jdk 查看是否安装了openjdk使用命令 rpm -qa | grep jdk sudo yum remove xxx(上面查询到的名字) 3修改安装包权限 sudo chmod 777 jdk-7u80-li

  • R语言入门在CentOS服务器上配置RStudio Server

    目录 安装R 安装并部署RStudio Server 过程中遇到的问题 这里主要参考如下网址进行R与RStudio Server的配置与部署. Download RStudio Server 在部署完成后,可在官方说明文件中查看详细的使用方法: RStudio Server Professional Edition 安装R 我们的环境是CentOS7-中文,并且是root账户. 然后我们按照前面参考网址中的说明,找到对应的系统,首先安装EPEL(注意,必须先安装EPEL后面才能成功安装R): s

  • Linux/CentOS服务器安全配置通用指南

    Linux 是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入 Linux 系统,或者盗取 Linux 系统上的重要信息.不过,只要我们仔细地设定 Linux 的各种系统功能,并且加上必要的安全措施,就能让黑客们无机可乘. 一般来说,对 Linux 系统的安全设定包括取消不必要的服务.限制远程存取.隐藏重要资料.修补安全漏洞.采用安全工具以及经常性的安全检查等. 本文是可参考的实际操作,不涉及如 IP 欺骗这样的原理,而

  • VMware10下CentOS 7安装配置图文教程

    如果说Ubuntu是现今最受桌面用户欢迎的Linux操作系统,那么CentOS就是最受公司.企业.IDC喜爱的Linux发行版了,得益于它极为出色的稳定性,全球范围内有无数著名网站均选用它. CentOS是基于Red Hat Enterprise Linux(收费昂贵但口碑极佳)的源代码再编译出来的免费版,因此不仅继承RHEL优越的稳定性,还提供免费更新,因此在服务器提供商.中小型公司中装机量几乎是最大的Linux发行版,现在已正式加入红帽公司.从事互联网技术的同学,CentOS应该是值得你深入

  • mysql 5.5 安装配置简单教程

    下面的是MySQL安装的过程,用的可执行文件安装的,详细说明了一下! 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe" 2.mysql安装向导启动,按"Next"继续 选择安装类型,有"Typical(默认)"."Complete(完全)"."Custom(用户自定义)"三个选项,我们选择"Custom",有更多的选项,

  • mysql 5.7.14 安装配置简单教程

    记录mysql5.7.14安装与配置过程,梳理成文,希望对大家有所帮助. 1.配置文档:  ####################配置文件开始################### # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It'

  • CentOS 7安装配置图文教程

    在上篇完成U盘系统盘的刻录后,接下来就是在电脑上安装CentOS7系统了. [U盘系统盘的刻录] 在这里,我电脑的品牌是lenovo的.具体型号我也不知道了. 把U盘插入电脑USB接口,我是在开机的时候按F12进入"启动设备菜单",选择U盘启动. PS:不同的电脑,选择过程可能不同.有的可能还需要进入BOIS中去设置.(如不会,请自行根据电脑品牌百度) 然后会进入如下页面: 界面说明: Install CentOS 7   安装CentOS 7 Test this media &

随机推荐