> Linux教程 > 系统运维 >

sed批量在行首和行尾添加内容

今天想只让国内的ip才能访问测试服务器,网上找了个国内路由表,地址是ipdeny,应该算是很全的了,不全的话大家请自己再去找,要封锁服务器的ssh端口,只让国内ip才能登录ssh,国外的ip无法登录,这样也保证了安全性.什么?你说为什么不直接只开放自己的ip,这个我也想,但公司没有牵专线,都是adsl,一重拨号外网ip就要变,所以只能让国内的ip访问.今天就简单说下怎么用sed批量在行首和行尾插入文件内容:
 1.先把路由表保存到文件里
 cat t.txt
 1.0.1.0/24
1.0.2.0/23
1.0.8.0/21
1.0.32.0/19
1.1.0.0/24
1.1.2.0/23
1.1.4.0/22
1.1.8.0/21
1.1.16.0/20
1.1.32.0/19
1.2.0.0/23
1.2.2.0/24
1.2.4.0/24
1.2.5.0/24
1.2.6.0/23
1.2.8.0/24
1.2.9.0/24
1.2.10.0/23
1.2.12.0/22
......
223.248.0.0/14
223.252.128.0/17
223.254.0.0/16
223.255.0.0/17
223.255.236.0/22
223.255.252.0/23
91.234.36.0/24

2.先批量在行首插入内容
sed 's/^/-A INPUT -s /' t.txt

3.批量在行尾插入内容
sed 's/$/ -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT' t.txt

4.最后再插入一条拒绝其他ip
echo "-A INPUT -p tcp -m tcp --dport 22 -j DROP" >> t.txt

5.在crontab里添加5分钟自动停iptables,避免把自己关在外面了
crontab -e
*/5 * * * * /etc/init.d/iptables stop

好了,这样就可以把t.txt里的内容整到iptables里了进行验证了.


(责任编辑:IT)