Hardening guide for VSFTPD on RHEL 5.4

The guide bellow instruct how to install, configure and secure FTP server called VSFTP, based on RHEL 5.4, enabling only SFTP access to the server.

Installation phase

1. Login to the server using Root account.
2. Install from the RHEL 5.4 DVD the following RPM:
rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm
3. Create a group for FTP users:
groupadd ftp-users
4. Create folder for the FTP:
mkdir -p /ftp
5. Change ownership and permissions on the FTP folder:
chown root:ftp-users /ftp
chmod 777 -R /ftp
6. Example of user creation:
useradd -g ftp-users -d /ftp user1
passwd user1
7. Edit using VI, the file /etc/vsftpd/vsftpd.conf
Change from:
anonymous_enable=YESTo:
anonymous_enable=NO

Change from:
xferlog_std_format=YESTo:
xferlog_std_format=NO

Change from:
#tftpd_banner=Welcome to blah FTP service.To:
tftpd_banner=Secure FTP server

Add the lines bellow:
local_root=/ftp
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
vsftpd_log_file=/var/log/vsftpd.log
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_ciphers=ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
rsa_cert_file=/etc/vsftpd/vsftpd.pem
8. Run the command bellow to create VSFTP SSL key:
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Note: The command above should written as one line.
9. Edit using VI, the file /etc/vsftpd/user_list and add members of the FTP-Users group to this list.
10. Run the command bellow to manually start the VSFTP service:
/etc/init.d/vsftpd start
11. Run the command bellow to configure the VSFTP to start at server startup:
chkconfig vsftpd on

原文 无法打开,在google cache 找到 http://security-24-7.com/hardening-guide-for-vsftpd-on-rhel-5-4/

svnlook: Expected FS format ‘2’; found format ‘4’

原来在fc12安装的svn是:
[deli@athena ~]$ rpm -qa|grep subversion
subversion-javahl-1.6.13-1.fc12.1.i686
subversion-libs-1.6.13-1.fc12.1.i686
subversion-1.6.13-1.fc12.1.i686

将旧的代码仓库数据移到新的服务器,装的是 rhel 5.4, svn手动安装 subversion-1.6.9。
可以 update,但提交代码时发现:

svnlook: Expected FS format ‘2’; found format ‘4’

也是同样的 svn版本,可能新的服务器是64位。只好先把svn降级了。

mv resp resp_bak.20110121
svnadmin create --pre-1.5-compatible resp
svnadmin dump resp_bak.20110121 |svnadmin load resp
svnserve -d -r /var/svn/web/resp

重新 commit, ok.

直接修改Market包显示支持收费软件,首页推荐软件

目前用MarketEnable,MarketAccess 之类的软件可以做到,但也有缺点:被修改apn,重启后无效。

大陆第三方ROM,一般都直接修改了电子市场包,观察一下安卓网自制的ROM,build.prop中都多了两行代码:

hiapk.vending.operator.name=T-Mobile
hiapk.vending.operator=310260

把运营商改为美国的。然后用

SystemProperties.get("hiapk.vending.operator.name");
SystemProperties.get("hiapk.vending.operator");

替换

TelephonyManager.getSimOperatorName();
TelephonyManager.getSimOperator()

下面是我修改的2.2.7版本的patch:

$ colordiff Vending_o/smali/com/android/vending/VendingApplication\$ApiClientContext.smali Vending/smali/com/android/vending/VendingApplication\$ApiClientContext.smali 
239,245c239
<     iget-object v2, p0, Lcom/android/vending/VendingApplication$ApiClientContext;->this$0:Lcom/android/vending/VendingApplication;
< 
<     invoke-static {v2}, Lcom/android/vending/VendingApplication;->access$100(Lcom/android/vending/VendingApplication;)Landroid/telephony/TelephonyManager;
< 
<     move-result-object v2
< 
<     invoke-virtual {v2}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
---
>     const-string v2, "T-Mobile"
247c241
<     move-result-object v7
---
>     move-object/from16 v7, v2
259,265c253
<     iget-object v2, p0, Lcom/android/vending/VendingApplication$ApiClientContext;->this$0:Lcom/android/vending/VendingApplication;
< 
<     invoke-static {v2}, Lcom/android/vending/VendingApplication;->access$100(Lcom/android/vending/VendingApplication;)Landroid/telephony/TelephonyManager;
< 
<     move-result-object v2
< 
<     invoke-virtual {v2}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
---
>     const-string v2, "310260"
267c255
<     move-result-object v9
---
>     move-object/from16 v9, v2

重新打包,签名即可。

Android Market 之 deviceId

有时候我们在market上无法下载软件,总停留在 downloading… 界面,有时候恢复出厂设置又可以下载了,这是为什么呢?

