From Fedora Project Wiki

< FWN‎ | Beats

(FWN155 developments)
Line 7: Line 7:
Contributing Writer: [[OisinFeeley|Oisin Feeley]]
Contributing Writer: [[OisinFeeley|Oisin Feeley]]


=== Python Bump to 2.6 in Rawhide ===
=== The PATH to CAPP Audits ===


The success of Fedora's dogged persistence in pursuing an "upstream all possible patches" methodology was anecdotally highlighted during a thread in which [[User:ivazquez|Ignacio Vazquez-Abrams]] warned that all Python packages in rawhide would soon be affected. An apology was made[1] by Ignacio for a dramatic subject-line ("It's all ASPLODY!), but he explained that "[w]ithin the next few days Python 2.6 will be imported into Rawhide. This means that EVERY single Python-based package in Rawhide will be broken, and that we'll need to slog our way through rebuilding it package by package." Ignacio suggested that the list of approximately seven hundred packages could be examined with a:
Some tough questioning about the purpose and usefulness of the Common Criteria for Information Technology Security Evaluation (CC)[1] was dished out to the maintainers of <code>shadow-utils</code> (the family of secure utilities for manipulating user accounts and passwords) when it appeared that the need to audit specific behaviors was causing some awkward constraints in OS design. The CC certifications are an ISO standard originally developed by the USA's National Security Agency to specify the expected behavior of systems under certain strictly defined criteria (so called Protection Profiles) to certain levels (Enterprise Evaluation Levels). ''Red Hat Enterprise Linux'' (a downstream derivative of Fedora) is able to boast several of them, including CAPP,LSPP and RBACPP to EAL4+[2], enabling ''RHEL5'' to be purchased for use in government programs which require "assured information sharing." See[3][4] for further information. In order to provide the auditing capabilities mandatory to achieve such certifications [[SteveGrubb|Steve Grubb]] and others on his team have been steadily committing changes to Fedora. The specific protection profile under discussion in this case was the Controlled Access Protection Profile (CAPP) and there has been a good deal of unease about the usefulness of such certification in other forums[5].
<pre>
repoquery --disablerepo=\* --enablerepo={development,rawhide} \
  --whatrequires "python(abi)" | sort | less
</pre>
Ignacio expressed[2] willingness to trigger the rebuilds for some of the packages but "[...] there's no way I can get [700] done in a timely fashion."


[1] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01809.html
[1] http://en.wikipedia.org/wiki/Common.Criteria


[2] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01813.html
[2] http://www.redhat.com/solutions/government/commoncriteria/


[[VilleSkyttä|Ville Skyttä]] asked[3] "[i]f a package installs some *.py, *.pyc, *.pyo somewhere else than in versioned python dirs, and the source *.py is python 2.6 compatible, will the *.pyc and *.pyo compiled with 2.5 break with 2.6?" Ignacio confirmed[4] that such packages should not need to be recompiled as the API had not changed beween versions 2.5 and 2.6.
[3] A good blog entry by Sun's Jim Laurent: http://blogs.sun.com/jimlaurent/entry/faq.what.is.a.common


[3] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01826.html
[4] https://www2.sans.org/reading.room/whitepapers/standards/1078.php


[4] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01837.html
[5] http://www.schneier.com/blog/archives/2005/12/microsoft.windo.html


[[TomCallaway|Tom 'spot' Callaway]] suggested[5] using a separate <code>Koji</code> tag so that Ignacio could use a process similar to that which Tom had employed for the transition from <code>PERL-5.8</code> to <code>PERL-5.10</code>. [[JeremyKatz|Jeremy Katz]] remembered[6] that such tagging had been used for past bumping of <code>Python</code> and suggested "It's good to at least get the stack up through yum and friends building and working before thrusting the new python upon everyone as otherwise it's quite difficult for people to even try to fix things on their own." A list of the essential packages was made[7] by [[SethVidal|Seth Vidal]] and [[KonstantinRyabitsev|Konstantin Ryabitsev]].
When [[CallumLerwick|Callum Lerwick]] noticed[6] that he could not run <code>usermod</code> as an unprivileged user in order to get its <code>help</code> page he suggested that "[...] it and all the other account tools have been changed to mode 750, inaccessible to normal users" and erroneously attributed this to recent changes made to accommodate changes to the <code>PATH</code> environment variable. Earlier discussion of the addition of the <code>sbin</code> directories to users' PATHs can be found in FWN#146[7]. [[JonStanley|Jon Stanley]] replied[8] "These permissions have been in place for over 2 years, with valid reasoning. Just because it's in your PATH doesn't mean you should be able to execute it." Jon appended the 2006 log message which attributed the change to "fix regression. Permissions on user* group* binaries should be 0750, because of CAPP/LSPP certification." Callum posted a list of all the account tools which had such permissions including the shadow-utils account tools and the audit subsystem tools.


[5] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01823.html
[6] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00489.html


[6] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01815.html
[7] http://fedoraproject.org/wiki/FWN/Issue146#PATH:.2Fsbin.Tab.Confusion


[7] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01820.html
[8] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00495.html


