标签归档:linux

可以用iptables防CC攻击

connlimit
–connlimit-above n 限制并发个数

例子
iptables -I INPUT -p tcp –syn –dport 80 -m connlimit –connlimit-above 100 -j REJECT
limit

iptables -A INPUT -m limit –limit 3/hour

–limit-burst默认值为5
iptables -A INPUT -p icmp -m limit –limit 1/m –limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP

linux服务器snat跟dnat规则

snat

netstat -luntp|grep 80

curl http://192.168.1.101/idc.com/
vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p

sysc

sysctl -a|grep ip_forward

iptables -t nat -A POSTROUTING -s 10.10.177.30/24 -j SNAT –to 121.121.166.121

iptables -t nat -L

另一台

ls

netstat -rn

cat /etc/sysconfig/network

也可以这样加

route add 0.0.0.0 gw 本机IP
—————————————–
dnat

curl http://192.168.1.101/idc.com/

iptables -t nat -A PREROUTING -d 121.121.166.121 -p tcp –dport 80 -j DNAT –to 本机ip:80

iptables -t nat -L

linux安全设置

限制root权限
echo “tty1” > /etc/securetty
chmod 700 /root

密码策略
echo “Passwords expire every 180 days”
perl -npe ‘s/PASS_MAX_DAYS\s+99999/PASS_MAX_DAYS 180/’ -i /etc/login.defs
echo “Passwords may only be changed once a day”
perl -npe ‘s/PASS_MIN_DAYS\s+0/PASS_MIN_DAYS 1/g’ -i /etc/login.defs

用sha512保护密码而不用md5
authconfig –passalgo=sha512 –update

umask限制
更改umask为077
perl -npe ‘s/umask\s+0\d2/umask 077/g’ -i /etc/bashrc
perl -npe ‘s/umask\s+0\d2/umask 077/g’ -i /etc/csh.cshrc

回收闲置用户
echo “Idle users will be removed after 15 minutes”
echo “readonly TMOUT=900” >> /etc/profile.d/os-security.sh
echo “readonly HISTFILE” >> /etc/profile.d/os-security.sh
chmod +x /etc/profile.d/os-security.sh

删除系统特殊的的用户和组
userdel username
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher

以上所删除用户为系统默认创建,但是在常用服务器中基本不使用的一些帐号,但是这些帐号常被黑客利用和攻击服务器。
groupdel username
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip

两台服务器测试iptables限制访问

在一台服务器上用ab做压力测试

ab -n 100000 -c 40 http://192.168.1.16/index.php

另一台服务器上用iptables做拦截

iptables -F

netstat -an | grep 80 | grep 192.168.1.16 | grep EST -c

iptables -I INPUT -p tcp –dport 80 -s 192.168.1.16 -m connlimit –connlimit-above 10 -j REJECT
192.168.1.16 是目标ip     connlimit 限制 –connlimit-above 10 限制最大连接10个

什么是iptables?

什么是iptables:常见于linux系统下的应用层防火墙工具。常见人员:系统管理人员、网络工程人员、安全人员等等
如果在centos7中iptables默认是没有安装的
你可以用rpm -qa | grep iptables来查看,centos7默认防火墙是firewalld,iptables应该是没有安装,你可以用yum install iptables -y来安装。

linux系统上传 rz sz 下载 工具安装

linux系统上传 下载 工具安装
rz / sz命令很方便的帮上传文件到服务器下载文件到本地。如果rz sz 安装过的请跳过些文

第一种方法 编译安装

root 登陆后:

进入下载目录
cd /root

下载文件包
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

解压文件包
tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20

编译并安装
./configure && make && make install

安装完成后默认把lrzsz安装到了/usr/local/bin/目录下,现在创建软链接,并命名为rz/sz:

进入bin
cd /usr/bin

ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz

第二种方法 yum安装

root 登陆后:
yum install -y lrzsz

sz命令发送文件到本地:# sz filename
rz命令本地上传文件到服务器:# rz

linux上nginx服务器如果想隐藏版本号

linux上nginx服务器如果想隐藏版本号
找到nginx的配置文件

vi nginx.conf
在http 加上 server_tokens off;
http {
…省略配置内容
server_tokens off; ->即可隐藏版本号
…省略配置内容
}

然后reload一下 nginx
nginx -s reload

如果centos7 则可以重启nginx
systemctl restart nginx.service

如果不可以的话可以找到fastcgi.conf fastcgi_params
vi fastcgi.conf

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

vi fastcgi_params

把nginx/$nginx_version 改成 apache 就可以了

linux密钥登录-SSH密钥登录-用密钥登录linux服务器

linux密钥登录-SSH密钥登录-用密钥登录linux服务器

如果想让电脑用ssh密钥登录这种更安全的方试的话可以照些方法操作

在ssh客户端建好密钥 连后连接到linux服务器

进入root目录

然后进入.ssh隐藏目录
[root@localhost ~]# cd /root/.ssh/

然后上传密钥到此目录
[root@localhost .ssh]# rz
rz waiting to receive.

把mename.bub密钥写入authorized_keys
[root@localhost .ssh]# cat mename.pub >> authorized_keys

更改密钥666权限
[root@localhost .ssh]# chmod 600 authorized_keys

查看当前目录
[root@localhost .ssh]# ls
authorized_keys known_hosts mename.pub

然后找到/etc/ssh/sshd_config ,把RSAAuthentication和PubkeyAuthentication两行前面的#注释去掉。
# vi /etc/ssh/sshd_config
PasswordAuthentication no //禁止使用基于口令认证的方式登陆
PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆

最后重启SSHD服务
# /etc/init.d/sshd reload
Debian/Ubuntu执行:/etc/init.d/ssh restart
CentOS执行:/etc/init.d/sshd restart
CentOS7执行systemctl restart sshd