在market上下载一个应用程序发出的URL请求,可以参考Tim Strazzere的博文 Downloading market applications without the vending app

其中涉及到一个参数手机设备号,与Android_ID有关,这个Android_ID可以参看官方文档

http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

“A 64-bit number (as a hex string) that is randomly generated on the device’s first boot and should remain constant for the lifetime of the device. (The value may change if a factory reset is performed on the device.) ”

AndroidId,通常用做识别唯一设备。可以通过下面的函数获取:
String androidId = Settings.System.getString(getContentResolver(),
Settings.Secure.ANDROID_ID);

具体的函数实现与系统环境变量”ro.serialno”有关,大概过程是:

/system/core/init/init.c 读取kernel启动参数 /proc/cmdline 获取 androidboot.serialno, 然后是设置系统变量

property_set(“ro.serialno”, serialno[0] ? serialno : “”);

下面是 HTC G1的kernel启动参数:

~ # cat /proc/cmdline
board_trout.disable_uart3=0 board_trout.usb_h2w_sw=0 board_trout.disable_sdcard=0 smisize=64 androidboot.baseband=2.22.19.26I androidboot.cid=T-MOB010 androidboot.carrier=TMUS androidboot.keycaps=qwerty androidboot.mode=normal androidboot.serialno=HT839GZ04643 androidboot.bootloader=1.33.2005 no_console_suspend=1 console=null
~ # getprop |grep serialno
[ro.serialno]: [HT839GZ04643]

adb shell devices
列出的就是ro.serialno , 如果为空,用默认的值: “1234567890ABCDEF”.
注意,有些机器总是显示 9774d56d682e549c,说明系统环境变量”ro.serialno”没有设置,最近的Android 2.2代码已经修改这个bug.

strazzere的博文提到,可以用 tcpdump与wireshark工具观察数据包,可以得到手机的deviceId。其实也不需要那么麻烦,Android Market依赖于Downloads这个provider,那么查看sqlite数据库也是一目了然的:

$ adb pull /data/data/com.android.providers.downloads/databases/downloads.db .
$ strings downloads.db

或者可以这样找

$ adb pull /data/data/com.android.providers.settings/databases/settings.db .
$ sqlite3 settings.db
$ .tables
$ select * from secure

据观察,deviceId跟ANDROID_ID有一定的关系,deviceId是Google服务器自动生成的。 在Android 2.2之前的版本,可以为伪造一个地址蒙蔽过关,SDK上提供的是16个0。而在android 2.2之后的market,这个值与email帐号挂钩起来了,如果不一致,会收到HTTP 400 的错误码,这样只好把手机恢复出厂设置,重新生成deviceId。

2011.1.2 随记

昨天的事。

柏成到深圳一个月了,昨天我才有时间去坂田走走。先去逛一下华为单身公寓,美曰其名“百草园”,外号“里欧外非”——里面很漂亮,欧洲式的建筑风格,而百草园外面的情景,就像是非洲一样,天壤之别。在里面打了一个小时的桌球,然后看他的闺室,在马蹄山后面的禾坪村,住10楼,没有电梯。进去后,家徒四壁,只有一张床,一个热水壶,没有其他家具。跟我刚在新屋村住下来一样,床还是房东阿婆给我的。刚到深圳找工作时,在国贸见了漂飘学姐,她说:”在深圳,不需要太多的东西,一张床就够了。累了就睡,睡后继续上班工作“。

中午突然收到谢星的短信,说到我住的地方碰头,开始是说晚上,只好放他鸽子了。德哥1号晚通宵,到下午了才醒来,跟我们去打一个小时的斯诺克,他有事,晚饭就我跟柏成去吃烤鱼。聊了很多事,感叹社会的黑暗,做技术的艰辛,生活的无奈,也在探讨未来之路。最近去华为的还有沈晓奇,李伟,他们那天都没空。华平去年十月份也跑到华为了,怎么大学同学都一窝尔的跑进去,有如当年奔向延安的进步青年一样。吃完饭又继续在路边打两个小时的桌球,很便宜,一小时4块钱,很适合像我这样打球靠狗屎运的新手练习。一下子玩到10点,334晚上最后一趟车是10点,还好可以坐317到梅林关。快到梅林关,有一个站是滢水山庄,很熟悉,突然想起findya师兄,好人啊,曾经到他住过的书香门第蹭住两个星期。07年末那里附近还是很荒凉,现在都是一排排整齐的楼了。到梅林关才发现没公车回来, 打的走南坪快线直接就到桃源村了,原来可以这么快!

Pages: Prev 1 2 3 ... 8 9 10 11 12 13 14 ... 19 20 21 Next