On the foot of some skeptical questions from [[LesMikesell|Les Mikesell]] Tom reported[8] that the end result of following such a process for <code>PERL</code> was that "[Fedora is] closer to perl upstream than we've ever been, and we have most of the long-standing perl bugs resolved (and we fixed the "RHEL slow perl" bug without even being aware of it as a byproduct of the methodology). The fact that you just noticed it means that we must have done some things properly, you're welcome. :)"
Although the change was actually several years old it appeared to cause surprise in many circles and prompted demands for information on what CAPP was and whether it was of any use to the Fedora Project. [[SteveGrubb|Steve Grubb]] responded[9] to the original query that "[...] you cannot do anything with [the user* commands] unless you are root. Allowing anyone to execute them would require lots of bad things for our LSPP/CAPP evaluations" and suggested that man pages should be used instead of running the tools with the <code>--help</code> argument.


[8] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01839.html
[9] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00501.html


On 28-11-2008 Ignacio reported[9] that "[...] we're going to go ahead and commit 2.6 to Rawhide and start the rebuild of all Python packages in Rawhide. So please keep your hands off any packages that require python(abi) until we're done. Or if you like, you can help out by bumping the release and building against the dist-f11-python tag." He later explained[10] that python-2.6 would appear in rawhide "[...] within 10 days if all goes well. Then releng will need to fold the tag back into f11-dist" and confirmed[11] that the version in <code>Fedora 11</code> will be <code>Python-2.6</code>.
[[JesseKeating|Jesse Keating]] probed what appeared to be a reliance on restricting execution permissions for security. When Steve corrected[10] this to be "[...] more to do with the fact that we have to audit all attempts to modify trusted databases - in this case, shadow [...] if we open the permissions, we need to make these become setuid root so that we send audit events saying they failed" Jesse was even more perturbed[11] and asked "Why would the binary have to be suid? Why can't the binary detect that [the] calling user is not root, and just print out the usage and a message saying that you have to be root? How would this action make it any less auditable?" Later [[ChrisAdams|Chris Adams]] extended[12] the apparent logic: "[...] cat will have to be setuid root so it can audit? What about echo, bash, perl, etc.? This is absurd."


[9] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02126.html
[10] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00513.html


[10] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02130.html
[11] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00523.html


[11] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02136.html
[12] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00575.html


On 30-11-2008 Ignacio posted[12] the results of the "first cycle of rebuilds" and categorized the failures into several convenient classes. On 01-12- 2008 Ignacio posted the results of round two which he explained[13][14] were "a set of packages that a different net caught. I used python(abi)=2.5 for the first set in order to get the low-level packages, and this one uses libpython2.5.so.1.0." The latest follow-up, on 01-12-2008 consisted[15] of the list of packages which "[...] contain compiled Python code but do not have a Requires of python(abi). Please note that this is a packaging bug as the bytecode is specific to the version of the Python it was compiled with. Whether this is a problem with rpm's macros or with the package itself must be dealt with on a case-by-case basis."
From this point onwards the confusion and questioning gained in volume and intensity with several points being made to question the usefulness of this particular (CAPP) certification. These included the points that any user could obtain copies of the restricted binaries from outside of the system[13] for nefarious testing purposes; and that there were plenty of other tools[14] on the system which might allow violations of the policy.


[12] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02201.html
[13] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00514.html


[13] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00014.html
[14] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00626.html


[14] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00028.html
It would be fair to characterize most of the reactions as hostile. Some of this was due to an apparent impatience with "security certifications" which seemed to be of more interest to managers than achieving practical security. [[CallumLerwick|Callum Lerwick]] suggested[15] "[...] just because RHEL has to do stupid ignorant shit to appease certification authorities doesn't mean Fedora has to do it too." Another part was undoubtedly due to concern about who had made the decision to follow this path. [[JesseKeating|Jesse Keating]] expressed[16] some frustration and asked "Who's 'we'? Perhaps 'we' shouldn't piss on Fedora in order to meet some cert that I highly highly doubt any Fedora install will find useful." When [[SethVidal|Seth Vidal]] and [[DominikMierzejewski|Dominik Mierzejewski]] also wondered when, and by whom, the decision was made Steve answered[17]: "By me after a group presented the options back in 2005. Back in those days shadow-utils was in 'Core' and that was maintained by Red Hat."


[15] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00041.html
[15] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00528.html


=== Power Management and Filesystem Parameters ===
[16] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00534.html


A series of three disk-power management proposals were published[1] as an RFC by [[MatthewGarrett|Matthew Garrett]]. They were generally well-received and discussion was mostly focused on ways to instrument the kernel to measure any resulting changes and to ensure that disk lifetimes are monitored carefully.
[17] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00584.html


[1] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02047.html
Another part of the hostility seemed to originate in the novelty of the certification requirements to many participants. Steve answered many queries as they came in and suggested that it was necessary to take an overview of how the whole process worked. He was pressed by [[JeffSpaleta|Jeff Spaleta]] for further details. This led[18] to an interesting quote from the CAPP guidelines and the example of how they are applied to shadow-utils. The guidelines make some assumptions which many will find unrealistic, such as the "[t]he system administrative personnel are not careless, willfully negligent, or hostile, and will follow and abide by the instructions provided by the administrator documentation." While this criticism obviously calls into question the practical usefulness of the CAPP certification it is just one layer designed to perform a specific function, other more apparently useful security can only be built on top of these layers after they are implemented. Steve's post also contained some interesting practical examples of how administrators can use the audit tools to view information gained by instrumenting the shadow-utils code. To see who has modified accounts, and how, one can:


