分类
所有文章

总结了些线上服务器上一些安全配置

线上服务器时不时会遇到些骚扰,因此要对服务器默认配置进行些修改。

#防止同步包洪水(Sync Flood)
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
#Ping洪水攻击
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#防止各种端口扫描
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j 
#增加未完成连接队列q0的最大长度
echo 1280 >> /proc/sys/net/ipv4/tcp_max_syn_backlog
#启动SYN_cookie
echo 1 >> /proc/sys/net/ipv4/tcp_syncookies
#禁止imcp
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
#限制IP碎片
iptables -A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
//禁止imcp
iptables -A INPUT --proto icmp -j DROP
iptables -A INPUT --proto udp  -j DROP
echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf 
echo "net.ipv6.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf 
echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf 
echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf 
sysctl -p
#ICMP timestamp 请求响应漏洞
iptables -A INPUT -p ICMP --icmp-type timestamp-request -j DROP
iptables -A INPUT -p ICMP --icmp-type timestamp-reply -j DROP
iptables -A INPUT -p ICMP --icmp-type time-exceeded -j DROP
iptables -A OUTPUT -p ICMP --icmp-type time-exceeded -j DROP

#禁止邮件
iptables -A OUTPUT -p tcp -m multiport --dport 24,25,50,57,105,106,109,110,143,158,209,218,220,465,587 -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -p tcp -m multiport --dport 993,995,1109,24554,60177,60179 -j REJECT --reject-with tcp-reset
iptables -A OUTPUT -p tcp -m multiport --dport 24,25,50,57,105,106,109,110,143,158,209,218,220,465,587 -j DROP
iptables -A OUTPUT -p tcp -m multiport --dport 993,995,1109,24554,60177,60179 -j DROP
service iptables save
service iptables restart
分类
所有文章

美国500强企业域名分析

1.首字母分析

分析结果如下:

map[2:1 3:1 5:1 a:57 b:22 c:50 d:25 e:23 f:18 g:17 h:21 i:11 j:12 k:9 l:21 m:25 n:22 o:11 p:29 q:4 r:15 s:31 t:26 u:15 v:8 w:20 x:3 y:1 z:1]

可以看见a和c作为首字母的域名比较多

分类
所有文章

epic公布了unreal5引擎

虽然Roadmap遥遥无期,但是还是对大版本很有期待,希望以后源码编译能快些。

分类
所有文章

修改openssh连接时显示的版本信息

通过nc ip 22

可以看到

SSH-x.0-OpenSSH_x.xpx

这样就会泄露了主机信息

查找sshd的位置
#whereis sshd

/////备份sshd
#cp /usr/sbin/sshd /usr/sbin/sshd.bak

////搜索版本信息
#strings  /usr/sbin/sshd | grep OpenSSH
OpenSSH_5.9p1
OpenSSH_5.9
OpenSSH_2.3.0*
OpenSSH_2.3.*
OpenSSH_2.5.3*
OpenSSH_3.*
OpenSSH_4*
OpenSSH*
OpenSSH-2.0*,OpenSSH-2.1*,OpenSSH_2.1*,OpenSSH_2.2*
OpenSSH_2.5.0p1*,OpenSSH_2.5.1p1*
OpenSSH_2.5.0*,OpenSSH_2.5.1*,OpenSSH_2.5.2*
OpenSSH_2.*,OpenSSH_3.0*,OpenSSH_3.1*

//替换版本信息
sed -i ‘s/OpenSSH_7.5p1/OpenSSH_7.9p1/g’ /usr/sbin/sshd

这里被替换的内容大小相等就可以

例如:

OpenSSH_7.5p1

OpenSSH_7.9p1

abcdabcdabcd1

//重启sshd
#service sshd restart

ssh   -V   //显示版本号

分类
所有文章 编程

Linux使用iptables和ipset屏蔽指定国家IP访问的方法

本文为转载自互联网

ipset是iptables的一个扩展,可以创建IP集,设置iptables规则更加灵活、高效和美观。基于这种特性,在linux中可以禁止某个国家的IP访问,也可以设置智能中国IP访问的白名单。

第一步

获取国家IP地址段,下载地址:http://www.ipdeny.com/ipblocks/ 。

第二步

安装ipset扩展

#Debian/Ubuntu系统
apt-get -y install ipset

#CentOS系统
yum -y install ipset

第三步

创建规则,例如中国IP的集合。

#创建一个名为cnip的规则
ipset -N cnip hash:net
#下载国家IP段
wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone
#将IP段添加到cnip规则中
for i in $(cat /root/cn.zone ); do ipset -A cnip $i; done

第四步

屏蔽中国IP访问(注意如果是从中国SSH到服务器,以下操作会导致服务器无法连接,谨慎操作!)

iptables -I INPUT -p tcp -m set --match-set cnip src -j DROP

解除屏蔽

iptables -D INPUT -p tcp -m set --match-set cnip src -j DROP

分类
所有文章

