20190308 samba服务、inotify和rsync实现实时同步、防火墙

Samba服务
[root@centos7 ~]#yum install samba
[root@centos7 ~]#systemctl start smb
[root@centos7 ~]#ss -ntlu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 50 :139 :
tcp LISTEN 0 50
:445 端口已开启 : 可以做共享了。
主配置文件:/etc/samba/smb.conf
添加samba用户:1、smbpasswd -a <user> 2、pdbedit -a -u <user>
修改用户密码: smbpasswd <user>
删除用户和密码:1、smbpasswd –x <user> 2、pdbedit –x –u <user>
查看samba用户列表: 1、/var/lib/samba/private/passdb.tdb 2、pdbedit –L –v
查看samba服务器状态: smbstatus

[root@centos7 data]#useradd -s /sbin/nologin smb1
[root@centos7 data]#useradd -s /sbin/nologin smb2
[root@centos7 data]#useradd -s /sbin/nologin smb3
[root@centos7 data]#getent passwd
smb1:x:1001:1001::/home/smb1:/sbin/nologin
smb2:x:1002:1002::/home/smb2:/sbin/nologin
smb3:x:1003:1003::/home/smb3:/sbin/nologin
[root@centos7 data]#smbpasswd -a smb1 把linux用户变为Samba用户
New SMB password:
Retype new SMB password:
Added user smb1. smb账户添加账户不用加a,但是我们是第一次添加,要加上a。
[root@200 ~]#yum install samba
[root@200 ~]#systemctl restart smb nmb samba共享已开启,现在去windows上测试

此时登陆进去,可以看到有文件存在。若要想登陆smb2,就要在windows系统中删除记录后登陆。


此时就可以登陆smb2了。

SAMBA服务器全局配置:
config file=/etc/samba/conf.d/%U 用户独立的配置文件
Log file=/var/log/samba/log.%m 不同客户机采用不同日志
log level = 2 日志级别,默认为0,不记录日志
max log size=50 日志文件达到50K,将轮循rotate,单位KB
Security三种认证方式:
share:匿名(CentOS7不再支持)
user:samba用户(采有linux用户,samba的独立口令)
domain:使用DC(DOMAIN CONTROLLER)认证
passdb backend = tdbsam 密码数据库格式
实现samba用户:包: samba-common-tools工具:smbpasswd pdbeditsamba用户须是Linux用户,建议使用/sbin/nologin

实验:通过samba实现文件共享
[root@200 data]#mkdir share1
[root@200 data]#mkdir share2
[root@200 data]#vim /etc/samba/smb.conf
[tools]
comment = software tools
path = /data/share1/
[root@200 data]#systemctl restart smb

登陆smb1、2、3均可以看到如下信息:

inotify和rsync实现实时同步
实现实时同步:1、要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 2、发现目录中数据产生变化,就利用rsync服务推送到备份服务器上
inotify+rsync 方式实现数据同步 使用方式:A:inotify 对同步数据目录信息的监控 B:rsync 完成对数据的同步 C:利用脚本进行结合
inotify:异步的文件系统事件监控机制,利用事件驱动机制,而无须通过诸如cron等的轮询机制来获取事件,linux内核从2.6.13起支持 inotify,通过inotify可以监控文件系统中添加、删除,修改、移动等各种事件
参考文档:https://github.com/rvoicilas/inotify-tools/wiki
Inotify-tools包主要文件: 基于epel源
inotifywait: 在被监控的文件或目录上等待特定文件系统事件(open close delete等)发生,常用于实时同步的目录监控
inotifywatch:收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计
inotifywait命令常见选项
-m, --monitor 始终保持事件监听 -d, --daemon 以守护进程方式执行,和-m相似,配合-o使用 -r, --recursive 递归监控目录数据信息变化 -q, --quiet 输出少量事件信息 --timefmt <fmt> 指定时间输出格式 --format <fmt> 指定的输出格式;即实际监控输出内容 -e 指定监听指定的事件,如果省略,表示所有事件都进行监听 --exclude <pattern> 指定排除文件或目录,使用扩展的正则表达式匹配的模式实现 --excludei <pattern> 和exclude相似,不区分大小写 -o, --outfile <file>打印事件到文件中,相当于标准正确输出 -s, --syslogOutput 发送错误到syslog相当于标准错误输出