The first, least controversial, proposal is to get [[IngoMolnar|Ingo Molnar's]] <code>relatime</code> patch upstream. An extensive discussion in LWN[2] explains that this allows applications to keep track of when files have been read without having to constantly update the last file access time, thus reducing the number of writes to the disk.
<pre>
#ausearch --start this-month -m ADD_USER


[2] http://www.lwn.net/Articles/244829/
#ausearch --start this-month -m ADD_GROUP
</pre>


Matthew's second proposal was to "[...] increase the value of dirty_writeback_centisecs. This will result in dirty data spending more time in memory before being pushed out to disk. This is probably more controversial. The effect of this is that a power interruption will potentially result in more data being lost." The third proposal was to enable laptop-mode[3] by default in order to mitigate the second change.
A view of attempts to change accounts both through the approved shadow-utils (restricted to root) or other non-approved tools can be obtained with a


[3] cat /usr/share/doc/kernel-doc-2.6.27.5/Documentation/laptops/laptop-mode.txt
<pre>
ausearch --start this-month -f /etc/shadow *raw -- aureport -x -i
</pre>


EricSandeen was interested[4] in how Matthew would measure the effects on power and performance, whether it was possible to identify individual applications causing disk accesses, and whether disk spin-down should be considered. When Matthew replied[5] that it would be difficult to monitor disk access without causing further disk access [[DavidWoodhouse|David Woodhouse]] suggested using <code>blktrace</code> and this was eagerly recognized[6] by Matthew as exactly what he needed.
[18] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00585.html


[4] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02048.html
[[EnricoScholz|Enrico Scholz]] pointed out[19] that this seemed like security through obscurity because there were other tools (<code>vipw</code> and <code>ldapadd</code>) which could modify the trusted database and Steve responded[20] that <code>vipw</code> was forbidden and that it would be possible to extend the auditing to <code>ldap</code> if someone had the time. In response to [[AndrewBartlett|Andrew Bartlett]] [[JesseKeating|Jesse Keating]] interpreted[21] this "forbidden" as "`forbidden by policy' in which using anything /but/ the audit-able tools is `forbidden by policy'. If you're expecting everybody to follow policy, why not just set policy that says `don't hack this box'. That'll work right?"


[5] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02052.html
[19] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00587.html


[6] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02093.html
[20] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00588.html


Eric's spin-down suggestion was confirmed: "Yes, the long-term plan involves allowing drive spindown. I'm hoping to do this adaptively to let us avoid the spinup/down tendancies a static timeout provides, but you're right that monitoring SMART information would be a pretty important part of that. I lean towards offering it on desktops and servers, but not enabled by default."
[21] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00623.html


[[PhilKnirsch|Phil Knirsch]] posted[7] that he was working on similar ideas currently including "the idea if a combination of a monitoring backend and a tuning engine could provide an automatic adoption of the system to the current use. E.g. during daytime when a user works with his machine we would typically see quite a few reads and write all the time. Drive spindowns or other power saving features could during that time be reduced so that the user will have the best performance. During the night (in case he didn't turn of the machine) only very few read and even fewer write operations should happen, at which time the disk could then be powered down most of the time. And of course this can be extended to not only disk drives but other tunable hardware components."
[[CallumLerwick|Callum Lerwick]] jumped[22] to what was for him the central point: "So I guess this is what all this really comes down to: Do we care about certification?" and asked whether the shadow-utils maintainer(s) would care to put the permissions to a FESCo vote. Steve affirmed[23] that certification was worthwhile with a detailed list of the positive side-effects of the certification process which include: man pages for each syscall, bug fixing and reporting, test suites, crypto work, virtualization with strong guarantees of <code>VM</code> separation and more. It was an impressive list which seemed to counter the dominant assumption that certification was merely another item to be ticked off on a bureaucrat's mindless list. Steve noted that "[a]s a result, Fedora is the ONLY community distribution that actually meets certification requirements. OpenSuse might be close for CAPP, but not LSPP/RSBAC, but that would be the only one I can think of that might be getting close."


[7] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02089.html
[22] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00560.html


Some of the pitfalls of choosing defaults for all users were exposed when [[RalfErtzinger|Ralf Ertzinger]] and Phil disagreed[8] on the ideal behavior of logging mechanisms.  Phil drew a distinction between system logging mechanisms and user application logs and argued that losing data from the latter was not as important. [[DariuszGarbowski|Dariusz Garbowski]] put[9] the point of view of "Joe the User": "He cares a lot that he lost last hour of his xchat (or whatever he uses) logs. He quite likely doesn't care about last hour of syslog messages (he may not even be aware they exist in the first place)..."
[23] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00563.html


[8] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02099.html
While this summary might make it seem as though certification is a slamdunk (and your correspondent has to admit a strong bias in favor of it) it has probably failed to convey the sense of unease expressed by Fedora Project contributors that decisions have been taken without discussion or consultation. [[JesseKeating|Jesse Keating]] asked[24] [[SteveGrubb|Steve Grubb]] to explain who was providing impetus to the shadow-utils/certification team: "Where is this yelling going on? Where are the bug reports? Where is the public discussion about supposed problems in our install processes? Where is the discussion with domain knowledge experts debating whether or not the complaint has merit? Where is the open and frank discussion?"


[9] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02137.html
[24] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00547.html


See FWN#88[10],FWN#100[11][12] for previous discussion of power-management in Fedora.
One possible route around what seems to be an impasse was suggested by [[JeffSpaleta|Jeff Spaleta]]. Jeff observed[25] that CAPP certification for putative "appliance spins", but not the current set of spins, might make sense and asked[26]: "could some of the restrictions like the permissions be handled in a more modular way? Could for example, things be changed so I could install a specialized fedora-CAPP package at install time which tightens up aspects of the system to bring it into CAPP compliance, instead of expressing those restrictions in the default settings of all installs?"


[10] https://fedoraproject.org/wiki/FWN/Issue88#PowerTOP_Release_Opens_Up_New_Directions_In_Power_Saving
[25] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00556.html


[11] http://fedoraproject.org/wiki/FWN/Issue100#Disabling_Atime
[26] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00625.html


[12] http://fedoraproject.org/wiki/FWN/Issue100#Reducing_Power_Usage_Of_Fedora
=== The Looming Py3K Monster ===


=== Strange Resolution Problems ===
Last week we reported that [[User:ivazquez|Ignacio Vazquez-Abrams]] was busy shepherding <code>Python-2.6</code> into Fedora. This week [[MichaelDeHaan|Michael DeHaan]] raised[1] the question of what the plan for incorporating Python 3K will be. Michael worried that Py3K's incompatibilities with Python-2.6 "[are] pretty bad for someone who wants to keep a single codebase across EL 4 (Python 2.3) and up, which I think a lot of us do. That gets to be darn impossible and we have to double our involvement with code because we essentially have to maintain a differently-compatible fork for each project." He asked: "Are we looking at also carrying on with packaging 2.N indefinitely when we do decide to carry 3, because as I know it, the code changes to make something Python 3 compatible will be severe and that's a big item for any release, and will probably result in some undiscovered bugs even after the initial ports (if applied)."


A report of a strange name resolution problem was made[1] by [[MarkBidewell|Mark Bidewell]]. <code>Yum</code> failed to download the Adobe flash-plugin with an error: <code>[Errno 4] IOError: <urlopen error (-2, 'Name or service not known')> Trying other mirror.</code>" , yet it was possible to download it directly over HTTP using the browser.
[1] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00379.html


[1] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02002.html
Although there was some optimism that the "from future import" syntax would allow the use of <code>python-3</code> features in <code>python-2</code> [[DanielBerrange|Daniel P. Berrange]] quashed[2] the idea that this was a simple fix because it "[...] isn't much help if python 2.3, 2.4 and 2.5 don't support 'from future import' and you care about shipping stuff that works on the 99% of deployed Linux boxes today which don't have 2.6 let alone 3.0." [[BasilMohamedGohar|Basil Mohamed Gohar]] suggested[3] running the <code>2to3</code> tool on the Core packages to gain a sense of what needs to be done.


[[ChristianIseli|Christian Iseli]] added[2] that he had a similar "[...] issue which seems to be due to some sort of DNS lookup problem. In my case I'd get the 'Name or service not known' for download1.rpmfusion.org." Christian's troubleshooting revealed that specific sites (linuxdownload.adobe.com and download1.rpmfusion.org) were consistently resolved with <code>ping</code> or <code>firefox</code> but failed with <code>wget</code> and <code>ssh</code>. Moreover: "Putting the IP addresses in /etc/hosts "works around" the problem[.]"
[2] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00394.html


[2] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02071.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00438.html


Following some questions from [[SethVidal|Seth Vidal]] nothing seemed[3] obviously wrong and the mystery remains.
Some strategies and their implications were detailed[4] by [[ToshioKuratomi|Toshio Kuratomi]] in a post which comprehensively explains the options. Toshio suggested avoiding maintaining separate <code>python2</code> and <code>python3</code> packages within a single version of Fedora due to the resulting double work and space. He suggested that "[...] this decision is only partially within the powers of the Fedora Project to decide. If 80% of our upstream libraries move to py3, we'll need to move to py3 sooner. If 80% refuse to move off of py2, we can take our time working on migration code." In later discussion with [[ArthurPemberton|Arthur Pemberton]] he seemed[5] to favor the idea of using <code>python-2.6</code> while ensuring that all code is as compatible as possible with <code>python-3</code> and avoided estimating how hard this would be until actual experience is gained with "[...] porting code to 2.6 with 3.x features turned on at some point."


[3] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02082.html
[4] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00420.html


=== Cron Confusion ===
[5] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00437.html


[[PavelAlexeev|Pavel Alexeev]] asked[1] for guidance on how to correctly rpm package a <code>cron</code> job. The specific requirement was a <code>cronjob</code> that ran every twenty minutes and might thus use the <code>/etc/cron.d</code> directory provided by <code>cronie</code> ,the <code>SELinux</code> and <code>PAM</code> aware derivative of vixie cron. Pavel wondered how he could make a package which would work for both variants of <code>cron</code>.
[[JamesAntill|James Antill]] was[6] skeptical that Py3K would be seen in Fedora any time soon due to the massive changes required and the past history (FWN#114[7])of votes on maintaining compatibility packages: "I'll put money on python3k not being the default in Fedora 12. Hell, I'll even put some money on it not being the default in Fedora 14, at this point. My personal opinion is that we stay with 2.6.* for as long as possible, giving everyone time to dual port and the problems to be found/fixed and then it "should be easy" to have it as a feature and move for one release. But I'll point out that Ignacio Vazquez-Abrams did .all. the work for 2.6 in Fedora 11 ... so feel free to take this as just my opinion."
 
[1] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02179.html
 
When [[MartinLanghoff|Martin Langhoff]] confirmed that <code>/etc/cron.d</code> was necessary Pavel replied[2]: "[...] /etc/cron.d [is] provided only by cronie [and] now we have several other crons in the repositories[.]" He listed several other implementations of <code>cron</code> found by a
<pre>
# repoquery '*cron*' | egrep -v '^(yum-cron|PackageKit-cron|cronolog)'
</pre>


[2] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02182.html
[6] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00391.html


[[User:ivazquez|Ignacio Vazquez-Abrams]] corrected[3] him: "The only replacement for cronie in that list is fcron. Feel free to log a bug against it." [[TillMaas|Till Maas]] and Pavel noted[4], however, that the <code>/etc/cron.*</code> directories were also provided by the package named <code>crontabs</code>.
[7] http://fedoraproject.org/wiki/FWN/Issue114#Policy.Proposal.For.New.Compatibility.Packages


[3] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02183.html
=== PackageKit Stealth Installations ===


[4] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02187.html
[[RobertLocke|Robert Locke]] asked[1] how <code>createrepo</code>, <code>anaconda-yum-plugins</code> and <code>preupgrade</code> had been installed without his permission on a fresh Fedora 10 install.


[[PatriceDumas|Patrice Dumas]] posted[5] the welcome news that he was "[...] currently preparing a fcron sub-package that would be completly compatible with cronie and would watch /etc/cron.d (using inotifywait). I'll keep the list informed."
[1] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00431.html


[5] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02187.html
An answer was posted[2] by [[JesseKeating|Jesse Keating]] to the effect that this had been done by <code>PackageKit</code> "[...] so that it could offer you the ability to upgrade. We've moved that information to a public webserver rather than being in the preupgrade package so that PK can get this information without stealth installing packages." He added that while there were no "[...] current guidelines that would have caught this [...] it does fall into the `don't do that' category."


=== Man Pages to be Mandatory and Upstreamed ===
[2] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00448.html


A vigorous thread flowered from the promising seed planted[1] by [[MichaelCronenworth|Michael Cronenworth]] in which he advocated getting rid of all current documentation: "Yes, what I'm about to describe should obsolete man, info, and all the other dozen "help" documentation found in all the Fedora packages." Michael proposed that a new, lightweight standard of some sort would solve the problem of missing documentation.
In further answers Jesse explained[3]: "It was installed so that PackageKit could have the appropriate information to check if there were distro level upgrades (say 9 to 10) available for you. The upstream has been asked to please not install any software in Fedora without a users consent, so hopefully this scenario won't happen again, at least not with PackageKit."


[1] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02015.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00505.html


During the course of the week there have been requests for "NetworkManager cli docs"[2] and "PulseAudio info needed"[3] in which the desired information has mostly been found on external web pages instead of in documentation supplied with the OS.
=== DNS Resolution Unreliable ===


[2] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg01757.html
Previously in FWN#154[1] we reported on some strange name resolution problems. [[SethVidal|Seth Vidal]], as maintainer of the <code>YUM</code> package which looked as though it might be implicated, requested[2] follow-up information.


[3] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02041.html
[1] http://fedoraproject.org/wiki/FWN/Issue154#Strange.Resolution.Problems


[[RichardJones|Richard W. M. Jones]] suggested[4] instead that the Debian model should be followed: "Debian forces all programs to come with a man page. If one is missing, this is considered a bug and packagers have to write one." [[PatriceDumas|Patrice Dumas]] was[5] against compulsion and preferred leaving the choice to the packager.
[2] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00246.html


[4] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02023.html
[[TimNiemuller|Tim Niemuller]] replied that the problems persisted for him and were probably not to do with YUM. He added failures with <code>svn</code> to the mix and suggested[3] that "[...] yum is [not] the problem but there is a more general problem related to DNS lookups. As a specialty I'm using nss-mdns. But on F-8/F-9 this has never been a problem, so I suspect this is not what is causing the problem, especially because others have the same problem and I don't think nss-mdns is installed on many machines."


[5] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02025.html
[3] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00305.html


The idea of upstreaming the man pages was introduced[6] by [[ThorstenLeemhuis|Thorsten Leemhuis]]: "One reason for that: If you add man pages from debian to a fedora package then you have to recheck every now and then if the man pages are still up2date. That afaics often tends to be forgotten (I'm guilty myself here)." Richard agreed[7] and in the course of several clarifications made the strong point that "[...] it's a really useful feature of Debian that _any_ command, any many configuration files and other files, are documented using 'man'. I find it a big negative against Fedora that things aren't so consistently documented."
[[JonathanUnderwood|Jonathan Underwood]] posted[4] a link to a heavily commented <code>bugzilla</code> entry opened by [[TomHorsley|Tom Horsley]] on 2008-08-21. The gist of the comments appears to be that with certain <code>DNS</code> servers there is a problem with simultaneous <code>IPv4</code> and <code>IPv6</code> requests being sent. A reported[5] work-around involved using a non-glibc resolver such as <code>dnsmasq</code> and was added[6] to the Fedora Project wiki by [[ChristopherStone|Christopher Stone]].


[6] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02024.html
[4] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00308.html


[7] https://www.redhat.com/archives/fedora-devel-list/2008-November/msg02050.html
[5] http://www.fedorafaq.org/f10/#dns-slow


There seemed to be little disagreement on the desirability of providing more information but Michael was not impressed[8] with [[TrondDanielsen|Trond Danielsen's]] suggestion that yelp would fulfill his requirements: "[...] it lacks in the lightweight department. It eats 40 megs of RAM upon startup and more RAM once searching occurs or pages are opened. Sure, we're all getting gigabytes of RAM these days, but it's a HELP tool with TEXT." [[BasilMohamedGohar|Basil Mohamed Gohar]] was inspired[9] to "[write] or two man pages, because I've run into the missing-man-page problem too often." He suggested a very reasonable sounding action plan for identifying missing man pages and then filling them in with at least stubs in order to form a SIG which would work on providing quality replacements. [[GergelyBuday|Gergely Buday]] also seemed[10] interested.
[6] https://fedoraproject.org/wiki/Common.F10.bugs#DNS.Resolver.not.Reliable


[8] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00004.html
[[JakubJelinek|Jakub Jelinek]] prepared[7] a <code>glibc</code> update which temporarily disables the simultaneous requests and [[BenWilliams|Ben Williams]] promised that once the issue is cleanly resolved the ''Fedora Unity'' team[8] will issue a Fedora 10 re-spin.


[9] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00023.html
[7] https://bugzilla.redhat.com/show.bug.cgi?id=459756#c91


[10] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00060.html
[8] http://fedoraunity.org/

Revision as of 17:13, 8 December 2008

Developments

In this section the people, personalities and debates on the @fedora-devel mailing list are summarized.

Contributing Writer: Oisin Feeley

The PATH to CAPP Audits

Some tough questioning about the purpose and usefulness of the Common Criteria for Information Technology Security Evaluation (CC)[1] was dished out to the maintainers of shadow-utils (the family of secure utilities for manipulating user accounts and passwords) when it appeared that the need to audit specific behaviors was causing some awkward constraints in OS design. The CC certifications are an ISO standard originally developed by the USA's National Security Agency to specify the expected behavior of systems under certain strictly defined criteria (so called Protection Profiles) to certain levels (Enterprise Evaluation Levels). Red Hat Enterprise Linux (a downstream derivative of Fedora) is able to boast several of them, including CAPP,LSPP and RBACPP to EAL4+[2], enabling RHEL5 to be purchased for use in government programs which require "assured information sharing." See[3][4] for further information. In order to provide the auditing capabilities mandatory to achieve such certifications Steve Grubb and others on his team have been steadily committing changes to Fedora. The specific protection profile under discussion in this case was the Controlled Access Protection Profile (CAPP) and there has been a good deal of unease about the usefulness of such certification in other forums[5].

[1] http://en.wikipedia.org/wiki/Common.Criteria

[2] http://www.redhat.com/solutions/government/commoncriteria/

[3] A good blog entry by Sun's Jim Laurent: http://blogs.sun.com/jimlaurent/entry/faq.what.is.a.common

[4] https://www2.sans.org/reading.room/whitepapers/standards/1078.php

[5] http://www.schneier.com/blog/archives/2005/12/microsoft.windo.html

When Callum Lerwick noticed[6] that he could not run usermod as an unprivileged user in order to get its help page he suggested that "[...] it and all the other account tools have been changed to mode 750, inaccessible to normal users" and erroneously attributed this to recent changes made to accommodate changes to the PATH environment variable. Earlier discussion of the addition of the sbin directories to users' PATHs can be found in FWN#146[7]. Jon Stanley replied[8] "These permissions have been in place for over 2 years, with valid reasoning. Just because it's in your PATH doesn't mean you should be able to execute it." Jon appended the 2006 log message which attributed the change to "fix regression. Permissions on user* group* binaries should be 0750, because of CAPP/LSPP certification." Callum posted a list of all the account tools which had such permissions including the shadow-utils account tools and the audit subsystem tools.

[6] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00489.html

[7] http://fedoraproject.org/wiki/FWN/Issue146#PATH:.2Fsbin.Tab.Confusion

[8] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00495.html

Although the change was actually several years old it appeared to cause surprise in many circles and prompted demands for information on what CAPP was and whether it was of any use to the Fedora Project. Steve Grubb responded[9] to the original query that "[...] you cannot do anything with [the user* commands] unless you are root. Allowing anyone to execute them would require lots of bad things for our LSPP/CAPP evaluations" and suggested that man pages should be used instead of running the tools with the --help argument.

[9] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00501.html

Jesse Keating probed what appeared to be a reliance on restricting execution permissions for security. When Steve corrected[10] this to be "[...] more to do with the fact that we have to audit all attempts to modify trusted databases - in this case, shadow [...] if we open the permissions, we need to make these become setuid root so that we send audit events saying they failed" Jesse was even more perturbed[11] and asked "Why would the binary have to be suid? Why can't the binary detect that [the] calling user is not root, and just print out the usage and a message saying that you have to be root? How would this action make it any less auditable?" Later Chris Adams extended[12] the apparent logic: "[...] cat will have to be setuid root so it can audit? What about echo, bash, perl, etc.? This is absurd."

[10] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00513.html

[11] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00523.html

[12] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00575.html

From this point onwards the confusion and questioning gained in volume and intensity with several points being made to question the usefulness of this particular (CAPP) certification. These included the points that any user could obtain copies of the restricted binaries from outside of the system[13] for nefarious testing purposes; and that there were plenty of other tools[14] on the system which might allow violations of the policy.

[13] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00514.html

[14] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00626.html

It would be fair to characterize most of the reactions as hostile. Some of this was due to an apparent impatience with "security certifications" which seemed to be of more interest to managers than achieving practical security. Callum Lerwick suggested[15] "[...] just because RHEL has to do stupid ignorant shit to appease certification authorities doesn't mean Fedora has to do it too." Another part was undoubtedly due to concern about who had made the decision to follow this path. Jesse Keating expressed[16] some frustration and asked "Who's 'we'? Perhaps 'we' shouldn't piss on Fedora in order to meet some cert that I highly highly doubt any Fedora install will find useful." When Seth Vidal and Dominik Mierzejewski also wondered when, and by whom, the decision was made Steve answered[17]: "By me after a group presented the options back in 2005. Back in those days shadow-utils was in 'Core' and that was maintained by Red Hat."

[15] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00528.html

[16] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00534.html

[17] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00584.html

Another part of the hostility seemed to originate in the novelty of the certification requirements to many participants. Steve answered many queries as they came in and suggested that it was necessary to take an overview of how the whole process worked. He was pressed by Jeff Spaleta for further details. This led[18] to an interesting quote from the CAPP guidelines and the example of how they are applied to shadow-utils. The guidelines make some assumptions which many will find unrealistic, such as the "[t]he system administrative personnel are not careless, willfully negligent, or hostile, and will follow and abide by the instructions provided by the administrator documentation." While this criticism obviously calls into question the practical usefulness of the CAPP certification it is just one layer designed to perform a specific function, other more apparently useful security can only be built on top of these layers after they are implemented. Steve's post also contained some interesting practical examples of how administrators can use the audit tools to view information gained by instrumenting the shadow-utils code. To see who has modified accounts, and how, one can:

#ausearch --start this-month -m ADD_USER

#ausearch --start this-month -m ADD_GROUP

A view of attempts to change accounts both through the approved shadow-utils (restricted to root) or other non-approved tools can be obtained with a

ausearch --start this-month -f /etc/shadow *raw -- aureport -x -i

[18] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00585.html

Enrico Scholz pointed out[19] that this seemed like security through obscurity because there were other tools (vipw and ldapadd) which could modify the trusted database and Steve responded[20] that vipw was forbidden and that it would be possible to extend the auditing to ldap if someone had the time. In response to Andrew Bartlett Jesse Keating interpreted[21] this "forbidden" as "forbidden by policy' in which using anything /but/ the audit-able tools is forbidden by policy'. If you're expecting everybody to follow policy, why not just set policy that says `don't hack this box'. That'll work right?"

[19] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00587.html

[20] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00588.html

[21] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00623.html

Callum Lerwick jumped[22] to what was for him the central point: "So I guess this is what all this really comes down to: Do we care about certification?" and asked whether the shadow-utils maintainer(s) would care to put the permissions to a FESCo vote. Steve affirmed[23] that certification was worthwhile with a detailed list of the positive side-effects of the certification process which include: man pages for each syscall, bug fixing and reporting, test suites, crypto work, virtualization with strong guarantees of VM separation and more. It was an impressive list which seemed to counter the dominant assumption that certification was merely another item to be ticked off on a bureaucrat's mindless list. Steve noted that "[a]s a result, Fedora is the ONLY community distribution that actually meets certification requirements. OpenSuse might be close for CAPP, but not LSPP/RSBAC, but that would be the only one I can think of that might be getting close."

[22] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00560.html

[23] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00563.html

While this summary might make it seem as though certification is a slamdunk (and your correspondent has to admit a strong bias in favor of it) it has probably failed to convey the sense of unease expressed by Fedora Project contributors that decisions have been taken without discussion or consultation. Jesse Keating asked[24] Steve Grubb to explain who was providing impetus to the shadow-utils/certification team: "Where is this yelling going on? Where are the bug reports? Where is the public discussion about supposed problems in our install processes? Where is the discussion with domain knowledge experts debating whether or not the complaint has merit? Where is the open and frank discussion?"

[24] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00547.html

One possible route around what seems to be an impasse was suggested by Jeff Spaleta. Jeff observed[25] that CAPP certification for putative "appliance spins", but not the current set of spins, might make sense and asked[26]: "could some of the restrictions like the permissions be handled in a more modular way? Could for example, things be changed so I could install a specialized fedora-CAPP package at install time which tightens up aspects of the system to bring it into CAPP compliance, instead of expressing those restrictions in the default settings of all installs?"

[25] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00556.html

[26] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00625.html

The Looming Py3K Monster

Last week we reported that Ignacio Vazquez-Abrams was busy shepherding Python-2.6 into Fedora. This week Michael DeHaan raised[1] the question of what the plan for incorporating Python 3K will be. Michael worried that Py3K's incompatibilities with Python-2.6 "[are] pretty bad for someone who wants to keep a single codebase across EL 4 (Python 2.3) and up, which I think a lot of us do. That gets to be darn impossible and we have to double our involvement with code because we essentially have to maintain a differently-compatible fork for each project." He asked: "Are we looking at also carrying on with packaging 2.N indefinitely when we do decide to carry 3, because as I know it, the code changes to make something Python 3 compatible will be severe and that's a big item for any release, and will probably result in some undiscovered bugs even after the initial ports (if applied)."

[1] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00379.html

Although there was some optimism that the "from future import" syntax would allow the use of python-3 features in python-2 Daniel P. Berrange quashed[2] the idea that this was a simple fix because it "[...] isn't much help if python 2.3, 2.4 and 2.5 don't support 'from future import' and you care about shipping stuff that works on the 99% of deployed Linux boxes today which don't have 2.6 let alone 3.0." Basil Mohamed Gohar suggested[3] running the 2to3 tool on the Core packages to gain a sense of what needs to be done.

[2] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00394.html

[3] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00438.html

Some strategies and their implications were detailed[4] by Toshio Kuratomi in a post which comprehensively explains the options. Toshio suggested avoiding maintaining separate python2 and python3 packages within a single version of Fedora due to the resulting double work and space. He suggested that "[...] this decision is only partially within the powers of the Fedora Project to decide. If 80% of our upstream libraries move to py3, we'll need to move to py3 sooner. If 80% refuse to move off of py2, we can take our time working on migration code." In later discussion with Arthur Pemberton he seemed[5] to favor the idea of using python-2.6 while ensuring that all code is as compatible as possible with python-3 and avoided estimating how hard this would be until actual experience is gained with "[...] porting code to 2.6 with 3.x features turned on at some point."

[4] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00420.html

[5] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00437.html

James Antill was[6] skeptical that Py3K would be seen in Fedora any time soon due to the massive changes required and the past history (FWN#114[7])of votes on maintaining compatibility packages: "I'll put money on python3k not being the default in Fedora 12. Hell, I'll even put some money on it not being the default in Fedora 14, at this point. My personal opinion is that we stay with 2.6.* for as long as possible, giving everyone time to dual port and the problems to be found/fixed and then it "should be easy" to have it as a feature and move for one release. But I'll point out that Ignacio Vazquez-Abrams did .all. the work for 2.6 in Fedora 11 ... so feel free to take this as just my opinion."

[6] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00391.html

[7] http://fedoraproject.org/wiki/FWN/Issue114#Policy.Proposal.For.New.Compatibility.Packages

PackageKit Stealth Installations

Robert Locke asked[1] how createrepo, anaconda-yum-plugins and preupgrade had been installed without his permission on a fresh Fedora 10 install.

[1] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00431.html

An answer was posted[2] by Jesse Keating to the effect that this had been done by PackageKit "[...] so that it could offer you the ability to upgrade. We've moved that information to a public webserver rather than being in the preupgrade package so that PK can get this information without stealth installing packages." He added that while there were no "[...] current guidelines that would have caught this [...] it does fall into the `don't do that' category."

[2] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00448.html

In further answers Jesse explained[3]: "It was installed so that PackageKit could have the appropriate information to check if there were distro level upgrades (say 9 to 10) available for you. The upstream has been asked to please not install any software in Fedora without a users consent, so hopefully this scenario won't happen again, at least not with PackageKit."

[3] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00505.html

DNS Resolution Unreliable

Previously in FWN#154[1] we reported on some strange name resolution problems. Seth Vidal, as maintainer of the YUM package which looked as though it might be implicated, requested[2] follow-up information.

[1] http://fedoraproject.org/wiki/FWN/Issue154#Strange.Resolution.Problems

[2] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00246.html

Tim Niemuller replied that the problems persisted for him and were probably not to do with YUM. He added failures with svn to the mix and suggested[3] that "[...] yum is [not] the problem but there is a more general problem related to DNS lookups. As a specialty I'm using nss-mdns. But on F-8/F-9 this has never been a problem, so I suspect this is not what is causing the problem, especially because others have the same problem and I don't think nss-mdns is installed on many machines."

[3] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00305.html

Jonathan Underwood posted[4] a link to a heavily commented bugzilla entry opened by Tom Horsley on 2008-08-21. The gist of the comments appears to be that with certain DNS servers there is a problem with simultaneous IPv4 and IPv6 requests being sent. A reported[5] work-around involved using a non-glibc resolver such as dnsmasq and was added[6] to the Fedora Project wiki by Christopher Stone.

[4] https://www.redhat.com/archives/fedora-devel-list/2008-December/msg00308.html

[5] http://www.fedorafaq.org/f10/#dns-slow

[6] https://fedoraproject.org/wiki/Common.F10.bugs#DNS.Resolver.not.Reliable

Jakub Jelinek prepared[7] a glibc update which temporarily disables the simultaneous requests and Ben Williams promised that once the issue is cleanly resolved the Fedora Unity team[8] will issue a Fedora 10 re-spin.

[7] https://bugzilla.redhat.com/show.bug.cgi?id=459756#c91

[8] http://fedoraunity.org/