攻击隐藏在CDN后的站点

思路如下:

1.按站点可能的国家对这些国家所有的ip地址进行80端口扫描

2.过滤出80、443端口开发的ip地址

3.构造http请求头,host内容上填写目标站点的域名地址

4.以上述请求头分别通过http、https的方式访问80、443端口开发的ip地址,并抓取返回结果

5.对比各ip的返回结果与原站点返回结果,找出成功结果

防范:

1.在配置CDN时候,给cdn的请求头带上特殊字段,在服务器上区分改字段,过滤非CDN主机请求

2.采用非80、443等特殊端口进行加速

3.源站点只允许ipv6

分类
所有文章

“将改变未来IT世界的1 0种编程语言”

未来的事情也“未来的人”才知道。

千年后的人打脸不了千年前的人。

分类
所有文章

ROM解包

$ brotli -d system.new.dat.br
$ sdat2img system.transfer.list system.new.dat system.img

./simg2img system.img system.img.raw
mkdir my_mount_point
mount -t ext4 -o loop system.img.raw my_mount_point
apt install brotli
git clone https://github.com/xpirt/sdat2img.git

分类
所有文章

Proutes下使用51单片机实现计时器(含汇编和C语言代码)

初始化

暂停

清零

汇编代码

ORG 0000H
LJMP START 
ORG 000BH
LJMP TIMER0
ORG 0003H
LJMP ButtonStart
ORG 0013H
LJMP ButtonPause
ORG 0030H


START:MOV SP,#5FH
MOV TCON,#00H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA  ;MOV IE,#82H      ;不建议这种写法 以后改的话就要重新算
SETB ET0
SETB EX0
SETB EX1
SETB PX0  ;start 优先
SETB IT1      ;管脚的电平从高到低的负跳变有效
SETB IT0
MOV R4,#2
MOV R3,#0FFH  ;start pause flag
MOV R1,#00H
MOV R0,#00H
SETB TR0
MAIN:LCALL DISDP
SJMP MAIN

DISDP:MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A
MOV A,R1
MOVC A,@A+DPTR
ANL A,#7FH ;01111111
MOV P0,A
RET
ORG 0110H
TIMER0:PUSH ACC
PUSH PSW
CJNE R3,#00H,EXIT ;CPL 00 == 255 255EXIT
DJNZ R4,EXIT
MOV R4,#2
INC R0
CJNE R0,#0AH,EXIT
MOV R0,#00H 
INC R1
CJNE R1,#0AH,EXIT
MOV R1,#00H

EXIT:POP PSW
POP ACC
RETI

;ORG 0003H
ButtonStart:PUSH ACC
PUSH PSW
MOV A,R3
CPL A
MOV R3,A
MOV R0,#00H 
MOV R1,#00H
POP PSW
POP ACC
RETI

;ORG 0013H
ButtonPause:PUSH ACC
PUSH PSW
MOV A,R3
CPL A
MOV R3,A
POP PSW
POP ACC
RETI
 

TAB:DB  0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
    DB  80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END

c语言实现

#include<reg51.h>

const unsigned char LED_TAB[10] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0x0F8,0x80,0x90};
char runing;
int count;
char clear;
void main(){
    unsigned char i,j;
    TMOD=0x01;
    TCON=0x00;
    TH0=0x3c;
    TL0=0xb0;
    EA=1;
    ET0=1;
    EX0=1;
    EX1=1;
    PX0=1; //start 优先
    IT1=1;  //管脚的电平从高到低的负跳变有效
    IT0=1;
    TR0=1; 



    while(1){
        if(clear)
        {
            i=0;
            j=0;
            P0= (0x7f&LED_TAB[i]);
            P2= LED_TAB[j];
            clear=0;
        }
        if (!runing) continue;
        for(;count-2>=0;count-=2){  ///类似汇编里的disdp
            j++;
            if (j==10){
                i++;
                j=0;
            }
            P0= (0x7f&LED_TAB[i]);
            P2= LED_TAB[j];
            if (i==10) i=0;
        }   
    }

}

void a(void) interrupt 1
{
    TH1=0x3c;
    TL1=0xb0;
    if (runing==0) return;
    count++;
}



void buttonStart(void) interrupt 0
{
    runing=runing?0:1;
    count=0;
    clear=1;
}

void buttonPause(void) interrupt 2
{
    runing=runing?0:1;
}
分类
所有文章 编程

winows下golang编译流程

golang编译流程
go run xxx
go tool: no such tool “compile”
go tool: no such tool “asm”
go tool: no such tool “link”

go tool compile hello.go
go tool link hello.o

或者
C:\Go\pkg\tool\windows_amd64\compile.exe
C:\Go\pkg\tool\windows_amd64\link.exe hello.o

main.ctxt.loadlib()->loadlib->loadobjfile->ldobj->loadpe

ctxt.Out写文件

生成流程图

go-callvis github.com/syncthing/syncthing/cmd/syncthing | dot -Tpng -o syncthing.png