防火墙
主机防火墙:服务范围为当前主机 网络防火墙:服务范围为防火墙一侧的局域网 硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件: 实现,如:Checkpoint,NetScreen 软件防火墙:运行于通用硬件平台之上的防火墙的应用软件 网络层防火墙:OSI模型下四层 优点:对用户来说透明,处理速度快且易于维护 缺点:无法检查应用层数据,如病毒等
应用层防火墙/代理服务器:代理网关,OSI模型七层

Netfilter组件
内核空间,集成在linux内核中 扩展各种网络服务的结构化底层框架
内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则
由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上
三种报文流向:
流入本机:PREROUTING --> INPUT-->用户空间进程
流出本机:用户空间进程 -->OUTPUT--> POSTROUTING
转发:PREROUTING --> FORWARD --> POSTROUTING
iptables的组成? iptables由五个表和五个链以及一些规则组成
五个表table:filter、nat、mangle、raw、security
filter表:过滤规则表,根据预定义的规则过滤符合条件的数据包
nat表:network address translation 地址转换规则表
mangle:修改数据标记位规则表
raw:关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现优先级由高到低的顺序为:security -->raw-->mangle-->nat-->filter
五个内置链chain 一、INPUT、 二、OUTPUT 三、FORWARD 四、PREROUTING 五、POSTROUTING

iptables规则:
匹配条件:默认为与条件,同时满足
基本匹配:IP,端口,TCP的Flags(SYN,ACK等)
扩展匹配:通过复杂高级功能匹配
处理动作:称为target,跳转目标
内建处理动作:ACCEPT,DROP,REJECT,SNAT,DNATMASQUERADE,MARK,LOG...
自定义处理动作:自定义chain,利用分类管理复杂情形
规则要添加在链上,才生效;添加在自定义上不会自动生效
Filter表中INPUT规则:
iptables -t filter -A INPUT -s 192.168.141.1 -j DROP

iptables命令:
-t:table: raw mangle nat [filter]默认
SUBCOMMAND:
1、链管理: -N: new 自定义一条新的规则链 -X: delete 删除自定义的空的规则链
-P:policy 设置默认策略:ACCEPT:接受 DROP:丢弃 -E:重命名自定义链
2、查看:-L: list, -n:以数字格式显示地址和端口号 -v:详细信息
3、规则管理:-A : append 追加 -I:insert 插入, -D:delete 删除 -F:flush 清空指定规则链 -R:replace 替换指定链上的规则编号 -Z: zero :置零
tcp协议的扩展选项
--syn:用于匹配第一次握手
相当于:--tcp-flags SYN,ACK,FIN,RST SYN

扩展:REJECT:--reject-with:icmp-port-unreachable默认
1、RETURN:返回调用链 2、REDIRECT:端口重定向 3、LOG:记录日志,dmesg 4、MARK:做防火墙标记 5、DNAT:目标地址转换 6、SNAT:源地址转换 7、MASQUERADE:地址
一、显式扩展:必须显式地指明使用的扩展模块进行的扩展
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.10 -p tcp -m multiport --dport20:22,80 -j ACCEPT
二、iprange扩展:指明连续的(但一般不是整个网络)ip地址范围
iptables -A INPUT -d 172.16.1.100 -p tcp --dport 80 -m iprange --srcrange 172.16.1.5-172.16.1.10 -j DROP
三、mac扩展:指明源MAC地址 适用于:PREROUTING, FORWARD,INPUT chains
iptables -A INPUT -s 172.16.0.100 -m mac --mac-source00:50:56:12:34:56 -j ACCEPT
iptables -A INPUT -s 172.16.0.100 -j REJECT
四、tring扩展:对报文中的应用层数据做字符串模式匹配检测
iptables -A OUTPUT -s 172.16.100.10 -d 0/0 -p tcp --sport 80 -m string --algo bm --string “google" -j REJECT
五、time扩展:根据将报文到达的时间与指定的时间范围进行匹配
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.10 -p tcp --dport 80 -m time --timestart 14:30 --timestop 18:30 --weekdays Sat,Sun --kerneltz -j DROP
六、connlimit扩展:根据每客户端IP做并发连接数数量匹配,可防止CC(Challenge Collapsar挑战黑洞)***
iptables -A INPUT -d 172.16.100.10 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
七、limit扩展:基于收发报文的速率做匹配
iptables -I INPUT -d 172.16.100.10 -p icmp --icmp-type 8 -m limit --limit10/minute --limit-burst 5 -j ACCEPT
iptables -I INPUT 2 -p icmp -j REJECT

