Jira使用LDAP,添加完域控中的用户后,发现部分人可以登录,部分人登录的时候提示账号密码不匹配,
后台登录jira用户目录中测试的时候,在最后一部中提示:可认证测试用户 : 失败
查找原因:
LDAP验证实际上是拿用户账户在域控上登录,所以如果要在允许登录的计算机列表中,把所有域控的名字加上去。
IKBC键盘的Win键失灵,按了没反应
之前不小心有东西落键盘上压了一下,等收拾完准备锁定电脑外出时,发现 WIn + L 没反应,
单独按win键也无效,先关机,以为回来后万能的重启法就可以应对,
结果回来后,依然无效,差点就要准备重装系统了,
找了一圈,在逼乎的评论里才看到IKBC的独有操作:
- 锁定的方法 fn + 左win
- 解锁的方法 fn + 右win
WPF:Datagrid查询速度优化
1.ScrollViewer.CanContentScroll
当设定 ScrollViewer.CanContentScroll="False"时,将禁用虚拟化
仅适用于:Item 数量比较少的情况。
"ScrollViewer currently allows two scrolling modes: smooth pixel-by-pixel scrolling (CanContentScroll = false) or discrete item-by-item scrolling (CanContentScroll = true). Currently WPF supports UI virtualization only when scrolling by item. Pixel-based scrolling is also called “physical scrolling” and item-based scrolling is also called “logical scrolling”."
wpf - 为什么将ScrollViewer.CanContentScroll设置为false会禁用虚拟化
ScrollViewer.VerticalScrollBarVisibility="Visible"
对比才发现 参数的顺序居然也有影响,上面的
内网穿透+远程控制:frp+mstsc+stcp
**注意,下文种的token、sk、各种端口,用户名必须要自行替换
注意,下文种的token、sk、各种端口,用户名必须要自行替换
注意,下文种的token、sk、各种端口,用户名必须要自行替换**
购买,搭建公网vps
略,服务器系统使用的是centos 7
服务端安装frp
进入vps后:
官网下载frp
在:https://github.com/fatedier/frp/releases上下载相应版本,这里使用的是0.36.2:
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
解压frp压缩包
tar -xzvf frp_0.36.2_linux_amd64.tar.gz
更改文件夹名并进入文件夹
mv frp_0.36.2_linux_amd64 frp
cd frp
删除无用文件
rm -rf frpc*
编辑配置文件
vi frps.ini
修改配置文件
bind_port = 7000
authentication_method = token
token = 123456789
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
bind_port:客户端和服务端连接的端口,在之后配置客户端时会用上,一般默认即可。
dashboard_port:服务端仪表板的端口,一般默认即可。如果按默认设置为 7500,则可通过 7500 端口访问仪表盘(例如 服务器
IP:7500),查看 frp 状态。 token:客户端和服务端连接的口令,请自行设置。 dashboard_user /
dashboard_pwd:仪表盘用户名和密码,请自行设置。
运行frps
./frps -c frps.ini
创建后台启动模版
vi /etc/systemd/system/frps.service
粘贴入:
可能需要修改frp路径:
[Unit]
Description=frps
After=network.target
[Service]
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
[Install]
WantedBy=multi-user.target
启动测试
systemctl start frps.service
查看启动状态
systemctl status frps.service
开机自启
systemctl enable frps.service
Windows受控端设置(stcp)
下载frp的Windows对应客户端
在:https://github.com/fatedier/frp/releases上下载相应版本,这里使用的是0.36.2:
https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_windows_amd64.zip
Windows xp不支持新版go,xp下必须下载老版本的frp,如 0.20.0版:
https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_windows_386.zip
设置修改受控端配置文件:frpc.ini
解压后,frpc相关是客户端文件,是下面要用到的,frps属于公网上服务端用的(可以删除),
为了方便后面引用,这里直接创建一个frpc.ini的副本:frpc-stcp.ini
[common]
server_addr = 公网服务器ip
server_port = 7100
token=123456789
[secret_rdp]
type = stcp
sk = 987654321
local_ip = 127.0.0.1
local_port = 3389
受控端中frpc读取配置文件:
- “[secret_rdp]”服务中,以stcp模式,把受控端本地的3389转发到服务器的frps上。(此处建议修改掉)
- "sk"是stcp服务的密钥,两端中的"sk"不匹配,不允许连接。
- 受控端stcp模式以服务名的形式匹配连接,不需要映射到公网IP的端口上,也不再需要remote_port。
创建个受控端bat批处理
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd D:\frp
frpc -c frpc_stcp.ini
exit
复制粘贴上述内容到记事本,然后修改frpc.exe所在路径,另存为:frp-stcp.bat ,文件类型修改为:所有文件,
双击运行frp-stcp.bat
如果属于长期使用,也可以创建个frp-stcp.bat 的计划任务,或直接在“启动”文件夹中创建个快捷方式。
可能遇到的问题
配置完后,无法连接上被控端
如开启frpc后,连接时报错:No connection could be made because the target machine actively refused it.
此时,1.先确认被控端是否开启 允许远程协助连接这台计算机
2.确认远程连接的端口是否有改动,或是否需要改动,可能需要用到下面这个RDPWrap-v1.6.2.zip
https://github.com/stascorp/rdpwrap/releases
右键 install.bat - 使用管理员身份运行。(一定要使用管理员身份运行!)
最后提示 Successfully installed 即可
然后双击打开 RDPConf.exe,检查服务运行状态以及端口号是否正确。
查看远程端口,或直接修改掉远程端口,修改完后重启下电脑。
然后再开启frpc。
Windows操作控制端设置
下载解压frp客户端
同上,下载frp的Windows对应客户端
修改操控端frpc.ini
同样为了方便后面引用,这里直接创建一个frpc.ini的副本:frpc-stcp.ini
[common]
server_addr = 公网服务器ip
server_port = 7100
token=123456789
[secret_rdp_visitor]
type = stcp
role = visitor
sk = 987654321
server_name = secret_rdp
bind_addr = 127.0.0.1
bind_port = 12345
控制端中的配置:
- [secret_rdp_visitor]服务中"role=visitor"是指定本机的服务为"访问者"的stcp模式。
- "sk"密钥。
- 控制端中的“server_name”是指定要连接的受控端中的服务名,服务名必须一致。
- 控制端中的"bind_addr"必须是"127.0.0.1"。
- "bind_addr"、"bind_port"这两个参数是指本地端口。指定本地frpc转发要通过frps和受控端连接的本地端口。
创建个操控端bat批处理
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd D:\frp
frpc -c frpc_stcp.ini
exit
复制粘贴上述内容到记事本,然后修改frpc.exe所在路径,另存为:frp-stcp.bat ,文件类型修改为:所有文件,
双击运行frp-stcp.bat
如果属于长期使用,也可以创建个frp-stcp.bat 的计划任务,或直接在“启动”文件夹中创建个快捷方式。
操控端使用window自带远程桌面开始远程控制
- win + r 键调出运行窗口,输入:mstsc,回车确认
- 在打开的远程桌面窗口中输入ip+端口: 127.0.0.1:12345
- 如果是自己的常用电脑,可以勾选“允许我保存凭据”,根据需要设置其他选项。
- 另存为:xxx.rdp
- 以后可以直接双击xxx.rdp开启远程桌面,并且省去输入计算机、用户等信息。
Mac端操控设置
MAC 需要使用 darwin_amd64 结尾的版本,我使用的是 frp_0.36.2_darwin_amd64.tar.gz
https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_darwin_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_darwin_amd64.tar.gz
tar -xzvf frp_0.36.2_darwin_amd64.tar.gz
mv frp_0.36.2_darwin_amd64 frp
cd frp
修改frpc.ini,参见上面的Windows操作控制端设置
配置个批处理用于开机自启
此处最好在“终端”下使用vi命令创建,之前使用Mac自带的文本编辑创建的sh文件运行时总报错。
在FRP文件夹下新建frpc.command文件
sudo vim frpc.command
写入frpc.command配置
#!/bin/bash
cd /Users/xxx/frp
./frpc -c ./frpc.ini &
exit
同时要修改frpc.command的权限,否则会提示运行报错。
chmod 755 ./frpc.command
配置开机启动
- 系统偏好设置 - 用户和群组 - 当前或准备设置的用户 - 底部解锁 - 在登录项种加入刚才的frpc.command
- 同时为了终端-偏好设置-描述文件-shell-当 shell 退出时 关闭。
安装微软的RDP远程桌面
有美区账号可以直接下载,没有可以去下载Beta版:https://install.appcenter.ms/orgs/rdmacios-k2vy/apps/microsoft-remote-desktop-for-mac/distribution_groups/all-users-of-microsoft-remote-desktop-for-mac
下载完直接安装,后和Win端一样做相应配置即可。
- 开启frpc后,在服务器地址栏输入:127.0.0.1:12345
- 输入受控端的用户名及密码进行连接
附注:
流程
- frps启动,等着两端frpc的stcp转发配置。
- 受控端frpc启动,读取配置文件:服务名[secret_rdp]以stcp模式,将本地的3389端口转发到frps上。
- 控制端frpc读取配置文件和frps连接。
- 控制端frpc的配置指定"sk"密钥和受控端的服务名,要frps把控制端本地12345端口和受控端的[secret_rdp]服务绑定上。
- 控制端访问本地12345端口,请求被控制端的frpc转发到frps上,frps再将请求转发到受控端的[secret_rdp]服务上。
- 受控端[secret_rdp]服务里也指明了受控端哪些端口来接收响应处理被转发请求。
控制多台不同的受控端
- 修改受控端的服务器名([secret_rdp] 不同受控端,修改为不同的实例名)
- 同时参考上面Window操控端设置,修改操控端的端口号及server_name
- rdp远程桌面里:不同的受控端对应不同的端口号
centos-fail2ban防范用户密码被暴力破解,密码错误x次,自动屏蔽IP
学习于:
起因
巡查站点时,发现主机CPU长时间占用100%,查日志几小时内xxxx次错误登录信息:
There were xxxx failed login attempts since the last successful login.
找日志参考资料:
Linux系统的日志,都保存在/var/log目录下:
/var/log/boot.log:记录了系统在开机引导过程中(开机自检过程显示在屏幕上)发生的事件
/var/log/lastlog:记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages:记录Linux操作系统常见的系统和服务错误信息
/var/log/secure:Linux系统安全日志,记录用户和工作组变化情况、用户登陆认证情况
/var/log/btmp:记录系统登陆失败的用户、时间以及远程IP地址
/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件
/var/log/syslog或/var/log/messages 存储所有的全局系统活动数据,包括开机信息。基于 Debian 的系统如 Ubuntu 在 /var/log/syslog中存储,而基于RedHat的系统如RHEL或CentOS 则在/var/log/messages 中存储。
/var/log/auth.log或/var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在/var/log/auth.log 中存储认证信息,而RHEL或CentOS 则在/var/log/secure 中存储。
本次需要查看的是:/var/log/btmp
查看发起攻击的IP和攻击次数
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" = "$1;}'
安装fail2ban
如果你用证书登录,那啥都不用安装。密码登录的,还是安全第一。
有两个比较常用的软件,可以安装在服务器上:
- fail2ban(支持多种协议,登录失败N次后拉黑IP)
- denyhosts(支持SSH,自动屏蔽非法IP连接)。
两款软件的对比参考:https://serverfault.com/questions/128962/denyhosts-vs-fail2ban-vs-iptables-best-way-to-prevent-brute-force-logons。fail2ban更全面,那就安装fail2ban。wiki在此:https://en.wikipedia.org/wiki/Fail2ban。
fail2ban安装配置教程:
https://linux.cn/article-5067-1.html
http://www.cnblogs.com/jasmine-Jobs/p/5927968.html
CentOS7中安装:
yum install fail2ban
修改规则:/etc/fail2ban/jail.local
[DEFAULT]
# 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
# 用于指定哪些地址可以忽略 fail2ban 防御
ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24
# 客户端主机被禁止的时长(秒)
bantime = 86400
# 客户端主机被禁止前允许失败的次数
maxretry = 5
# 查找失败次数的时长(秒)
findtime = 600
mta = sendmail
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
# Debian 系的发行版
logpath = /var/log/auth.log
# Red Hat 系的发行版
logpath = /var/log/secure
# ssh 服务的最大尝试次数
maxretry = 3
按以上规则,fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在24小时内一直被禁止访问 SSH 服务。这个事件也会通过sendemail发送邮件通知。
重启fail2ban服务,测试是否可用
重启:systemctl restart fail2ban
测试服务可用性:fail2ban-client ping
如果有响应:Server replied: pong,表示成功。
测试暴力破解防护是否有效:用错误的密码来用SSH连接到服务器模拟一个暴力破解攻击
查看fail2ban日志:tail -f /var/log/fail2ban.log
查看fail2ban当前活动的监狱列表:
fail2ban-client status
查看fail2ban指定监狱状态(例如ssh-iptables):
fail2ban-client status ssh-iptables
设置 Fail2ban 自动启动
systemctl enable fail2ban