ch6 iptables生产应用场景

1、局域网共享上网(适合做企业内部局域网上网网关,以及IDC机房内网的上网网关 nat POSTROUTING) 2、服务器防火墙功能(适合IDC机房具有外网IP服务器,主要是filter INPUT的控制) 3、把外部IP及端口映射到局域网内部(可以一对一IP映射,也可针对某一个端口映射。) 也可能是IDC把网站的外网VIP级网站端口映射到负载均衡器上(硬件防火墙)(NAT PREROUTING) 4、办公路由器+网关功能(zebra路由+iptables过滤及NAT+squid正向透明代理80+ntop/iftop/iptaf流量查看+tc/cbq流量控制限速)。 5、邮件的网关。 问题2:的生产环境应用:用于没有外网地址的内网服务器,映射为公网IP后对外提供服务,也包括端口的映射 问题3:IP一对一映射 用于没有外网地址的内网服务器,映射为公网IP后对外提供服务,例如:ftp服务要一对一IP映射。 共享上网封IP的方法: bash 1 2 /sbin/iptables -I FROWAED -s 10.0.0.26 -j DROP /sbin/iptables ${deal} FROWARD -m mac --mac -source ${strIpMac} -j DROP 映射多个外网IP上网 bash 1 2 iptables -t nat -A POSTROUTING -s 10.0.1.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16 iptables -t nat -A POSTROUTING -s 172.168.1.0/255.255.255.0 -o eth0 -j SNAT --to=source 124.42.60.60-124.42.60.63 问题:公司内网主机多的时候,访问网站容易被封。

 ·  · 

ch7 关于iptables的内核参数

调整内核参数文件/etc/sysctl.conf,以下是我们生产环境的某个服务器的配置: bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 # 表示如果套接字由本端要求关闭,这个檀树决定了他保持在FIN-WAIT-2状态的时间。 net.ipv4.tcp_fin_timeout = 2 # 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。 net.ipv4.tcp_tw_reuse = 1 # 表示开启TCP连接中TIME-WAIT socket的快速收回,默认为0,表示关闭 net.ipv4.tcp_tw_recycle = 1 提示:以上两个参数为了防止生产环境下 time_wait过多设置的。 ############################################################ # 表示开启SYN Cookie。当出现SYN等带队列溢出时,启动cookie来处理,可防范少量SYN攻击,默认为0表示关闭 net.ipv4.tcp_syncookies = 1 # 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是两小时,改为20分钟 单位秒 net.ipv4.tcp_keepalive_time = 1200 # 表示对用向外连接的端口范围。缺省情况下很小。 net.ipv4.ip_local_port_range = 4000 65000 # 表示SYN队列的长度,默认为1024,加大队列长度为8192,可容纳更过等待连接的网络连接数。 net....

 ·  · 

SSH服务详解

什么是 SSH ? SSH全称(SecureSHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输。早期,互联网通信都是基于明文通信,一旦被截获,内容就暴露无遗。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。 SSH服务是由OpenSSH服务端软件OpenSSH和客户端(常见的由SSH,SecureCRT,Xshell,putty)组成,默认使用22端口提供服务,有两个不兼容的ssh协议版本,分别为1.x和2.x。 SSH协议目前有SSH1和SSH2两个主流版本,SSH2协议兼容SSH1,强烈建议使用SSH2版本。目前实现SSH1和SSH2协议的主要软件有OpenSSH 和SSH Communications Security Corporation 公司的SSH Communications 软件。前者是OpenBSD组织开发的一款免费的SSH软件,后者是商业软件,因此在linux、FreeBSD、OpenBSD 、NetBSD等免费类UNIX系统种,通常都使用OpenSSH作为SSH协议的实现软件。 sh 1 2 3 $ rpm -qa openssh openssl openssl-1.0.1e-30.el6.x86_64 openssh-5.3p1-104.el6.x86_64 SSH1.x 每台ssh服务器主机都可以使用rsa加密方式来产生一个1024bit的RSAKey,这个RSA的加密方式就是用来产生公钥与私钥的算法之一,SSH1.x的整个联机加密步骤如下: 当SSH服务启动时,会产生一个768-bit的临时公钥(sshd_config配置文件中ServerKeyBits 768)存放在server中 sh 1 2 3 # centos5为768 centos6为1024 $ grep ServerKey /etc/ssh/sshd_config #ServerKeyBits 1024 当客户端联机请求传送过来时,服务器就会将这个768-bit的公钥传给客户端,此时客户端会将此公钥与先前存储的公钥进行对比,看是否一致。判断标准是服务器端联机用户目录下~/.ssh/know_hosts文件的内容(linux客户端) sh 1 2 3 $ ssh -p22 lamp@192.168.65.62 $ ll .ssh/known_hosts -rw-r--r--. 1 root root 395 Jun 16 13:15 .ssh/known_hosts windows SecureCRT图示 在客户端接收到这个768-bit的Server Key后,客户端本地也会产生一个256bit的私钥(private key或host key),并且以加密的方式(具体的加密算法由客户端在服务器提供的所有可用算法中选择,默认为3DES算法),将Server key与host...

 ·  · 

使用SSH协议来传输文件

SSH客户端附带的远程拷贝scp命令 scp是加密 的远程拷贝,可以把数据从一台机器推送到另一台机器,也可以从其他服务器把数据拉回到本地执行命令的服务器,但是,每次都是全量拷贝(rsync增量拷贝),因此效率不高。 scp的基本语法使用 secure copy (remote file copy ) 参数选项 注释说明 -p 拷贝前后保持文件或目录属性 -P (大写) 接端口,默认22端口时可省略 -r 拷贝目录 -l 限制速度 推:scp -Pport 源 目标(user@host_ip):/path sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ touch {a..f}.txt $ ls a.txt b.txt c.txt d.txt e.txt f.txt $ scp -P22 a.txt root@192.168.65.62:/ root@192.168.65.62's password: a.txt 100% 0 0.0KB/s 00:00 $ ls / app a.txt 拉:scp -Pport 源(user@host_ip):/path 目标...

 ·  · 

expect使用案例

什么是Expect Expent是基于tcl的相对简单的一个免费的脚本编程工具语言,用来实现自动和交互任务程序进行通信,无需人的手工干预。比如SSH、FTP等,这些程序正常情况都需要手工与它们进行交互,而使用Expect就可以模拟人手工交互的过程,实现自动的和远程的程序交互,从而达到自动化运维的目的。 Expect程序工作流程 Expect的工作流程可以理解为,spawn启动进程 ==> expect期待关键字 ==> send向进程发送字符 ==> 退出结束。 安装Expect软件 首先,配置好yum安装源,并且确保机器可以上网,然后执行yum install expect -y即可安装Expect软件。 安装完后查看结果: sh 1 2 $ rpm -qa|grep expect expect-5.44.1.15-5.el6_4.x86_64 先看一个Expect小实例 首先准备3台虚拟机: sh 1 2 3 4 192.168.252.60 client 192.168.252.62 client 192.168.252.63 client 192.168.252.64 server 再执行下面例子前,我们先手工执行如下命令 sh 1 ssh -p52113 root@192.168.252.64 ifconfig 执行结果: sh 1 2 $ ssh -p52113 root@192.168.252.64 ifconfig root@192.168.252.64's password: Expect 例子脚本内容: sh 1 2 3 4 5 6 7 #!/usr/bin/expect spawn ssh -p52113 root@192....

 ·  ·