查看链:[root@centos7 ~]#iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 25891 packets, 21M bytes)
pkts bytes target prot opt in out source destination

Chain INPUT (policy ACCEPT 25692 packets, 21M bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 2246 packets, 211K bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 2275 packets, 215K bytes)
pkts bytes target prot opt in out source destination
0 0 CHECKSUM udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68 CHECKSUM fill

[root@centos7 ~]#iptables -A INPUT -s 192.168.141.253 -j DROP
[root@centos6 ~]#ping 192.168.141.200
PING 192.168.141.200 (192.168.141.200) 56(84) bytes of data.
64 bytes from 192.168.141.200: icmp_seq=1 ttl=64 time=2.47 ms
64 bytes from 192.168.141.200: icmp_seq=2 ttl=64 time=0.320 ms
| centos6 会是这种状态,因为在200主机被拒绝了。

[root@centos7 ~]#iptables -A INPUT -s 192.168.141.1 -j ACCEPT 可以接受本机的windows的访问。
[root@centos7 ~]#iptables -A INPUT -s 192.168.141.253 -j ACCEPT
[root@centos7 ~]#iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 77 packets, 18048 bytes)
num pkts bytes target prot opt in out source destination
1 378 27126 ACCEPT all -- 192.168.141.1 0.0.0.0/0
2 0 0 ACCEPT all -- 192.168.141.253 0.0.0.0/0

[root@centos7 ~]#iptables -D INPUT 2 -D是删除记录。
[root@centos7 ~]#iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 24 packets, 4665 bytes)
num pkts bytes target prot opt in out source destination
1 428 30890 ACCEPT all -- 192.168.141.1 0.0.0.0/0

[root@centos7 ~]#iptables -I INPUT 2 -s 192.168.141.150 -j REJECT -I 是插入,2 是第条数据之前
[root@centos7 ~]#iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 8 packets, 2365 bytes)
num pkts bytes target prot opt in out source destination
1 1111 82147 ACCEPT all -- 192.168.141.1 0.0.0.0/0
2 0 0 REJECT all -- 192.168.141.150 0.0.0.0/0 reject-with icmp-port-unreachable
3 0 0 REJECT all -- 192.168.141.0/24 0.0.0.0/0 reject-with icmp-port-unreachable

[root@centos7 ~]#iptables -R INPUT 2 -s 192.168.141.100 -j ACCEPT -R是替换。
[root@centos7 ~]#iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 6 packets, 2264 bytes)
num pkts bytes target prot opt in out source destination
1 1249 91632 ACCEPT all -- 192.168.141.1 0.0.0.0/0
2 0 0 ACCEPT all -- 192.168.141.100 0.0.0.0/0
3 0 0 REJECT all -- 192.168.141.0/24 0.0.0.0/0

原文地址:https://blog.51cto.com/14128387/2362133

时间: 2024-10-06 16:57:22

20190308 samba服务、inotify和rsync实现实时同步、防火墙的相关文章

inotify和rsync实现实时同步

inotify和rsync实现实时同步首先先用两台主机实现rsyncc同步服务端:[[email protected] data 14:20:35]#echo "rsyncuser:123" > /etc/rsync.pass 生成验证文件[[email protected] data 14:21:13]#chmod 600 /etc/rsync.pass [[email protected] data 14:21:19]#mkdir /backup 准备目录[[email pr

centos7 inotify与rsync实现实时同步服务搭建

**需要准备两台虚拟机 一台rsync的客户端 192.168.1.14 一台rsync的服务器 192.168.1.12 inotify的服务器配置 yum install inotify-tools 192.168.1.14由于inotify是内核级别的应用,我们不能直接操作内核 需要借用一些关于inotify的相关工具 inotifywa /data/ 监控此目录 一次性操作,复制ssh渠道 在复制渠道/data目录下进行增删改查的操作 观察监控窗口的变化 inotifywait -mrq

rsync+inotify 实现服务器文件实时同步

rsync+inotify 实现服务器文件实时同步 操作系统:CentOS 6.X 源服务器:192.168.80.132 目标服务器:192.168.80.128 目的:把源服务器上/data/app目录实时同步到目标服务器的/data/app下 具体操作: 第一部分:在目标服务器192.168.80.128上操作 一.在目标服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #SELINUXTYPE=targ

Rsync + sersync 实时同步备份

Rsync + sersync 实时同步备份 一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 在本地服务器上搭建 Sersync  Server  检测本地的ftp目录变化,实时同步到云机上 二.Rsync编译安装 1.检查本机是否存在 [[email protected]云机 ~]# rpm -qa  rsync rsync-3.0.6-12

rsync+inotify-tools实时同步模式

关于rsync+inotify-tools实时同步模式 介绍同步模式 左边是原来的,一般的rsync的cs架构(client & server)同步模式,数据源服务器上安装rsync server,由server统一控制可以传输的数据的内容,例如权限,目录,文件数等,发起传输的是rsync client,即看起来就是将数据从源服务器拉取到备份服务器. 右边的是加上inotify-tools的同步模式,在数据源服务器上安装rsync client,在备份源服务器上安装rsync server,也是

linux rsync远程同步+sersync+rsync实现实时同步

rsync是什么 rsync全称Remote Sync ,远程同步,是Linux/UNIX系统下的文件同步和数据传输工具,数据备份,它采用了"rsync算法"使一个客户机和远程文件服务器之间的文件同步. 作用 可以将同一个服务器的数据从一个分区备份到另一个分区,也可以将本地系统的数据通过网络传输方式备份到任何一个远程主机上: 优点 rsync可以在中断后恢复传输 rsync的功能特性 可以镜像保存整个目录树和文件系统:可以增量同步数据,文件传输效率高,因而同步时间很短:可以保持原文件的

rsync nfs 实时同步,结合实战

目录 rsync nfs 实时同步,实战 一.部署rsync服务端(backup) 二.部署rsync客户端(nfs,web01) 三.部署web代码(web01) 四.NFS服务端部署(nfs) 五.部署nfs备胎服务端(nfs) 六.部署nfs的客户端web01(web01) 七.backup实时同步nfs的data目录 八.定时任务并发邮件 九.NFS服务端部署sersync实时同步(nfs) 十.切换备胎backup(web01) rsync nfs 实时同步,实战 一.部署rsync服

rsync+inotify-tools实时同步 步骤

需要在客户端和服务端安装rsync,有些发行版的linux系统是默认安装好的,可用:rpm -qa rsync进行查询 一.服务器端配置(192.168.1.1): 1. 默认rsync是没有配置文件的需要用户自行设置 创建rsync配置文件:vim /etc/rsyncd.conf uid = root           #运行rsync守护进程的用户 gid = root           #运行rsync守护进程的组 use chroot = no      #不使用chroot ma

利用unison+inotify 实现数据双向实时同步

利用unison+inotify 实现数据双向实时同步 环境:Centos 6.5 64位 server1 :192.168.1.201 server2 :192.168.1.250 需求软件:ocaml unison inotify 我这里全是使用yum安装的,若是喜欢使用源码编译安装的可以官网下载源码包. yum install ocaml unison inotify 第一步:保证两台服务器之间可以通过ssh无密码访问,为了安全,需要创建一个普通用户: 两边执行的步骤一样: useradd